IGD3000系列(一体屏)网关的app和文件系统的打包目录
1.修改打包脚本,每次从code里复制最新的编译结果和www文件
2.增加snmp服务/usr/local/bin/snmpd, 默认不启动,启动时需要再/work/run.sh里调用/usr/local/script/start_snmpd脚本,注意要后台运行
已修改42个文件
已添加18个文件
1730 ■■■■ 文件已修改
local/app/MainControl 补丁 | 查看 | 原始文档 | blame | 历史
local/app/NetModule 补丁 | 查看 | 原始文档 | blame | 历史
local/app/fzBus 补丁 | 查看 | 原始文档 | blame | 历史
local/app/linkage 补丁 | 查看 | 原始文档 | blame | 历史
local/app/svr 补丁 | 查看 | 原始文档 | blame | 历史
local/bin/db 补丁 | 查看 | 原始文档 | blame | 历史
local/bin/export.sh 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/bin/msg 补丁 | 查看 | 原始文档 | blame | 历史
local/bin/snmp_cfg 补丁 | 查看 | 原始文档 | blame | 历史
local/bin/snmp_val.sh 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/bin/snmpd 补丁 | 查看 | 原始文档 | blame | 历史
local/default/iot_cfg.db 补丁 | 查看 | 原始文档 | blame | 历史
local/default/sysConfig.json 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/script/start_snmpd 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/version 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/cgi-bin/action/open-door 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/cgi-bin/action/open-door-do 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/cgi-bin/bin.tgz 补丁 | 查看 | 原始文档 | blame | 历史
local/www/cgi-bin/bin/jsoner 补丁 | 查看 | 原始文档 | blame | 历史
local/www/cgi-bin/device-debug/debug 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/cgi-bin/do/do 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/cgi-bin/download/download.cgi 补丁 | 查看 | 原始文档 | blame | 历史
local/www/cgi-bin/register/query_sn 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/cgi-bin/route/add 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/cgi-bin/snmp/download 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/cgi-bin/snmp/enable 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/cgi-bin/snmp/query 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/cgi-bin/state/query-device 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/cgi-bin/sys-network/save 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/cgi-bin/sys-set/systemSpace 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/cgi-bin/upload/start_upgrade 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/cgi-bin/upload/upload.cgi 补丁 | 查看 | 原始文档 | blame | 历史
local/www/cgi-bin/warn-list/update 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/css/page/detail-wsd-single2.css 239 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/css/page/single/single.css 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/css/page/warn-list.css 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/detail-jmkt.html 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/detail-wsd-single2.html 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/device-common.html 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/device-expand.html 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/images/wsd-single/wsd-single/dz1.png 补丁 | 查看 | 原始文档 | blame | 历史
local/www/images/wsd-single/wsd-single/dz2.png 补丁 | 查看 | 原始文档 | blame | 历史
local/www/images/wsd-single/wsd-single/icn1.png 补丁 | 查看 | 原始文档 | blame | 历史
local/www/images/wsd-single/wsd-single/icn2.png 补丁 | 查看 | 原始文档 | blame | 历史
local/www/index.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/js/page/device-common.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/js/page/device-net.js 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/js/page/index.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/js/page/record-his.js 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/js/page/sys-set.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/js/page/three-img.js 464 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/js/page/warn-list.js 195 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/sys-debug.html 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/sys-param-set.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/sys-register.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/sys-set.html 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/sys-snmp-conf.html 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
make_app.sh 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
new_board_upgrade/upgrade/app.tgz 补丁 | 查看 | 原始文档 | blame | 历史
upgrade/app.tgz 补丁 | 查看 | 原始文档 | blame | 历史
local/app/MainControl
Binary files differ
local/app/NetModule
Binary files differ
local/app/fzBus
Binary files differ
local/app/linkage
Binary files differ
local/app/svr
Binary files differ
local/bin/db
Binary files differ
local/bin/export.sh
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
#!/bin/sh
sqlite3 /work/iot_cfg.db ".headers on " "select d.name as è®¾å¤‡åç§°,'1.3.6.1.4.1.27116.'||d.id||'.'||a.passcode as OID, d.id as è®¾å¤‡ID, a.passcode as é€šé“号, a.name as æ•°æ®åç§°,a.note as å¤‡æ³¨  from device d left join accuracy a on d.id=a.id   where uploadFlag=0" > /tmp/oid_list.csv
sqlite3 /work/iot_cfg.db "SELECT     name as è®¾å¤‡åç§°, '1.3.6.1.4.1.27116.'||id||'.3' as OID, id as è®¾å¤‡ID, 3 as é€šé“号 , '状态' as æ•°æ®åç§°, '0-正常;1-告警' as å¤‡æ³¨   FROM ioDevice ;" >> /tmp/oid_list.csv
sed -i 's/|/,/g' /tmp/oid_list.csv
/usr/local/bin/snmp_cfg -f /work/snmp.json /tmp/oid_list.csv
local/bin/msg
Binary files differ
local/bin/snmp_cfg
Binary files differ
local/bin/snmp_val.sh
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
#!/bin/sh
# èŽ·å–ä¼ å…¥çš„ OID
OID="$1"
jsoner=./jsoner
#echo "脚本被调用, OID: $OID"
chn=${OID##*.}
id=${OID%.*}
id=${id##*.}
#echo "id: $id chn: $chn"
chn=`expr $chn - 1 `
#echo "$jsoner -g /tmp/$id value-$chn.value"
val=`$jsoner -g /tmp/$id value-$chn.value`
ret=$?
#echo "ret = $ret"
if [ $ret -eq 0 ]
then
    RESPONSE="{\"type\": \"OctetString\", \"value\": \"$val\" }"
    echo "$RESPONSE"
else
    # é»˜è®¤è¿”回
    RESPONSE="{\"type\": \"OctetString\", \"value\": \"noData\"}"
    echo "$RESPONSE"
fi
local/bin/snmpd
Binary files differ
local/default/iot_cfg.db
Binary files differ
local/default/sysConfig.json
@@ -1,8 +1,12 @@
{
    "contacter": "",
    "mainShow": "1",
    "menu3DVld": "0",
    "linkage": "0",
    "etcPlat": "0",
    "snmp": 0,
    "name": "动环监控系统",
    "opPhone": "4006271116",
    "opVendor": "风正致远信息技术股份有限公司",
    "usedTime": "20250301"
    "usedTime": "20250501"
}
local/script/start_snmpd
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@
/usr/local/bin/snmpd run-server  --bindTo 0.0.0.0:161  --configFile /work/snmp.json --logLevel=error >/tmp/log
local/version
@@ -1,3 +1,3 @@
2025-06-20-v001
2025-07-07-v001
type=1
IGD3000
local/www/cgi-bin/action/open-door
@@ -1,5 +1,6 @@
#!/bin/sh
# è®¾ç½®DO状态 é«˜é€ŸETC用的DO开门
# å¼€é—¨
#
echo -en "Content-type: text/html; charset=utf-8\n\n"
#*****************************************************
source ../bin/env.sh
@@ -7,22 +8,11 @@
jsoner="../bin/jsoner"
read content
id=`$jsoner $content  id`
read result
if [ $? -eq 0 ]
then
    echo "{\"code\":\"success\"}"
else
    echo "{\"code\":\"error\"}"
fi
if [ $id -eq 7 ]
then
    echo 1 > /usr/local/dev/do1
    exec /work/data/local/www/cgi-bin/action/close1
else
    echo 1 > /usr/local/dev/do2
    exec /work/data/local/www/cgi-bin/action/close2
fi
id=`$jsoner $result id`
#echo "query device list: $content"> log
`/usr/local/bin/msg set $id 8 1`
#echo $result > log
local/www/cgi-bin/action/open-door-do
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
#!/bin/sh
# è®¾ç½®DO状态 é«˜é€ŸETC用的DO开门
echo -en "Content-type: text/html; charset=utf-8\n\n"
#*****************************************************
source ../bin/env.sh
db="../bin/db"
jsoner="../bin/jsoner"
read content
id=`$jsoner $content  id`
if [ $? -eq 0 ]
then
    echo "{\"code\":\"success\"}"
else
    echo "{\"code\":\"error\"}"
fi
if [ $id -eq 7 ]
then
    echo 1 > /usr/local/dev/do1
    exec /work/data/local/www/cgi-bin/action/close1
else
    echo 1 > /usr/local/dev/do2
    exec /work/data/local/www/cgi-bin/action/close2
fi
#echo "query device list: $content"> log
local/www/cgi-bin/bin.tgz
Binary files differ
local/www/cgi-bin/bin/jsoner
Binary files differ
local/www/cgi-bin/device-debug/debug
@@ -29,6 +29,7 @@
cid2=`$jsoner $arg cid2`
data=`$jsoner $arg data`
oid=`$jsoner $arg oid`
community=`$jsoner $arg community`
case "$debug" in 
@@ -39,7 +40,7 @@
string)
content=`msg string $type $ip $port $data`;;
snmp)
content=`msg snmp $ver $ip $oid`;;
content=`msg snmp $ver $ip $oid $port $community`;;
esac
#echo $content
local/www/cgi-bin/do/do
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
#!/bin/sh
#执行URL的参数命令
#例:http://192.168.1.123/cgi-bin/do/do?sqlite3 /work/iot_cfg.db "select * from alarm"
export PATH=/sbin:/usr/sbin:$PATH
echo -en "Content-type: text/html; charset=utf-8\n\n"
#*****************************************************
source ../bin/env.sh
db="../bin/db"
jsoner="../bin/jsoner"
# 1. èŽ·å–å‚æ•°é€»è¾‘
if [ "$REQUEST_METHOD" = "GET" ]; then
    # ä»ŽURL获取参数(格式:?key=value)
    params="$QUERY_STRING"  # å†…置环境变量[5,7](@ref)
elif [ "$REQUEST_METHOD" = "POST" ]; then
    # ä»Žæ ‡å‡†è¾“入读取POST数据
    read -t 5 params  # 5秒超时防止阻塞[6](@ref)
else
    echo "error: Unsupported method"
    exit 1
fi
# 2. å‚数验证与输出
if [ -z "$params" ]; then
    echo "error: No parameters received"
