Skip to content

Commit 8edf6e9

Browse files
author
Zhang Jie
committed
可以设置和查询机器人IO,但是查询IO状态的指令只能发送一次,发送多次 机器人就GG了
1 parent c7f71f5 commit 8edf6e9

File tree

8 files changed

+150
-3
lines changed

8 files changed

+150
-3
lines changed

config/index.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,12 @@ module.exports = {
1010
// Paths
1111
assetsSubDirectory: 'static',
1212
assetsPublicPath: '/',
13-
proxyTable: {},
13+
proxyTable: {
14+
'/service/*': {
15+
target: 'http://192.168.12.249:8081',
16+
changeOrigin: true
17+
}
18+
},
1419

1520
// Various Dev Server settings
1621
host: 'localhost', // can be overwritten by process.env.HOST

package-lock.json

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
},
1212
"dependencies": {
1313
"anim-event": "^1.0.16",
14+
"axios": "^0.20.0",
1415
"cssprefix": "^2.0.16",
1516
"element-ui": "^2.13.0",
1617
"less": "^3.11.1",

src/Tools.js

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,34 @@ function downloadFlie() {
1515
document.body.removeChild(elementA);
1616
}
1717

18+
let deepCopy = (obj) => {
19+
if (typeof obj !== 'object') {
20+
return obj;
21+
}
22+
23+
let type = Object.prototype.toString.apply(obj);
24+
let ret = type === '[object Array]' ? [] : {};
25+
26+
if (type === '[object Array]') {
27+
ret = [];
28+
let i = 0;
29+
while (i < obj.length) {
30+
ret[i] = deepCopy(obj[i]);
31+
i++;
32+
}
33+
} else {
34+
ret = {};
35+
for (let k in obj) {
36+
if (obj.hasOwnProperty(k)) {
37+
ret[k] = deepCopy(obj[k]);
38+
}
39+
}
40+
}
41+
42+
return ret;
43+
}
44+
1845
export default {
19-
downloadFlie: downloadFlie
46+
downloadFlie: downloadFlie,
47+
deepCopy: deepCopy
2048
}

src/components/Header.vue

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<template slot="title">工程管理</template>
1313
<el-menu-item index="9-1">新建</el-menu-item>
1414
<el-menu-item index="9-2">打开</el-menu-item>
15-
<el-menu-item index="9-3">保存</el-menu-item>
15+
<el-menu-item index="9-3" @click="saveProject">保存</el-menu-item>
1616
</el-submenu>
1717
<el-submenu index="2">
1818
<template slot="title">系统配置</template>
@@ -25,13 +25,17 @@
2525
<el-menu-item index="4">
2626
<div @click="showCode">查看代码</div>
2727
</el-menu-item>
28+
<el-menu-item index="5">
29+
<div @click="run">运行</div>
30+
</el-menu-item>
2831
</el-menu>
2932
<img :src="logoPath"/>
3033

3134
</div>
3235
</template>
3336

3437
<script>
38+
import Tools from "@/Tools.js";
3539
export default {
3640
name: "Header",
3741
data() {
@@ -48,6 +52,42 @@ export default {
4852
4953
showCode(){
5054
debugger;
55+
},
56+
57+
run(){
58+
this.axios({
59+
url: '/service/run',
60+
method: 'post',
61+
data: {
62+
path: ''
63+
}
64+
})
65+
},
66+
67+
saveProject(){
68+
// save stateData
69+
let stateData = Tools.deepCopy(statePageVue.threadAry);
70+
71+
// save blockly xml
72+
let blocklyWindow = document.getElementsByTagName('iframe')[0].contentWindow;
73+
let blocklyData = blocklyWindow.Blockly.Xml.workspaceToDom(blocklyWindow.Code.workspace);
74+
75+
// save qrl
76+
let code = blocklyWindow.Blockly.Lua.workspaceToCode(blocklyWindow.Code.workspace);
77+
this.axios({
78+
url: '/service/saveProject',
79+
method: 'post',
80+
data: {
81+
stateData: stateData,
82+
blocklyData: stateDataXml, //blocklyData,
83+
code: code
84+
}
85+
}).then((res)=>{
86+
// debugger;
87+
})
88+
89+
90+
5191
}
5292
}
5393
};

src/components/IOPage.vue

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<template>
2+
<div id="IOPage">
3+
<span>IO 20103状态:</span>
4+
<el-switch v-model="status" active-color="#13ce66" inactive-color="#DCDFE6"></el-switch>
5+
6+
<el-button type="primary" @click="refresh" style="display: block; margin-left: 100px;margin-top:50px;">刷新</el-button>
7+
</div>
8+
</template>
9+
10+
<script>
11+
export default {
12+
name: "IOPage",
13+
14+
data() {
15+
return {
16+
status: false,
17+
};
18+
},
19+
20+
methods: {
21+
getStatus() {
22+
this.axios({
23+
url: "/service/getStatus",
24+
method: "post",
25+
data: {
26+
port: "20103",
27+
},
28+
}).then((res) => {
29+
this.status = !!res.data.data;
30+
});
31+
},
32+
refresh(){
33+
this.getStatus();
34+
}
35+
},
36+
created(){
37+
// this.getStatus();
38+
}
39+
};
40+
</script>
41+
42+
<style scoped>
43+
#IOPage{
44+
margin-top: 100px;
45+
}
46+
span{
47+
margin-left: 100px;
48+
position: relative;
49+
top: 1px;
50+
}
51+
</style>

src/main.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@ import App from './App'
55
import router from './router'
66
import Element from 'element-ui';
77
import 'element-ui/lib/theme-chalk/index.css';
8+
import axios from 'axios';
89

910

1011
Vue.use(Element, { size: 'small', zIndex: 3000 });
12+
Vue.prototype.axios = axios;
1113

1214
Vue.config.productionTip = false
1315

src/router/index.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import Demo from '@/components/Demo'
1010
import DemoIndex from '@/components/demos/DemoIndex'
1111
import PathAnimation from '@/components/demos/PathAnimation'
1212
import StatePage from '@/components/demos/StatePage'
13+
import IOPage from '@/components/IOPage'
1314

1415
Vue.use(Router)
1516

@@ -67,6 +68,10 @@ export default new Router({
6768
{
6869
path: 'state',
6970
component: StatePage
71+
},
72+
{
73+
path: 'io',
74+
component: IOPage
7075
}
7176
]
7277
}

0 commit comments

Comments
 (0)