factory_web/src/views/inm/packPrint_form.vue

283 lines
8.6 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-dialog append-to-body
title="标签信息"
v-model="visible"
:size="1000"
destroy-on-close
@closed="$emit('closed')"
>
<el-form
ref="dialogForm"
:model="form"
:rules="rules"
label-width="130px"
v-if="type=='in'"
>
<el-form-item label="类型">
<el-radio-group v-model="packtype">
<el-radio label="国内">国内</el-radio>
<el-radio label="国外">国外</el-radio>
</el-radio-group>
</el-form-item>
<template v-if="packtype == '国外'">
<el-form-item label="Drawing Number" prop="drawingNumber">
<el-input v-model="form.drawingNumber" placeholder="图纸编号" />
</el-form-item>
<el-form-item label="Serial Number" prop="serialNumber">
<el-input v-model="form.serialNumber" placeholder="序列号" />
</el-form-item>
</template>
<template v-if="packtype == '国内'">
<el-form-item label="名称">
<el-input v-model="form.name" placeholder="名称" />
</el-form-item>
<el-form-item label="型号">
<el-input v-model="form.model" placeholder="型号" />
</el-form-item>
<el-form-item label="批号">
<el-input v-model="form.batch" placeholder="批号" />
</el-form-item>
<el-form-item label="数量">
<el-input v-model="form.count" placeholder="数量" />
</el-form-item>
</template>
</el-form>
<el-form
ref="dialogForm"
:model="form"
:rules="rules"
label-width="130px"
v-if="type=='out'"
>
<el-form-item label="类型">
<el-radio-group v-model="packtype">
<el-radio label="国内">国内</el-radio>
<el-radio label="国外">国外</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="日期">
<el-date-picker
v-model="form.date"
type="date"
placeholder="日期"
value-format="YYYY-MM-DD"
style="width: 100%"
></el-date-picker>
</el-form-item>
<template v-if="packtype == '国外'">
<el-form-item label="Item" prop="name">
<el-input v-model="form.name" placeholder="名称" />
</el-form-item>
<el-form-item label="Drawing Number" prop="drawingNumber">
<el-input v-model="form.drawingNumber" placeholder="图纸编号" />
</el-form-item>
<el-form-item label="Serial Number" prop="serialNumber">
<el-input v-model="form.serialNumber" placeholder="序列号" />
</el-form-item>
</template>
<template v-if="packtype == '国内'">
<el-form-item label="名称">
<el-input v-model="form.name" placeholder="名称" />
</el-form-item>
<el-form-item label="型号">
<el-input v-model="form.model" placeholder="型号" />
</el-form-item>
<el-form-item label="数量">
<el-input v-model="form.count" placeholder="数量" />
</el-form-item>
<el-form-item label="批号">
<el-input v-model="form.batch" placeholder="批号" />
</el-form-item>
<el-form-item label="本次发货共">
<el-input-number v-model="form.packNum" placeholder="数量" />箱
<el-input v-model="form.pack" placeholder="数量" style="width: 60%;"/>
</el-form-item>
</template>
</el-form>
<template #footer>
<el-button type="primary" :loading="isSaveing" @click="submit">确定</el-button>
<el-button @click="visible = false">取消</el-button>
</template>
</el-dialog>
</template>
<script>
export default {
emits: ["success", "closed"],
props: {
type: { type: String, default: "" },
mioObj: { type: Object },
},
data() {
return {
packtype: "国内",
loading: false,
mode: "add",
form: {
drawingNumber: "",
serialNumber: "",
name: "",
model: "",
batch: "",
count:"",
},
rules: {
number: [
{
required: true,
message: "请填写编号",
trigger: "blur",
},
],
},
visible: false,
isSaveing: false,
options: [],
printer_name:localStorage.getItem("printer_name"),
};
},
mounted() {
let that = this;
that.$nextTick(() => {
if(that.type=="in"){//里面的小箱子
that.form.name = that.mioObj.material_?that.mioObj.material_.name:'';
that.form.model = that.mioObj.material_?that.mioObj.material_.model:'';
that.form.batch = that.mioObj.batch;
that.form.count = that.mioObj.count;
}else{//外面的大箱子
let items = that.mioObj.items;
that.form.name = items[0].material_.name;
that.form.model = items[0].material_.model;
that.form.batch = items[0].batch;
}
})
},
methods: {
//显示
open(index,total) {
let that = this;
let date = new Date();
that.form.date = that.$TOOL.dateFormat2(date);
if(index&&total){
that.form.packNum = total;
that.form.pack = index+'/'+total;
that.$nextTick(() => {
let totalCount = 0;
let items = that.mioObj.items;
that.form.name = items[0].material_.name;
that.form.model = items[0].material_.model;
that.form.batch = items[0].batch;
items.forEach(item=>{
if(item.pack_index==index){
totalCount += Number(item.count);
}
})
that.form.count = totalCount;
})
}
this.visible = true;
return this;
},
//提交
submit() {
let that = this;
that.$refs.dialogForm.validate(async (valid) => {
if (valid) {
let commands = [];
if(that.type == "in"){
if(that.packtype == "国内"){
commands = [
"SIZE 70 mm,100 mm",
"GAP 7 mm,7 mm",
"CLS",
"REFERENCE 0,0",
"WINTEXT 20,750,36,90,0,0,Simhei,中国建筑材料科学研究总院-玻纤院",
"WINTEXT 80,750,36,90,0,0,Simhei,名称",
"WINTEXT 80,600,36,90,0,0,Simhei," + this.form.name,
"WINTEXT 130,750,36,90,0,0,Simhei,批号",
"WINTEXT 130,600,36,90,0,0,Simhei," + this.form.batch,
"WINTEXT 180,750,36,90,0,0,Simhei,型号" ,
"WINTEXT 180,600,36,90,0,0,Simhei," + this.form.model,
"WINTEXT 230,750,36,90,0,0,Simhei,数量" ,
"WINTEXT 230,600,36,90,0,0,Simhei," + this.form.count,
"PRINT 1",
];
}else{
commands = [
"SIZE 70 mm,100 mm",
"GAP 7 mm,7 mm",
"CLS",
"REFERENCE 0,0",
"WINTEXT 50,760,36,90,0,0,Simhei,Drawing Number",
"WINTEXT 50,500,36,90,0,0,Simhei," + this.form.drawingNumber,
"WINTEXT 110,760,36,90,0,0,Simhei,Serial Number",
"WINTEXT 110,500,36,90,0,0,Simhei," + this.form.serialNumber,
"PRINT 1",
];
}
}else if(that.type == "out"){
if(that.packtype == "国内"){
commands = [
"SIZE 70 mm,100 mm",
"GAP 7 mm,7 mm",
"CLS",
"REFERENCE 0,0",
"WINTEXT 20,750,36,90,0,0,Simhei,装箱单("+this.form.date+"",
"WINTEXT 80,750,36,90,0,0,Simhei,名称",
"WINTEXT 80,600,36,90,0,0,Simhei," + this.form.name,
"WINTEXT 130,750,36,90,0,0,Simhei,批号",
"WINTEXT 130,600,36,90,0,0,Simhei," + this.form.model,
"WINTEXT 180,750,36,90,0,0,Simhei,数量" ,
"WINTEXT 180,600,36,90,0,0,Simhei," + this.form.count,
"WINTEXT 230,750,36,90,0,0,Simhei,型号" ,
"WINTEXT 230,600,36,90,0,0,Simhei," + this.form.batch,
"WINTEXT 280,750,36,90,0,0,Simhei,本次发货",
"WINTEXT 320,750,36,90,0,0,Simhei,共"+this.form.packNum+"箱" ,
"WINTEXT 280,600,36,90,0,0,Simhei," + this.form.pack,
"WINTEXT 330,750,36,90,0,0,Simhei,中国建筑材料科学研究总院--玻纤院",
"PRINT 1",
];
}else{
commands = [
"SIZE 70 mm,100 mm",
"GAP 7 mm,7 mm",
"CLS",
"REFERENCE 0,0",
"WINTEXT 20,750,36,90,0,0,Simhei,Packing List"+this.form.date+"",
"WINTEXT 80,760,36,90,0,0,Simhei,Item",
"WINTEXT 80,500,36,90,0,0,Simhei," + this.form.name,
"WINTEXT 130,760,36,90,0,0,Simhei,Drawing Number",
"WINTEXT 130,500,36,90,0,0,Simhei," + this.form.drawingNumber,
"WINTEXT 180,760,36,90,0,0,Simhei,Serial Number",
"WINTEXT 180,500,36,90,0,0,Simhei," + this.form.serialNumber,
"PRINT 1",
];
}
}
console.log('commands',commands);
let obj = {};
obj.printer_commands = commands;
obj.printer_name = that.printer_name;
let printer_ip=localStorage.getItem("printer_ip")||'127.0.0.1';
that.$API.wpm.prints.req(printer_ip, obj).then((response) => {
that.$message.success("打印成功");
that.isSaveing = false;
that.$emit("success");
that.visible = false;
});
}
});
},
//表单注入数据
setData(data) {
Object.assign(this.form, data);
},
//设置过滤项
setFilters(filters) {
this.selectionFilters = filters;
this.setFiltersVisible = true;
},
},
};
</script>
<style></style>