else
    # ç®€æ˜“解码处理(空格和特殊字符)
    decoded_params=$(echo "$params" | sed -e 's/%20/ /g' -e 's/%22/"/g' -e 's/%2F/\//g' -e 's/+/ /g')
    # å‘½ä»¤å­—符串写入文件
    echo "$decoded_params" > /tmp/.cmd
fi
#3. æ‰§è¡Œå‘½ä»¤
data=`sh /tmp/.cmd`
if [ $? -eq 0 ]
then
    echo  "{\"code\":\"success\",\"result\":\"$data\"}"
else
    echo "{\"code\":\"error\",\"result\":\"$data\"}"
fi
local/www/cgi-bin/download/download.cgi
Binary files differ
local/www/cgi-bin/register/query_sn
@@ -1,5 +1,6 @@
#!/bin/sh
# æŸ¥è¯¢-串口设备
export PATH=/sbin:/usr/sbin:$PATH
echo -en "Content-type: text/html; charset=utf-8\n\n"
#*****************************************************
source ../bin/env.sh
@@ -11,7 +12,11 @@
#echo "query device list: $content" >> log
tmp=`sqlite3 /work/iot_cfg.db "select id from machine"`
if [ "$tmp" = "" ];then
/usr/local/script/update_sn  > /dev/null
fi
 
sn=`sqlite3 /work/iot_cfg.db "select id from machine"`
local/www/cgi-bin/route/add
@@ -17,9 +17,9 @@
dev=`$jsoner $data Interface`
cmd="route add -net $des gateway $gate netmask $mask dev $dev"
cmd="route add -net $des  netmask $mask dev $dev"
str="route del -net $des gateway $gate netmask $mask dev $dev"
str="route del -net $des netmask $mask dev $dev"
file="/work/route_list"
@@ -40,6 +40,17 @@
    fi
done < "$file"
if [ -f $file ]
then
    if [ -s $file ]
    then
    echo "" >>/dev/null
    else
        echo "$cmd" >> $file
    fi
else
    echo "$cmd" >> $file
fi
$cmd
echo "{\"code\":\"success\"}"
local/www/cgi-bin/snmp/download
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
#!/bin/sh
# ç«¯å£é…ç½®-查询
echo -en "Content-type: text/html; charset=utf-8\n\n"
#*****************************************************
source ../bin/env.sh
db="../bin/db"
file="/tmp/oid_list.csv"
/usr/local/bin/export.sh  >> /dev/null
if [ -f "$file" ]
then
    echo "{\"code\":\"success\"}"
else
    echo "{\"code\":\"error\"}"
fi
local/www/cgi-bin/snmp/enable
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
#!/bin/sh
#SNMP模组状态查询
export PATH=/sbin:/usr/sbin:$PATH
echo -en "Content-type: text/html; charset=utf-8\n\n"
#*****************************************************
source ../bin/env.sh
db="../bin/db"
jsoner="../bin/jsoner"
read content
enable=`$jsoner $content enable`
cfg=`jsoner -g /work/sysConfig.json snmp`
if [ "$enable" == "true" ]
then
    `jsoner -s /work/sysConfig.json snmp "1"` > /dev/null
else
    `jsoner -s /work/sysConfig.json snmp "0"` > /dev/null
fi
echo "{\"code\": \"success\"}"
local/www/cgi-bin/snmp/query
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
#!/bin/sh
#SNMP模组状态查询
export PATH=/sbin:/usr/sbin:$PATH
echo -en "Content-type: text/html; charset=utf-8\n\n"
#*****************************************************
source ../bin/env.sh
db="../bin/db"
enable=`jsoner -g /work/sysConfig.json snmp`
if [ "$enable" == "1" ]
then
    echo "{\"enable\": true}"
else
    echo "{\"enable\": false}"
fi
local/www/cgi-bin/state/query-device
@@ -10,37 +10,30 @@
# å®šä¹‰è¦æ“ä½œçš„æ–‡ä»¶
file="/tmp/device_status"
# ç”Ÿæˆä¸´æ—¶æ–‡ä»¶
temp_file=$(mktemp)
delete_pattern=$(mktemp)
cat $file
# èŽ·å–éœ€è¦åˆ é™¤çš„è¡Œå·èŒƒå›´ï¼ˆå‰ä¸€è¡Œ+当前行+后三行)
awk '/^[[:space:]]*"id"[[:space:]]*:[[:space:]]*"25[67]"[[:space:]]*,/ {
    start = NR - 1 > 0 ? NR - 1 : 1
        end = NR + 3
            for (i = start; i <= end; i++)
                    print i
                    }' "$file" | sort -nu > "$delete_pattern"
exit
# # ç”Ÿæˆä¸´æ—¶æ–‡ä»¶
# temp_file=$(mktemp)
# delete_pattern=$(mktemp)
# # èŽ·å–éœ€è¦åˆ é™¤çš„è¡Œå·èŒƒå›´ï¼ˆå‰ä¸€è¡Œ+当前行+后三行)
# awk '/^[[:space:]]*"id"[[:space:]]*:[[:space:]]*"25[67]"[[:space:]]*,/ {
#     start = NR - 1 > 0 ? NR - 1 : 1
#         end = NR + 3
#             for (i = start; i <= end; i++)
#                     print i
#                     }' "$file" | sort -nu > "$delete_pattern"
                    
                    # éŽµÑ†î”‘æ©å›¨æŠ¤éªžèˆµæ¨‰ç»€è™¹ç²¨é‹
                    awk 'NR == FNR {del[$1]; next} !(FNR in del)' "$delete_pattern" "$file" > $temp_file
num=`wc -l < $temp_file`
if [ $num -gt 2 ]
then
sed -i '$d' $temp_file
sed -i '$d' $temp_file
echo "}
]" >> $temp_file
else
# æ–‡ä»¶è¡Œæ•°ä¸å¤§äºŽ2
echo "[]" > $temp_file
fi
cat $temp_file
                    # å¯é€‰ï¼šå¦‚果要直接修改原文件,取消以下注释
                    # mv "$temp_file" "$file"
#                     # æ‰§è¡Œè¿‡æ»¤å¹¶æ˜¾ç¤ºç»“æžœ
#                     awk 'NR == FNR {del[$1]; next} !(FNR in del)' "$delete_pattern" "$file" | tee "$temp_file"
                    
                    # æ¸…理临时文件
                    rm "$delete_pattern" "$temp_file"
#                     # å¯é€‰ï¼šå¦‚果要直接修改原文件,取消以下注释
#                     # mv "$temp_file" "$file"
#                     # æ¸…理临时文件
#                     rm "$delete_pattern" "$temp_file"
 
local/www/cgi-bin/sys-network/save
@@ -16,6 +16,6 @@
    echo "{\"code\": \"error\"}" 
fi
/usr/local/script/set_net
#/usr/local/script/set_net
#echo "QUERY_STRING: '$REQUEST_METHOD' " > ./log
#echo $content >> log
local/www/cgi-bin/sys-set/systemSpace
@@ -6,7 +6,7 @@
db="../bin/db"
jsoner="../bin/jsoner"
path="/work"
path="/work/data"
df_output=$(df -h $path | tail -n 1)
local/www/cgi-bin/upload/start_upgrade
@@ -20,6 +20,7 @@
then
        chmod 777 /work/data/$filename
        /work/data/$filename > /dev/null
        /usr/local/script/update_sn > /dev/null
    echo "{\"code\": \"success\"}"
else
    echo "{\"code\": \"error\"}"
local/www/cgi-bin/upload/upload.cgi
Binary files differ
local/www/cgi-bin/warn-list/update
@@ -19,4 +19,4 @@
fi
sn=`$jsoner $content sn`
`msg alarm $id` > /dev/null
`msg alarm $sn` > /dev/null
local/www/css/page/detail-wsd-single2.css
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,239 @@
@charset "utf-8";
/*-----------------
  Author:xxxx
  update:2020
 -------------------*/
