Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
董杰
/
qisda_charts
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit c2e944ca
由
董杰
编写于
2020-09-17 16:10:14 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
获取数据方式修改8点到8点,状态信息修改
1 个父辈
1569c1f8
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
119 行增加
和
120 行删除
app/api/__init__.py
app/api/__pycache__/__init__.cpython-37.pyc
app/api/__pycache__/routes.cpython-37.pyc
app/api/boxstate.py
app/api/routes.py
app/static/css/common.css
app/templates/boxstate.html
app/templates/index.html
app/templates/state.html
config.py
app/api/__init__.py
查看文件 @
c2e944c
...
...
@@ -3,4 +3,4 @@ from flask import Blueprint
bp
=
Blueprint
(
'api'
,
__name__
)
# 写在最后是为了防止循环导入,ping.py文件也会导入 bp
from
app.api
import
ping
,
routes
\ No newline at end of file
from
app.api
import
ping
,
routes
,
boxstate
\ No newline at end of file
app/api/__pycache__/__init__.cpython-37.pyc
查看文件 @
c2e944c
此文件类型无法预览
app/api/__pycache__/routes.cpython-37.pyc
查看文件 @
c2e944c
此文件类型无法预览
app/api/boxstate.py
0 → 100644
查看文件 @
c2e944c
#!/usr/bin/env python
# encoding: utf-8
'''
@author: dongjie
@license: (C) Copyright 2013-2020, Node Supply Chain Manager Corporation Limited.
@contact: 503479457@qq.com
@software: garner
@file: boxstate.py
@time: 2020/9/17 13:45
@desc:
'''
from
flask
import
jsonify
,
render_template
from
app.api
import
bp
from
config
import
Config
from
pyecharts.charts
import
Bar
,
Line
from
pyecharts.options.global_options
import
ThemeType
import
pyecharts.options
as
opts
@bp.route
(
'/boxstate'
)
def
boxstate
():
return
render_template
(
"boxstate.html"
)
\ No newline at end of file
app/api/routes.py
查看文件 @
c2e944c
此文件的差异被折叠,
点击展开。
app/static/css/common.css
查看文件 @
c2e944c
...
...
@@ -328,7 +328,7 @@ a:hover{
height
:
470px
;
}
.div_any01
{
width
:
23
%
;
width
:
46
%
;
margin-right
:
2%
;
}
.div_any02
{
...
...
app/templates/boxstate.html
0 → 100644
查看文件 @
c2e944c
<!DOCTYPE html>
<html
lang=
"zh-cn"
>
<head>
{#
<meta
charset=
"UTF-8"
>
#}
{% if 0 == stop %}
<meta
charset=
"UTF-8"
http-equiv=
"refresh"
content=
"1200;url={{ url_for('api.index') }}"
>
{% endif %}
<title>
Neotel Datashow
</title>
<link
href=
"/static/css/common.css?v=3"
rel=
"stylesheet"
>
<script
src=
"/static/jquery-3.3.1.min.js"
></script>
<script
src=
"/static/echarts.min.js"
></script>
<script
src=
"/static/common.js"
></script>
<script
src=
"/static/index.js"
></script>
<script
src=
"/static/laydate.js"
></script>
</head>
<body>
<!--顶部-->
<header
class=
"header left"
>
<div
class=
"left nav"
>
<ul>
<li><i
class=
"nav_1"
></i><a
href=
"{{ url_for('api.index') }}"
>
数据概况
</a>
</li>
<li><i
class=
"nav_2"
></i><a
href=
"{{ url_for('api.state') }}"
>
设备状态信息
</a>
</li>
<li
class=
"nav_active"
><i
class=
"nav_3"
></i><a
href=
"{{ url_for('api.boxstate') }}"
>
料仓库存信息
</a>
</li>
</ul>
</div>
<div
class=
"header_center left"
style=
"position:relative"
>
<h2><strong>
大数据展示
</strong></h2>
</div>
<div
class=
"right nav text_right"
>
<ul>
</ul>
</div>
</header>
<div
class=
"con left"
>
<!--统计分析图-->
<div
class=
"div_any"
>
<div
class=
"div_any"
>
<div
class=
"left div_any01"
>
<div
class=
"div_any_child"
style=
"height: 300px;"
>
<div
class=
"div_any_title"
><img
src=
"static/images/title_5.png"
>
云料仓1-1
</div>
<p
id=
"histogramChart1"
class=
"p_chart"
></p>
</div>
<div
class=
"div_any_child"
style=
"height: 300px;"
>
<div
class=
"div_any_title"
><img
src=
"static/images/title_6.png"
>
云料仓1-2
</div>
<p
id=
"histogramChart2"
class=
"p_chart"
></p>
</div>
</div>
<div
class=
"left div_any01"
>
<
<div
class=
"div_any_child"
style=
"height: 300px;"
>
<div
class=
"div_any_title"
><img
src=
"static/images/title_5.png"
>
云料仓1-1
</div>
<p
id=
"histogramChart1"
class=
"p_chart"
></p>
</div>
<div
class=
"div_any_child"
style=
"height: 300px;"
>
<div
class=
"div_any_title"
><img
src=
"static/images/title_6.png"
>
云料仓1-2
</div>
<p
id=
"histogramChart2"
class=
"p_chart"
></p>
</div>
</div>
<div
class=
"left div_any01"
>
<div
class=
"div_any_child"
style=
"height: 300px;"
>
<div
class=
"div_any_title"
><img
src=
"static/images/title_5.png"
>
云料仓1-1
</div>
<p
id=
"histogramChart1"
class=
"p_chart"
></p>
</div>
<div
class=
"div_any_child"
style=
"height: 300px;"
>
<div
class=
"div_any_title"
><img
src=
"static/images/title_6.png"
>
云料仓1-2
</div>
<p
id=
"histogramChart2"
class=
"p_chart"
></p>
</div>
</div>
<div
class=
"left div_any01"
>
<div
class=
"div_any_child"
style=
"height: 300px;"
>
<div
class=
"div_any_title"
><img
src=
"static/images/title_5.png"
>
云料仓1-1
</div>
<p
id=
"histogramChart1"
class=
"p_chart"
></p>
</div>
<div
class=
"div_any_child"
style=
"height: 300px;"
>
<div
class=
"div_any_title"
><img
src=
"static/images/title_6.png"
>
云料仓1-2
</div>
<p
id=
"histogramChart2"
class=
"p_chart"
></p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
\ No newline at end of file
app/templates/index.html
查看文件 @
c2e944c
...
...
@@ -20,6 +20,7 @@
<ul>
<li
class=
"nav_active"
><i
class=
"nav_1"
></i><a
href=
"{{ url_for('api.index') }}"
>
数据概况
</a>
</li>
<li><i
class=
"nav_2"
></i><a
href=
"{{ url_for('api.state') }}"
>
设备状态信息
</a>
</li>
<li><i
class=
"nav_3"
></i><a
href=
"{{ url_for('api.boxstate') }}"
>
料仓库存信息
</a>
</li>
</ul>
</div>
<div
class=
"header_center left"
style=
"position:relative"
>
...
...
@@ -63,102 +64,6 @@
</div>
</div>
</div>
<!-- <div class="div_any">
<div class="left div_table_box" style="width: 31%;">
<div class="div_any_child" style="height: 420px;">
<div class="div_any_title"><img src="/static/images/title_16.png">AGV状态信息</div>
<div class="table_p">
<table id="tb">
<thead><tr>
<th>类型</th>
<th>描述</th>
<th>状态</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
<div class="left div_table_box" style="width: 31%;">
<div class="div_any_child" style="height: 420px;">
<div class="div_any_title"><img src="static/images/title_16.png">AGV状态信息</div>
<div class="table_p">
<table>
<thead><tr>
<th>类型</th>
<th>描述</th>
<th>状态</th>
</tr>
</thead>
<tbody>
<tr><td>AGV1</td><td>描述1</td><td>正常</td></tr>
<tr><td>AGV2</td><td>描述2</td><td>正常</td></tr>
<tr><td>AGV3</td><td>描述3</td><td>正常</td></tr>
<tr><td>AGV4</td><td>描述4</td><td>正常</td></tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="left div_table_box" style="width: 31%;">
<div class="div_any_child" style="height: 420px;">
<div class="div_any_title"><img src="static/images/title_16.png">AGV状态信息</div>
<div class="table_p">
<table>
<thead><tr>
<th>类型</th>
<th>描述</th>
<th>状态</th>
</tr>
</thead>
<tbody>
<tr><td>AGV1</td><td>描述1</td><td>正常</td></tr>
<tr><td>AGV2</td><td>描述2</td><td>正常</td></tr>
<tr><td>AGV3</td><td>描述3</td><td>正常</td></tr>
<tr><td>AGV4</td><td>描述4</td><td>正常</td></tr>
</tbody>
</table>
</div>
</div>
</div>
</div> -->
</div>
<!-- <script>
var app = {
};
// 发送ajax请求,从后台获取json数据
$(document).ready(function () {
getData();
console.log('success');
});
function getData() {
$.ajax({
url: '/test',
type: "post",
dataType: "json",
processData: false,
contentType: false,
data:
{
selects: $("#selects").val(),
values: $("#values").val()
},
success: function(json) {
$('#tb tr:gt(0)').remove();//删除之前的数据
var s = '';
for (var i = 0; i < json.length; i++) s +='<tr bgcolor="#FF0000"><td>' + json[i].name + '</td><td>' + json[i].des + '</td><td>' + json[i].state + '</td></tr>';
var s = '<tbody>' + s + '</tbody>'
$('#tb').append(s);
console.log(json)
},
error: function(e) {
alert("获取menu信息失败");
}
})
$("td:contains('正常')").css("color","blue");
$("td:contains('异常')").css("color","red");
}
</script> -->
</body>
</html>
\ No newline at end of file
app/templates/state.html
查看文件 @
c2e944c
...
...
@@ -17,6 +17,7 @@
<ul>
<li><i
class=
"nav_1"
></i><a
href=
"{{ url_for('api.index') }}"
>
数据概况
</a>
</li>
<li
class=
"nav_active"
><i
class=
"nav_2"
></i><a
href=
"{{ url_for('api.state') }}"
>
设备状态信息
</a>
</li>
<li><i
class=
"nav_3"
></i><a
href=
"{{ url_for('api.boxstate') }}"
>
料仓库存信息
</a>
</li>
</ul>
</div>
<div
class=
"header_center left"
style=
"position:relative"
>
...
...
@@ -72,28 +73,10 @@
<thead><tr>
<th>
设备
</th>
<th>
描述
</th>
<th>
状态
</th>
<th>
利用率
</th>
</tr>
</thead>
<tbody
id=
"box"
>
{#
<tr><td>
料仓1
</td><td>
演示数据
</td><td>
正常
</td></tr>
#}
{#
<tr><td>
料仓2
</td><td>
演示数据
</td><td>
异常
</td></tr>
#}
{#
<tr><td>
料仓3
</td><td>
演示数据
</td><td>
正常
</td></tr>
#}
{#
<tr><td>
料仓4
</td><td>
演示数据
</td><td>
异常
</td></tr>
#}
{#
<tr><td>
料仓5
</td><td>
演示数据
</td><td>
正常
</td></tr>
#}
{#
<tr><td>
料仓6
</td><td>
演示数据
</td><td>
正常
</td></tr>
#}
{#
<tr><td>
料仓7
</td><td>
演示数据
</td><td>
正常
</td></tr>
#}
{#
<tr><td>
料仓8
</td><td>
演示数据
</td><td>
异常
</td></tr>
#}
{#
<tr><td>
料仓9
</td><td>
演示数据
</td><td>
正常
</td></tr>
#}
{#
<tr><td>
料仓10
</td><td>
演示数据
</td><td>
正常
</td></tr>
#}
{#
<tr><td>
料仓11
</td><td>
演示数据
</td><td>
异常
</td></tr>
#}
{#
<tr><td>
料仓12
</td><td>
演示数据
</td><td>
正常
</td></tr>
#}
{#
<tr><td>
环形线
</td><td>
演示数据
</td><td>
正常
</td></tr>
#}
{#
<tr><td>
皮带线
</td><td>
演示数据
</td><td>
异常
</td></tr>
#}
{#
<tr><td>
双层线
</td><td>
演示数据
</td><td>
正常
</td></tr>
#}
{#
<tr><td>
ABB1
</td><td>
演示数据
</td><td>
正常
</td></tr>
#}
{#
<tr><td>
ABB2
</td><td>
演示数据
</td><td>
异常
</td></tr>
#}
{#
<tr><td>
ABB3
</td><td>
演示数据
</td><td>
正常
</td></tr>
#}
</tbody>
</table>
</div>
...
...
@@ -184,7 +167,9 @@
$
(
'#agv'
).
empty
();
var
s
=
''
;
for
(
var
i
=
0
;
i
<
json
.
length
;
i
++
)
if
(
json
[
i
].
state
==
'正常'
)
{
s
+=
'<tr><td>'
+
json
[
i
].
name
+
'</td><td>'
+
json
[
i
].
des
+
'</td><td style="color:green;">'
+
json
[
i
].
state
+
'</td></tr>'
;}
else
{
s
+=
'<tr><td>'
+
json
[
i
].
name
+
'</td><td>'
+
json
[
i
].
des
+
'</td><td style="color:red;">'
+
json
[
i
].
state
+
'</td></tr>'
;}
else
if
(
json
[
i
].
state
==
'充电中'
)
{
s
+=
'<tr><td>'
+
json
[
i
].
name
+
'</td><td>'
+
json
[
i
].
des
+
'</td><td style="color:yellow;">'
+
json
[
i
].
state
+
'</td></tr>'
;}
else
{
s
+=
'<tr><td>'
+
json
[
i
].
name
+
'</td><td>'
+
json
[
i
].
des
+
'</td><td style="color:red;">'
+
json
[
i
].
state
+
'</td></tr>'
;}
// var s = '<tbody>' + s + '</tbody>'
$
(
'#agv'
).
append
(
s
);
console
.
log
(
json
)
...
...
@@ -239,8 +224,8 @@
//$('#box tr:gt(0)').remove();//删除之前的数据
$
(
'#box'
).
empty
();
var
s
=
''
;
for
(
var
i
=
0
;
i
<
json
.
length
;
i
++
)
if
(
json
[
i
].
state
==
'正常'
)
{
s
+=
'<tr><td>'
+
json
[
i
].
name
+
'</td><td>'
+
json
[
i
].
des
+
'</td><td style="color:green;">'
+
json
[
i
].
state
+
'</td></tr>'
;}
else
{
s
+=
'<tr><td>'
+
json
[
i
].
name
+
'</td><td>'
+
json
[
i
].
des
+
'</td><td style="color:red;">'
+
json
[
i
].
state
+
'</td></tr>'
;}
for
(
var
i
=
0
;
i
<
json
.
length
;
i
++
)
if
(
json
[
i
].
state
==
'正常'
)
{
s
+=
'<tr><td>'
+
json
[
i
].
name
+
'</td><td>'
+
json
[
i
].
des
+
'</td><td style="color:green;">'
+
json
[
i
].
ratio
+
'</td></tr>'
;}
else
{
s
+=
'<tr><td>'
+
json
[
i
].
name
+
'</td><td>'
+
json
[
i
].
des
+
'</td><td style="color:red;">'
+
json
[
i
].
ratio
+
'</td></tr>'
;}
$
(
'#box'
).
append
(
s
);
console
.
log
(
json
)
},
...
...
config.py
查看文件 @
c2e944c
...
...
@@ -11,6 +11,8 @@ class Config(object):
CONFIG_4D
=
[
'4D-1线'
,
'4D-2线'
,
'4D-3线'
,
'4D-4线'
,
'4D-5线'
,
'4D-6线'
,
'4D-7线'
,
'4D-8线'
,
'4D-9线'
,
'4D-10线'
,
'4D-11线'
,
'4D-12线'
,
'4D-13线'
,
'4D-14线'
,
'4D-15线'
,
'4D-16线'
]
CONFIG_BOX
=
[
'line-ac-01'
,
'line-ac-02'
,
'line-ac-03'
,
'line-ac-04'
,
'line-ac-05'
,
'line-ac-06'
,
'line-ac-07'
,
'line-ac-08'
,
'line-ac-09'
,
'line-ac-10'
,
'line-ac-11'
,
'line-ac-12'
,
'line-ac-13'
,
'line-ac-14'
,
'line-ac-15'
,
'line-ac-16'
,
'line-ac-17'
,
'line-ac-18'
]
# CONFIG_BOX = ['云料仓1', '云料仓1', '云料仓1', '云料仓4', '云料仓5', '云料仓6', '云料仓7', '云料仓8', '云料仓9', '云料仓10', '云料仓11', '云料仓12']
CONFIG_BOX_STATUS
=
{
1
:
'准备就绪'
,
2
:
'急停'
,
3
:
'故障'
,
4
:
'警告'
,
5
:
'调试中'
,
6
:
'入库执行中'
,
7
:
'入仓位完成'
,
8
:
'入库失败'
,
9
:
'出库执行中'
,
10
:
'出仓位完成'
,
11
:
'出库失败'
,
12
:
'出库移载中'
,
13
:
'远点返回中'
}
DB_NAME
=
'qisada2'
URL
=
'http://192.168.101.11/myproject/rest/api/qisda/device/deviceMsgList'
BOX_URL
=
'http://192.168.101.11/myproject/service/store/statusList'
BOX_RATIO_URL
=
'http://192.168.101.11/myproject/service/store/storageList'
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论