设备指令

master
mhsnet 4 months ago
parent d6a8a5ae5e
commit 12cbe23831

@ -0,0 +1,196 @@
import request from "@/utils/request";
// 远程设备指令
export function recycleDeviceCmd(data) {
data.optTime = new Date();
return request({
url: `/api/scm/RecycleDevice/command`,
method: "POST",
data
});
}
/*
** 设备指令
*/
// 配置更新
export function cmdChange(deviceCode) {
let data = {
orderNo: "",
deviceCode: deviceCode,
cmd: "change",
data: "",
optTime: "",
remark: "配置更新"
};
recycleDeviceCmd(data);
}
// 重启设备
export function cmdReboot(deviceCode) {
let data = {
orderNo: "",
deviceCode: deviceCode,
cmd: "reboot",
data: "",
optTime: "",
remark: "重启设备"
};
recycleDeviceCmd(data);
}
// 重启应用
export function cmdRestart(deviceCode) {
let data = {
orderNo: "",
deviceCode: deviceCode,
cmd: "restart",
data: "",
optTime: "",
remark: "重启应用"
};
recycleDeviceCmd(data);
}
// 更新应用
export function cmdUpdate(deviceCode) {
let data = {
orderNo: "",
deviceCode: deviceCode,
cmd: "update",
data: "",
optTime: "",
remark: "更新应用"
};
recycleDeviceCmd(data);
}
// 抓拍
export function cmdSnapshot(deviceCode) {
let data = {
orderNo: "",
deviceCode: deviceCode,
cmd: "snapshot",
data: "",
optTime: "",
remark: "抓拍"
};
recycleDeviceCmd(data);
}
// 获取状态
export function cmdStatus(deviceCode) {
let data = {
orderNo: "",
deviceCode: deviceCode,
cmd: "status",
data: "",
optTime: "",
remark: "获取状态"
};
recycleDeviceCmd(data);
}
// 设备指令
export function cmdDevice(cmd, deviceCode) {
switch (cmd) {
case "change":
cmdChange(deviceCode);
break;
case "reboot":
cmdReboot(deviceCode);
break;
case "restart":
cmdRestart(deviceCode);
break;
case "update":
cmdUpdate(deviceCode);
break;
case "snapshot":
cmdSnapshot(deviceCode);
break;
case "status":
cmdStatus(deviceCode);
break;
default:
break;
}
}
/*
** 桶指令
*/
// 投递开门
export function cmdDeliveryOpen(deviceCode, bucketCode) {
let data = {
orderNo: "",
deviceCode: deviceCode,
cmd: "deliveryOpen",
data: bucketCode,
optTime: "",
remark: "投递开门"
};
recycleDeviceCmd(data);
}
// 投递关门
export function cmdDeliveryClose(deviceCode, bucketCode) {
let data = {
orderNo: "",
deviceCode: deviceCode,
cmd: "deliveryClose",
data: bucketCode,
optTime: "",
remark: "投递关门"
};
recycleDeviceCmd(data);
}
// 清运开门
export function cmdCleanOpen(deviceCode, bucketCode) {
let data = {
orderNo: "",
deviceCode: deviceCode,
cmd: "cleanOpen",
data: bucketCode,
optTime: "",
remark: "清运开门"
};
recycleDeviceCmd(data);
}
// 远程校准
export function cmdAdjust(deviceCode, bucketCode) {
let data = {
orderNo: "",
deviceCode: deviceCode,
cmd: "adjust",
data: bucketCode,
optTime: "",
remark: "远程校准"
};
recycleDeviceCmd(data);
}
// 远程清零
export function cmdClear(deviceCode, bucketCode) {
let data = {
orderNo: "",
deviceCode: deviceCode,
cmd: "clear",
data: bucketCode,
optTime: "",
remark: "远程清零"
};
recycleDeviceCmd(data);
}
// 桶指令
export function cmdBucket(cmd, deviceCode, bucketCode) {
switch (cmd) {
case "deliveryOpen":
cmdDeliveryOpen(deviceCode, bucketCode);
break;
case "deliveryClose":
cmdDeliveryClose(deviceCode, bucketCode);
break;
case "cleanOpen":
cmdCleanOpen(deviceCode, bucketCode);
break;
case "adjust":
cmdAdjust(deviceCode, bucketCode);
break;
case "clear":
cmdClear(deviceCode, bucketCode);
break;
default:
break;
}
}