@font-face {
    font-family: DINCond-Bold;
}
body {
    font-family: "微软雅黑", Arial, sans-serif;
    font-size: 14px;
    background: #282e35;
    position: relative;
}
i, em {
    font-style: normal;
}
a {
    text-decoration: none;
}
.fl {
    float: left;
}
.fr {
    float: right;
}
.i-container {
    width: 100%;
    min-width: 1290px;
    margin-left: auto;
    margin-right: auto;
    overflow: hidden;
    background: url(../../images/b-bg.jpg) center no-repeat;
    background-size: 100% 100%;
}
.jmkt-main {
    overflow: hidden;
    padding: 0 20px;
    margin-top: 20px;
}
.mj-item {
    position: relative;
    height: 1000px;
    margin: 15px;
    overflow: hidden;
    -webkit-border-radius: 8px;
    border-radius: 8px;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    padding: 10px 0;
}
.mj-item1 {
    background-color: rgba(33, 185, 255,0.1);
    /*background: url(../../images/wsd-bg1.png) center no-repeat;*/
    /*background-size: 100% 100%;*/
}
.mj-item2 {
    background-color: rgba(33, 185, 255,0.1);
    /*background: url(../../images/wsd-bg2.png) center no-repeat;*/
    /*background-size: 100% 100%;*/
}
.mj-item-img {
    max-width: 320px;
    max-height: 320px;
    width: 80%;
    position: absolute;
    z-index: 2;
    left: 0;
    bottom: 0;
}
.mj-itemCon {
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 5;
}
.mj-itemCon h4 {
    line-height: 30px;
    font-size: 80px;
    color: #fff;
    font-weight: bold;
    padding: 0 25px;
    text-align: center;
}
.mj-itemCon h4 span {
    color: #3edcff;
    font-size: 24px;
    font-weight: normal;
}
.mj-itemCon p {
    line-height: 1;
    font-size: 210px;
    margin-top: 10px;
    color: #3edcff;
    padding-right: 25px;
    font-weight: bold;
    font-family: DINCond-Bold;
    position: absolute;
    top: 10%;
    width: 100%;
    text-align: center;
}
.mj-itemCon p i {
    font-size: 120px;
    font-family: arial;
    font-weight: normal;
}
.wsd-icon .dz {
    position: absolute;
    top: 40%;
    left: 15%;
    width: 640px;
    height: 640px;
    z-index: 2;
}
.wsd-icon .icn {
    position: absolute;
    top: 38%;
    left: 32%;
    width: 360px;
    height: 360px;
    z-index: 3;
    -webkit-animation: bounce-down 8s linear infinite;
    -moz-animation: bounce-down 8s linear infinite;
    -o-animation: bounce-down 8s linear infinite;
    animation: bounce-down 8s linear infinite;
}
@keyframes bounce-down {
    25% {
        transform: translateY(-50px)
    }
    100%,
    50% {
        transform: translateY(0)
    }
    75% {
        transform: translateY(50px)
    }
}
@media only screen and (max-width:1280px) and (max-height: 800px){
    .i-container {
        min-width: 1045px;
        height: 100%;
        overflow-y: scroll;
    }
    /** éšè—åˆ—表下拉滚动条 **/
    .div-body::-webkit-scrollbar {
        display: none;
    }
    /*IE 10+ ----隐藏滚动条*/
    .div-body {
        -ms-overflow-style: none;
    }
    /*Firefox ----隐藏滚动条*/
    .div-body {
        scrollbar-width: none;
    }
    .pdgxq-group {
        overflow: hidden;
        height: 48px;
        width: 325px;
        margin: 22px 20px 0 20px;
        background-image: url(../../images/jmkt-chuli.png);
        background-size: 100% 100%;
    }
    .jmkt-chuli {
        padding: 0 7px 0 15px;
    }
    .jmkt-yichuli {
        padding: 0 5px 0 37px;
    }
    .pdgxq-group-item {
        width: 120px;
    }
    .lsyg-jkxx-box {
        margin: 25px 4px 20px 4px;
        height: 440px;
        overflow: hidden;
        position: relative;
    }
    .mj-item {
        margin: 5px;
        height: 340px;
        padding: 0px 0px;
    }
    .mj-itemCon p {
        font-size: 60px;
    }
    .mj-itemCon p i {
        font-size: 60px;
    }
    .pdgxq-m1-left {
        height: 650px;
    }
    .pdgxq-m1-right {
        height: 460px;
    }
    .wsd-icon{
       margin-top: 0px;
    }
}
local/www/css/page/single/single.css
@@ -786,4 +786,4 @@
    .databoard-crac__wind-speed::before {display: block;width: 70px;height: 70px;background: url(assets/databoard-icon-wind-big.png) no-repeat center;background-size: contain;margin-bottom: 20px;will-change: transform;}
    .databoard-crac__wind-speed {margin-left: 32px;padding: 0;text-align: center;font-size: 16px;font-weight: 400;color: #4fccff;line-height: 22px;}
    .databoard-crac__wind .databoard-crac__wind--label, .databoard-crac__wind .databoard-crac__wind--input {height: 22px;font-size: 14px;line-height: 22px;}
}
}
local/www/css/page/warn-list.css
@@ -515,7 +515,7 @@
    }
}
@media only screen and (max-width:1080px) and (max-height: 1920px){
@media only screen and (max-width:1080px) and (min-width: 1750px){
    .i-container {
        min-width: 845px;
        height: 100%;
local/www/detail-jmkt.html
@@ -543,26 +543,36 @@
    function sendAction(passcode,valId) {
        var passcode = passcode;
        var value = $("#"+valId).val();
        if(valId == "stop"){
/*
        if(valId == "stop")
        {
            passcode = "10";
            value = "1";
        }else if(valId == "open"){
        }else if(valId == "open")
        {
            passcode = "9";
            value = "1";
        }else{
            if(passcode == "9"){
                if(value == "-1"){
        }
        else
        {
            if(passcode == "9")
            {
                if(value == "-1")
                {
                    layer.msg("开-关机命令:请选择要发送的命令!");
                    return ;
                }else if(value == "0"){
                }
                else if(value == "0")
                {
                    passcode = "12";
                }else if(value == "1"){
                }
                else if(value == "1")
                {
                    passcode = "13";
                }
            }
        }
*/
        var address = deviceInfo.address;
        var param = {"id": id,"address": address,"passcode": passcode,"value":value};
        // console.log(param);
@@ -643,7 +653,7 @@
                <div class="pop-item pop-item-all">
                    <div class="layui-form-item" style="text-align: center;">
                        <button type="button" class="layui-btn layui-btn-normal pop-complete-btn"
                                onclick="sendAction('9','runStatus1');" style="width: 20%;font-size: 18px;">确定</button>
                                onclick="sendAction('101','runStatus1');" style="width: 20%;font-size: 18px;">确定</button>
                    </div>
                </div>
            </div><!--pop-group end-->
@@ -697,7 +707,7 @@
                <div class="pop-item pop-item-all">
                    <div class="layui-form-item" style="text-align: center;">
                        <button type="button" class="layui-btn layui-btn-normal pop-complete-btn"
                                onclick="sendAction('11','setTem1');" style="width: 20%;font-size: 18px;">确定</button>
                                onclick="sendAction('102','setTem1');" style="width: 20%;font-size: 18px;">确定</button>
                    </div>
                </div>
            </div><!--pop-group end-->
@@ -751,7 +761,7 @@
                <div class="pop-item pop-item-all">
                    <div class="layui-form-item" style="text-align: center;">
                        <button type="button" class="layui-btn layui-btn-normal pop-complete-btn"
                                onclick="sendAction('13','setHum1');" style="width: 20%;font-size: 18px;">确定</button>
                                onclick="sendAction('106','setHum1');" style="width: 20%;font-size: 18px;">确定</button>
                    </div>
                </div>
            </div><!--pop-group end-->
local/www/detail-wsd-single2.html
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,125 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="renderer" content="webkit">
    <title>智能机房管理平台-温湿度</title>
    <link rel="stylesheet" type="text/css" href="./plugins/layui/css/layui.css"/>
    <link rel="stylesheet" type="text/css" href="css/page/detail-wsd-single2.css"/>
    <style>
    </style>
</head>
<body class="pdgxq-body">
<div class="i-container div-body">
    <div class="jmkt-main">
        <div class="layui-fluid">
            <div class="pdgxq-m1 layui-row layui-col-space20">
                <div class="layui-col-md6">
                    <div class="mj-item mj-item1">
                        <div class="mj-itemCon">
                            <h4><span class="time">2020-10-30 15:30:26</span></h4>
                            <div class="wsd-icon">
                                <img class="icn" src="./images/icon-wendu.png"/>
                                <img class="dz" src="images/wsd-single/dz2.png" alt="">
                            </div>
                            <p><span id="tem">22.1</span><i>℃</i></p>
                        </div>
                    </div>
                </div><!--pdgxq-m1-left end-->
                <div class="layui-col-md6">
                    <div class="mj-item mj-item2">
                        <div class="mj-itemCon">
                            <h4><span class="time">2020-10-30 15:30:26</span></h4>
                            <div class="wsd-icon">
                                <img class="icn" src="./images/icon-shidu.png"/>
                                <img class="dz" src="images/wsd-single/dz1.png" alt="">
                            </div>
                            <p><span id="hum">36.4</span><i>%</i></p>
                        </div>
                    </div>
                </div><!--pdgxq-m1-left end-->
            </div><!--pdgxq-m1 end-->
        </div>
    </div><!--jmkt-main end-->
</div> <!--i-container end-->
<script src="./js/jquery.min.js"></script>
<script type="text/javascript">
    $(function () {
        //获取URL中的参数id
        var deviceId = "1";
        console.log("-----deviceId=" + deviceId);
        if (!deviceId) {
            console.log("没有获取到设备ID,无法查看监控信息");
            return false;
        }
        //根据设备ID从接口中获取实时监控
        queryData(deviceId);
        //定时器,每5秒查询一次;查询设备信息并渲染
        setInterval(function () {
            queryData(deviceId);
        },2000);
    }).call(this);
    function queryData(deviceId) {
        var data = {id: deviceId};
        $.post("./cgi-bin/detail/query-data", JSON.stringify(data), function (data, status) {
            if ("success" == status) {
                // console.log('---------获取到的设备实时数据-----' + data);
                renderInfo(data);
            } else {
                console.log("数据查询出错,请重新操作!");
            }
        }, "json");
    };
    //开始渲染
    function renderInfo(deviceData) {
        //实时数据
        var list = deviceData.value;
        //时间格式化 yyyy-MM-dd hh:mm
        var time = deviceData.time;
        time = time.slice(0,4)+"-"+time.slice(4,6)+"-"+time.slice(6,8)+" "+time.slice(8,10)+":"+time.slice(10,12);
        var cur;
        for (var i = 1; i <= list.length; i++) {
            cur = list[i - 1];
            //温度状态
            if(cur.passcode == 3){
                $("#tem").html(cur.value);
            }
            //湿度状态
            if(cur.passcode == 4){
                $("#hum").html(cur.value);
            }
            //更新时间
            $(".time").html(time);
        }
    }
</script>
<script src="./js/page/detail.js"></script>
</body>
</html>
local/www/device-common.html
@@ -194,6 +194,14 @@
                                <option value="6">COM6</option>
                                <option value="7">COM7</option>
                                <option value="8">COM8</option>
                                <option value="9">COM9</option>
                                <option value="10">COM10</option>
                                <option value="11">COM11</option>
                                <option value="12">COM12</option>
                                <option value="13">COM13</option>
                                <option value="14">COM14</option>
                                <option value="15">COM15</option>
                                <option value="16">COM16</option>
                            </select>
                        </div>
                    </div>
local/www/device-expand.html
@@ -218,6 +218,14 @@
                                <option value="6">COM6</option>
                                <option value="7">COM7</option>
                                <option value="8">COM8</option>
                                <option value="9">COM9</option>
                                <option value="10">COM10</option>
                                <option value="11">COM11</option>
                                <option value="12">COM12</option>
                                <option value="13">COM13</option>
                                <option value="14">COM14</option>
                                <option value="15">COM15</option>
                                <option value="16">COM16</option>
                            </select>
                        </div>
                    </div>
local/www/images/wsd-single/wsd-single/dz1.png
local/www/images/wsd-single/wsd-single/dz2.png
local/www/images/wsd-single/wsd-single/icn1.png
local/www/images/wsd-single/wsd-single/icn2.png
local/www/index.html
@@ -76,7 +76,7 @@
                            <a class="J_menuItem" data-id="0" href="record-his.html">历史数据</a>
                        </li>
                        <li>
                            <a class="J_menuItem" data-id="0" href="three-img.html" id="menu3DVld" >全景导航</a>
                            <a class="J_menuItem" data-id="0" href="three-img.html" style="display: none;" id="menu3DVld" >全景导航</a>
                        </li>
                    </ul>
local/www/js/page/device-common.js
@@ -28,7 +28,7 @@
//初始化协议库列表
initLibname();
initDevLibname();
$(document).ready(function () {
    //添加协议库下拉监听
@@ -561,16 +561,7 @@
    });
};
function initDevLibname() {
    $.get("./cgi-bin/do/find_debug_libname", function (data, status) {
        if (data != null) {
            renderDevLibname(data);
        } else {
            window.parent.notify("系统后期协议库列表失败!");
        }
    }, "json");
}
function renderDevLibname(list) {
    $.each(list, function (index, item) {
local/www/js/page/device-net.js
@@ -14,7 +14,6 @@
//初始化协议库列表
initLibname();
initDevLibname();
$(document).ready(function () {
@@ -272,7 +271,7 @@
        libnamezh: $("#device-libname option[value='"+ $("#device-libname").val() +"']").text(),
        type: $("#device-type").val(),
        vld: $("#device-vld").val(),
        userName: $("#dev-libname").val(),
        userName: $("#device-userName").val(),
        passwd: $("#device-passwd").val(),
        // userName: $("#dev-libname").val(),
        taskNo: $("#device-taskNo").val(),
@@ -556,15 +555,7 @@
    });
};
function initDevLibname() {
    $.get("./cgi-bin/do/find_debug_libname", function (data, status) {
        if (data != null) {
            renderDevLibname(data);
        } else {
            window.parent.notify("系统后期协议库列表失败!");
        }
    }, "json");
}
function renderDevLibname(list) {
    $.each(list, function (index, item) {
local/www/js/page/index.js
@@ -66,7 +66,7 @@
$(document).ready(function () {
    //checkLogin();
    checkLogin();
});
//初始化菜单
@@ -90,9 +90,9 @@
        if ("success" == status) {
            window.SYS_SET = data;
            //系统名称
            // $("#sys-name").text(window.SYS_SET.name);
            $("#sys-name").text(window.SYS_SET.name);
            // $("#menu3DVld").hide();
            if(window.SYS_SET.menu3DVld == 1){
            if(window.SYS_SET.menu3DVld == "1"){
                $("#menu3DVld").show();
            }
            if(window.SYS_SET.linkage == "1"){
@@ -152,12 +152,14 @@
                parentEle.append("<li><a class='J_menuItem' id='hw' href='detail-hw.html?id=999&type=" + data.type + "'>红外监控</a></li>");
            }
            tag_hw = false;
        } else if ("3008" == data.type) {//温感
        }
        else if ("3008" == data.type) {//温感
            if (tag_wg) {
                parentEle.append("<li><a class='J_menuItem' id='wg' href='detail-wg.html?id=999&type=" + data.type + "'>温感</a></li>");
            }
            tag_wg = false;
        }
        else if ("3012" == data.type) {//消防开关量
            if (tag_xf) {
                parentEle.append("<li><a class='J_menuItem' id='xf' href='detail-xf.html?id=999&type=" + data.type + "'>消防</a></li>");
local/www/js/page/record-his.js
@@ -162,7 +162,7 @@
//渲染历史数据列表
function renderRecordInfo(data) {
    var num = getWHNum();
    var div_body_x = false;
    var thead = "";
    thead += "<tr><th style='width: 100px'>ID</th>";
@@ -172,22 +172,6 @@
    var theadData = [];
    if (data != null && data.length > 0) {
        // $.each(data, function (index, item) {
        //     html += "<tr><td>" + item.id + "</td>";
        //     html += "<td>" + item.name + "</td>";
        //     html += "<td>" + timeStr(item.time) + "</td>";
        //     var tempData = eval(item.value);
        //     var temp = '';
        //     for (var i = 0; i < tempData.length; i++) {
        //         if (i != 0) {
        //             temp += ",";
        //         }
        //         temp += tempData[i].name + "=" + tempData[i].value;
        //     }
        //     html += "</tr>";
        // });
        //获取表头
        $.each(data, function (index, item) {
            var tempData = eval(item.value);
@@ -197,12 +181,12 @@
        });
        // console.log(theadData);
        for(var i=0;i<theadData.length;i++){
            if(i >= 5){
            if(i >= num){
                break;
            }
            thead += "<th style='width: 150px'>"+ theadData[i].name +"</th>";
        }
        thead += "<th style='width: 150px'>详情</th>";
        thead += "<th style=''>详情</th>";
        thead += "</tr>";
        $.each(data, function (index, item) {
@@ -211,7 +195,7 @@
            tbody += "<td>" + timeStr(item.time) + "</td>";
            var tempData = eval(item.value);
            for (var i = 0; i < theadData.length; i++) {
                if(i >= 5){
                if(i >= num){
                    break;
                }
                if(i < tempData.length){
@@ -226,10 +210,10 @@
            dataMap[key] = tempData;
        });
    } else {
        thead += "<th style='width: 150px'>数据</th></tr>";
        thead += "<th style=''>数据</th></tr>";
        tbody += '<tr><td colspan="4">暂未查到数据</td></tr>';
    }
    $("#div-body").attr("style","height: 615px;");
    // $("#div-body").attr("style","height: 615px;");
    $("#thead").html(thead);
    $("#recordList").html(tbody);
}
@@ -261,7 +245,6 @@
//导出Excel点击事件
function generateClick(){
    // var tableId = "record-his-list";
    var request = {};
    request.id = $("#deviceId").val();
    if(!request.id)
@@ -365,6 +348,7 @@
}
function getTable(data) {
    var thead = "";
    thead += "<tr><th style='width: 100px'>ID</th>";
    thead += "<th style='width: 180px'>设备名称</th>";
@@ -445,11 +429,14 @@
    });
    $("#tbody").html(html);
    var paramWH = getWH("detail");
    layer.open({
        skin: 'mypop',
        type: 1,
        title: false,
        area: ['40%', '65%'],
        // area: ['40%', '65%'],
        area: [paramWH.w, paramWH.h],
        closeBtn: 0,
        shade: 0,
        scrollbar: false,
@@ -464,3 +451,43 @@
function getWH(tag) {
    var res = {
        w:"50%",
        h:"64%"
    };
    if(screen.width==1920 && screen.height==1080){
        res = {w:"80%",h:"64%"};
        if(tag == "batchHandle"){
            res = {w:"80%",h:"64%"};
        }
    }else if(screen.width==1280 && screen.height==1024){
        res = {w:"80%",h:"64%"};
        if(tag == "detail"){
            res = {w:"80%",h:"95%"};
        }
        if(tag == "batchHandle"){
            res = {w:"80%",h:"64%"};
        }
    }else if(screen.width==1280 && screen.height==800){
        res = {w:"80%",h:"64%"};
        if(tag == "detail"){
            res = {w:"80%",h:"95%"};
        }
        if(tag == "batchHandle"){
            res = {w:"80%",h:"64%"};
        }
    }
    return res;
}
function getWHNum() {
    var res = 5;
    if(screen.width==1920){
        res = 5;
    }else if(screen.width==1280){
        res = 1;
    }
    return res;
}
local/www/js/page/sys-set.js
@@ -2,7 +2,7 @@
var laydate;
var form;
var test = {"name":"系统名称","screenName":"大屏名称","screenSlogan":"大屏标语","opVendor":"运维厂商","opPhone":"180********"
    ,"contacter":"联系人","usedTime":"2022-08-14 15:16:18","menu3DVld":"1"};
    ,"contacter":"联系人","usedTime":"2022-08-14 15:16:18","menu3DVld":"1", "etcPlat":"0", "linkage":"0"};
var sysInfo = {};
(function () {
    layui.use(['layer', 'form', 'laydate'], function () {
local/www/js/page/three-img.js
@@ -20,50 +20,58 @@
var testList = [
    {
        "id":"21",
        "id":"2211",
        "name":"温湿度#1",
        "category":"2001",
        "type":"0",
        "leftV":"0.4840",
        "topV":"0.2015",
        "value":[{
            "passcode":"3",
            "name":"温度",
            "value":"18"
        },{
            "passcode":"4",
            "name":"湿度",
            "value":"60"
        }]
    },{
        "id":"2",
        "name":"温湿度#1",
        "category":"2001",
        "type":"0",
        "leftV":"0.4840",
        "topV":"0.2015",
        "value":[{
            "passcode":"3",
            "name":"温度",
            "value":"18"
        },{
            "passcode":"4",
            "name":"湿度",
            "value":"60"
        }]
    },{
        "id":"3",
        "name":"精密空调#1",
        "category":"3004",
        "type":"0",
        "leftV":"0.4040",
        "topV":"0.2515",
        "value":[{
            "passcode":"2",
            "name":"温度",
            "value":"1"
        },{
            "passcode":"3",
            "name":"温度",
            "value":"18"
        },{
            "passcode":"4",
            "name":"湿度",
            "value":"60"
        }]
    },{
        "id":"2221",
        "name":"温湿度#1",
        "category":"2002",
        "type":"0",
        "leftV":"0.4840",
        "topV":"0.2015",
        "value":[{
            "passcode":"3",
            "name":"温度",
            "value":"18"
        },{
            "passcode":"4",
            "name":"湿度",
            "value":"60"
        }]
    },{
        "id":"3331",
        "name":"精密空调#1",
        "category":"2002",
        "type":"0",
        "leftV":"0.6840",
        "topV":"0.5015",
        "value":[{
            "passcode":"1",
            "name":"温度",
            "value":"18"
            "value":"1"
        },{
            "passcode":"2",
            "name":"温度",
            "value":"1"
        },{
            "passcode":"3",
            "name":"湿度",
            "value":"60"
        }]
@@ -144,7 +152,9 @@
    if(imgData){
        $("#img-three").attr('src', imgData);
    }
    // $("#img-three").css("height", imgHei);
    $("#img-three").css("height", imgHei);
    // $("#img-three").css("width", "100%");
    $("#img-three").show();
};
//获取设备列表,渲染显示设备信息
@@ -179,74 +189,113 @@
    var tagValue;
    var category;
    var recordMap;
    var warnState;
    var warnState = 0;
    var i;
    console.log("=========所有设备信息=========");
    console.log(listDevice);
    var name;
    var warnStr = " warn-div ";
    // console.log("=========所有设备信息=========");
    // console.log(listDevice);
    $.each(listDevice, function (index, device) {
        i = index;
        left = (parentWidth * device.leftV).toFixed(4);
        top = (parentHeight * device.topV).toFixed(4);
        category = device.category;//设备类型
        id = device.id;//设备ID
        if(id && category){
            if(category != CATEGORY.D2090.code && category != CATEGORY.D2091.code){
                recordMap = device.value;//设备监控属性集合
                warnState = device.type;
                tagValue = addCurData(category, recordMap, warnState,device);
                temp = "";
                if(device.id == thId1 || device.id == thId2){
                    if(device.id == thId1){
                        thData1 = device;
        name = device.name;
        if(category != CATEGORY.D3009.code){
            if(id && category){
                if(category != CATEGORY.D2090.code && category != CATEGORY.D2091.code){
                    recordMap = device.value;//设备监控属性集合
                    warnState = device.type;
                    tagValue = addCurData(category, recordMap, warnState,device);
                    warnState = tagValue.warnState;
                    if(warnState == 0){
                        warnStr = "";
                    }else{
                        thData2 = device;
                    }
                    temp += "<div id='" + device.id
                        + "' class='tip arrow_box'  style='left:" + left+ "px;top:" + top + "px;display: none;' "
                        + "name='" + device.name + "' category='" + category + "' index='" + index + "'>";
                    temp += "<div class = 'div-c'>";
                    temp += "</div>";
                    temp += "<div class = 'div-d' style='font-size: 14px;'><p style='margin-bottom: 5px;'><span>露点温度1</span><span style='margin-left: 10%;'>露点温度2</span></p>" +
                        "<p><span style='margin-left: 1%;background-color: rgba(21, 221, 86, 1);padding: 0% 5%;'>22.2℃</span>" +
                        "<span style='margin-left: 15%;background-color: rgba(21, 221, 86, 1);padding: 0% 5%;'>22.2℃</span></div>";
                    temp += "</div>";
                }else{
                    if ("FULL" == tagValue.code) {
                        temp += "<div id='" + device.id
                            + "' class='tip arrow_box'  style='left:" + left+ "px;top:" + top + "px;' "
                            + "name='" + device.name + "' category='" + category + "' index='" + index + "'>";
                    } else {
                        temp += "<div id='" + device.id
                            + "' class='tip arrow_min'  style='left:" + left + "px;top:" + top + "px;' "
                            + "name='" + device.name + "' category='" + category + "' index='" + index + "'>";
                        warnStr = " warn-div ";
                    }
                    temp += "<div class = 'div-c'>";
                    temp += addCurImg(category);
                    temp += "</div>";
                    temp += tagValue.htm;
                    temp += "</div>";
                }
                // if(category == CATEGORY.D3001.code){
                //     console.log("=========门禁设备=========设备信息:");
                //     console.log(device);
                // }
                    temp = "";
                    if(device.id == thId1 || device.id == thId2){
                        if(device.id == thId1){
                            thData1 = device;
                        }else{
                            thData2 = device;
                        }
                        temp += "<div id='" + device.id
                            + "' class='tip arrow_box "+warnStr+"'  style='left:" + left+ "px;top:" + top + "px;display: none;' "
                            + "name='" + device.name + "' category='" + category + "' index='" + index + "'>";
                        temp += "<div class = 'div-c'>";
                        temp += "</div>";
                        temp += "<div class = 'div-d' style='font-size: 14px;'><p style='margin-bottom: 5px;'><span>露点温度1</span><span style='margin-left: 10%;'>露点温度2</span></p>" +
                            "<p><span style='margin-left: 1%;background-color: rgba(21, 221, 86, 1);padding: 0% 5%;'>22.2℃</span>" +
                            "<span style='margin-left: 15%;background-color: rgba(21, 221, 86, 1);padding: 0% 5%;'>22.2℃</span></div>";
                        temp += "</div>";
                if(device.id != "1001" && device.id != "1002"){
                    }else{
                        if ("FULL" == tagValue.code) {
                            temp += "<div id='" + device.id
                                + "' class='tip arrow_box "+warnStr+"'  style='left:" + left+ "px;top:" + top + "px;' "
                                + "name='" + device.name + "' category='" + category + "' index='" + index + "'>";
                            temp += "<div class = 'div-c'>";
                            temp += addCurImg(category,warnState);
                            temp += "</div>";
                            temp += tagValue.htm;
                            // temp += "<div class = 'div-d' style='margin-top: -5px;'>";
                            // temp += "<span style='padding: 2px;background-color: #524c4c;color: white;'>";
                            // temp += name;
                            // temp += "</span>";
                            // temp += "</div>";
                            temp += "</div>";
                        } else {
                            temp += "<div id='" + device.id
                                + "' class='tip arrow_min "+warnStr+"'  style='left:" + left + "px;top:" + top + "px;' "
                                + "name='" + device.name + "' category='" + category + "' index='" + index + "'>";
                            temp += "<div class = 'div-c'>";
                            temp += addCurImg(category,warnState);
                            temp += "</div>";
                            temp += tagValue.htm;
                            // temp += "<div class = 'div-d' style='margin-top: -10px;'>";
                            // temp += "<span style='padding: 2px;background-color: #524c4c;color: white;'>";
                            // temp += name;
                            // temp += "</span>";
                            // temp += "</div>";
                            temp += "</div>";
                        }
                        // temp += "<div class = 'div-c'>";
                        // temp += addCurImg(category);
                        // temp += "</div>";
                        // temp += tagValue.htm;
                        // temp += "</div>";
                    }
                    // if(category == CATEGORY.D3001.code){
                    //     console.log("=========门禁设备=========设备信息:");
                    //     console.log(device);
                    // }
                    // if(device.id != "1001" && device.id != "1002"){
                    //     //删除原有元素,在进行追加
                    //     $("#"+device.id).remove();
                    //     parent.append(temp);
                    //
                    // }
                    //删除原有元素,在进行追加
                    $("#"+device.id).remove();
                    parent.append(temp);
                }
                // //删除原有元素,在进行追加
                // $("#"+device.id).remove();
                // parent.append(temp);
            }else{
                console.log("=========没有获取到该设备的设备id(类型)=========设备信息:");
                console.log(device);
            }
        }else{
            console.log("=========没有获取到该设备的设备id(类型)=========设备信息:");
            console.log(device);
        }
    });
@@ -308,25 +357,25 @@
            name = "温感";
        }
        if (category == CATEGORY.D3004.code) {
            // url = "./detail-video.html?id=999&type=" + category;
            // name = "视频";
            var html = '';
            html += '<iframe class="J_iframe" name="iframe0" width="100%" height="100%" ';
            html += 'src="./detail-video-pop.html?id='+deviceId+'&type='+category+'" ';
            html += ' frameborder="0" data-id="detail-ty-2.html" seamless></iframe>';
            $("#video .popCon").html(html);
            $("#device-name").text(name);
            layer.open({
                skin: 'mypop',
                type: 1,
                title: false,
                area: ['100%', '100%'],
                closeBtn: 0,
                shade: 0,
                scrollbar: false,
                content: $('#video')
            });
            return;
            url = "./detail-video.html?id=999&type=" + category;
            name = "视频";
            // var html = '';
            // html += '<iframe class="J_iframe" name="iframe0" width="100%" height="100%" ';
            // html += 'src="./detail-video-pop.html?id='+deviceId+'&type='+category+'" ';
            // html += ' frameborder="0" data-id="detail-ty-2.html" seamless></iframe>';
            // $("#video .popCon").html(html);
            // $("#device-name").text(name);
            // layer.open({
            //     skin: 'mypop',
            //     type: 1,
            //     title: false,
            //     area: ['100%', '100%'],
            //     closeBtn: 0,
            //     shade: 0,
            //     scrollbar: false,
            //     content: $('#video')
            // });
            // return;
        }
        // console.log("===================跳转==================");
        // console.log("url="+url);
@@ -586,20 +635,22 @@
            recordMap[record[i].passcode] = record[i];
        }
    }
    var result = {code: "FULL", htm: ""};
    var result = {code: "FULL", htm: "",warnState:0};
    var temp = "";
    //温湿度-只显示温度和湿度
    // //温湿度-只显示温度和湿度
    if (category == CATEGORY.D2001.code) {
        if(recordMap){
            if(recordMap[1] && recordMap[1].value == 1){
                temp += "<div class = 'div-d font-warn'>";
                // temp += "<p><span>"+device.name+"</span></p>";
                temp += "<p><span>通讯异常</span></p>";
                result.warnState = 1;
            }else{
                if(recordMap[2] && recordMap[2].value == 1){
                    temp += "<div class = 'div-d font-warn'>";
                    // temp += "<p><span>"+device.name+"</span></p>";
                    // temp += "<p><span>报警</span></p>";
                    result.warnState = 1;
                }else{
                    temp += "<div class = 'div-d'>";
                    // temp += "<p><span>"+device.name+"</span></p>";
@@ -616,6 +667,7 @@
            temp += "<div class = 'div-d font-warn'>";
            temp += "<p><span>"+device.name+"</span></p>";
            temp += "<p><span>通讯异常</span></p>";
            result.warnState = 1;
        }
        temp += "</div>";
        result.htm = temp;
@@ -628,108 +680,114 @@
                temp += "<div class = 'div-d font-warn'>";
                // temp += "<p><span>"+device.name+"</span></p>";
                temp += "<p><span>通讯异常</span></p>";
                result.warnState = 1;
            }else{
                if(recordMap[2] && recordMap[2].value == 1){
                    temp += "<div class = 'div-d font-warn'>";
                    // temp += "<p><span>"+device.name+"</span></p>";
                    // temp += "<p><span>报警</span></p>";
                    result.warnState = 1;
                }else{
                    temp += "<div class = 'div-d'>";
                    // temp += "<p><span>"+device.name+"</span></p>";
                    // temp += "<p><span>正常</span></p>";
                }
                if (recordMap[6]) {
                    temp += "<p><span>设定温度:" + recordMap[7].value + "℃</span></p>";
                }
                if (recordMap[6]) {
                    temp += "<p><span>设定湿度:" + recordMap[7].value + "%</span></p>";
                }
            }
        }else{
            temp += "<div class = 'div-d font-warn'>";
            temp += "<p><span>"+device.name+"</span></p>";
            temp += "<p><span>通讯异常</span></p>";
        }
        temp += "</div>";
        result.htm = temp;
        return result;
    }
    //普通空调
    if (category == CATEGORY.D2003.code) {
        if(recordMap){
            if(recordMap[1] && recordMap[1].value == 1){
                temp += "<div class = 'div-d font-warn'>";
                // temp += "<p><span>"+device.name+"</span></p>";
                temp += "<p><span>通讯异常</span></p>";
            }else{
                if(recordMap[2] && recordMap[2].value == 1){
                    temp += "<div class = 'div-d font-warn'>";
                    // temp += "<p><span>"+device.name+"</span></p>";
                    // temp += "<p><span>报警</span></p>";
                }else{
                    temp += "<div class = 'div-d'>";
                    // temp += "<p><span>"+device.name+"</span></p>";
                    // temp += "<p><span>正常</span></p>";
                }
                if (recordMap[3]) {
                    temp += "<p><span>设定温度:" + recordMap[3].value + "℃</span></p>";
                }
                if (recordMap[4]) {
                    temp += "<p><span>设定湿度:" + recordMap[4].value + "%</span></p>";
                    temp += "<p><span>室内温度:" + recordMap[4].value + "℃</span></p>";
                }
                if (recordMap[5]) {
                    temp += "<p><span>室内湿度:" + recordMap[5].value + "%</span></p>";
                }
                if (recordMap[6]) {
                    temp += "<p><span>设定温度" + recordMap[6].value + "℃</span></p>";
                }
            }
        }else{
            temp += "<div class = 'div-d font-warn'>";
            temp += "<p><span>"+device.name+"</span></p>";
            temp += "<p><span>通讯异常</span></p>";
            result.warnState = 1;
        }
        temp += "</div>";
        result.htm = temp;
        return result;
    }
    //电池
    if (category == CATEGORY.D1005.code) {
        if(recordMap){
            if(recordMap[1] && recordMap[1].value == 1){
                temp += "<div class = 'div-d font-warn'>";
                // temp += "<p><span>"+device.name+"</span></p>";
                temp += "<p><span>通讯异常</span></p>";
            }else{
                if(recordMap[2] && recordMap[2].value == 1){
                    temp += "<div class = 'div-d font-warn'>";
                    // temp += "<p><span>"+device.name+"</span></p>";
                    // temp += "<p><span>报警</span></p>";
                }else{
                    temp += "<div class = 'div-d'>";
                    // temp += "<p><span>"+device.name+"</span></p>";
                    // temp += "<p><span>正常</span></p>";
                }
                if (recordMap[125]) {
                    temp += "<p><span>总 ç”µ åŽ‹ï¼š" + recordMap[125].value + "</span></p>";
                }
                if (recordMap[124]) {
                    temp += "<p><span>总 ç”µ æµï¼š" + recordMap[124].value + "</span></p>";
                }
                // if (recordMap[3]) {
                //     temp += "<p><span>电池个数:" + recordMap[3].value + "</span></p>";
                // }
                // if (recordMap[126]) {
                //     temp += "<p><span>后备时间:" + recordMap[126].value + "</span></p>";
                // }
            }
        }else{
            temp += "<div class = 'div-d font-warn'>";
            temp += "<p><span>"+device.name+"</span></p>";
            temp += "<p><span>通讯异常</span></p>";
        }
        temp += "</div>";
        // temp += "</marquee>";
        result.htm = temp;
        return result;
    }
    // //普通空调
    // if (category == CATEGORY.D2003.code) {
    //     if(recordMap){
    //         if(recordMap[1] && recordMap[1].value == 1){
    //             temp += "<div class = 'div-d font-warn'>";
    //             // temp += "<p><span>"+device.name+"</span></p>";
    //             temp += "<p><span>通讯异常</span></p>";
    //         }else{
    //             if(recordMap[2] && recordMap[2].value == 1){
    //                 temp += "<div class = 'div-d font-warn'>";
    //                 // temp += "<p><span>"+device.name+"</span></p>";
    //                 // temp += "<p><span>报警</span></p>";
    //             }else{
    //                 temp += "<div class = 'div-d'>";
    //                 // temp += "<p><span>"+device.name+"</span></p>";
    //                 // temp += "<p><span>正常</span></p>";
    //             }
    //             if (recordMap[3]) {
    //                 temp += "<p><span>设定温度:" + recordMap[3].value + "℃</span></p>";
    //             }
    //             if (recordMap[4]) {
    //                 temp += "<p><span>设定湿度:" + recordMap[4].value + "%</span></p>";
    //             }
    //         }
    //     }else{
    //         temp += "<div class = 'div-d font-warn'>";
    //         temp += "<p><span>"+device.name+"</span></p>";
    //         temp += "<p><span>通讯异常</span></p>";
    //     }
    //     temp += "</div>";
    //     result.htm = temp;
    //     return result;
    // }
    // //电池
    // if (category == CATEGORY.D1005.code) {
    //     if(recordMap){
    //         if(recordMap[1] && recordMap[1].value == 1){
    //             temp += "<div class = 'div-d font-warn'>";
    //             // temp += "<p><span>"+device.name+"</span></p>";
    //             temp += "<p><span>通讯异常</span></p>";
    //         }else{
    //             if(recordMap[2] && recordMap[2].value == 1){
    //                 temp += "<div class = 'div-d font-warn'>";
    //                 // temp += "<p><span>"+device.name+"</span></p>";
    //                 // temp += "<p><span>报警</span></p>";
    //             }else{
    //                 temp += "<div class = 'div-d'>";
    //                 // temp += "<p><span>"+device.name+"</span></p>";
    //                 // temp += "<p><span>正常</span></p>";
    //             }
    //             if (recordMap[125]) {
    //                 temp += "<p><span>总 ç”µ åŽ‹ï¼š" + recordMap[125].value + "</span></p>";
    //             }
    //             if (recordMap[124]) {
    //                 temp += "<p><span>总 ç”µ æµï¼š" + recordMap[124].value + "</span></p>";
    //             }
    //             // if (recordMap[3]) {
    //             //     temp += "<p><span>电池个数:" + recordMap[3].value + "</span></p>";
    //             // }
    //             // if (recordMap[126]) {
    //             //     temp += "<p><span>后备时间:" + recordMap[126].value + "</span></p>";
    //             // }
    //         }
    //     }else{
    //         temp += "<div class = 'div-d font-warn'>";
    //         temp += "<p><span>"+device.name+"</span></p>";
    //         temp += "<p><span>通讯异常</span></p>";
    //     }
    //     temp += "</div>";
    //     // temp += "</marquee>";
    //     result.htm = temp;
    //     return result;
    // }
    if(category == CATEGORY.D3001.code){
        temp += "<div class = 'div-d'>";
        temp += "<p><span>"+device.name+"</span></p>";
        // temp += "<p><span>"+device.name+"</span></p>";
        temp += "</div>";
        result.htm = temp;
        result.code = "EMPTY";
@@ -752,21 +810,24 @@
                temp += "<div class = 'div-d font-warn'>";
                // temp += "<p><span>"+device.name+"</span></p>";
                temp += "<p><span>通讯异常</span></p>";
                result.warnState = 1;
            }else{
                if(recordMap[2] && recordMap[2].value == 1){
                    temp += "<div class = 'div-d font-warn'>";
                    // temp += "<p><span>"+device.name+"</span></p>";
                    temp += "<p><span>报警</span></p>";
                    result.warnState = 1;
                }else{
                    temp += "<div class = 'div-d'>";
                    temp += "<div class = 'div-d '>";
                    // temp += "<p><span>"+device.name+"</span></p>";
                    temp += "<p><span>正常</span></p>";
                }
            }
        }else{
            temp += "<div class = 'div-d font-warn'>";
            temp += "<p><span>"+device.name+"</span></p>";
            // temp += "<p><span>"+device.name+"</span></p>";
            temp += "<p><span>通讯异常</span></p>";
            result.warnState = 1;
        }
        temp += "</div>";
        result.htm = temp;
@@ -778,23 +839,26 @@
    if(recordMap){
        if(recordMap[1] && recordMap[1].value == 1){
            temp += "<div class = 'div-d font-warn'>";
            temp += "<p><span>"+device.name+"</span></p>";
            temp += "<p><span>通讯异常</span></p>";
            // temp += "<p><span>"+device.name+"</span></p>";
            // temp += "<p><span>通讯异常</span></p>";
            result.warnState = 1;
        }else{
            if(recordMap[2] && recordMap[2].value == 1){
                temp += "<div class = 'div-d font-warn'>";
                temp += "<p><span>"+device.name+"</span></p>";
                temp += "<p><span>报警</span></p>";
                // temp += "<p><span>"+device.name+"</span></p>";
                // temp += "<p><span>报警</span></p>";
                result.warnState = 1;
            }else{
                temp += "<div class = 'div-d'>";
                temp += "<p><span>"+device.name+"</span></p>";
                temp += "<p><span>正常</span></p>";
                // temp += "<p><span>"+device.name+"</span></p>";
                // temp += "<p><span>正常</span></p>";
            }
        }
    }else{
        temp += "<div class = 'div-d font-warn'>";
        temp += "<p><span>"+device.name+"</span></p>";
        temp += "<p><span>通讯异常</span></p>";
        // temp += "<p><span>"+device.name+"</span></p>";
        // temp += "<p><span>通讯异常</span></p>";
        result.warnState = 1;
    }
    temp += "</div>";
    result.htm = temp;
@@ -808,7 +872,7 @@
 * @param category
 * @returns {String}
 */
function addCurImg(category) {
function addCurImg(category,warnState) {
    //温湿度
    if (category == CATEGORY.D2001.code) {
        return "<img src='images/icon-ht@64.png'/>";
@@ -823,10 +887,16 @@
    }
    //UPS-三相
    if (category == CATEGORY.D1002.code) {
        if(warnState == 1){
            return "<img src='images/icon-ups@64.png'/>";
        }
        return "<img src='images/icon-ups@64.png'/>";
    }
    //UPS-单向
    if (category == CATEGORY.D1001.code) {
        if(warnState == 1){
            return "<img src='images/icon-ups@64.png'/>";
        }
        return "<img src='images/icon-ups@64.png'/>";
    }
    //门禁
@@ -836,10 +906,12 @@
    //精密空调
    if (category == CATEGORY.D2002.code) {
        return "<img src='images/img-kt.png'/>";
        // return "<img src='images/icon-ups@64.png'/>";
    }
    //普通空调
    if (category == CATEGORY.D2003.code) {
        return "<img src='images/img-kt2.png'/>";
        // return "<img src='images/icon-ups@64.png'/>";
    }
    //风机
    if (category == CATEGORY.D2004.code) {
local/www/js/page/warn-list.js
@@ -29,7 +29,7 @@
            , trigger: 'click'
            , theme: 'custom'
        });
        renderPageInfo(2,50);
        //渲染按钮位置
        renderParamBtn();
@@ -119,7 +119,7 @@
        $.each(data, function (index, item) {
            // if(item.flag == 0){
                html += '<tr><td><input class="ckeck" name="ckeck" type="checkbox" id="'+item.sn+'"/></td>';
                html += '<tr>';
                // html += '<td>' + (index + 1) + '</td>';
                html += '<td>' + item.sn + '</td>';
                html += '<td>' + item.name + '</td>';
@@ -172,7 +172,7 @@
            "processTime": timeStr1(data.processTime),
            "id": data.id
        };
        console.log(comData);
        // console.log(comData);
        $.post("./cgi-bin/warn-list/update", JSON.stringify(comData), function (data, status) {
            if ("success" == status) {
@@ -205,40 +205,19 @@
        "processTime": new Date().Format("yyyy-MM-dd hh:mm:ss")
    });
    if(screen.width==1920 && screen.height==1080){
        layer.open({
            skin: 'mypop',
            type: 1,
            title: false,
            area: ['50%', '62%'],
            closeBtn: 0,
            shade: 0,
            scrollbar: false,
            content: $('#editWarnDom')
        });
    }else if(screen.width==1280 && screen.height==1024){
        layer.open({
            skin: 'mypop',
            type: 1,
            title: false,
            area: ['80%', '64%'],
            closeBtn: 0,
            shade: 0,
            scrollbar: false,
            content: $('#editWarnDom')
        });
    }else{
        layer.open({
            skin: 'mypop',
            type: 1,
            title: false,
            area: ['50%', '62%'],
            closeBtn: 0,
            shade: 0,
            scrollbar: false,
            content: $('#editWarnDom')
        });
    }
    var paramWH = getWH("detail");
    layer.open({
        skin: 'mypop',
        type: 1,
        title: false,
        // area: ['50%', '62%'],
        area: [paramWH.w, paramWH.h],
        closeBtn: 0,
        shade: 0,
        scrollbar: false,
        content: $('#editWarnDom')
    });
};
@@ -260,11 +239,13 @@
        "processTime": new Date().Format("yyyy-MM-dd hh:mm:ss")
    });
    var paramWH = getWH("detail");
    layer.open({
        skin: 'mypop',
        type: 1,
        title: false,
        area: ['50%', '62%'],
        // area: ['50%', '62%'],
        area: [paramWH.w, paramWH.h],
        closeBtn: 0,
        shade: 0,
        scrollbar: false,
@@ -409,41 +390,18 @@
//批处理
function batchHandle() {
    console.log("=============批处理============");
    checkbox_warn = [];
    var b;
    var id= "";
    $('[name=ckeck]:checked').each(function() {
        id= "";
        b = false;
        b = $(this).prop('checked');
        if(b){
            id = $(this).attr('id');
            checkbox_warn.push(warnMap[id]);
        }
    });
    if(checkbox_warn.length <= 0){
        layer.msg("选择不能为空!");
        return;
    }
    console.log(checkbox_warn);
    for(var i=0;i<checkbox_warn.length;i++){
        if(checkbox_warn[i].flag !=0 ){
            console.log(checkbox_warn[i]);
            console.log("选中的数据中存在已经处理过的数据!");
            layer.msg("选中的数据中存在已经处理过的数据!");
            return;
        }
    }
    $("#batch_processTime").attr("readOnly","readOnly");
    $("#batch_processTime").val(new Date().Format("yyyy-MM-dd hh:mm:ss"));
    var paramWH = getWH("batchHandle");
    layer.open({
        skin: 'mypop',
        type: 1,
        // title: '警报信息',
        title: false,
        area: ['50%', '35%'],
        // area: ['50%', '35%'],
        area: [paramWH.w, paramWH.h],
        closeBtn: 0,
        shade: 0,
        scrollbar: false,
@@ -458,46 +416,6 @@
//批量修改警报状态
function warnUpdateBatch() {
    // //同步进行
    // $.ajaxSettings.async = false;
    // var param = {};
    // var note = $("#batch_note").val();
    // var processTime = $("#batch_processTime").val();
    // if(note){
    //     if(checkbox_warn && checkbox_warn.length > 0){
    //         for(var i=0;i<checkbox_warn.length;i++){
    //             param = {};
    //             param = {
    //                 "sn": checkbox_warn[i].sn,
    //                 "flag": 1,
    //                 "note": note,
    //                 "processTime": timeStr1(processTime),
    //                 "id": checkbox_warn[i].id
    //             };
    //             $.post("./cgi-bin/warn-list/update-batch", JSON.stringify(param), function (data, status) {
    //                 if ("success" == status) {
    //                     //关闭弹窗
    //                     // closepopBtn();
    //                     //重新刷新此页面数据
    //                     // queryWarn();
    //                 } else {
    //                     window.parent.notify("处理失败,请重新操作!");
    //                 }
    //             }, "json");
    //         }
    //         //关闭弹窗
    //         closepopBtn();
    //         //重新刷新此页面数据
    //         queryWarn();
    //     }else{
    //         layer.msg("没有选中数据,请先选中数据!");
    //         console.log("没有选中数据,请先选中数据!");
    //     }
    // }else{
    //     layer.msg("处理说明不能为空!");
    //     console.log("处理说明不能为空!");
    // }
    //同步进行
    $.ajaxSettings.async = false;
@@ -509,7 +427,7 @@
    if(note){
        param = {
            "sn": sns,
            // "sn": sns,
            "note": note,
            "processTime": timeStr1(processTime)
        };
@@ -524,38 +442,6 @@
            }
        }, "json");
        // if(checkbox_warn && checkbox_warn.length > 0){
        //     for(var i=0;i<checkbox_warn.length;i++){
        //         sns += checkbox_warn[i].sn;
        //         ids += checkbox_warn[i].id;
        //         if(i < checkbox_warn.length -1){
        //             sns += ",";
        //             ids += ",";
        //         }
        //     }
        //     param = {
        //         "sn": sns,
        //         "note": note,
        //         "processTime": timeStr1(processTime)
        //     };
        //     $.post("./cgi-bin/warn-list/update-batch", JSON.stringify(param), function (data, status) {
        //         if ("success" == status) {
        //             //关闭弹窗
        //             closepopBtn();
        //             //重新刷新此页面数据
        //             queryWarn();
        //         } else {
        //             window.parent.notify("处理失败,请重新操作!");
        //         }
        //     }, "json");
        //     // //关闭弹窗
        //     // closepopBtn();
        //     // //重新刷新此页面数据
        //     // queryWarn();
        // }else{
        //     layer.msg("没有选中数据,请先选中数据!");
        //     console.log("没有选中数据,请先选中数据!");
        // }
    }else{
        layer.msg("处理说明不能为空!");
        console.log("处理说明不能为空!");
@@ -570,6 +456,9 @@
    }else if(screen.width==1280 && screen.height==1024){
        // $("#param-btn").addClass("layui-col-md4");
        $("#param-btn").removeClass("layui-col-md4");
    }else if(screen.width==1280 && screen.height==800){
        // $("#param-btn").addClass("layui-col-md4");
        $("#param-btn").removeClass("layui-col-md4");
    }else{
        // $("#param-btn").addClass("layui-col-md6");
        $("#param-btn").removeClass("layui-col-md6");
@@ -578,4 +467,34 @@
}
function getWH(tag) {
    var res = {
        w:"50%",
        h:"64%"
    };
    if(screen.width==1920 && screen.height==1080){
        res = {w:"80%",h:"64%"};
        if(tag == "batchHandle"){
            res = {w:"80%",h:"64%"};
        }
    }else if(screen.width==1280 && screen.height==1024){
        res = {w:"80%",h:"64%"};
        if(tag == "detail"){
            res = {w:"80%",h:"95%"};
        }
        if(tag == "batchHandle"){
            res = {w:"80%",h:"64%"};
        }
    }else if(screen.width==1280 && screen.height==800){
        res = {w:"80%",h:"64%"};
        if(tag == "detail"){
            res = {w:"80%",h:"95%"};
        }
        if(tag == "batchHandle"){
            res = {w:"80%",h:"64%"};
        }
    }
    return res;
}
local/www/sys-debug.html
@@ -95,6 +95,14 @@
                                            <option value="6">COM6</option>
                                            <option value="7">COM7</option>
                                            <option value="8">COM8</option>
                                            <option value="9">COM9</option>
                                            <option value="10">COM10</option>
                                            <option value="11">COM11</option>
                                            <option value="12">COM12</option>
                                            <option value="13">COM13</option>
                                            <option value="14">COM14</option>
                                            <option value="15">COM15</option>
                                            <option value="16">COM16</option>
                                        </select>
                                    </div>
                                </div>
@@ -216,6 +224,14 @@
                                            <option value="6">COM6</option>
                                            <option value="7">COM7</option>
                                            <option value="8">COM8</option>
                                            <option value="9">COM9</option>
                                            <option value="10">COM10</option>
                                            <option value="11">COM11</option>
                                            <option value="12">COM12</option>
                                            <option value="13">COM13</option>
                                            <option value="14">COM14</option>
                                            <option value="15">COM15</option>
                                            <option value="16">COM16</option>
                                        </select>
                                    </div>
                                </div>
@@ -337,6 +353,14 @@
                                            <option value="6">COM6</option>
                                            <option value="7">COM7</option>
                                            <option value="8">COM8</option>
                                            <option value="9">COM9</option>
                                            <option value="10">COM10</option>
                                            <option value="11">COM11</option>
                                            <option value="12">COM12</option>
                                            <option value="13">COM13</option>
                                            <option value="14">COM14</option>
                                            <option value="15">COM15</option>
                                            <option value="16">COM16</option>
                                        </select>
                                    </div>
                                </div>
local/www/sys-param-set.html
@@ -43,6 +43,7 @@
                        <li class=""><span>路由表</span></li>
                        <li class=""><span>国密配置</span></li>
                        <li class=""><span>MQTT</span></li>
                        <li class=""><span>SNMP</span></li>
                        <li id="etc" class="" style="display: none;"><span>高速ETC省平台配置</span></li>
                    </ul>
                    <div class="layui-tab-content">
@@ -75,6 +76,10 @@
                                    data-id="sys-mqtt-conf.html" seamless></iframe>
                        </div>
                        <div class="layui-tab-item">
                            <iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="sys-snmp-conf.html" frameborder="0"
                                    data-id="sys-snmp-conf.html" seamless></iframe>
                        </div>
                        <div class="layui-tab-item">
                            <iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="sys-etc-param.html" frameborder="0"
                                    data-id="sys-etc-param.html" seamless></iframe>
                        </div>
local/www/sys-register.html
@@ -57,7 +57,7 @@
                        <div class="layui-card" style="height: 270px;">
                            <div class="layui-card-header layui-row">
                                <div class="layui-col-md11">
                                    æ³¨å†Œæœºæ¢°ç 
                                    æ³¨å†Œæœºå™¨ç 
                                </div>
                                <div class="layui-col-md1">
                                    <button class="layui-btn layui-btn-normal" style="height: 25px;line-height: 25px;"
local/www/sys-set.html
@@ -71,7 +71,33 @@
                                                    </div>
                                                </div>
                                            </div>
                                            <div class="layui-form-item layui-col-md12" style="display: none;">
                                                <div class="layui-inline">
                                                    <label class="layui-form-label">ETC平台配置页面:</label>
                                                    <div class="layui-input-block">
<!--                                                        <input type="text" name="screenSlogan" class="layui-input" placeholder="请输入">-->
                                                        <select class="layui-select layui-input" id="etcPlat" name="etcPlat">
                                                            <option value="0">否</option>
                                                            <option value="1">是</option>
                                                        </select>
                                                    </div>
                                                </div>
                                            </div>
                                            <div class="layui-form-item layui-col-md12" style="display: none;">
                                                <div class="layui-inline">
                                                    <label class="layui-form-label">联动配置:</label>
                                                    <div class="layui-input-block">
<!--                                                        <input type="text" name="screenSlogan" class="layui-input" placeholder="请输入">-->
                                                        <select class="layui-select layui-input" id="linkage" name="linkage">
                                                            <option value="0">否</option>
                                                            <option value="1">是</option>
                                                        </select>
                                                    </div>
                                                </div>
                                            </div>
                                            <div class="layui-form-item layui-col-md12">
                                                <div class="layui-inline">
                                                    <label class="layui-form-label">运维厂商:</label>
local/www/sys-snmp-conf.html
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,190 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport"
    content="width=device-width, initial-scale=1, maximum-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<title>智能运维管理系统-SNMP</title>
    <link rel="stylesheet" type="text/css" href="plugins/layui/css/layui.css" />
    <link rel="stylesheet" type="text/css" href="css/page/device-control.css" />
    <style>
        .layui-col-md4 {
            width: 100%;
        }
        .layui-inline {
            margin-left: unset;
        }
        .layui-layer-dialog .layui-layer-content {
            border-bottom: solid 1px #eae5e5;
        }
        .btns button{
            width: 120px;
        }
    </style>
</head>
<body class="pdgxq-body">
    <div class="i-container">
        <div class="jmkt-main">
            <div class="layui-fluid">
                <div class="pdgxq-m1 layui-row layui-col-space20">
                    <!--pdgxq-m1-left end-->
                    <div class="layui-col-lg12 layui-col-md12 img-main" id="img-main" style="padding: 20px;">
                        <div class="pdgxq-m1-left pdgxq-m1-box" style="width: 100%;">
                            <form class="layui-form" id="form-param" lay-filter="form-param" action="">
                                <div class="layui-row" style="padding: 20px 0;">
                                    <div class="layui-col-md4">
                                        <div class="layui-inline" style="margin-left: -16%">
                                            <label class="layui-form-label">SNMP功能:</label>
                                            <div class="layui-input-block">
                                                <input type="checkbox" id="enable" name="enable" lay-skin="switch"
                                                       lay-filter="switch" lay-text="启用|停用">
                                            </div>
                                        </div>
                                    </div>
                                    <div class="layui-col-md4">
                                        <div class="layui-inline">
                                            <label class="layui-form-label">版本号:</label>
                                            <div class="layui-input-block">
                                                <input id="ver" type="text" name="ver" value="V2.0"
                                                       class="layui-input" readonly>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="layui-col-md4">
                                        <div class="layui-inline">
                                            <label class="layui-form-label">共用体名称:</label>
                                            <div class="layui-input-block">
                                                <input id="publicName" type="text" name="publicName" value="public"
                                                       class="layui-input" readonly>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="layui-col-md4">
                                        <div class="layui-inline">
                                            <label class="layui-form-label">端口号:</label>
                                            <div class="layui-input-block">
                                                <input id="port" type="text" name="port" value="161"
                                                       class="layui-input" readonly>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="layui-col-md4" style="">
                                        <div class="layui-inline">
                                            <div class="layui-input-block btns" style="margin-left: 15px">
                                                <button style="margin-right: 50px; font-size: 16px"
                                                        class="layui-btn layui-btn-warm"
                                                        onclick="javaScript:downLoadF(); return false;">导出OID表
                                                </button>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </form>
                        </div>
                    </div>
                </div>
                <!--pdgxq-m1 end-->
            </div>
        </div>
        <!--jmkt-main end-->
    </div>
    <!--i-container end-->
    <script type="text/javascript" src="js/jquery.min.js"></script>
    <script src="plugins/layui/layui.js"></script>
    <script src="js/constant.js"></script>
    <script type="text/javascript">
        var layer;// å®šä¹‰å…¨å±€å˜é‡
        var form;
        var laydate;
        $(function () {
            layui.use(['layer', 'form', 'laydate'], function () {
                layer = layui.layer;
                form = layui.form;
                laydate = layui.laydate;
                form.on('switch(switch)', function(data){
                    //开关状态改变时触发
                    changeStatus(this.checked);
                });
                query();
            });
        });
        function query() {
            $.ajaxSettings.async = false;
            $.get("./cgi-bin/snmp/query", function (data, status) {
                if ("success" == status) {
                    form.val('form-param', {
                        "enable": data.enable//0-启用,1-禁用
                    });
                    form.render();
                } else {
                    window.parent.parent.notify("系统获取监控设备信息失败!");
                }
            }, "json");
        }
        /**
         * ä¿®æ”¹çŠ¶æ€
         * @param enable  true  or  false
         */
        function changeStatus(enable) {
            var obj = {"enable":enable};
            $.post("./cgi-bin/snmp/enable", JSON.stringify(obj), function (data, status) {
                if (data.code == "success") {
                    //window.parent.parent.notify("数据保存成功");
                    window.parent.parent.notify("SNMP模组状态保存成功");
                } else {
                    window.parent.parent.notify("数据保存出错,请重新操作!"+data.msg+"!");
                }
            }, "json");
        }
        //导出
        function downLoadF() {
            $.ajaxSettings.async = false;
            $.get("./cgi-bin/snmp/download", function (data, status) {
                if ("success" == data.code) {
                    downLoadF2();
                }else{
                    window.parent.parent.notify("生成oid表出错");
                }
            }, "json");
        }
        function downLoadF2() {
            var fileName = "oid_list.csv";
            var url = "./cgi-bin/download/download.cgi?filename=/tmp/oid_list.csv";
            // å¯¹äºŽ<a>标签,只有 Firefox å’Œ Chrome(内核) æ”¯æŒ download å±žæ€§
            if ('download' in document.createElement('a')) { // æ”¯æŒa标签download的浏览器
                var link = document.createElement('a'); // åˆ›å»ºa标签
                link.download = fileName;// a标签添加属性
                link.style.display = 'none';
                // link.href = URL.createObjectURL(blob);
                link.href = url;
                document.body.appendChild(link);
                link.click(); // æ‰§è¡Œä¸‹è½½
                URL.revokeObjectURL(link.href); // é‡Šæ”¾url
                document.body.removeChild(link); // é‡Šæ”¾æ ‡ç­¾
            } else { // å…¶ä»–浏览器
                navigator.msSaveBlob(url, fileName);
            }
        }
    </script>
</body>
</html>
make_app.sh
@@ -12,13 +12,16 @@
OUTPUT=../output
#--------------------------------------------------------
cp ./bin/* local/ -fr
chmod +x local/bin/*
chmod +x local/app/*
chmod +x local/www/cgi-bin/*/*
timeStr=`date '+%Y-%m-%d'`
echo $timeStr-v$1 > local/version
echo "type=1" >> local/version
echo "IGD3000" >> local/version
#cp ./bin/* local/ -fr
tar cvzf app.tgz local
 
#mksquashfs local app-$timeStr\.img -b 128K -comp xz
new_board_upgrade/upgrade/app.tgz
Binary files differ
upgrade/app.tgz
Binary files differ