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

Binary file not shown.

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

@ -58,6 +58,17 @@ const routes = [{
}, },
component: () => import('@/views/historyMonitoring/index') component: () => import('@/views/historyMonitoring/index')
}, },
{
path: 'IndustrialCamera',
name: 'IndustrialCamera',
meta: {
icon: 'book',
name: '工业相机'
},
component: () => import('@/views/IndustrialCamera/index')
},
{ {
path: 'alarmLog', path: 'alarmLog',
name: '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> <template>
<div class="subsection"> <div class="subsection">
<a-layout style="width: 1500px"> <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-layout-sider width="110px">
<a-tabs default-active-key="1" tab-position="left" @change="changeTabLeft" v-if="total.row > nums.row"> <a-tabs default-active-key="1" tab-position="left" @change="changeTabLeft" v-if="total.row > nums.row">
<a-tab-pane <a-tab-pane

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

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

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

@ -62,6 +62,26 @@
/> />
</a-form-item> </a-form-item>
</div> </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> <a-divider></a-divider>
<div class="leftType"> <div class="leftType">
@ -253,6 +273,9 @@ export default {
name: newVal.name, name: newVal.name,
plcId: newVal.plcId, plcId: newVal.plcId,
plcIp: newVal.plcIp, plcIp: newVal.plcIp,
industrialCamera:newVal.industrialCamera,
left3D:newVal.left3D,
right3D:newVal.right3D,
plcPort: newVal.plcPort, plcPort: newVal.plcPort,
lightSourceIp: newVal.lightSourceIp, lightSourceIp: newVal.lightSourceIp,
lightSourcePort: newVal.lightSourcePort, lightSourcePort: newVal.lightSourcePort,

Loading…
Cancel
Save