@ -3,6 +3,16 @@
<div class="JNPF-common-layout-center">
<el-row class="JNPF-common-search-box" :gutter="16">
<el-form @submit.native.prevent>
<el-col :span="6">
<el-form-item label="设备编码">
<el-input
v-model="query.deviceCode"
placeholder="请输入"
clearable
>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="桶编号">
<el-input

@ -0,0 +1,209 @@
<template>
<el-dialog
title="投递柜管理"
:close-on-click-modal="false"
append-to-body
:visible.sync="visible"
class="JNPF-dialog JNPF-dialog_center"
lock-scroll
width="700px"
>
<el-row class="cmd">
<el-col class="cmd-device">
<el-row style="padding: 15px;">
<div>投递柜({{ row.deviceCode }})</div>
</el-row>
<el-row style="padding: 15px;">
<el-col :span="6">
<el-button
type="primary"
style="width: 80%;"
@click="fnCmdDeviceDo('change')"
>
<div>配置更新</div>
<div><i class="el-icon-thumb el-icon--right"></i></div>
</el-button>
</el-col>
<el-col :span="6">
<el-button
type="primary"
style="width: 80%;"
@click="fnCmdDeviceDo('reboot')"
>
<div>重启设备</div>
<div><i class="el-icon-thumb el-icon--right"></i></div>
</el-button>
</el-col>
<el-col :span="6">
<el-button
type="primary"
style="width: 80%;"
@click="fnCmdDeviceDo('restart')"
>
<div>重启应用</div>
<div><i class="el-icon-thumb el-icon--right"></i></div>
</el-button>
</el-col>
<el-col :span="6">
<el-button
type="primary"
style="width: 80%;"
@click="fnCmdDeviceDo('update')"
>
<div>更新应用</div>
<div><i class="el-icon-thumb el-icon--right"></i></div>
</el-button>
</el-col>
</el-row>
<el-row style="padding: 15px;">
<el-col :span="6">
<el-button
type="primary"
style="width: 80%;"
@click="fnCmdDeviceDo('snapshot')"
>
<div>抓拍</div>
<div><i class="el-icon-thumb el-icon--right"></i></div>
</el-button>
</el-col>
<el-col :span="6">
<el-button
type="primary"
style="width: 80%;"
@click="fnCmdDeviceDo('status')"
>
<div>获取状态</div>
<div><i class="el-icon-thumb el-icon--right"></i></div>
</el-button>
</el-col>
</el-row>
</el-col>
<el-col v-for="(bucketItem, index) in row.buckets" class="cmd-bucket">
<el-row style="padding: 15px;">
<el-col :span="24">
({{ bucketItem.bucketCode }} {{ bucketItem.bucketName }})
</el-col>
</el-row>
<el-row style="padding: 15px;">
<el-col :span="4">
<el-button
type="success"
style="width: 80%;"
@click="
fnCmdBucketDo(
'deliveryOpen',
bucketItem.deviceCode,
bucketItem.bucketCode
)
"
>
<div>投递开门</div>
<div><i class="el-icon-thumb el-icon--right"></i></div>
</el-button>
</el-col>
<el-col :span="4">
<el-button
type="success"
style="width: 80%;"
@click="
fnCmdBucketDo(
'deliveryClose',
bucketItem.deviceCode,
bucketItem.bucketCode
)
"
>
<div>投递关门</div>
<div><i class="el-icon-thumb el-icon--right"></i></div>
</el-button>
</el-col>
<el-col :span="4">
<el-button
type="success"
style="width: 80%;"
@click="
fnCmdBucketDo(
'cleanOpen',
bucketItem.deviceCode,
bucketItem.bucketCode
)
"
>
<div>清运开门</div>
<div><i class="el-icon-thumb el-icon--right"></i></div>
</el-button>
</el-col>
<el-col :span="4">
<el-button
type="success"
style="width: 80%;"
@click="
fnCmdBucketDo(
'adjust',
bucketItem.deviceCode,
bucketItem.bucketCode
)
"
>
<div>远程校准</div>
<div><i class="el-icon-thumb el-icon--right"></i></div>
</el-button>
</el-col>
<el-col :span="4">
<el-button
type="success"
style="width: 80%;"
@click="
fnCmdBucketDo(
'clear',
bucketItem.deviceCode,
bucketItem.bucketCode
)
"
>
<div>远程清零</div>
<div><i class="el-icon-thumb el-icon--right"></i></div>
</el-button>
</el-col>
</el-row>
</el-col>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false"> </el-button>
</span>
</el-dialog>
</template>
<script>
import {
cmdDevice,
cmdBucket
} from "@/api/device";
export default {
components: {},
props: [],
data() {
return {
visible: false,
detailVisible: false,
loading: false,
row: {}
};
},
computed: {},
watch: {},
created() {},
mounted() {},
methods: {
fnCmdDeviceDo(cmdName) {
cmdDevice(cmdName,this.row.deviceCode)
},
fnCmdBucketDo(cmd,deviceCode,bucketCode) {
cmdBucket(cmd,deviceCode,bucketCode)
},
init(row) {
this.row = row;
this.visible = true;
}
}
};
</script>

