fix: 惠氏任务生成
This commit is contained in:
@@ -28,6 +28,28 @@
|
|||||||
<groupId>org.openscada.utgard</groupId>
|
<groupId>org.openscada.utgard</groupId>
|
||||||
<artifactId>org.openscada.opc.lib</artifactId>
|
<artifactId>org.openscada.opc.lib</artifactId>
|
||||||
<version>1.5.0</version>
|
<version>1.5.0</version>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<groupId>org.bouncycastle</groupId>
|
||||||
|
<artifactId>bcprov-jdk15on</artifactId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>net.sf.json-lib</groupId>
|
||||||
|
<artifactId>json-lib</artifactId>
|
||||||
|
<version>2.4</version>
|
||||||
|
<classifier>jdk15</classifier>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.hynnet</groupId>
|
||||||
|
<artifactId>jxl</artifactId>
|
||||||
|
<version>2.6.12.1</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.bouncycastle</groupId>
|
||||||
|
<artifactId>bcprov-jdk15on</artifactId>
|
||||||
|
<version>1.50</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.squareup.okhttp3</groupId>
|
<groupId>com.squareup.okhttp3</groupId>
|
||||||
|
|||||||
@@ -173,6 +173,14 @@ export function cleans2(data) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function cleans3(data) {
|
||||||
|
return request({
|
||||||
|
url: 'api/device/cleans3',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export function enterSite1(data) {
|
export function enterSite1(data) {
|
||||||
return request({
|
return request({
|
||||||
url: 'api/device/enterSite1',
|
url: 'api/device/enterSite1',
|
||||||
@@ -189,14 +197,22 @@ export function enterSite2(data) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function cleans3(data) {
|
export function enterSite3(data) {
|
||||||
return request({
|
return request({
|
||||||
url: 'api/device/cleans3',
|
url: 'api/device/enterSite3',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// export function cleans3(data) {
|
||||||
|
// return request({
|
||||||
|
// url: 'api/device/cleans3',
|
||||||
|
// method: 'post',
|
||||||
|
// data
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
|
||||||
export function selectAGVList() {
|
export function selectAGVList() {
|
||||||
return request({
|
return request({
|
||||||
url: 'api/device/selectAGVList',
|
url: 'api/device/selectAGVList',
|
||||||
@@ -212,6 +228,14 @@ export function agvTaskType(data) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getEndPoint(data) {
|
||||||
|
return request({
|
||||||
|
url: 'api/device/endPoint',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export default { add, edit, del, selectDeviceList, selectDeviceListByRegion, callAgv, responseAgv, selectDeviceDevicerInfo, autoCreateTask,
|
export default { add, edit, del, selectDeviceList, selectDeviceListByRegion, callAgv, responseAgv, selectDeviceDevicerInfo, autoCreateTask,
|
||||||
changeDeviceStatus, cleanTask, queryStorageExtra, selectConDeviceList, saveBarcode, selectDeviceListOne, selectDeviceListTwo, selectDeviceListThree,
|
changeDeviceStatus, cleanTask, queryStorageExtra, selectConDeviceList, saveBarcode, selectDeviceListOne, selectDeviceListTwo, selectDeviceListThree,
|
||||||
addMaterial, cleanMaterial, changeFenceStatus,reload, cleans1, cleans2, enterSite1, enterSite2, cleans3, selectAGVList, agvTaskType}
|
addMaterial, cleanMaterial, changeFenceStatus, reload, cleans1, cleans2, enterSite1, enterSite2, enterSite3, cleans3, selectAGVList, agvTaskType, getEndPoint }
|
||||||
|
|||||||
@@ -1,10 +1,23 @@
|
|||||||
<template>
|
<template>
|
||||||
<div style="border: 1px solid #938d8d;margin-left: 10px;margin-right: 10px;">
|
<div style="border: 1px solid #938d8d; margin-left: 10px; margin-right: 10px">
|
||||||
<el-row
|
<el-row
|
||||||
style="border: 1px solid chartreuse;margin-left: 10px;margin-right: 10px;margin-bottom: 10px;margin-top: 20px;min-height: 600px"
|
style="
|
||||||
|
border: 1px solid chartreuse;
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-right: 10px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
margin-top: 20px;
|
||||||
|
min-height: 600px;
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<form id="myForm" name="testForm" style="margin-top: 100px;">
|
<form id="myForm" name="testForm" style="margin-top: 100px">
|
||||||
<el-row :gutter="5" type="flex" justify="center" align="middle" style="min-height: 40px">
|
<el-row
|
||||||
|
:gutter="5"
|
||||||
|
type="flex"
|
||||||
|
justify="center"
|
||||||
|
align="middle"
|
||||||
|
style="min-height: 40px"
|
||||||
|
>
|
||||||
<el-col :span="10">
|
<el-col :span="10">
|
||||||
<el-button type="primary" @click="enterSite1">进入</el-button>
|
<el-button type="primary" @click="enterSite1">进入</el-button>
|
||||||
<el-button type="primary" @click="outSite1">离开</el-button>
|
<el-button type="primary" @click="outSite1">离开</el-button>
|
||||||
@@ -13,45 +26,89 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="5" type="flex" justify="center" align="middle">
|
<el-row :gutter="5" type="flex" justify="center" align="middle">
|
||||||
<el-col :span="20">
|
<el-col :span="20">
|
||||||
<el-checkbox @change="checkeds" v-model="resultAll1" class="fla">全选</el-checkbox>
|
<el-checkbox
|
||||||
<div v-for="(item,i) in deviceList">
|
v-model="resultAll1"
|
||||||
|
class="fla"
|
||||||
|
@change="checkeds"
|
||||||
|
>全选</el-checkbox>
|
||||||
|
<div v-for="(item) in deviceList" :key="item.id">
|
||||||
<div
|
<div
|
||||||
v-if="item.islock"
|
v-if="item.islock"
|
||||||
style="float: left;margin-right: 5px;width: 120px;height: 120px;background-color: #FEC171;border-radius: 10%;"
|
style="
|
||||||
|
float: left;
|
||||||
|
margin-right: 5px;
|
||||||
|
width: 120px;
|
||||||
|
height: 120px;
|
||||||
|
background-color: #fec171;
|
||||||
|
border-radius: 10%;
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<el-checkbox v-model="item.checked" style="margin-left: 20px;"/>
|
<el-checkbox v-model="item.checked" style="margin-left: 20px" />
|
||||||
<el-button size="mini" round style="margin-left: 18px; margin-block-end: 10px">
|
<el-button
|
||||||
{{ '设备:' + item.device_code }}
|
size="mini"
|
||||||
|
round
|
||||||
|
style="margin-left: 18px; margin-block-end: 10px"
|
||||||
|
>
|
||||||
|
{{ "设备:" + item.device_code }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-else-if="item.hasGood !== 0"
|
v-else-if="item.hasGood !== 0"
|
||||||
style="float: left;margin-right: 5px;width: 120px;height: 120px;background-color: rgb(0, 238, 153);border-radius: 10%;"
|
style="
|
||||||
|
float: left;
|
||||||
|
margin-right: 5px;
|
||||||
|
width: 120px;
|
||||||
|
height: 120px;
|
||||||
|
background-color: rgb(0, 238, 153);
|
||||||
|
border-radius: 10%;
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<!-- <div style="font-size: 15px; margin-left: 30px">{{ item.device_code }}</div>-->
|
<!-- <div style="font-size: 15px; margin-left: 30px">{{ item.device_code }}</div>-->
|
||||||
<el-checkbox v-model="item.checked" style="margin-left: 20px;"/>
|
<el-checkbox v-model="item.checked" style="margin-left: 20px" />
|
||||||
<el-button size="mini" round style="margin-left: 18px;">
|
<el-button size="mini" round style="margin-left: 18px">
|
||||||
{{ '设备:' + item.device_code }}
|
{{ "设备:" + item.device_code }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<div style="font-size: 8px; margin-left: 10px; margin-block-end: 15px; margin-top: 18px">
|
<div
|
||||||
{{ '物料类型:' + item.material_type }}
|
style="
|
||||||
|
font-size: 8px;
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-block-end: 15px;
|
||||||
|
margin-top: 18px;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
{{ "物料类型:" + item.material_type }}
|
||||||
|
</div>
|
||||||
|
<div style="font-size: 8px; margin-left: 10px">
|
||||||
|
{{ "物料数量:" + item.quantity }}
|
||||||
</div>
|
</div>
|
||||||
<div style="font-size: 8px; margin-left: 10px;">{{ '物料数量:' + item.quantity }}</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-else-if="item.hasGood === 0"
|
v-else-if="item.hasGood === 0"
|
||||||
style="float: left;margin-right: 5px; width: 120px;height: 120px;background-color: beige;border-radius: 10%;"
|
style="
|
||||||
|
float: left;
|
||||||
|
margin-right: 5px;
|
||||||
|
width: 120px;
|
||||||
|
height: 120px;
|
||||||
|
background-color: beige;
|
||||||
|
border-radius: 10%;
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<el-checkbox v-model="item.checked" style="margin-left: 20px;"/>
|
<el-checkbox v-model="item.checked" style="margin-left: 20px" />
|
||||||
<el-button size="mini" round style="margin-left: 18px;">
|
<el-button size="mini" round style="margin-left: 18px">
|
||||||
{{ '设备:' + item.device_code }}
|
{{ "设备:" + item.device_code }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row :gutter="5" type="flex" justify="center" align="middle" style="min-height: 40px; margin-top: 50px">
|
<el-row
|
||||||
|
:gutter="5"
|
||||||
|
type="flex"
|
||||||
|
justify="center"
|
||||||
|
align="middle"
|
||||||
|
style="min-height: 40px; margin-top: 50px"
|
||||||
|
>
|
||||||
<el-col :span="10">
|
<el-col :span="10">
|
||||||
<el-button type="primary" @click="enterSite2">进入</el-button>
|
<el-button type="primary" @click="enterSite2">进入</el-button>
|
||||||
<el-button type="primary" @click="outSite2">离开</el-button>
|
<el-button type="primary" @click="outSite2">离开</el-button>
|
||||||
@@ -60,37 +117,165 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="5" type="flex" align="bottom" justify="center">
|
<el-row :gutter="5" type="flex" align="bottom" justify="center">
|
||||||
<el-col :span="20">
|
<el-col :span="20">
|
||||||
<el-checkbox @change="checkeds2" v-model="resultAll12" class="fla">全选</el-checkbox>
|
<el-checkbox
|
||||||
<div v-for="(item,i) in deviceList2">
|
v-model="resultAll12"
|
||||||
|
class="fla"
|
||||||
|
@change="checkeds2"
|
||||||
|
>全选</el-checkbox>
|
||||||
|
<div v-for="(item) in deviceList2" :key="item.id">
|
||||||
<div
|
<div
|
||||||
v-if="item.islock"
|
v-if="item.islock"
|
||||||
style="float: left;margin-right: 5px;width: 120px;height: 120px;background-color: #FEC171;border-radius: 10%;"
|
style="
|
||||||
|
float: left;
|
||||||
|
margin-right: 5px;
|
||||||
|
width: 120px;
|
||||||
|
height: 120px;
|
||||||
|
background-color: #fec171;
|
||||||
|
border-radius: 10%;
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<el-checkbox v-model="item.checked" style="margin-left: 20px;"/>
|
<el-checkbox v-model="item.checked" style="margin-left: 20px" />
|
||||||
<el-button size="mini" round style="margin-left: 18px; margin-block-end: 10px">
|
<el-button
|
||||||
{{ '设备:' + item.device_code }}
|
size="mini"
|
||||||
|
round
|
||||||
|
style="margin-left: 18px; margin-block-end: 10px"
|
||||||
|
>
|
||||||
|
{{ "设备:" + item.device_code }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-else-if="item.hasGood != 0"
|
v-else-if="item.hasGood != 0"
|
||||||
style="float: left;margin-right: 5px;width: 120px;height: 120px;background-color: rgb(0, 238, 153);border-radius: 10%;"
|
style="
|
||||||
|
float: left;
|
||||||
|
margin-right: 5px;
|
||||||
|
width: 120px;
|
||||||
|
height: 120px;
|
||||||
|
background-color: rgb(0, 238, 153);
|
||||||
|
border-radius: 10%;
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<el-checkbox v-model="item.checked" style="margin-left: 20px;"/>
|
<el-checkbox v-model="item.checked" style="margin-left: 20px" />
|
||||||
<el-button size="mini" round style="margin-left: 18px;">
|
<el-button size="mini" round style="margin-left: 18px">
|
||||||
{{ '设备:' + item.device_code }}
|
{{ "设备:" + item.device_code }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<div style="font-size: 8px; margin-left: 10px; margin-block-end: 15px; margin-top: 18px">
|
<div
|
||||||
{{ '物料类型:' + item.material_type }}
|
style="
|
||||||
|
font-size: 8px;
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-block-end: 15px;
|
||||||
|
margin-top: 18px;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
{{ "物料类型:" + item.material_type }}
|
||||||
|
</div>
|
||||||
|
<div style="font-size: 8px; margin-left: 10px">
|
||||||
|
{{ "物料数量:" + item.quantity }}
|
||||||
</div>
|
</div>
|
||||||
<div style="font-size: 8px; margin-left: 10px;">{{ '物料数量:' + item.quantity }}</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-else-if="item.hasGood === 0"
|
v-else-if="item.hasGood === 0"
|
||||||
style="float: left;margin-right: 5px;width: 120px;height: 120px;background-color: beige;border-radius: 10%;"
|
style="
|
||||||
|
float: left;
|
||||||
|
margin-right: 5px;
|
||||||
|
width: 120px;
|
||||||
|
height: 120px;
|
||||||
|
background-color: beige;
|
||||||
|
border-radius: 10%;
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<el-checkbox v-model="item.checked" style="margin-left: 20px;"/>
|
<el-checkbox v-model="item.checked" style="margin-left: 20px" />
|
||||||
<el-button size="mini" round style="margin-left: 18px;">
|
<el-button size="mini" round style="margin-left: 18px">
|
||||||
{{ '设备:' + item.device_code }}
|
{{ "设备:" + item.device_code }}
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row
|
||||||
|
:gutter="5"
|
||||||
|
type="flex"
|
||||||
|
justify="center"
|
||||||
|
align="middle"
|
||||||
|
style="min-height: 40px; margin-top: 50px"
|
||||||
|
>
|
||||||
|
<el-col :span="10">
|
||||||
|
<el-button type="primary" @click="enterSite3">进入</el-button>
|
||||||
|
<el-button type="primary" @click="outSite3">离开</el-button>
|
||||||
|
<el-button type="primary" @click="cleans3">清空货位</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row :gutter="5" type="flex" align="bottom" justify="center">
|
||||||
|
<el-col :span="20">
|
||||||
|
<el-checkbox
|
||||||
|
v-model="resultAll13"
|
||||||
|
class="fla"
|
||||||
|
@change="checkeds3"
|
||||||
|
>全选</el-checkbox>
|
||||||
|
<div v-for="(item) in deviceList3" :key="item.id">
|
||||||
|
<div
|
||||||
|
v-if="item.islock"
|
||||||
|
style="
|
||||||
|
float: left;
|
||||||
|
margin-right: 5px;
|
||||||
|
width: 120px;
|
||||||
|
height: 120px;
|
||||||
|
background-color: #fec171;
|
||||||
|
border-radius: 10%;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<el-checkbox v-model="item.checked" style="margin-left: 20px" />
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
round
|
||||||
|
style="margin-left: 18px; margin-block-end: 10px"
|
||||||
|
>
|
||||||
|
{{ "设备:" + item.device_code }}
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-else-if="item.hasGood != 0"
|
||||||
|
style="
|
||||||
|
float: left;
|
||||||
|
margin-right: 5px;
|
||||||
|
width: 120px;
|
||||||
|
height: 120px;
|
||||||
|
background-color: rgb(0, 238, 153);
|
||||||
|
border-radius: 10%;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<el-checkbox v-model="item.checked" style="margin-left: 20px" />
|
||||||
|
<el-button size="mini" round style="margin-left: 18px">
|
||||||
|
{{ "设备:" + item.device_code }}
|
||||||
|
</el-button>
|
||||||
|
<div
|
||||||
|
style="
|
||||||
|
font-size: 8px;
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-block-end: 15px;
|
||||||
|
margin-top: 18px;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
{{ "物料类型:" + item.material_type }}
|
||||||
|
</div>
|
||||||
|
<div style="font-size: 8px; margin-left: 10px">
|
||||||
|
{{ "物料数量:" + item.quantity }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-else-if="item.hasGood === 0"
|
||||||
|
style="
|
||||||
|
float: left;
|
||||||
|
margin-right: 5px;
|
||||||
|
width: 120px;
|
||||||
|
height: 120px;
|
||||||
|
background-color: beige;
|
||||||
|
border-radius: 10%;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<el-checkbox v-model="item.checked" style="margin-left: 20px" />
|
||||||
|
<el-button size="mini" round style="margin-left: 18px">
|
||||||
|
{{ "设备:" + item.device_code }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -99,13 +284,12 @@
|
|||||||
</form>
|
</form>
|
||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import deviceCrud from '@/api/acs/device/device'
|
import deviceCrud from '@/api/acs/device/device'
|
||||||
import { get } from '@/api/system/dictDetail'
|
import { get } from '@/api/system/dictDetail'
|
||||||
import crudTask, { ordinaryTaskCreate } from '@/api/acs/task/task'
|
// import crudTask, { ordinaryTaskCreate } from '@/api/acs/task/task'
|
||||||
import CRUD, { crud } from '@crud/crud'
|
import CRUD, { crud } from '@crud/crud'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@@ -114,6 +298,7 @@ export default {
|
|||||||
return {
|
return {
|
||||||
resultAll1: false,
|
resultAll1: false,
|
||||||
resultAll12: false,
|
resultAll12: false,
|
||||||
|
resultAll13: false,
|
||||||
requestDialogVisible: false,
|
requestDialogVisible: false,
|
||||||
requestDialogVisible2: false,
|
requestDialogVisible2: false,
|
||||||
responseDialogVisible: false,
|
responseDialogVisible: false,
|
||||||
@@ -140,6 +325,14 @@ export default {
|
|||||||
quantity: 0,
|
quantity: 0,
|
||||||
remark: ''
|
remark: ''
|
||||||
},
|
},
|
||||||
|
form3: {
|
||||||
|
device_id: '',
|
||||||
|
device_code: '',
|
||||||
|
device_name: '',
|
||||||
|
material_type: '',
|
||||||
|
quantity: 0,
|
||||||
|
remark: ''
|
||||||
|
},
|
||||||
testdata: {
|
testdata: {
|
||||||
check: null,
|
check: null,
|
||||||
device_code: null
|
device_code: null
|
||||||
@@ -147,8 +340,10 @@ export default {
|
|||||||
material_types: [],
|
material_types: [],
|
||||||
deviceList: [],
|
deviceList: [],
|
||||||
deviceList2: [],
|
deviceList2: [],
|
||||||
|
deviceList3: [],
|
||||||
deviceListOne: [],
|
deviceListOne: [],
|
||||||
deviceListTwo: [],
|
deviceListTwo: [],
|
||||||
|
deviceListThree: [],
|
||||||
currentDate: new Date(),
|
currentDate: new Date(),
|
||||||
getTime: '',
|
getTime: '',
|
||||||
getDate: ''
|
getDate: ''
|
||||||
@@ -158,24 +353,29 @@ export default {
|
|||||||
this.webSocket()
|
this.webSocket()
|
||||||
|
|
||||||
// 获取物料类型字典
|
// 获取物料类型字典
|
||||||
get('material_type').then(data => {
|
get('material_type').then((data) => {
|
||||||
this.material_types = data.content
|
this.material_types = data.content
|
||||||
})
|
})
|
||||||
// 获取区域类型
|
// 获取区域类型
|
||||||
get('region_type').then(data => {
|
get('region_type').then((data) => {
|
||||||
this.regions = data.content
|
this.regions = data.content
|
||||||
console.log(this.regions)
|
console.log(this.regions)
|
||||||
})
|
})
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
deviceCrud.selectDeviceListOne().then(data => {
|
deviceCrud.selectDeviceListOne().then((data) => {
|
||||||
this.deviceListOne = data
|
this.deviceListOne = data
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
deviceCrud.selectDeviceListTwo().then(data => {
|
deviceCrud.selectDeviceListTwo().then((data) => {
|
||||||
this.deviceListTwo = data
|
this.deviceListTwo = data
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
/* this.$nextTick(() => {
|
||||||
|
deviceCrud.selectDeviceListThree().then(data => {
|
||||||
|
this.deviceListThree = data
|
||||||
|
})
|
||||||
|
}) */
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
cleans1() {
|
cleans1() {
|
||||||
@@ -187,9 +387,9 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
const data = {
|
const data = {
|
||||||
'data': arr1
|
data: arr1
|
||||||
}
|
}
|
||||||
deviceCrud.cleans1(data).then(res => {
|
deviceCrud.cleans1(data).then(() => {
|
||||||
this.$notify({
|
this.$notify({
|
||||||
title: '操作成功',
|
title: '操作成功',
|
||||||
type: 'success',
|
type: 'success',
|
||||||
@@ -198,7 +398,7 @@ export default {
|
|||||||
for (let i = 0; i < arr1.length; i++) {
|
for (let i = 0; i < arr1.length; i++) {
|
||||||
arr1[i].checked = false
|
arr1[i].checked = false
|
||||||
}
|
}
|
||||||
this.resultAll1 = false
|
this.resultAll1 = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
cleans2() {
|
cleans2() {
|
||||||
@@ -210,10 +410,10 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
const data = {
|
const data = {
|
||||||
'data': arr
|
data: arr
|
||||||
}
|
}
|
||||||
|
|
||||||
deviceCrud.cleans2(data).then(res => {
|
deviceCrud.cleans2(data).then(() => {
|
||||||
this.$notify({
|
this.$notify({
|
||||||
title: '操作成功',
|
title: '操作成功',
|
||||||
type: 'success',
|
type: 'success',
|
||||||
@@ -225,24 +425,54 @@ export default {
|
|||||||
this.resultAll12 = false
|
this.resultAll12 = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
cleans3() {
|
||||||
|
var obj = this.deviceList3
|
||||||
|
var arr = []
|
||||||
|
for (let i = 0; i < obj.length; i++) {
|
||||||
|
if (obj[i].checked) {
|
||||||
|
arr.push(obj[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const data = {
|
||||||
|
data: arr
|
||||||
|
}
|
||||||
|
|
||||||
|
deviceCrud.cleans3(data).then(() => {
|
||||||
|
this.$notify({
|
||||||
|
title: '操作成功',
|
||||||
|
type: 'success',
|
||||||
|
duration: 3000
|
||||||
|
})
|
||||||
|
for (let i = 0; i < arr.length; i++) {
|
||||||
|
arr[i].checked = false
|
||||||
|
}
|
||||||
|
this.resultAll13 = false
|
||||||
|
})
|
||||||
|
},
|
||||||
checkeds(value) {
|
checkeds(value) {
|
||||||
this.deviceList.forEach((item) => {
|
this.deviceList.forEach((item) => {
|
||||||
item.checked = value
|
item.checked = value
|
||||||
})
|
})
|
||||||
this.$forceUpdate();
|
this.$forceUpdate()
|
||||||
},
|
},
|
||||||
checkeds2(value) {
|
checkeds2(value) {
|
||||||
this.deviceList2.forEach((item) => {
|
this.deviceList2.forEach((item) => {
|
||||||
item.checked = value
|
item.checked = value
|
||||||
})
|
})
|
||||||
this.$forceUpdate();
|
this.$forceUpdate()
|
||||||
|
},
|
||||||
|
checkeds3(value) {
|
||||||
|
this.deviceList3.forEach((item) => {
|
||||||
|
item.checked = value
|
||||||
|
})
|
||||||
|
this.$forceUpdate()
|
||||||
},
|
},
|
||||||
enterSite1() {
|
enterSite1() {
|
||||||
const data = {
|
const data = {
|
||||||
'data': this.deviceList,
|
data: this.deviceList,
|
||||||
'islock': 'true'
|
islock: 'true'
|
||||||
}
|
}
|
||||||
deviceCrud.enterSite1(data).then(res => {
|
deviceCrud.enterSite1(data).then(() => {
|
||||||
this.$notify({
|
this.$notify({
|
||||||
title: '操作成功',
|
title: '操作成功',
|
||||||
type: 'success',
|
type: 'success',
|
||||||
@@ -252,10 +482,10 @@ export default {
|
|||||||
},
|
},
|
||||||
outSite1() {
|
outSite1() {
|
||||||
const data = {
|
const data = {
|
||||||
'data': this.deviceList,
|
data: this.deviceList,
|
||||||
'islock': 'false'
|
islock: 'false'
|
||||||
}
|
}
|
||||||
deviceCrud.enterSite1(data).then(res => {
|
deviceCrud.enterSite1(data).then(() => {
|
||||||
this.$notify({
|
this.$notify({
|
||||||
title: '操作成功',
|
title: '操作成功',
|
||||||
type: 'success',
|
type: 'success',
|
||||||
@@ -265,10 +495,10 @@ export default {
|
|||||||
},
|
},
|
||||||
enterSite2() {
|
enterSite2() {
|
||||||
const data = {
|
const data = {
|
||||||
'data': this.deviceList2,
|
data: this.deviceList2,
|
||||||
'islock': 'true'
|
islock: 'true'
|
||||||
}
|
}
|
||||||
deviceCrud.enterSite2(data).then(res => {
|
deviceCrud.enterSite2(data).then(() => {
|
||||||
this.$notify({
|
this.$notify({
|
||||||
title: '操作成功',
|
title: '操作成功',
|
||||||
type: 'success',
|
type: 'success',
|
||||||
@@ -278,10 +508,36 @@ export default {
|
|||||||
},
|
},
|
||||||
outSite2() {
|
outSite2() {
|
||||||
const data = {
|
const data = {
|
||||||
'data': this.deviceList2,
|
data: this.deviceList2,
|
||||||
'islock': 'false'
|
islock: 'false'
|
||||||
}
|
}
|
||||||
deviceCrud.enterSite2(data).then(res => {
|
deviceCrud.enterSite2(data).then(() => {
|
||||||
|
this.$notify({
|
||||||
|
title: '操作成功',
|
||||||
|
type: 'success',
|
||||||
|
duration: 3000
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
enterSite3() {
|
||||||
|
const data = {
|
||||||
|
data: this.deviceList3,
|
||||||
|
islock: 'true'
|
||||||
|
}
|
||||||
|
deviceCrud.enterSite3(data).then(() => {
|
||||||
|
this.$notify({
|
||||||
|
title: '操作成功',
|
||||||
|
type: 'success',
|
||||||
|
duration: 3000
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
outSite3() {
|
||||||
|
const data = {
|
||||||
|
data: this.deviceList3,
|
||||||
|
islock: 'false'
|
||||||
|
}
|
||||||
|
deviceCrud.enterSite3(data).then(() => {
|
||||||
this.$notify({
|
this.$notify({
|
||||||
title: '操作成功',
|
title: '操作成功',
|
||||||
type: 'success',
|
type: 'success',
|
||||||
@@ -290,30 +546,36 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
saveRequest() {
|
saveRequest() {
|
||||||
deviceCrud.addMaterial(this.form).then(res => {
|
deviceCrud
|
||||||
this.$notify({
|
.addMaterial(this.form)
|
||||||
title: '操作成功',
|
.then(() => {
|
||||||
type: 'success',
|
this.$notify({
|
||||||
duration: 3000
|
title: '操作成功',
|
||||||
|
type: 'success',
|
||||||
|
duration: 3000
|
||||||
|
})
|
||||||
|
this.requestDialogVisible = false
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
this.requestDialogVisible = false
|
||||||
|
console.log(err.response.data.message)
|
||||||
})
|
})
|
||||||
this.requestDialogVisible = false
|
|
||||||
}).catch(err => {
|
|
||||||
this.requestDialogVisible = false
|
|
||||||
console.log(err.response.data.message)
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
saveRequest2() {
|
saveRequest2() {
|
||||||
deviceCrud.addMaterial(this.form2).then(res => {
|
deviceCrud
|
||||||
this.$notify({
|
.addMaterial(this.form2)
|
||||||
title: '操作成功',
|
.then(() => {
|
||||||
type: 'success',
|
this.$notify({
|
||||||
duration: 3000
|
title: '操作成功',
|
||||||
|
type: 'success',
|
||||||
|
duration: 3000
|
||||||
|
})
|
||||||
|
this.requestDialogVisible2 = false
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
this.requestDialogVisible2 = false
|
||||||
|
console.log(err.response.data.message)
|
||||||
})
|
})
|
||||||
this.requestDialogVisible2 = false
|
|
||||||
}).catch(err => {
|
|
||||||
this.requestDialogVisible2 = false
|
|
||||||
console.log(err.response.data.message)
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||||
[CRUD.HOOK.beforeRefresh]() {
|
[CRUD.HOOK.beforeRefresh]() {
|
||||||
@@ -321,7 +583,7 @@ export default {
|
|||||||
},
|
},
|
||||||
webSocket() {
|
webSocket() {
|
||||||
const that = this
|
const that = this
|
||||||
if (typeof (WebSocket) === 'undefined') {
|
if (typeof WebSocket === 'undefined') {
|
||||||
this.$notify({
|
this.$notify({
|
||||||
title: '提示',
|
title: '提示',
|
||||||
message: '当前浏览器无法接收实时报警信息,请使用谷歌浏览器!',
|
message: '当前浏览器无法接收实时报警信息,请使用谷歌浏览器!',
|
||||||
@@ -333,7 +595,10 @@ export default {
|
|||||||
// 获取token保存到vuex中的用户信息,此处仅适用于本项目,注意删除或修改
|
// 获取token保存到vuex中的用户信息,此处仅适用于本项目,注意删除或修改
|
||||||
// 实例化socket,这里我把用户名传给了后台,使后台能判断要把消息发给哪个用户,其实也可以后台直接获取用户IP来判断并推送
|
// 实例化socket,这里我把用户名传给了后台,使后台能判断要把消息发给哪个用户,其实也可以后台直接获取用户IP来判断并推送
|
||||||
// const wsUri = process.env.VUE_APP_WS_API + '/webSocket/' + id
|
// const wsUri = process.env.VUE_APP_WS_API + '/webSocket/' + id
|
||||||
const wsUri = window.g.prod.VUE_APP_BASE_API.replace('http', 'ws') + '/webSocket/' + id
|
const wsUri =
|
||||||
|
window.g.prod.VUE_APP_BASE_API.replace('http', 'ws') +
|
||||||
|
'/webSocket/' +
|
||||||
|
id
|
||||||
|
|
||||||
this.socket = new WebSocket(wsUri)
|
this.socket = new WebSocket(wsUri)
|
||||||
// 监听socket打开
|
// 监听socket打开
|
||||||
@@ -347,7 +612,7 @@ export default {
|
|||||||
const item = data.msg.device[i]
|
const item = data.msg.device[i]
|
||||||
|
|
||||||
// 刷新页面第一次加载数据
|
// 刷新页面第一次加载数据
|
||||||
if (that.deviceList.length != data.msg.device.length) {
|
if (that.deviceList.length !== data.msg.device.length) {
|
||||||
const obj = {
|
const obj = {
|
||||||
device_code: item.device_code,
|
device_code: item.device_code,
|
||||||
hasGood: item.hasGood,
|
hasGood: item.hasGood,
|
||||||
@@ -360,21 +625,21 @@ export default {
|
|||||||
that.deviceList.push(obj)
|
that.deviceList.push(obj)
|
||||||
} else {
|
} else {
|
||||||
for (let j = 0; j < that.deviceList.length; j++) {
|
for (let j = 0; j < that.deviceList.length; j++) {
|
||||||
if (that.deviceList[j].device_code == item.device_code) {
|
if (that.deviceList[j].device_code === item.device_code) {
|
||||||
if (that.deviceList[j].hasGood != item.hasGood) {
|
if (that.deviceList[j].hasGood !== item.hasGood) {
|
||||||
that.deviceList[j].device_code = item.device_code
|
that.deviceList[j].device_code = item.device_code
|
||||||
that.deviceList[j].hasGood = item.hasGood
|
that.deviceList[j].hasGood = item.hasGood
|
||||||
}
|
}
|
||||||
if (that.deviceList[j].material_type != item.material_type) {
|
if (that.deviceList[j].material_type !== item.material_type) {
|
||||||
that.deviceList[j].material_type = item.material_type
|
that.deviceList[j].material_type = item.material_type
|
||||||
}
|
}
|
||||||
if (that.deviceList[j].quantity != item.quantity) {
|
if (that.deviceList[j].quantity !== item.quantity) {
|
||||||
that.deviceList[j].quantity = item.quantity
|
that.deviceList[j].quantity = item.quantity
|
||||||
}
|
}
|
||||||
if (that.deviceList[j].remark != item.remark) {
|
if (that.deviceList[j].remark !== item.remark) {
|
||||||
that.deviceList[j].remark = item.remark
|
that.deviceList[j].remark = item.remark
|
||||||
}
|
}
|
||||||
if (that.deviceList[j].islock != item.islock) {
|
if (that.deviceList[j].islock !== item.islock) {
|
||||||
that.deviceList[j].islock = item.islock
|
that.deviceList[j].islock = item.islock
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -385,7 +650,7 @@ export default {
|
|||||||
const item = data.msg.device2[i]
|
const item = data.msg.device2[i]
|
||||||
|
|
||||||
// 刷新页面第一次加载数据
|
// 刷新页面第一次加载数据
|
||||||
if (that.deviceList2.length != data.msg.device2.length) {
|
if (that.deviceList2.length !== data.msg.device2.length) {
|
||||||
const obj = {
|
const obj = {
|
||||||
device_code: item.device_code,
|
device_code: item.device_code,
|
||||||
hasGood: item.hasGood,
|
hasGood: item.hasGood,
|
||||||
@@ -398,27 +663,65 @@ export default {
|
|||||||
that.deviceList2.push(obj)
|
that.deviceList2.push(obj)
|
||||||
} else {
|
} else {
|
||||||
for (let j = 0; j < that.deviceList2.length; j++) {
|
for (let j = 0; j < that.deviceList2.length; j++) {
|
||||||
if (that.deviceList2[j].device_code == item.device_code) {
|
if (that.deviceList2[j].device_code === item.device_code) {
|
||||||
if (that.deviceList2[j].hasGood != item.hasGood) {
|
if (that.deviceList2[j].hasGood !== item.hasGood) {
|
||||||
that.deviceList2[j].device_code = item.device_code
|
that.deviceList2[j].device_code = item.device_code
|
||||||
that.deviceList2[j].hasGood = item.hasGood
|
that.deviceList2[j].hasGood = item.hasGood
|
||||||
}
|
}
|
||||||
if (that.deviceList2[j].material_type != item.material_type) {
|
if (that.deviceList2[j].material_type !== item.material_type) {
|
||||||
that.deviceList2[j].material_type = item.material_type
|
that.deviceList2[j].material_type = item.material_type
|
||||||
}
|
}
|
||||||
if (that.deviceList2[j].quantity != item.quantity) {
|
if (that.deviceList2[j].quantity !== item.quantity) {
|
||||||
that.deviceList2[j].quantity = item.quantity
|
that.deviceList2[j].quantity = item.quantity
|
||||||
}
|
}
|
||||||
if (that.deviceList2[j].remark != item.remark) {
|
if (that.deviceList2[j].remark !== item.remark) {
|
||||||
that.deviceList2[j].remark = item.remark
|
that.deviceList2[j].remark = item.remark
|
||||||
}
|
}
|
||||||
if (that.deviceList2[j].islock != item.islock) {
|
if (that.deviceList2[j].islock !== item.islock) {
|
||||||
that.deviceList2[j].islock = item.islock
|
that.deviceList2[j].islock = item.islock
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for (let i = 0; i < data.msg.device3.length; i++) {
|
||||||
|
const item = data.msg.device3[i]
|
||||||
|
|
||||||
|
// 刷新页面第一次加载数据
|
||||||
|
if (that.deviceList3.length !== data.msg.device3.length) {
|
||||||
|
const obj = {
|
||||||
|
device_code: item.device_code,
|
||||||
|
hasGood: item.hasGood,
|
||||||
|
material_type: item.material_type,
|
||||||
|
quantity: item.quantity,
|
||||||
|
remark: item.remark,
|
||||||
|
islock: item.islock,
|
||||||
|
checked: false
|
||||||
|
}
|
||||||
|
that.deviceList3.push(obj)
|
||||||
|
} else {
|
||||||
|
for (let j = 0; j < that.deviceList3.length; j++) {
|
||||||
|
if (that.deviceList3[j].device_code === item.device_code) {
|
||||||
|
if (that.deviceList3[j].hasGood !== item.hasGood) {
|
||||||
|
that.deviceList3[j].device_code = item.device_code
|
||||||
|
that.deviceList3[j].hasGood = item.hasGood
|
||||||
|
}
|
||||||
|
if (that.deviceList3[j].material_type !== item.material_type) {
|
||||||
|
that.deviceList3[j].material_type = item.material_type
|
||||||
|
}
|
||||||
|
if (that.deviceList3[j].quantity !== item.quantity) {
|
||||||
|
that.deviceList3[j].quantity = item.quantity
|
||||||
|
}
|
||||||
|
if (that.deviceList3[j].remark !== item.remark) {
|
||||||
|
that.deviceList3[j].remark = item.remark
|
||||||
|
}
|
||||||
|
if (that.deviceList3[j].islock !== item.islock) {
|
||||||
|
that.deviceList3[j].islock = item.islock
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 监听socket错误
|
// 监听socket错误
|
||||||
this.socket.onerror = function() {
|
this.socket.onerror = function() {
|
||||||
@@ -440,5 +743,4 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style rel="stylesheet/scss" lang="scss" scoped>
|
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -1,10 +1,23 @@
|
|||||||
<template>
|
<template>
|
||||||
<div style="border: 1px solid #938d8d;margin-left: 10px;margin-right: 10px;">
|
<div style="border: 1px solid #938d8d; margin-left: 10px; margin-right: 10px">
|
||||||
<el-row
|
<el-row
|
||||||
style="border: 1px solid chartreuse;margin-left: 10px;margin-right: 10px;margin-bottom: 10px;margin-top: 20px;min-height: 580px"
|
style="
|
||||||
|
border: 1px solid chartreuse;
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-right: 10px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
margin-top: 20px;
|
||||||
|
min-height: 580px;
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<form id="myForm" name="testForm" style="margin-top: 100px;">
|
<form id="myForm" name="testForm" style="margin-top: 100px">
|
||||||
<el-row :gutter="5" type="flex" justify="center" align="middle" style="min-height: 40px">
|
<el-row
|
||||||
|
:gutter="5"
|
||||||
|
type="flex"
|
||||||
|
justify="center"
|
||||||
|
align="middle"
|
||||||
|
style="min-height: 40px"
|
||||||
|
>
|
||||||
<el-col :span="10">
|
<el-col :span="10">
|
||||||
<el-button type="primary" @click="hssavetask">任务生成</el-button>
|
<el-button type="primary" @click="hssavetask">任务生成</el-button>
|
||||||
<el-button type="primary" @click="cleans3">清空货位</el-button>
|
<el-button type="primary" @click="cleans3">清空货位</el-button>
|
||||||
@@ -12,34 +25,92 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="5" type="flex" justify="center" align="middle">
|
<el-row :gutter="5" type="flex" justify="center" align="middle">
|
||||||
<el-col :span="18">
|
<el-col :span="18">
|
||||||
<div v-for="(item,i) in deviceList">
|
<div v-for="(item, i) in deviceList" :key="item.id">
|
||||||
<div
|
<div
|
||||||
v-if="item.islock"
|
v-if="item.islock"
|
||||||
style="float: left;margin-right: 5px;width: 125px;height: 125px;background-color: #FEC171;border-radius: 10%;"
|
style="
|
||||||
|
float: left;
|
||||||
|
margin-right: 5px;
|
||||||
|
width: 150px;
|
||||||
|
height: 150px;
|
||||||
|
background-color: #fec171;
|
||||||
|
border-radius: 10%;
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<el-checkbox v-model="item.checked" style="margin-left: 20px;"/>
|
<el-checkbox v-model="item.checked" style="margin-left: 20px" />
|
||||||
<el-button size="mini" round style="margin-left: 6px; margin-block-end: 10px" @click="request(i)">
|
<el-button
|
||||||
{{ '设备:' + item.device_code }}
|
size="mini"
|
||||||
|
round
|
||||||
|
style="margin-left: 6px; margin-block-end: 10px"
|
||||||
|
@click="request(i)"
|
||||||
|
>
|
||||||
|
{{ "设备:" + item.device_code }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-else-if="item.hasGood !== 0"
|
v-else-if="item.hasGood !== 0"
|
||||||
style="float: left;margin-right: 5px;width: 125px;height: 125px;background-color: rgb(0, 238, 153);border-radius: 10%;"
|
style="
|
||||||
|
float: left;
|
||||||
|
margin-right: 5px;
|
||||||
|
width: 125px;
|
||||||
|
height: 125px;
|
||||||
|
background-color: rgb(0, 238, 153);
|
||||||
|
border-radius: 10%;
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<!-- <div style="font-size: 15px; margin-left: 30px">{{ item.device_code }}</div>-->
|
<!-- <div style="font-size: 15px; margin-left: 30px">{{ item.device_code }}</div>-->
|
||||||
<el-checkbox v-model="item.checked" style="margin-left: 20px;"/>
|
<el-checkbox v-model="item.checked" style="margin-left: 20px" />
|
||||||
<el-button size="mini" round style="margin-left: 6px; margin-block-end: 10px" @click="request(i)">
|
<el-button
|
||||||
{{ '设备:' + item.device_code }}
|
size="mini"
|
||||||
|
round
|
||||||
|
style="margin-left: 6px; margin-block-end: 8px"
|
||||||
|
@click="request(i)"
|
||||||
|
>
|
||||||
|
{{ "设备:" + item.device_code }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<div style="font-size: 8px; margin-left: 10px; margin-block-end: 20px; margin-top: 10px">{{ '物料类型:' + item.material_type }}</div>
|
<div
|
||||||
<div style="font-size: 8px; margin-left: 10px;">{{ '物料数量:' + item.quantity }}</div>
|
style="
|
||||||
|
font-size: 8px;
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-block-end: 8px;
|
||||||
|
margin-top: 10px;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
{{ "物料类型:" + item.material_type }}
|
||||||
|
</div>
|
||||||
|
<div style="font-size: 8px; margin-left: 10px">
|
||||||
|
{{ "物料数量:" + item.quantity }}
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-if="item.next_code !== ''"
|
||||||
|
style="
|
||||||
|
font-size: 8px;
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-block-end: 8px;
|
||||||
|
margin-top: 10px;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
{{ "终点:" + item.next_code }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-else-if="item.hasGood === 0"
|
v-else-if="item.hasGood === 0"
|
||||||
style="float: left;margin-right: 5px; width: 125px;height: 125px;background-color: beige;border-radius: 10%;"
|
style="
|
||||||
|
float: left;
|
||||||
|
margin-right: 5px;
|
||||||
|
width: 125px;
|
||||||
|
height: 125px;
|
||||||
|
background-color: beige;
|
||||||
|
border-radius: 10%;
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<el-button size="mini" round style="margin-left: 6px;" @click="request(i)">
|
<el-button
|
||||||
{{ '设备:' + item.device_code }}
|
size="mini"
|
||||||
|
round
|
||||||
|
style="margin-left: 6px"
|
||||||
|
@click="request(i)"
|
||||||
|
>
|
||||||
|
{{ "设备:" + item.device_code }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -49,13 +120,25 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<!--弹窗设置设备与图标绑定与角度-->
|
<!--弹窗设置设备与图标绑定与角度-->
|
||||||
<el-dialog title="添加物料信息" :visible.sync="requestDialogVisible" width="500px">
|
<el-dialog
|
||||||
|
title="添加物料信息"
|
||||||
|
:visible.sync="requestDialogVisible"
|
||||||
|
width="500px"
|
||||||
|
>
|
||||||
<el-form :model="form" size="small" label-width="80px">
|
<el-form :model="form" size="small" label-width="80px">
|
||||||
<el-form-item label="设备名字" prop="description">
|
<el-form-item label="设备名字" prop="description">
|
||||||
<el-input v-model="form.device_name" :disabled="true" style="width: 370px;" />
|
<el-input
|
||||||
|
v-model="form.device_name"
|
||||||
|
:disabled="true"
|
||||||
|
style="width: 370px"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="物料类型" prop="material_type">
|
<el-form-item label="物料类型" prop="material_type">
|
||||||
<el-select v-model="form.material_type" style="width: 370px" placeholder="请选择">
|
<el-select
|
||||||
|
v-model="form.material_type"
|
||||||
|
style="width: 370px"
|
||||||
|
placeholder="请选择"
|
||||||
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in material_types"
|
v-for="item in material_types"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
@@ -65,7 +148,25 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="物料数量" prop="quantity">
|
<el-form-item label="物料数量" prop="quantity">
|
||||||
<el-input v-model="form.quantity" style="width: 370px;" />
|
<el-input v-model="form.quantity" style="width: 370px" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
v-if="form.device_code.includes('BCQHW')"
|
||||||
|
label="选择终点"
|
||||||
|
prop="value"
|
||||||
|
>
|
||||||
|
<el-select
|
||||||
|
v-model="form.next_code"
|
||||||
|
style="width: 370px"
|
||||||
|
placeholder="请选择"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in resultList"
|
||||||
|
:key="item"
|
||||||
|
:label="item"
|
||||||
|
:value="item"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
@@ -73,16 +174,15 @@
|
|||||||
<el-button type="primary" @click="saveRequest">确 定</el-button>
|
<el-button type="primary" @click="saveRequest">确 定</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import deviceCrud from '@/api/acs/device/device'
|
import deviceCrud from '@/api/acs/device/device'
|
||||||
import { get } from '@/api/system/dictDetail'
|
import { get } from '@/api/system/dictDetail'
|
||||||
import crudTask, { ordinaryTaskCreate } from '@/api/acs/task/task'
|
import crudTask from '@/api/acs/task/task'
|
||||||
import CRUD, { crud } from '@crud/crud'
|
import CRUD, { crud } from '@crud/crud'
|
||||||
|
// import axios from 'axios'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
mixins: [crud()],
|
mixins: [crud()],
|
||||||
@@ -103,7 +203,8 @@ export default {
|
|||||||
device_name: '',
|
device_name: '',
|
||||||
material_type: '',
|
material_type: '',
|
||||||
quantity: 0,
|
quantity: 0,
|
||||||
remark: ''
|
remark: '',
|
||||||
|
next_code: ''
|
||||||
},
|
},
|
||||||
testdata: {
|
testdata: {
|
||||||
check: null,
|
check: null,
|
||||||
@@ -113,23 +214,25 @@ export default {
|
|||||||
deviceList: [],
|
deviceList: [],
|
||||||
currentDate: new Date(),
|
currentDate: new Date(),
|
||||||
getTime: '',
|
getTime: '',
|
||||||
getDate: ''
|
getDate: '',
|
||||||
|
currentIndex: 0,
|
||||||
|
resultList: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.webSocket()
|
this.webSocket()
|
||||||
|
|
||||||
// 获取物料类型字典
|
// 获取物料类型字典
|
||||||
get('material_type').then(data => {
|
get('material_type').then((data) => {
|
||||||
this.material_types = data.content
|
this.material_types = data.content
|
||||||
})
|
})
|
||||||
// 获取区域类型
|
// 获取区域类型
|
||||||
get('region_type').then(data => {
|
get('region_type').then((data) => {
|
||||||
this.regions = data.content
|
this.regions = data.content
|
||||||
console.log(this.regions)
|
console.log(this.regions)
|
||||||
})
|
})
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
deviceCrud.selectDeviceListThree().then(data => {
|
deviceCrud.selectDeviceListThree().then((data) => {
|
||||||
this.deviceList = data
|
this.deviceList = data
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -137,7 +240,7 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
request(index) {
|
request(index) {
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
deviceCrud.selectDeviceListThree().then(data => {
|
deviceCrud.selectDeviceListThree().then((data) => {
|
||||||
this.deviceList = data
|
this.deviceList = data
|
||||||
const clickObj = this.deviceList[index]
|
const clickObj = this.deviceList[index]
|
||||||
this.requestDialogVisible = true
|
this.requestDialogVisible = true
|
||||||
@@ -147,21 +250,33 @@ export default {
|
|||||||
this.form.device_id = clickObj.device_id
|
this.form.device_id = clickObj.device_id
|
||||||
this.form.device_code = clickObj.device_code
|
this.form.device_code = clickObj.device_code
|
||||||
this.form.device_name = clickObj.device_name
|
this.form.device_name = clickObj.device_name
|
||||||
|
this.form.next_code = clickObj.next_code
|
||||||
|
this.currentIndex = index
|
||||||
|
this.selectEndPoint()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
saveRequest() {
|
saveRequest() {
|
||||||
deviceCrud.addMaterial(this.form).then(res => {
|
console.log('index:' + this.currentIndex)
|
||||||
this.$notify({
|
deviceCrud
|
||||||
title: '操作成功',
|
.addMaterial(this.form)
|
||||||
type: 'success',
|
.then((res) => {
|
||||||
duration: 3000
|
this.$notify({
|
||||||
|
title: '操作成功',
|
||||||
|
type: 'success',
|
||||||
|
duration: 3000
|
||||||
|
})
|
||||||
|
this.requestDialogVisible = false
|
||||||
|
this.deviceList[this.currentIndex].next_code = this.form.next_code
|
||||||
|
this.deviceList[this.currentIndex].quantity = this.form.quantity
|
||||||
|
this.deviceList[this.currentIndex].material_type =
|
||||||
|
this.form.material_type
|
||||||
|
// location.reload()
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
this.requestDialogVisible = false
|
||||||
|
console.log(err.response.data.message)
|
||||||
})
|
})
|
||||||
this.requestDialogVisible = false
|
|
||||||
}).catch(err => {
|
|
||||||
this.requestDialogVisible = false
|
|
||||||
console.log(err.response.data.message)
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
cleans3() {
|
cleans3() {
|
||||||
var obj1 = this.deviceList
|
var obj1 = this.deviceList
|
||||||
@@ -174,9 +289,9 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
const data = {
|
const data = {
|
||||||
'data': arr1
|
data: arr1
|
||||||
}
|
}
|
||||||
deviceCrud.cleans3(data).then(res => {
|
deviceCrud.cleans3(data).then((res) => {
|
||||||
this.$notify({
|
this.$notify({
|
||||||
title: '操作成功',
|
title: '操作成功',
|
||||||
type: 'success',
|
type: 'success',
|
||||||
@@ -198,9 +313,9 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
const data = {
|
const data = {
|
||||||
'data': arr1
|
data: arr1
|
||||||
}
|
}
|
||||||
crudTask.hssavetask(data).then(res => {
|
crudTask.hssavetask(data).then((res) => {
|
||||||
this.$notify({
|
this.$notify({
|
||||||
title: '保存成功',
|
title: '保存成功',
|
||||||
type: 'success',
|
type: 'success',
|
||||||
@@ -215,9 +330,22 @@ export default {
|
|||||||
[CRUD.HOOK.beforeRefresh]() {
|
[CRUD.HOOK.beforeRefresh]() {
|
||||||
return true
|
return true
|
||||||
},
|
},
|
||||||
|
selectEndPoint() {
|
||||||
|
const params = { start_code: this.form.device_code } // 用对象来存储请求参数
|
||||||
|
deviceCrud
|
||||||
|
.getEndPoint(params)
|
||||||
|
.then((response) => {
|
||||||
|
this.resultList = response
|
||||||
|
console.log(this.resultList)
|
||||||
|
// 将请求返回的集合数据存储到组件的 resultList 数据中
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.log(error)
|
||||||
|
})
|
||||||
|
},
|
||||||
webSocket() {
|
webSocket() {
|
||||||
const that = this
|
const that = this
|
||||||
if (typeof (WebSocket) === 'undefined') {
|
if (typeof WebSocket === 'undefined') {
|
||||||
this.$notify({
|
this.$notify({
|
||||||
title: '提示',
|
title: '提示',
|
||||||
message: '当前浏览器无法接收实时报警信息,请使用谷歌浏览器!',
|
message: '当前浏览器无法接收实时报警信息,请使用谷歌浏览器!',
|
||||||
@@ -229,7 +357,10 @@ export default {
|
|||||||
// 获取token保存到vuex中的用户信息,此处仅适用于本项目,注意删除或修改
|
// 获取token保存到vuex中的用户信息,此处仅适用于本项目,注意删除或修改
|
||||||
// 实例化socket,这里我把用户名传给了后台,使后台能判断要把消息发给哪个用户,其实也可以后台直接获取用户IP来判断并推送
|
// 实例化socket,这里我把用户名传给了后台,使后台能判断要把消息发给哪个用户,其实也可以后台直接获取用户IP来判断并推送
|
||||||
// const wsUri = process.env.VUE_APP_WS_API + '/webSocket/' + id
|
// const wsUri = process.env.VUE_APP_WS_API + '/webSocket/' + id
|
||||||
const wsUri = window.g.prod.VUE_APP_BASE_API.replace('http', 'ws') + '/webSocket/' + id
|
const wsUri =
|
||||||
|
window.g.prod.VUE_APP_BASE_API.replace('http', 'ws') +
|
||||||
|
'/webSocket/' +
|
||||||
|
id
|
||||||
|
|
||||||
this.socket = new WebSocket(wsUri)
|
this.socket = new WebSocket(wsUri)
|
||||||
// 监听socket打开
|
// 监听socket打开
|
||||||
@@ -243,7 +374,7 @@ export default {
|
|||||||
const item = data.msg.device[i]
|
const item = data.msg.device[i]
|
||||||
|
|
||||||
// 刷新页面第一次加载数据
|
// 刷新页面第一次加载数据
|
||||||
if (that.deviceList.length != data.msg.device.length) {
|
if (that.deviceList.length !== data.msg.device.length) {
|
||||||
const obj = {
|
const obj = {
|
||||||
device_code: item.device_code,
|
device_code: item.device_code,
|
||||||
hasGood: item.hasGood,
|
hasGood: item.hasGood,
|
||||||
@@ -255,21 +386,21 @@ export default {
|
|||||||
that.deviceList.push(obj)
|
that.deviceList.push(obj)
|
||||||
} else {
|
} else {
|
||||||
for (let j = 0; j < that.deviceList.length; j++) {
|
for (let j = 0; j < that.deviceList.length; j++) {
|
||||||
if (that.deviceList[j].device_code == item.device_code) {
|
if (that.deviceList[j].device_code === item.device_code) {
|
||||||
if (that.deviceList[j].hasGood != item.hasGood) {
|
if (that.deviceList[j].hasGood !== item.hasGood) {
|
||||||
that.deviceList[j].device_code = item.device_code
|
that.deviceList[j].device_code = item.device_code
|
||||||
that.deviceList[j].hasGood = item.hasGood
|
that.deviceList[j].hasGood = item.hasGood
|
||||||
}
|
}
|
||||||
if (that.deviceList[j].material_type != item.material_type) {
|
if (that.deviceList[j].material_type !== item.material_type) {
|
||||||
that.deviceList[j].material_type = item.material_type
|
that.deviceList[j].material_type = item.material_type
|
||||||
}
|
}
|
||||||
if (that.deviceList[j].quantity != item.quantity) {
|
if (that.deviceList[j].quantity !== item.quantity) {
|
||||||
that.deviceList[j].quantity = item.quantity
|
that.deviceList[j].quantity = item.quantity
|
||||||
}
|
}
|
||||||
if (that.deviceList[j].remark != item.remark) {
|
if (that.deviceList[j].remark !== item.remark) {
|
||||||
that.deviceList[j].remark = item.remark
|
that.deviceList[j].remark = item.remark
|
||||||
}
|
}
|
||||||
if (that.deviceList[j].islock != item.islock) {
|
if (that.deviceList[j].islock !== item.islock) {
|
||||||
that.deviceList[j].islock = item.islock
|
that.deviceList[j].islock = item.islock
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -297,5 +428,4 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style rel="stylesheet/scss" lang="scss" scoped>
|
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user