feat:添加生产工单打印功能;二维码相关功能回显问题
This commit is contained in:
parent
124bbc4a3e
commit
13408c8008
@ -9,3 +9,6 @@ VUE_APP_BASE_API = '/dev-api'
|
||||
|
||||
# 路由懒加载
|
||||
VUE_CLI_BABEL_TRANSPILE_MODULES = true
|
||||
|
||||
# 报表系统/开发环境
|
||||
VUE_APP_REPORT = 'http://localhost:8080'
|
@ -6,3 +6,6 @@ ENV = 'production'
|
||||
|
||||
# 若依管理系统/生产环境
|
||||
VUE_APP_BASE_API = '/prod-api'
|
||||
|
||||
# 报表系统/开发环境
|
||||
VUE_APP_REPORT = 'http://localhost:8080'
|
||||
|
@ -8,3 +8,6 @@ ENV = 'staging'
|
||||
|
||||
# 若依管理系统/测试环境
|
||||
VUE_APP_BASE_API = '/stage-api'
|
||||
|
||||
# 报表系统/开发环境
|
||||
VUE_APP_REPORT = 'http://localhost:8080'
|
||||
|
@ -1,85 +1,91 @@
|
||||
<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>
|
||||
<div class="flex-container">
|
||||
<el-image ref="image" class="barcodeClass" fit="scale-down" :src="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: {
|
||||
name: 'BarcodeImg',
|
||||
props: {
|
||||
|
||||
bussinessId: {
|
||||
type: Number,
|
||||
default: -1
|
||||
},
|
||||
bussinessCode: {
|
||||
type: String,
|
||||
default: null
|
||||
},
|
||||
barcodeFormart: {
|
||||
type: String,
|
||||
default: 'QR_CODE'
|
||||
},
|
||||
barcodeType: {
|
||||
type: String,
|
||||
default : null
|
||||
},
|
||||
bussinessId: {
|
||||
type: Number,
|
||||
default: -1
|
||||
},
|
||||
data(){
|
||||
return {
|
||||
form: {
|
||||
barcodeUrl: null
|
||||
},
|
||||
}
|
||||
bussinessCode: {
|
||||
type: String,
|
||||
default: 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;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
barcodeFormart: {
|
||||
type: String,
|
||||
default: 'QR_CODE'
|
||||
},
|
||||
watch: {
|
||||
'bussinessCode': 'getBarcode'
|
||||
barcodeType: {
|
||||
type: String,
|
||||
default : null
|
||||
},
|
||||
},
|
||||
data(){
|
||||
return {
|
||||
form: {
|
||||
barcodeUrl: null
|
||||
},
|
||||
barcodeUrl:''
|
||||
}
|
||||
},
|
||||
// mounted() {
|
||||
// this.getBarcode()
|
||||
// },
|
||||
methods: {
|
||||
getBarcode(){
|
||||
console.log("---------------------",this.barcodeType)
|
||||
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 =>{
|
||||
console.log(response,'59')
|
||||
if(response.data != null){
|
||||
//this.$set(this.form,'barcodeUrl',response.data.barcodeUrl);//强制刷新DOM
|
||||
// this.form.barcodeUrl = response.data.barcodeUrl;
|
||||
this.barcodeUrl = response.data.barcodeUrl;
|
||||
console.log(this.barcodeUrl,'63')
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
},
|
||||
watch: {
|
||||
'bussinessCode': 'getBarcode'
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
.barcodeClass {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
border: 1px dashed;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
.barcodeClass {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
border: 1px dashed;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.flex-container{
|
||||
display: flex;
|
||||
justify-content: center; /* 水平居中 */
|
||||
align-items: center; /* 垂直居中 */
|
||||
}
|
||||
.flex-container{
|
||||
display: flex;
|
||||
justify-content: center; /* 水平居中 */
|
||||
align-items: center; /* 垂直居中 */
|
||||
}
|
||||
</style>
|
||||
|
@ -173,61 +173,80 @@
|
||||
<el-dialog :title="title" :visible.sync="open" width="960px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="设备编码" prop="itemCode">
|
||||
<el-input v-model="form.machineryCode" readonly="readonly" maxlength="64" v-if="optType == 'view'"/>
|
||||
<el-input v-model="form.machineryCode" placeholder="请输入设备编码" maxlength="64" v-else/>
|
||||
</el-form-item>
|
||||
<el-col :span="14">
|
||||
<el-row>
|
||||
<el-col :span="16">
|
||||
<el-form-item label="设备编码" prop="itemCode">
|
||||
<el-input v-model="form.machineryCode" readonly="readonly" maxlength="64" v-if="['view','edit'].indexOf(optType)> -1"/>
|
||||
<el-input v-model="form.machineryCode" placeholder="请输入设备编码" maxlength="64" v-else/>
|
||||
</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="['view','edit'].indexOf(optType)< 0">
|
||||
</el-switch>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="设备名称" prop="itemName">
|
||||
<el-input v-model="form.machineryName" maxlength="255" readonly="readonly" v-if="optType=='view'" />
|
||||
<el-input v-model="form.machineryName" placeholder="请输入设备名称" maxlength="255" v-else/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="品牌" prop="machineryBrand">
|
||||
<el-input v-model="form.machineryBrand" maxlength="255" readonly="readonly" v-if="optType=='view'" />
|
||||
<el-input v-model="form.machineryBrand" placeholder="请输入品牌" maxlength="255" v-else/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="设备分类" prop="machineryTypeId">
|
||||
<treeselect v-model="form.machineryTypeId" :options="machineryTypeOptions" :normalizer="normalizer" disabled v-if="optType=='view'" />
|
||||
<treeselect v-model="form.machineryTypeId" :options="machineryTypeOptions" :normalizer="normalizer" placeholder="请选择所属分类" v-else :disable-branch-nodes='true' />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="所属车间" prop="workshopId">
|
||||
<el-select v-model="form.workshopId" placeholder="请选择车间">
|
||||
<el-option
|
||||
v-for="item in workshopOptions"
|
||||
:key="item.workshopId"
|
||||
:label="item.workshopName"
|
||||
:value="item.workshopId"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</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'">
|
||||
</el-switch>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="设备名称" prop="itemName">
|
||||
<el-input v-model="form.machineryName" maxlength="255" readonly="readonly" v-if="optType=='view'" />
|
||||
<el-input v-model="form.machineryName" placeholder="请输入设备名称" maxlength="255" v-else/>
|
||||
</el-form-item>
|
||||
<el-col :span="10">
|
||||
<div class="flex-container">
|
||||
<el-image class="barcodeClass" fit="scale-down" :src="form.barcodeUrl?form.barcodeUrl.toString():''">
|
||||
<div slot="error" class="image-slot">
|
||||
<i class="el-icon-picture-outline"></i>
|
||||
</div>
|
||||
</el-image>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="品牌" prop="machineryBrand">
|
||||
<el-input v-model="form.machineryBrand" maxlength="255" readonly="readonly" v-if="optType=='view'" />
|
||||
<el-input v-model="form.machineryBrand" placeholder="请输入品牌" maxlength="255" v-else/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="设备分类" prop="machineryTypeId">
|
||||
<treeselect v-model="form.machineryTypeId" :options="machineryTypeOptions" :normalizer="normalizer" disabled v-if="optType=='view'" />
|
||||
<treeselect v-model="form.machineryTypeId" :options="machineryTypeOptions" :normalizer="normalizer" placeholder="请选择所属分类" v-else :disable-branch-nodes='true' />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="规格型号" prop="machinerySpec">
|
||||
<el-input v-model="form.machinerySpec" type="textarea" maxlength="255" readonly="readonly" v-if="optType=='view'" />
|
||||
<el-input v-model="form.machinerySpec" type="textarea" placeholder="请输入规格型号" maxlength="255" v-else/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="所属车间" prop="workshopId">
|
||||
<el-select v-model="form.workshopId" placeholder="请选择车间">
|
||||
<el-option
|
||||
v-for="item in workshopOptions"
|
||||
:key="item.workshopId"
|
||||
:label="item.workshopName"
|
||||
:value="item.workshopId"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
@ -285,6 +304,7 @@ import {genCode} from "@/api/system/autocode/rule"
|
||||
import { getToken } from "@/utils/auth";
|
||||
import Treeselect from "@riophae/vue-treeselect";
|
||||
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
||||
import {getBarcodeUrl} from "@/api/mes/wm/barcode";
|
||||
|
||||
export default {
|
||||
name: "Machinery",
|
||||
@ -342,6 +362,13 @@ export default {
|
||||
// 上传的地址
|
||||
url: process.env.VUE_APP_BASE_API + "/mes/dv/machinery/importData"
|
||||
},
|
||||
//二维码查询参数
|
||||
barcodeParams: {
|
||||
bussinessId: null,
|
||||
bussinessCode: null,
|
||||
barcodeFormart: 'QR_CODE', //模式二维码
|
||||
barcodeType: 'MACHINERY' //类型
|
||||
},
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
@ -489,6 +516,7 @@ export default {
|
||||
this.open = true;
|
||||
this.title = "查看设备信息";
|
||||
this.optType = "view";
|
||||
this.getBarcodeUrl();
|
||||
});
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
@ -515,6 +543,17 @@ export default {
|
||||
this.open = true;
|
||||
this.title = "修改设备";
|
||||
this.optType = "edit";
|
||||
this.getBarcodeUrl();
|
||||
});
|
||||
},
|
||||
//获取二维码地址
|
||||
getBarcodeUrl(){
|
||||
this.barcodeParams.bussinessId = this.form.machineryId;
|
||||
this.barcodeParams.bussinessCode = this.form.machineryCode;
|
||||
getBarcodeUrl(this.barcodeParams).then( response =>{
|
||||
if(response.data != null){
|
||||
this.$set(this.form,'barcodeUrl',response.data.barcodeUrl);//强制刷新DOM
|
||||
}
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
@ -593,3 +632,17 @@ export default {
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.flex-container{
|
||||
display: flex;
|
||||
justify-content: center; /* 水平居中 */
|
||||
align-items: center; /* 垂直居中 */
|
||||
}
|
||||
.barcodeClass {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
border: 1px dashed;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
@ -111,14 +111,14 @@
|
||||
<el-table v-loading="loading" :data="itemList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="50" align="center" />
|
||||
<el-table-column label="物料编码" width = "120" align="center" key="itemCode" prop="itemCode" v-if="columns[0].visible" >
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
@click="handleView(scope.row)"
|
||||
v-hasPermi="['mes:md:mditem:query']"
|
||||
>{{scope.row.itemCode}}</el-button>
|
||||
</template>
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
@click="handleView(scope.row)"
|
||||
v-hasPermi="['mes:md:mditem:query']"
|
||||
>{{scope.row.itemCode}}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="物料名称" min-width="120" align="left" key="itemName" prop="itemName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="规格型号" align="left" key="specification" prop="specification" v-if="columns[2].visible" :show-overflow-tooltip="true" />
|
||||
@ -133,7 +133,7 @@
|
||||
<el-table-column label="所属分类" align="center" key="itemTypeName" prop="itemTypeName" v-if="columns[5].visible" width="120" />
|
||||
<el-table-column label="是否启用" align="center" key="enableFlag" v-if="columns[6].visible">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.sys_yes_no" :value="scope.row.enableFlag"/>
|
||||
<dict-tag :options="dict.type.sys_yes_no" :value="scope.row.enableFlag"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="设置安全库存" align="center" key="safeStockFlag" v-if="columns[7].visible">
|
||||
@ -196,9 +196,9 @@
|
||||
<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'">
|
||||
active-color="#13ce66"
|
||||
active-text="自动生成"
|
||||
@change="handleAutoGenChange(autoGenFlag)" v-if="optType != 'view'">
|
||||
</el-switch>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@ -224,22 +224,22 @@
|
||||
<el-form-item label="单位" prop="unitOfMeasure">
|
||||
<el-select v-model="form.unitOfMeasure" disabled v-if="optType=='view'">
|
||||
<el-option
|
||||
v-for="item in measureOptions"
|
||||
:key="item.measureCode"
|
||||
:label="item.measureName"
|
||||
:value="item.measureCode"
|
||||
:disabled="item.enableFlag == 'N'"
|
||||
></el-option>
|
||||
v-for="item in measureOptions"
|
||||
:key="item.measureCode"
|
||||
:label="item.measureName"
|
||||
:value="item.measureCode"
|
||||
:disabled="item.enableFlag == 'N'"
|
||||
></el-option>
|
||||
</el-select>
|
||||
|
||||
<el-select v-model="form.unitOfMeasure" placeholder="请选择单位" v-else>
|
||||
<el-option
|
||||
v-for="item in measureOptions"
|
||||
:key="item.measureCode"
|
||||
:label="item.measureName"
|
||||
:value="item.measureCode"
|
||||
:disabled="item.enableFlag == 'N'"
|
||||
></el-option>
|
||||
v-for="item in measureOptions"
|
||||
:key="item.measureCode"
|
||||
:label="item.measureName"
|
||||
:value="item.measureCode"
|
||||
:disabled="item.enableFlag == 'N'"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@ -271,7 +271,7 @@
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="是否启用">
|
||||
<el-radio-group v-model="form.enableFlag" disabled v-if="optType=='view'">
|
||||
<el-radio-group v-model="form.enableFlag" disabled v-if="optType=='view'">
|
||||
<el-radio
|
||||
v-for="dict in dict.type.sys_yes_no"
|
||||
:key="dict.value"
|
||||
@ -698,7 +698,7 @@ export default {
|
||||
submitFileForm() {
|
||||
this.$refs.upload.submit();
|
||||
},
|
||||
//获取二维码地址
|
||||
//获取二维码地址
|
||||
getBarcodeUrl(){
|
||||
this.barcodeParams.bussinessId = this.form.itemId;
|
||||
this.barcodeParams.bussinessCode = this.form.itemCode;
|
||||
@ -723,17 +723,17 @@ export default {
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.barcodeClass {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
border: 1px dashed;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
.barcodeClass {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
border: 1px dashed;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.flex-container{
|
||||
display: flex;
|
||||
justify-content: center; /* 水平居中 */
|
||||
align-items: center; /* 垂直居中 */
|
||||
}
|
||||
.flex-container{
|
||||
display: flex;
|
||||
justify-content: center; /* 水平居中 */
|
||||
align-items: center; /* 垂直居中 */
|
||||
}
|
||||
</style>
|
@ -111,56 +111,74 @@
|
||||
<el-dialog :title="title" :visible.sync="open" width="960px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="车间编码" prop="workshopCode">
|
||||
<el-input v-model="form.workshopCode" placeholder="请输入车间编码" />
|
||||
</el-form-item>
|
||||
<el-col :span="14">
|
||||
<el-row>
|
||||
<el-col :span="16">
|
||||
<el-form-item label="车间编码" prop="workshopCode">
|
||||
<el-input v-model="form.workshopCode" readonly="readonly" maxlength="64" v-if="['view','edit'].indexOf(optType)> -1"/>
|
||||
<el-input v-model="form.workshopCode" placeholder="请输入车间编码" maxlength="64" v-else/>
|
||||
</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="['view','edit'].indexOf(optType)< 0">
|
||||
</el-switch>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="车间名称" prop="workshopName">
|
||||
<el-input v-model="form.workshopName" placeholder="请输入车间名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="面积" prop="area">
|
||||
<el-input-number :min="0" :percision="2" :step="1" v-model="form.area" placeholder="请输入面积" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="负责人" prop="charge">
|
||||
<el-input v-model="form.charge" placeholder="请输入负责人" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="是否启用" prop="enableFlag">
|
||||
<el-radio-group v-model="form.enableFlag" disabled v-if="optType=='view'">
|
||||
<el-radio
|
||||
v-for="dict in dict.type.sys_yes_no"
|
||||
:key="dict.value"
|
||||
:label="dict.value"
|
||||
>{{dict.label}}</el-radio>
|
||||
</el-radio-group>
|
||||
<el-radio-group v-model="form.enableFlag" v-else>
|
||||
<el-radio
|
||||
v-for="dict in dict.type.sys_yes_no"
|
||||
:key="dict.value"
|
||||
:label="dict.value"
|
||||
>{{dict.label}}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label-width="80">
|
||||
<el-switch v-model="autoGenFlag"
|
||||
active-color="#13ce66"
|
||||
active-text="自动生成"
|
||||
@change="handleAutoGenChange(autoGenFlag)" v-if="optType != 'view'">
|
||||
</el-switch>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="车间名称" prop="workshopName">
|
||||
<el-input v-model="form.workshopName" placeholder="请输入车间名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="面积" prop="area">
|
||||
<el-input-number :min="0" :percision="2" :step="1" v-model="form.area" placeholder="请输入面积" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="负责人" prop="charge">
|
||||
<el-input v-model="form.charge" placeholder="请输入负责人" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否启用" prop="enableFlag">
|
||||
<el-radio-group v-model="form.enableFlag" disabled v-if="optType=='view'">
|
||||
<el-radio
|
||||
v-for="dict in dict.type.sys_yes_no"
|
||||
:key="dict.value"
|
||||
:label="dict.value"
|
||||
>{{dict.label}}</el-radio>
|
||||
</el-radio-group>
|
||||
<el-radio-group v-model="form.enableFlag" v-else>
|
||||
<el-radio
|
||||
v-for="dict in dict.type.sys_yes_no"
|
||||
:key="dict.value"
|
||||
:label="dict.value"
|
||||
>{{dict.label}}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-col :span="10">
|
||||
<div class="flex-container">
|
||||
<el-image class="barcodeClass" fit="scale-down" :src="form.barcodeUrl?form.barcodeUrl.toString():''">
|
||||
<div slot="error" class="image-slot">
|
||||
<i class="el-icon-picture-outline"></i>
|
||||
</div>
|
||||
</el-image>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
@ -183,6 +201,7 @@
|
||||
<script>
|
||||
import { listWorkshop, getWorkshop, delWorkshop, addWorkshop, updateWorkshop } from "@/api/mes/md/workshop";
|
||||
import {genCode} from "@/api/system/autocode/rule"
|
||||
import {getBarcodeUrl} from "@/api/mes/wm/barcode";
|
||||
export default {
|
||||
name: "Workshop",
|
||||
dicts: ['sys_yes_no'],
|
||||
@ -208,6 +227,13 @@ export default {
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
//二维码查询参数
|
||||
barcodeParams: {
|
||||
bussinessId: null,
|
||||
bussinessCode: null,
|
||||
barcodeFormart: 'QR_CODE', //模式二维码
|
||||
barcodeType: 'WORKSHOP' //类型
|
||||
},
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
@ -306,6 +332,7 @@ export default {
|
||||
this.open = true;
|
||||
this.title = "查看车间";
|
||||
this.optType = "view";
|
||||
this.getBarcodeUrl();
|
||||
});
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
@ -317,6 +344,7 @@ export default {
|
||||
this.open = true;
|
||||
this.title = "修改车间";
|
||||
this.optType = "edit";
|
||||
this.getBarcodeUrl();
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
@ -355,6 +383,16 @@ export default {
|
||||
...this.queryParams
|
||||
}, `workshop_${new Date().getTime()}.xlsx`)
|
||||
},
|
||||
//获取二维码地址
|
||||
getBarcodeUrl(){
|
||||
this.barcodeParams.bussinessId = this.form.workshopId;
|
||||
this.barcodeParams.bussinessCode = this.form.workshopCode;
|
||||
getBarcodeUrl(this.barcodeParams).then( response =>{
|
||||
if(response.data != null){
|
||||
this.$set(this.form,'barcodeUrl',response.data.barcodeUrl);//强制刷新DOM
|
||||
}
|
||||
});
|
||||
},
|
||||
//自动生成物料编码
|
||||
handleAutoGenChange(autoGenFlag){
|
||||
debugger;
|
||||
@ -370,3 +408,17 @@ export default {
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.flex-container{
|
||||
display: flex;
|
||||
justify-content: center; /* 水平居中 */
|
||||
align-items: center; /* 垂直居中 */
|
||||
}
|
||||
.barcodeClass {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
border: 1px dashed;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
|
@ -145,7 +145,7 @@ export default {
|
||||
optType: undefined,
|
||||
workorder: undefined,
|
||||
},
|
||||
created() {
|
||||
mounted() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
@ -157,6 +157,7 @@ export default {
|
||||
this.workorderbomList = response.rows;
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
console.log(this.form,'160')
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
|
@ -69,10 +69,10 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="需求日期" prop="requestDate">
|
||||
<el-date-picker clearable
|
||||
v-model="queryParams.requestDate"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择需求日期">
|
||||
v-model="queryParams.requestDate"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择需求日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
@ -81,7 +81,7 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
@ -176,7 +176,7 @@
|
||||
<dict-tag :options="dict.type.mes_order_status" :value="scope.row.status"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="150px" align="center" class-name="small-padding fixed-width">
|
||||
<el-table-column label="操作" width="250px" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
@ -210,6 +210,13 @@
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['mes:pro:workorder:remove']"
|
||||
>删除</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-printer"
|
||||
v-if="scope.row.parentId =='0'"
|
||||
@click="handlePreview(scope.row)"
|
||||
>预览</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@ -235,9 +242,9 @@
|
||||
<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'">
|
||||
active-color="#13ce66"
|
||||
active-text="自动生成"
|
||||
@change="handleAutoGenChange(autoGenFlag)" v-if="optType != 'view' && form.status =='PREPARE'">
|
||||
</el-switch>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@ -290,7 +297,7 @@
|
||||
</el-row>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<BarcodeImg :bussinessId="form.workorderId" :bussinessCode="form.workorderCode" barcodeType="WORKORDER"></BarcodeImg>
|
||||
<BarcodeImg ref="barcodeImg" :bussinessId="form.workorderId" :bussinessCode="form.workorderCode" barcodeType="WORKORDER"></BarcodeImg>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
@ -329,10 +336,10 @@
|
||||
<el-col :span="8">
|
||||
<el-form-item label="需求日期" prop="requestDate">
|
||||
<el-date-picker clearable
|
||||
v-model="form.requestDate"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择需求日期">
|
||||
v-model="form.requestDate"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择需求日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@ -535,7 +542,7 @@ export default {
|
||||
children: node.children
|
||||
};
|
||||
},
|
||||
/** 查询生产工单下拉树结构 */
|
||||
/** 查询生产工单下拉树结构 */
|
||||
getTreeselect() {
|
||||
listWorkorder().then(response => {
|
||||
this.workorderOptions = [];
|
||||
@ -635,8 +642,13 @@ export default {
|
||||
this.getTreeselect();
|
||||
const workorderId = row.workorderId || this.ids;
|
||||
getWorkorder(workorderId).then(response => {
|
||||
this.form = response.data;
|
||||
this.form = response.data
|
||||
this.open = true;
|
||||
this.$nextTick(() => {
|
||||
console.log("2232",this.$refs.barcodeImg)
|
||||
this.$refs.barcodeImg.getBarcode();
|
||||
|
||||
})
|
||||
this.title = "查看工单信息";
|
||||
this.optType = "view";
|
||||
});
|
||||
@ -650,6 +662,10 @@ export default {
|
||||
}
|
||||
getWorkorder(row.workorderId).then(response => {
|
||||
this.form = response.data;
|
||||
|
||||
console.log("3232",this.form)
|
||||
this.form.workorderCode = response.data.workorderCode
|
||||
this.form.workorderId = response.data.workorderId
|
||||
this.open = true;
|
||||
this.title = "修改生产工单";
|
||||
this.optType="edit";
|
||||
@ -677,6 +693,10 @@ export default {
|
||||
}
|
||||
});
|
||||
},
|
||||
handlePreview(row){
|
||||
//todo:本地环境报表地址
|
||||
window.open(process.env.VUE_APP_REPORT+"/ureport/preview?_u=mysql:生产工单打印模版.ureport.xml&id="+row.workorderId+"&code="+row.workorderCode)
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
this.$modal.confirm('是否确认删除生产工单编号为"' + row.workorderId + '"的数据项?').then(function() {
|
||||
@ -716,21 +736,21 @@ export default {
|
||||
},
|
||||
//物料选择弹出框
|
||||
onItemSelected(obj){
|
||||
if(obj != undefined && obj != null){
|
||||
this.form.productId = obj.itemId;
|
||||
this.form.productCode = obj.itemCode;
|
||||
this.form.productName = obj.itemName;
|
||||
this.form.productSpc = obj.specification;
|
||||
this.form.unitOfMeasure = obj.unitName;
|
||||
}
|
||||
if(obj != undefined && obj != null){
|
||||
this.form.productId = obj.itemId;
|
||||
this.form.productCode = obj.itemCode;
|
||||
this.form.productName = obj.itemName;
|
||||
this.form.productSpc = obj.specification;
|
||||
this.form.unitOfMeasure = obj.unitName;
|
||||
}
|
||||
},
|
||||
//客户选择弹出框
|
||||
onClientSelected(obj){
|
||||
if(obj != undefined && obj != null){
|
||||
this.form.clientId = obj.clientId;
|
||||
this.form.clientCode = obj.clientCode;
|
||||
this.form.clientName = obj.clientName;
|
||||
}
|
||||
if(obj != undefined && obj != null){
|
||||
this.form.clientId = obj.clientId;
|
||||
this.form.clientCode = obj.clientCode;
|
||||
this.form.clientName = obj.clientName;
|
||||
}
|
||||
},
|
||||
//供应商选择
|
||||
handleSelectVendor(){
|
||||
@ -738,12 +758,12 @@ export default {
|
||||
},
|
||||
//供应商选择弹出框
|
||||
onVendorSelected(obj){
|
||||
debugger;
|
||||
if(obj != undefined && obj != null){
|
||||
this.form.vendorId = obj.vendorId;
|
||||
this.form.vendorCode = obj.vendorCode;
|
||||
this.form.vendorName = obj.vendorName;
|
||||
}
|
||||
debugger;
|
||||
if(obj != undefined && obj != null){
|
||||
this.form.vendorId = obj.vendorId;
|
||||
this.form.vendorCode = obj.vendorCode;
|
||||
this.form.vendorName = obj.vendorName;
|
||||
}
|
||||
},
|
||||
//自动生成编码
|
||||
handleAutoGenChange(autoGenFlag){
|
||||
|
@ -157,7 +157,7 @@
|
||||
<dict-tag :options="dict.type.mes_tool_status" :value="scope.row.status"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<el-table-column width="120px" label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
@ -189,52 +189,70 @@
|
||||
<el-dialog :title="title" :visible.sync="open" width="960px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="工装夹具类型" prop="toolTypeId">
|
||||
<el-select v-model="form.toolTypeId" @change="onToolTypeChanged" placeholder="请选择类型">
|
||||
<el-option
|
||||
v-for="dict in toolTypeOptions"
|
||||
:key="dict.toolTypeId"
|
||||
:label="dict.toolTypeName"
|
||||
:value="dict.toolTypeId"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-col :span="14">
|
||||
<el-row>
|
||||
<el-col :span="16">
|
||||
<el-form-item label="工装夹具编号" prop="toolCode">
|
||||
<el-input v-model="form.toolCode" readonly="readonly" maxlength="64" v-if="['view','edit'].indexOf(optType)> -1"/>
|
||||
<el-input v-model="form.toolCode" placeholder="请输入工装夹具编号" maxlength="64" v-else/>
|
||||
</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="['view','edit'].indexOf(optType)< 0">
|
||||
</el-switch>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="工装夹具名称" prop="toolName">
|
||||
<el-input v-model="form.toolName" placeholder="请输入工装夹具名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="工装夹具类型" prop="toolTypeId">
|
||||
<el-select style="width: 100%" v-model="form.toolTypeId" @change="onToolTypeChanged" placeholder="请选择类型">
|
||||
<el-option
|
||||
v-for="dict in toolTypeOptions"
|
||||
:key="dict.toolTypeId"
|
||||
:label="dict.toolTypeName"
|
||||
:value="dict.toolTypeId"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="型号" prop="spec">
|
||||
<el-input v-model="form.spec" placeholder="请输入型号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="工装夹具名称" prop="toolName">
|
||||
<el-input v-model="form.toolName" placeholder="请输入工装夹具名称" />
|
||||
</el-form-item>
|
||||
<el-col :span="10">
|
||||
<div class="flex-container">
|
||||
<el-image class="barcodeClass" fit="scale-down" :src="form.barcodeUrl?form.barcodeUrl.toString():''">
|
||||
<div slot="error" class="image-slot">
|
||||
<i class="el-icon-picture-outline"></i>
|
||||
</div>
|
||||
</el-image>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-col :span="14">
|
||||
<el-form-item label="品牌" prop="brand">
|
||||
<el-input v-model="form.brand" placeholder="请输入品牌" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="型号" prop="spec">
|
||||
<el-input v-model="form.spec" placeholder="请输入型号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="工装夹具编号" prop="toolCode">
|
||||
<el-input v-model="form.toolCode" 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'">
|
||||
</el-switch>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-col :span="10">
|
||||
<el-form-item label="数量" prop="quantity">
|
||||
<el-input v-if="form.codeFlag=='Y'" readonly v-model="form.quantity" />
|
||||
<el-input-number :min="0" @blur="onQuantityChanged" v-else v-model="form.quantity" placeholder="请输入数量" />
|
||||
@ -242,12 +260,12 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-col :span="14">
|
||||
<el-form-item label="可用数量" prop="quantityAvail">
|
||||
<el-input v-model="form.quantityAvail" readonly placeholder="请输入可用数量" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-col :span="10">
|
||||
<el-form-item label="保养维护类型" prop="maintenType">
|
||||
<el-select v-model="form.maintenType" placeholder="请选择保养维护类型">
|
||||
<el-option
|
||||
@ -307,6 +325,7 @@
|
||||
import { listTool, getTool, delTool, addTool, updateTool } from "@/api/mes/tm/tool";
|
||||
import { listAllTooltype } from "@/api/mes/tm/tooltype"
|
||||
import {genCode} from "@/api/system/autocode/rule"
|
||||
import {getBarcodeUrl} from "@/api/mes/wm/barcode";
|
||||
export default {
|
||||
name: "Tool",
|
||||
dicts: ['mes_tool_status', 'mes_mainten_type'],
|
||||
@ -335,6 +354,12 @@ export default {
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
barcodeParams: {
|
||||
bussinessId: null,
|
||||
bussinessCode: null,
|
||||
barcodeFormart: 'QR_CODE', //模式二维码
|
||||
barcodeType: 'TOOL' //类型
|
||||
},
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
@ -470,6 +495,7 @@ export default {
|
||||
this.open = true;
|
||||
this.title = "查看工装夹具信息";
|
||||
this.optType = "view";
|
||||
this.getBarcodeUrl();
|
||||
});
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
@ -481,6 +507,17 @@ export default {
|
||||
this.open = true;
|
||||
this.title = "修改工装夹具清单";
|
||||
this.optType = "edit";
|
||||
this.getBarcodeUrl();
|
||||
});
|
||||
},
|
||||
//获取二维码地址
|
||||
getBarcodeUrl(){
|
||||
this.barcodeParams.bussinessId = this.form.toolId;
|
||||
this.barcodeParams.bussinessCode = this.form.toolCode;
|
||||
getBarcodeUrl(this.barcodeParams).then( response =>{
|
||||
if(response.data != null){
|
||||
this.$set(this.form,'barcodeUrl',response.data.barcodeUrl);//强制刷新DOM
|
||||
}
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
@ -533,3 +570,17 @@ export default {
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.flex-container{
|
||||
display: flex;
|
||||
justify-content: center; /* 水平居中 */
|
||||
align-items: center; /* 垂直居中 */
|
||||
}
|
||||
.barcodeClass {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
border: 1px dashed;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
|
Loading…
Reference in New Issue
Block a user