@ -148,12 +148,24 @@
>
</el-table-column>
<el-table-column
label="设备名称"
prop="deviceName"
width="110"
algin="left"
>
<template slot-scope="scope">
<span style="color: blue;cursor: pointer;" @click="fnShowDeviceInfo(scope.row)">{{
scope.row.deviceName
}}</span>
</template>
</el-table-column>
<!-- <el-table-column
prop="deviceName"
label="设备名称"
width="110"
align="left"
>
</el-table-column>
</el-table-column> -->
<el-table-column
label="设备状态"
prop="status"
@ -353,6 +365,7 @@
ref="Detail"
@refresh="detailVisible = false"
/>
<DeviceInfo v-if="deviceInfoVisible" ref="DeviceInfo" @refresh="deviceInfoVisible = false"/>
<ToFormDetail
v-if="toFormDetailVisible"
ref="toFormDetail"
@ -373,6 +386,7 @@ import { mapGetters } from "vuex";
import { getDictionaryDataSelector } from "@/api/systemData/dictionary";
import JNPFForm from "./form";
import Detail from "./Detail";
import DeviceInfo from "./DeviceInfo";
import ExportBox from "@/components/ExportBox";
import ToFormDetail from "@/views/basic/dynamicModel/list/detail";
import { getDataInterfaceRes } from "@/api/systemData/dataInterface";
@ -388,6 +402,7 @@ export default {
components: {
JNPFForm,
Detail,
DeviceInfo,
ExportBox,
ToFormDetail,
SuperQuery
@ -409,6 +424,7 @@ export default {
superQueryJson,
uploadBoxVisible: false,
detailVisible: false,
deviceInfoVisible: false,
query: {
beLongCompanyId: undefined,
beLongStationId: undefined,
@ -472,6 +488,7 @@ export default {
this.queryData = JSON.parse(JSON.stringify(this.query));
},
methods: {
fnNavToRecyclecleanorder(deviceCode) {
this.$router.push({
path: "/recyclecleanorder",
@ -485,7 +502,10 @@ export default {
});
},
fnNavToRecyclebucket(deviceCode) {
this.$router.push({ path: "/recyclebucket", query: { deviceCode: deviceCode } });
this.$router.push({
path: "/recyclebucket",
query: { deviceCode: deviceCode }
});
},
toDetail(defaultValue, modelId) {
if (!defaultValue) return;
@ -647,6 +667,12 @@ export default {
this.beLongStationIdOptions = data;
});
},
fnShowDeviceInfo(row) {
this.deviceInfoVisible = true;
this.$nextTick(() => {
this.$refs.DeviceInfo.init(row);
});
},
goDetail(id) {
this.detailVisible = true;
this.$nextTick(() => {

Loading…
Cancel
Save