为物料产品增加二维码显示,页面增加一个“易被盗/高价值物品”选项。

This commit is contained in:
yinjinlu-pc\尹金路 2024-09-06 10:21:34 +08:00
parent 288b93ac17
commit 75bd71aa8d
2 changed files with 114 additions and 56 deletions

View File

@ -185,66 +185,88 @@
<el-dialog :title="title" :visible.sync="open" width="960px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="960px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
<el-col :span="8"> <el-col :span="14">
<el-form-item label="物料编码" prop="itemCode"> <el-row>
<el-input v-model="form.itemCode" readonly="readonly" maxlength="64" v-if="optType == 'view'"/> <el-col :span="16">
<el-input v-model="form.itemCode" placeholder="请输入物料编码" maxlength="64" v-else/> <el-form-item label="物料编码" prop="itemCode">
</el-form-item> <el-input v-model="form.itemCode" readonly="readonly" maxlength="64" v-if="optType == 'view'"/>
</el-col> <el-input v-model="form.itemCode" placeholder="请输入物料编码" maxlength="64" v-else/>
<el-col :span="4"> </el-form-item>
<el-form-item label-width="80"> </el-col>
<el-switch v-model="autoGenFlag" <el-col :span="8">
active-color="#13ce66" <el-form-item label-width="80">
active-text="自动生成" <el-switch v-model="autoGenFlag"
@change="handleAutoGenChange(autoGenFlag)" v-if="optType != 'view'"> active-color="#13ce66"
</el-switch> active-text="自动生成"
</el-form-item> @change="handleAutoGenChange(autoGenFlag)" v-if="optType != 'view'">
</el-col> </el-switch>
<el-col :span="12"> </el-form-item>
<el-form-item label="物料名称" prop="itemName"> </el-col>
<el-input v-model="form.itemName" maxlength="255" readonly="readonly" v-if="optType=='view'" /> </el-row>
<el-input v-model="form.itemName" placeholder="请输入物料名称" maxlength="255" v-else/> <el-row>
</el-form-item> <el-col :span="24">
</el-col> <el-form-item label="物料名称" prop="itemName">
</el-row> <el-input v-model="form.itemName" maxlength="255" readonly="readonly" v-if="optType=='view'" />
<el-row> <el-input v-model="form.itemName" placeholder="请输入物料名称" maxlength="255" v-else/>
<el-col :span="24"> </el-form-item>
<el-form-item label="规格型号" prop="specification"> </el-col>
<el-input v-model="form.specification" type="textarea" maxlength="500" readonly="readonly" v-if="optType=='view'" /> </el-row>
<el-input v-model="form.specification" type="textarea" placeholder="请输入规格型号" maxlength="500" v-else/> <el-row>
</el-form-item> <el-col :span="24">
</el-col> <el-form-item label="规格型号" prop="specification">
</el-row> <el-input v-model="form.specification" type="textarea" maxlength="500" readonly="readonly" v-if="optType=='view'" />
<el-row> <el-input v-model="form.specification" type="textarea" placeholder="请输入规格型号" maxlength="500" v-else/>
<el-col :span="12"> </el-form-item>
<el-form-item label="单位" prop="unitOfMeasure"> </el-col>
<el-select v-model="form.unitOfMeasure" disabled v-if="optType=='view'"> </el-row>
<el-option <el-row>
v-for="item in measureOptions" <el-col :span="24">
:key="item.measureCode" <el-form-item label="单位" prop="unitOfMeasure">
:label="item.measureName" <el-select v-model="form.unitOfMeasure" disabled v-if="optType=='view'">
:value="item.measureCode" <el-option
:disabled="item.enableFlag == 'N'" v-for="item in measureOptions"
></el-option> :key="item.measureCode"
</el-select> :label="item.measureName"
:value="item.measureCode"
:disabled="item.enableFlag == 'N'"
></el-option>
</el-select>
<el-select v-model="form.unitOfMeasure" placeholder="请选择单位" v-else> <el-select v-model="form.unitOfMeasure" placeholder="请选择单位" v-else>
<el-option <el-option
v-for="item in measureOptions" v-for="item in measureOptions"
:key="item.measureCode" :key="item.measureCode"
:label="item.measureName" :label="item.measureName"
:value="item.measureCode" :value="item.measureCode"
:disabled="item.enableFlag == 'N'" :disabled="item.enableFlag == 'N'"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col>
</el-row>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="10">
<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>
</el-col>
</el-row>
<el-row>
<el-col :span="14">
<el-form-item label="物料/产品分类" prop="itemTypeId"> <el-form-item label="物料/产品分类" prop="itemTypeId">
<treeselect v-model="form.itemTypeId" :options="itemTypeOptions" :show-count="true" disabled v-if="optType=='view'" /> <treeselect v-model="form.itemTypeId" :options="itemTypeOptions" :show-count="true" disabled v-if="optType=='view'" />
<treeselect v-model="form.itemTypeId" :options="itemTypeOptions" :show-count="true" placeholder="请选择所属分类" v-else :disable-branch-nodes="true"/> <treeselect v-model="form.itemTypeId" :options="itemTypeOptions" :show-count="true" placeholder="请选择所属分类" v-else :disable-branch-nodes="true"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10">
<el-form-item label="高价值/易被盗物品" label-width="150px" prop="highValue">
<el-checkbox v-model="form.highValue" :true-value="'Y'" :false-value="'N'"></el-checkbox>
</el-form-item>
</el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
@ -368,6 +390,7 @@ import {genCode} from "@/api/system/autocode/rule"
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import { treeselect } from "@/api/mes/md/itemtype"; import { treeselect } from "@/api/mes/md/itemtype";
import Treeselect from "@riophae/vue-treeselect"; import Treeselect from "@riophae/vue-treeselect";
import { getBarcodeUrl } from "@/api/mes/wm/barcode";
import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default { export default {
@ -427,6 +450,13 @@ export default {
// //
url: process.env.VUE_APP_BASE_API + "/mes/md/mditem/importData" url: process.env.VUE_APP_BASE_API + "/mes/md/mditem/importData"
}, },
//
barcodeParams: {
bussinessId: null,
bussinessCode: null,
barcodeFormart: 'QR_CODE', //
barcodeType: 'ITEM' //
},
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
@ -526,6 +556,7 @@ export default {
itemOrProduct: undefined, itemOrProduct: undefined,
enableFlag: 'Y', enableFlag: 'Y',
safeStockFlag: 'N', safeStockFlag: 'N',
barcodeUrl: null,
minStock: 0, minStock: 0,
maxStock: 0, maxStock: 0,
optType: undefined, optType: undefined,
@ -560,6 +591,7 @@ export default {
this.open = true; this.open = true;
this.title = "查看物料/产品"; this.title = "查看物料/产品";
this.optType = "view"; this.optType = "view";
this.getBarcodeUrl();
}); });
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
@ -583,6 +615,7 @@ export default {
this.open = true; this.open = true;
this.optType = "edit"; this.optType = "edit";
this.title = "修改物料/产品"; this.title = "修改物料/产品";
this.getBarcodeUrl();
}); });
}, },
/** 提交按钮 */ /** 提交按钮 */
@ -648,6 +681,16 @@ export default {
submitFileForm() { submitFileForm() {
this.$refs.upload.submit(); this.$refs.upload.submit();
}, },
//
getBarcodeUrl(){
this.barcodeParams.bussinessId = this.form.itemId;
this.barcodeParams.bussinessCode = this.form.itemCode;
getBarcodeUrl(this.barcodeParams).then( response =>{
if(response.data != null){
this.$set(this.form,'barcodeUrl',response.data.barcodeUrl);//DOM
}
});
},
// //
handleAutoGenChange(autoGenFlag){ handleAutoGenChange(autoGenFlag){
debugger; debugger;
@ -661,4 +704,19 @@ export default {
} }
} }
}; };
</script> </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

@ -373,7 +373,7 @@ export default {
bussinessId: null, bussinessId: null,
bussinessCode: null, bussinessCode: null,
barcodeFormart: 'QR_CODE', // barcodeFormart: 'QR_CODE', //
barcodeType: 'WORKSTATION' // barcodeType: 'WORKSTATION' //
}, },
// //
form: { form: {
@ -639,7 +639,7 @@ export default {
handleToolTypeAdd(){ handleToolTypeAdd(){
this.$refs.toolList.handleAdd(); this.$refs.toolList.handleAdd();
}, },
// //
getBarcodeUrl(){ getBarcodeUrl(){
this.barcodeParams.bussinessId = this.form.workstationId; this.barcodeParams.bussinessId = this.form.workstationId;
this.barcodeParams.bussinessCode = this.form.workstationCode; this.barcodeParams.bussinessCode = this.form.workstationCode;