二维码显示模块(待优化)

This commit is contained in:
yinjinlu-pc\尹金路 2024-09-09 09:37:49 +08:00
parent 622a46a1bb
commit 6f6d77bb72
2 changed files with 156 additions and 70 deletions

View File

@ -0,0 +1,85 @@
<template>
<div class="flex-container">
<el-image class="barcodeClass" fit="scale-down" :src="form.barcodeUrl">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
</template>
<script>
import { getBarcodeUrl } from "@/api/mes/wm/barcode";
export default {
name: 'BarcodeImg',
props: {
bussinessId: {
type: Number,
default: -1
},
bussinessCode: {
type: String,
default: null
},
barcodeFormart: {
type: String,
default: 'QR_CODE'
},
barcodeType: {
type: String,
default : null
},
},
data(){
return {
form: {
barcodeUrl: null
},
}
},
methods: {
getBarcode(){
debugger;
this.form.barcodeUrl = null;
if(this.bussinessCode == null){
return ;
}
//
let barcodeParams = {
bussinessId: this.bussinessId,
bussinessCode: this.bussinessCode,
barcodeFormart: this.barcodeFormart,
barcodeType: this.barcodeType
};
getBarcodeUrl(barcodeParams).then( response =>{
if(response.data != null){
//this.$set(this.form,'barcodeUrl',response.data.barcodeUrl);//DOM
this.form.barcodeUrl = response.data.barcodeUrl;
}
});
},
},
watch: {
'bussinessCode': 'getBarcode'
}
}
</script>
<style scoped>
.barcodeClass {
width: 200px;
height: 200px;
border: 1px dashed;
position: relative;
display: inline-block;
}
.flex-container{
display: flex;
justify-content: center; /* 水平居中 */
align-items: center; /* 垂直居中 */
}
</style>

View File

@ -225,77 +225,76 @@
<el-dialog :title="title" :visible.sync="open" width="960px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="16">
<el-row>
<el-col :span="16">
<el-form-item label="工单编号" prop="workorderCode">
<el-input v-model="form.workorderCode" placeholder="请输入工单编号" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="80">
<el-switch v-model="autoGenFlag"
active-color="#13ce66"
active-text="自动生成"
@change="handleAutoGenChange(autoGenFlag)" v-if="optType != 'view' && form.status =='PREPARE'">
</el-switch>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="工单名称" prop="workorderName">
<el-input v-model="form.workorderName" placeholder="请输入工单名称" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="来源类型" prop="orderSource">
<el-radio-group v-model="form.orderSource" disabled v-if="optType=='view'">
<el-radio
v-for="dict in dict.type.mes_workorder_sourcetype"
:key="dict.value"
:label="dict.value"
>{{dict.label}}</el-radio>
</el-radio-group>
<el-radio-group v-model="form.orderSource" v-else>
<el-radio
v-for="dict in dict.type.mes_workorder_sourcetype"
:key="dict.value"
:label="dict.value"
>{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12" v-if="form.orderSource == 'ORDER'">
<el-form-item label="订单编号" prop="sourceCode">
<el-input v-model="form.sourceCode" placeholder="请输入订单编号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="工单类型" prop="workorderType">
<el-select v-model="form.workorderType" placeholder="请选择类型">
<el-option
v-for="dict in dict.type.mes_workorder_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="8">
<el-form-item label="工单编号" prop="workorderCode">
<el-input v-model="form.workorderCode" placeholder="请输入工单编号" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label-width="80">
<el-switch v-model="autoGenFlag"
active-color="#13ce66"
active-text="自动生成"
@change="handleAutoGenChange(autoGenFlag)" v-if="optType != 'view' && form.status =='PREPARE'">
</el-switch>
</el-form-item>
<BarcodeImg :bussinessId="form.workorderId" :bussinessCode="form.workorderCode" barcodeType="WORKORDER"></BarcodeImg>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="工单名称" prop="workorderName">
<el-input v-model="form.workorderName" placeholder="请输入工单名称" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="来源类型" prop="orderSource">
<el-radio-group v-model="form.orderSource" disabled v-if="optType=='view'">
<el-radio
v-for="dict in dict.type.mes_workorder_sourcetype"
:key="dict.value"
:label="dict.value"
>{{dict.label}}</el-radio>
</el-radio-group>
<el-radio-group v-model="form.orderSource" v-else>
<el-radio
v-for="dict in dict.type.mes_workorder_sourcetype"
:key="dict.value"
:label="dict.value"
>{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8" v-if="form.orderSource == 'ORDER'">
<el-form-item label="订单编号" prop="sourceCode">
<el-input v-model="form.sourceCode" placeholder="请输入订单编号" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="单据状态" prop="status">
<el-select v-model="form.status" disabled placeholder="请选择单据状态">
<el-option
v-for="dict in dict.type.mes_order_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="工单类型" prop="workorderType">
<el-select v-model="form.workorderType" placeholder="请选择类型">
<el-option
v-for="dict in dict.type.mes_workorder_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="产品编号" prop="productCode">
<el-input v-model="form.productCode" placeholder="请选择产品" >
<el-button slot="append" @click="handleSelectProduct" icon="el-icon-search"></el-button>
@ -303,7 +302,7 @@
<ItemSelect ref="itemSelect" @onSelected="onItemSelected" > </ItemSelect>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="12">
<el-form-item label="产品名称" prop="productName">
<el-input v-model="form.productName" placeholder="请选择产品" disabled/>
</el-form-item>
@ -415,6 +414,7 @@ import ClientSelect from "@/components/clientSelect/single.vue";
import VendorSelect from "@/components/vendorSelect/single.vue";
import {genCode} from "@/api/system/autocode/rule"
import Treeselect from "@riophae/vue-treeselect";
import BarcodeImg from "@/components/barcodeImg/index.vue"
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
@ -426,7 +426,8 @@ export default {
ClientSelect,
VendorSelect,
Workorderbom,
WorkorderItemList
WorkorderItemList,
BarcodeImg
},
data() {
return {