2.工业相机修改
滁州-烟草
LAPTOP-S9HJSOEB\昊天 1 year ago
parent 2bec0ab66e
commit 2c69a17e1e

Binary file not shown.

@ -9,12 +9,26 @@ export default {
url: "/realTime",
name: "获取实时监控列表"
},
IndustrialCameraPic: {
method: "POST",
url: "/industrialCamera/pic",
name: "工业相机拍照"
},
IndustrialCameraMacth: {
method: "POST",
url: "/industrialCamera/Macth",
name: "工业相机识别"
},
IndustrialCameraMacthCreate:{
method: "POST",
url: "/industrialCamera/MacthCreate",
name: "工业相机模板建立"
},
getHistoryList: {
method: "POST",
url: "/order/list",
name: "获取历史监控列表"
},
getStreetList: {
method: "POST",
url: "/street/page",

@ -58,6 +58,17 @@ const routes = [{
},
component: () => import('@/views/historyMonitoring/index')
},
{
path: 'IndustrialCamera',
name: 'IndustrialCamera',
meta: {
icon: 'book',
name: '工业相机'
},
component: () => import('@/views/IndustrialCamera/index')
},
{
path: 'alarmLog',
name: 'alarmLog',

@ -0,0 +1,364 @@
<template>
<div class="history bg-white">
<div class="ant-advanced-search-form">
<a-form
layout="inline"
:form="queryParam"
>
<a-row :gutter="24">
<a-col
:span="17"
style="text-align: left"
>
<a-form-item label="巷道">
<a-select
@change="handleChange"
:value="select"
style="width:400px"
>
<a-select-option
v-for="i in listData"
:key="i.name"
:value="i.id"
>
{{i.name}}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col
:span="6"
style="text-align: right"
>
<a-button
type="primary"
@click="IndustrialCameraPic"
>拍照</a-button>
<a-button
style="margin-left: 15px"
type="primary"
@click="IndustrialCameraMacth"
>识别</a-button>
<a-button
style="margin-left: 15px"
@click="reset"
>重置</a-button>
</a-col>
</a-row>
</a-form>
</div>
<a-row style="height: 900px;">
<a-col :span="18"><img
width="70%"
:src="this.imgUrl + picImg"
>
<img></a-col>
<a-col :span="6">
<!-- <a-row style="height: 40vh;">
<div class="clearfix">
<a-upload
list-type="picture-card"
:file-list="fileList"
:multiple="true"
@preview="handlePreview"
@change="handleChangeUpload"
@customRequest="customRequest"
:before-upload="beforeUpload"
>
<a-icon type="plus" />
<div class="ant-upload-text">
Upload
</div>
</a-upload>
<a-modal
:visible="previewVisible"
:footer="null"
@cancel="handleCancel"
>
<img
alt="example"
style="width: 100%"
:src="previewImage"
/>
</a-modal>
</div>
</a-row> -->
<a-row style="height: 20vh;">
<p v-if="identificationImg==''"></p>
<img
v-if="identificationImg!=''"
alt="example"
style="width: 100%"
:src="this.imgUrl +identificationImg"
/>
</a-row>
<a-row>
<a-form
:form="form"
:label-col="{ span: 5 }"
:wrapper-col="{ span: 12 }"
@submit="handleSubmit"
>
<a-form-item label="模板类型">
<a-input v-decorator="['typeMacth', { rules: [{ required: true, message: '!' }] }]" />
</a-form-item>
<!-- <a-form-item :wrapper-col="{ span: 12, offset: 5 }">
<a-button
type="primary"
html-type="submit"
>
模板建立
</a-button>
</a-form-item> -->
</a-form>
</a-row>
</a-col>
</a-row>
</div>
</template>
<script>
import { imgUrl, videoUrl } from "@/api/importExcel";
import moment from "moment";
function getBase64(blob) {
return new Promise((resolve, reject) => {
const fileReader = new FileReader();
fileReader.onload = (e) => {
resolve(e.target.result);
};
// readAsDataURL
fileReader.readAsDataURL(blob);
fileReader.onerror = () => {
reject(new Error("文件流异常"));
};
});
}
export default {
name: "IndustrialCamera",
data() {
return {
queryParam: {
orderNum: "",
streetId: "",
},
typeMacth:"",
listData: [],
time: [],
pageNum: 1,
pageSize: 10,
data: [],
fileList: [],
select: "",
pagination: {
total: 0,
defaultPageSize: 10, //
showTotal: (total) => `${total} 条数据`, //
showSizeChanger: true, //
pageSizeOptions: ["10", "20", "30"],
onShowSizeChange: (current, pageSize) =>
(this.pageSize = pageSize), //
},
loading: false,
imgUrl: imgUrl,
identificationImg:"",
picImg: "",
previewVisible: false,
previewImage: "",
visible: false,
vid1: "",
vid2: "",
form: this.$form.createForm(this,'from'),
};
},
mounted() {
this.getStreetList();
console.log(this.imgUrl);
if (this.$route.params.orderNum) {
console.log(this.$route.params.orderNum);
this.queryParam.orderNum = this.$route.params.orderNum;
}
},
methods: {
moment,
beforeUpload: (file, fileList) => {
//
console.log(file);
if (!file.url && !file.preview) {
console.log(file.originFileObj);
file.preview = getBase64(file.originFileObj);
}
console.log(fileList);
//
return false;
},
handleCancel() {
this.previewVisible = false;
},
async handlePreview(file) {
if (!file.url && !file.preview) {
file.preview = await getBase64(file.originFileObj);
}
this.previewImage = file.url || file.preview;
this.previewVisible = true;
console.log(file.preview);
},
handleChangeUpload({ fileList }) {
this.fileList = fileList;
//
},
customRequest(options) {
console.log(options);
},
handleChange(value) {
console.log(value);
if (value === 0) {
this.select = "全部";
this.queryParam.streetId = value;
} else {
for (let item of this.listData) {
if (item.id == value) {
this.select = item.name;
this.queryParam.streetId = value;
}
}
}
},
//
getStreetList() {
this.$api.httpApi
.getAllStreet({})
.then((res) => {
this.listData = res.data;
})
.catch((err) => {
console.error(err);
});
},
range(start, end) {
const result = [];
for (let i = start; i < end; i++) {
result.push(i);
}
return result;
},
IndustrialCameraPic() {
console.log(this.queryParam);
this.pageNum = 1;
this.request();
},
IndustrialCameraMacth() {
this.$api.httpApi
.IndustrialCameraMacth({
data: {
fileList: this.fileList,
picImg: this.picImg,
typeMacth:this.form.getFieldValue("typeMacth")
},
}) .then((res) => {
this.identificationImg = res.data;
})
.catch((err) => {
});
},
IndustrialCameraMacth3D() {
this.$api.httpApi
.IndustrialCameraMacth3D({
data: {
fileList: this.fileList,
picImg: this.picImg,
},
})
.catch((err) => {});
},
handleSubmit(newVal){
console.log();
this.$api.httpApi
.IndustrialCameraMacthCreate({
data: {
fileList: this.fileList,
typeMacth:this.form.getFieldValue("typeMacth")
},
})
.then((res) => {
console.log(res.data);
if (res.data !== null && res.data !== "") {
this.picImg = res.data;
}
})
.catch((err) => {});
},
request() {
this.$api.httpApi
.IndustrialCameraPic({
data: {
...this.queryParam,
},
})
.then((res) => {
console.log(res.data);
if (res.data !== null && res.data !== "") {
this.picImg = res.data;
}
})
.catch((err) => {});
},
reset() {
this.queryParam.startTimestamp = "";
this.queryParam.endTimestamp = "";
this.queryParam.orderNum = "";
this.queryParam.streetId = "";
this.select = "";
this.time = [];
this.pageNum = 1;
this.pageSize = 10;
},
},
};
</script>
<style lang="scss" scoped>
/* you can make up upload button and sample style by using stylesheets */
.ant-upload-select-picture-card i {
font-size: 32px;
color: #999;
}
.ant-upload-select-picture-card .ant-upload-text {
margin-top: 8px;
color: #666;
}
.history {
padding: 24px;
}
.ant-drawer-content-wrapper {
height: auto !important;
}
.ant-drawer-body {
text-align: center;
}
.ant-advanced-search-form .ant-form-item {
display: flex;
width: 100%;
}
.historyImg {
width: 80px;
height: auto;
margin: 5px;
}
</style>

@ -1,7 +1,7 @@
<template>
<div class="subsection">
<a-layout style="width: 1500px">
<a-layout style="width: 100%;height: 380px">
<a-layout style="width: 100%;height: 310px">
<a-layout-sider width="110px">
<a-tabs default-active-key="1" tab-position="left" @change="changeTabLeft" v-if="total.row > nums.row">
<a-tab-pane

@ -4,14 +4,17 @@
<div>
<div class="carousel-page">
<div class="carousel-page-content">
<div class="img-box" style="width: 15%;">
<div
class="img-box"
style="width: 25%;"
>
<ul>
<li>
<span class="img-box-title">
<span class="img-box-title">
位置:
</span>
<span class="img-box-value">
{{checkObj.streetName}}-{{checkObj.direction }}-{{checkObj.column}}-{{checkObj.row}}
{{checkObj.streetName}}-{{checkObj.direction==1?'左':'右' }}-{{checkObj.column}}-{{checkObj.row}}
</span>
</li>
<li>
@ -22,8 +25,12 @@
{{ statusMap[checkObj.status] }}
</span>
</li>
<li v-for="item in params" v-if="checkObj[item.key]!=null" :key="item.label">
<li
v-for="item in params"
v-if="checkObj[item.key]!=null"
:key="item.label"
>
<span class="img-box-title">
{{ item.label }}:
</span>
@ -33,65 +40,75 @@
</li>
</ul>
</div>
<div class="img-box" style="width: 70%;">
<viewer v-if="checkObj.checkPic" style="height: 300px">
<img :src="imgUrl+checkObj.checkPic"/>
</viewer>
<div
v-else
style="display: flex;align-items: center;justify-content: center;width:100px;height:300px;">
暂无图片
<div
class="img-box"
style="width: 70%;"
>
<div style="display: flex;">
<div>
<viewer
v-if="checkObj.checkPic"
style="height: 300px"
>
<img :src="imgUrl+checkObj.checkPic" />
</viewer>
<div
v-else
style="display: flex;align-items: center;justify-content: center;width:100px;height:300px;"
>
暂无图片
</div>
</div>
<div>
<viewer
v-if="checkObj.preoperationPic"
style="height: 300px"
>
<img :src="checkObj.preoperationPic" />
</viewer>
<div
v-else
style="display: flex;align-items: center;justify-content: center;width:100px;height:300px;"
>
暂无图片
</div>
</div>
</div>
<p>盘点图</p>
</div>
<!-- <div class="img-box">
<viewer v-if="checkObj.preoperationPic" style="height:300px;">
<img :src="imgUrl+checkObj.preoperationPic"/>
</viewer>
<div v-else style="display: flex;align-items: center;justify-content: center;width:100px;height:300px;">
暂无图片
</div>
<p>操作前照片</p>
</div>
<div class="img-box">
<viewer v-if="checkObj.overoperationPic" style="width:100%;height:300px;">
<img :src="imgUrl+checkObj.overoperationPic"/>
</viewer>
<div
v-else
style="display: flex;align-items: center;justify-content: center;width:100px;height:300px;">
暂无图片
</div>
<p>操作后照片</p>
</div> -->
</div>
</div>
<div class="bottom-btn" >
<a-button class="btn"
type="primary"
style="background:#29c12b;border-color:#29c12b;"
@click="checkSure(checkObj.row,checkObj.column,checkObj.shelveId,index)"
<div class="bottom-btn">
<a-button
class="btn"
type="primary"
style="background:#29c12b;border-color:#29c12b;"
@click="checkSure(checkObj.row,checkObj.column,checkObj.shelveId,index)"
>核对正确
</a-button>
<a-button class="btn"
type="primary"
style="background:#ff0000;border-color:#ff0000;"
@click="checkfalse(checkObj.row,checkObj.column,checkObj.shelveId,index)"
<a-button
class="btn"
type="primary"
style="background:#ff0000;border-color:#ff0000;"
@click="checkfalse(checkObj.row,checkObj.column,checkObj.shelveId,index)"
>核对错误
</a-button>
<a-button class="btn"
type="primary"
style="background:#29c12b;border-color:#29c12b;"
@click="nextOne(checkObj.id)">
下一个盘点
<a-button
class="btn"
type="primary"
style="background:#29c12b;border-color:#29c12b;"
@click="nextOne(checkObj.id)"
>
下一个盘点
</a-button>
</div>
</div>
<Model
:visible.sync="visible"
@ -103,338 +120,344 @@
</div>
</template>
<script>
import Model from "./model.vue"
import {imgUrl} from "@/api/importExcel";
import { message } from 'ant-design-vue';
import Model from "./model.vue";
import { imgUrl } from "@/api/importExcel";
import { message } from "ant-design-vue";
export default {
data() {
return {
checkObj: {},
row: 1,
column: 1,
streetName: '',
streetName: "",
visible: false,
category: '',
category: "",
count: 0,
modelData: {},
index: 0,
imgUrl: '',
params:[
imgUrl: "",
params: [
// {
// label:'',
// key: 'lotnum'
// },
{
label:'盘点任务号',
key: 'checkNum'
label: "盘点任务号",
key: "checkNum",
},
{
label:'托盘码',
key: 'wmsCode'
label: "托盘码",
key: "wmsCode",
},
{
label:'盘点结果',
key: 'trayCode'
label: "盘点结果",
key: "trayCode",
},
{
label:'烟牌',
key: 'wmsCategory'
label: "烟牌",
key: "category",
},
{
label:'数量',
key: 'wmsCount'
label: "数量",
key: "count",
},
{
label:'视觉分辨结果',
key: 'wmsCategory'
label: "视觉分辨结果",
key: "viewStatus",
},
{
label:'盘点时间',
key: 'exportTime'
label: "盘点时间",
key: "exportTime",
},
],
statusMap: {0:"未盘点",1:"盘点异常",2:"核对正确",3:"人工核对正确"}
}
statusMap: {
0: "未盘点",
1: "盘点异常",
2: "核对正确",
3: "人工核对正确",
},
};
},
beforeRouteLeave(to ,form, next) {
beforeRouteLeave(to, form, next) {
// created
this.$destroy();
if (to.name == 'checkManage') {
to.meta.isUseCache = true;
}else{
if (to.name == "checkManage") {
to.meta.isUseCache = true;
} else {
to.meta.isUseCache = false;
}
}
next();
},
created() {
this.imgUrl = imgUrl
this.imgUrl = imgUrl;
//this.getStreetList();
if (this.$route.query.row && this.$route.query.column && this.$route.query.direction && this.$route.query.side && this.$route.query.streetId) {
this.id = this.$route.query.id
this.row = this.$route.query.row
this.column = this.$route.query.column
this.direction = this.$route.query.direction
this.side = this.$route.query.side
this.streetId = this.$route.query.streetId
this.streetName = this.$route.query.name
if (
this.$route.query.row &&
this.$route.query.column &&
this.$route.query.direction &&
this.$route.query.side &&
this.$route.query.streetId
) {
this.id = this.$route.query.id;
this.row = this.$route.query.row;
this.column = this.$route.query.column;
this.direction = this.$route.query.direction;
this.side = this.$route.query.side;
this.streetId = this.$route.query.streetId;
this.streetName = this.$route.query.name;
this.getStockInfo(this.row, this.column);
}
},
mounted() {
},
destroyed () {
},
mounted() {},
destroyed() {},
components: {
Model
Model,
},
methods: {
//
getStockInfo(row, column) {
this.$api.httpApi.getStockInfo({
data: {
row: Number(row),
column: Number(column),
direction: this.direction,
side: this.side,
streetId: this.streetId,
}
}).then(res => {
if (res.data) {
this.checkObj = res.data;
this.checkObj.checkPic2 = this.checkObj.checkPic + ".jpg"
//this.shelveId = res.data.shelveId;
//this.getScanAndCheck();
}
}).catch(err => {
console.log(err)
});
this.$api.httpApi
.getStockInfo({
data: {
row: Number(row),
column: Number(column),
direction: this.direction,
side: this.side,
streetId: this.streetId,
},
})
.then((res) => {
if (res.data) {
this.checkObj = res.data;
this.checkObj.checkPic2 =
this.checkObj.checkPic + ".jpg";
//this.shelveId = res.data.shelveId;
//this.getScanAndCheck();
}
})
.catch((err) => {
console.log(err);
});
},
handleChange(value) {
this.select = value
this.id = value
this.row = 1
this.column = 1
this.getStockInfo(1, 1)
this.select = value;
this.id = value;
this.row = 1;
this.column = 1;
this.getStockInfo(1, 1);
},
checkSure(row, column, shelveId, index) {
this.$api.httpApi.stockCheckCorrect({
data: {
row: Number(row),
column: Number(column),
side: Number(this.side),
streetId: Number(this.streetId),
direction: Number(this.direction),
ok: 1
}
}).then(res => {
if (res.code == 200) {
this.$message.success('操作成功');
this.getStockInfo(this.row,this.column)
}
}).catch(err => {
});
checkSure(row, column, shelveId, index) {
this.$api.httpApi
.stockCheckCorrect({
data: {
row: Number(row),
column: Number(column),
side: Number(this.side),
streetId: Number(this.streetId),
direction: Number(this.direction),
ok: 1,
},
})
.then((res) => {
if (res.code == 200) {
this.$message.success("操作成功");
this.getStockInfo(this.row, this.column);
}
})
.catch((err) => {});
},
checkfalse(row, column, shelveId, index) {
this.$api.httpApi.stockCheckCorrect({
data: {
row: Number(row),
column: Number(column),
side: Number(this.side),
streetId: Number(this.streetId),
direction: Number(this.direction),
ok: 0
}
}).then(res => {
if (res.code == 200) {
this.$message.success('操作成功');
this.getStockInfo(this.row,this.column)
}
}).catch(err => {
});
this.$api.httpApi
.stockCheckCorrect({
data: {
row: Number(row),
column: Number(column),
side: Number(this.side),
streetId: Number(this.streetId),
direction: Number(this.direction),
ok: 0,
},
})
.then((res) => {
if (res.code == 200) {
this.$message.success("操作成功");
this.getStockInfo(this.row, this.column);
}
})
.catch((err) => {});
},
showModel(checkObj, index) {
this.visible = true
this.modelData = checkObj
this.visible = true;
this.modelData = checkObj;
this.index = index;
},
submit(visible, index) {
this.visible = visible
console.log(index)
this.visible = visible;
console.log(index);
// this.next(index);
this.checkObj.status = 1;
},
closeModel(visible, data) {
this.visible = visible
this.modelData = data
this.visible = visible;
this.modelData = data;
},
nextOne(id){
this.$api.httpApi.nextOne({
data: {
id:Number(id)
}
}).then(res => {
if (res.data && res.data != null) {
console.log(res.data)
this.checkObj = res.data;
this.id = res.data.id
this.row = res.data.row
this.column = res.data.column
this.direction = res.data.direction
this.side = res.data.side
this.streetId = res.data.streetId
this.streetName = res.data.streetName
this.checkObj.checkPic2 = this.checkObj.checkPic + ".jpg"
}else{
message.info('全部盘点已完成')
}
}).catch(err => {
console.log(err)
});
}
}
}
nextOne(id) {
this.$api.httpApi
.nextOne({
data: {
id: Number(id),
},
})
.then((res) => {
if (res.data && res.data != null) {
console.log(res.data);
this.checkObj = res.data;
this.id = res.data.id;
this.row = res.data.row;
this.column = res.data.column;
this.direction = res.data.direction;
this.side = res.data.side;
this.streetId = res.data.streetId;
this.streetName = res.data.streetName;
this.checkObj.checkPic2 =
this.checkObj.checkPic + ".jpg";
} else {
message.info("全部盘点已完成");
}
})
.catch((err) => {
console.log(err);
});
},
},
};
</script>
<style lang="scss">
.ant-carousel .slick-slide {
color: #000000;
}
.ant-carousel .slick-slide {
color: #000000;
}
.checkOperation {
.carousel-page {
width: 100%;
/*border: solid 1px blue;*/
&-title {
color: #009FE3;
font-size: 16px;
margin: 0;
padding: 15px 0 10px 25px;
}
.checkOperation {
.carousel-page {
width: 100%;
/*border: solid 1px blue;*/
&-title {
color: #009fe3;
font-size: 16px;
margin: 0;
padding: 15px 0 10px 25px;
}
&-content {
display: flex;
align-items: center;
justify-content: space-between;
padding-left: 25px;
&-content {
display: flex;
align-items: center;
justify-content: space-between;
padding-left: 25px;
.img-box {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
font-size: 17px;
height: 400px;
margin-right: 10px;
img {
height: 100%
}
.img-box {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
font-size: 17px;
height: 400px;
margin-right: 10px;
img {
height: 100%;
}
p {
height: 25px;
p {
height: 25px;
}
ul {
width: 80%;
height: 100%;
margin-bottom: 0;
padding-inline-start: 0;
li {
background-color: #ffaf11;
margin: 10px 0;
padding: 5px;
font-size: 16px;
font-weight: 600;
color: #494e52;
.img-box-title {
width: 100px;
display: inline-block;
}
ul {
width: 100% / 4;
height: 100%;
margin-bottom: 0;
padding-inline-start: 0;
li {
background-color: #ffaf11;
margin: 10px 0;
padding: 5px;
font-size: 16px;
font-weight: 600;
color: #494e52;
.img-box-title {
width: 130px;
display: inline-block;
}
.img-box-value {
display: inline-block;
width: calc(100% - 130px);
overflow: hidden;
position: relative;
top: 5px;
}
}
.img-box-value {
display: inline-block;
width: calc(100% - 100px);
overflow: hidden;
position: relative;
top: 5px;
}
}
}
}
}
&-footer {
width: calc(100% - 380px);
.info-box {
color: #000000;
display: flex;
align-items: center;
justify-content: center;
&-footer {
width: calc(100% - 380px);
.info-box {
color: #000000;
display: flex;
align-items: center;
justify-content: center;
p {
padding: 0 20px;
font-size: 18px;
}
}
p {
padding: 0 20px;
font-size: 18px;
}
}
.status {
text-align: center;
font-size: 21px;
}
.status {
text-align: center;
font-size: 21px;
}
.status-btn {
display: flex;
align-items: flex-start;
justify-content: flex-start;
.status-btn {
display: flex;
align-items: flex-start;
justify-content: flex-start;
.btn {
padding: 50px;
font-size: 20px;
display: flex;
align-items: center;
justify-content: center;
line-height: 0;
margin: 15px 45px;
}
}
.btn {
padding: 50px;
font-size: 20px;
display: flex;
align-items: center;
justify-content: center;
line-height: 0;
margin: 15px 45px;
}
}
}
}
.bottom-btn {
width: 100%;
display: flex;
align-items: right;
justify-content: center;
.bottom-btn {
width: 100%;
display: flex;
align-items: right;
justify-content: center;
p {
font-size: 18px;
padding: 0;
margin: 0;
}
p {
font-size: 18px;
padding: 0;
margin: 0;
}
.btn {
margin: 25px;
}
.btn {
margin: 25px;
}
}
.historyImg {
width: 180px;
height:auto;
}
}
.historyImg {
width: 180px;
height: auto;
}
</style>

@ -12,7 +12,7 @@
盘点清空
</a-button>
</a-popconfirm>
<a-popconfirm
<!-- <a-popconfirm
title="是否确定要全部盘点"
ok-text="是"
cancel-text="否"
@ -28,7 +28,7 @@
</a-button>
<a-button type="primary" @click="exportAllStock" class="export-all">
导出全部巷道盘点数据
</a-button>
</a-button> -->
</div>
<div class="title-info">
<span class="explain">颜色说明</span>
@ -85,7 +85,7 @@
<div class="check-content" v-for="item in data" :key="item.id">
<subsection
style="height: 35vh;"
style="height: 30vh;"
v-if="item.id == select"
:total="{ row: item.leftRow, column: item.leftColumn }"
:side="leftSide"

@ -96,7 +96,7 @@
{{ text }}
</span>
<span slot="goodsLocation" slot-scope="text">
{{ text.direction }}-{{ text.row}}-{{ text.column}}
{{ text.direction==1?'左':'右' }}-{{ text.row}}-{{ text.column}}
</span>
<span slot="trayCode" slot-scope="text">
{{ text.trayCode}}
@ -162,7 +162,7 @@ export default {
dataIndex: "streetName",
},
{
title: "货位({1:左,2:右}-{行}-{列})",
title: "货位",
scopedSlots: {customRender: 'goodsLocation'},
width:200,
},

@ -62,6 +62,26 @@
/>
</a-form-item>
</div>
<div class="across-layout">
<a-form-item label="工业相机" :label-col="formItemAcrossLayout.labelCol">
<a-input
v-decorator="['industrialCamera']"
/>
</a-form-item>
</div>
<div class="across-layout">
<a-form-item label="左侧3D" :label-col="formItemAcrossLayout.labelCol">
<a-input
v-decorator="['left3D']"
/>
</a-form-item>
<a-form-item label="右侧3D" :label-col="formItemAcrossLayout.labelCol">
<a-input
v-decorator="['right3D']"
/>
</a-form-item>
</div>
<a-divider></a-divider>
<div class="leftType">
@ -253,6 +273,9 @@ export default {
name: newVal.name,
plcId: newVal.plcId,
plcIp: newVal.plcIp,
industrialCamera:newVal.industrialCamera,
left3D:newVal.left3D,
right3D:newVal.right3D,
plcPort: newVal.plcPort,
lightSourceIp: newVal.lightSourceIp,
lightSourcePort: newVal.lightSourcePort,

Loading…
Cancel
Save