wuwei
2025-06-13 e8c9c0ca7e6c307243c158fd529c59c5a3717f2f
1.同步最新的文件
已删除2个文件
已修改17个文件
已添加9个文件
893 ■■■■ 文件已修改
local/app/MainControl 补丁 | 查看 | 原始文档 | blame | 历史
local/app/NetModule 补丁 | 查看 | 原始文档 | blame | 历史
local/bin/export.sh 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/bin/snmp_cfg 补丁 | 查看 | 原始文档 | blame | 历史
local/bin/snmp_val.sh 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/default/app.ini 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/default/snmp.json 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/default/sysConfig.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/version 2 ●●● 补丁 | 查看 | 原始文档 | 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/snmp/download 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/cgi-bin/snmp/enable 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/cgi-bin/snmp/query 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/cgi-bin/state/query-device 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/cgi-bin/sys-set/systemSpace 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/cgi-bin/warn-list/update 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/detail-jmkt.html 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/detail-mj.html 276 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/detail-ups.html 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/download.html 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/js/page/device-net.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/sys-param-set.html 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/sys-register.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/sys-snmp-conf.html 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local/www/upload.html 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
upgrade/app.tgz 补丁 | 查看 | 原始文档 | blame | 历史
local/app/MainControl
Binary files differ
local/app/NetModule
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/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/default/app.ini
@@ -9,5 +9,5 @@
mul=MulticastIP
lk=linkage
rtsp=rtsp
export applist=" $main $dc $net $gate $svr "
export applist=" $main $dc $net $gate $svr $lk"
local/default/snmp.json
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
{
    "script_handler": "/usr/local/bin/snmp_val.sh",
    "oids": [
        {
            "oid": "1.3.6.1.4.1.71116.1.1",
            "name": "temphum",
            "type": "Integer",
            "description": "status"
        },
        {
            "oid": "1.3.6.1.4.1.71116.1.2",
            "name": "temphum",
            "type": "OctetString",
            "description": "warn status"
        },
        {
            "oid": "1.3.6.1.4.1.71116.1.4",
            "name": "temphum",
            "type": "OctetString",
            "description": "temp"
        },
        {
            "oid": "1.3.6.1.4.1.71116.3.4",
            "name": "temphum",
            "type": "OctetString",
            "description": "hum"
        }
    ]
}
local/default/sysConfig.json
@@ -4,6 +4,7 @@
    "menu3DVld": "0",
    "linkage": "0",
    "etcPlat": "0",
    "snmp": 0,
    "name": "动环监控系统",
    "opPhone": "4006271116",
    "opVendor": "风正致远信息技术股份有限公司",
local/version
@@ -1,3 +1,3 @@
2025-05-29-v001
2025-06-13-v001
type=1
IGD5300
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/snmp/download
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
#!/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"
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,26 +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
                    
                    # æ‰§è¡Œè¿‡æ»¤å¹¶æ˜¾ç¤ºç»“æžœ
                    awk 'NR == FNR {del[$1]; next} !(FNR in del)' "$delete_pattern" "$file" | tee "$temp_file"
# # ç”Ÿæˆä¸´æ—¶æ–‡ä»¶
# temp_file=$(mktemp)
# delete_pattern=$(mktemp)
                    
                    # å¯é€‰ï¼šå¦‚果要直接修改原文件,取消以下注释
                    # mv "$temp_file" "$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"
                    
                    # æ¸…理临时文件
                    rm "$delete_pattern" "$temp_file"
#                     # æ‰§è¡Œè¿‡æ»¤å¹¶æ˜¾ç¤ºç»“æžœ
#                     awk 'NR == FNR {del[$1]; next} !(FNR in del)' "$delete_pattern" "$file" | tee "$temp_file"
#                     # å¯é€‰ï¼šå¦‚果要直接修改原文件,取消以下注释
#                     # mv "$temp_file" "$file"
#                     # æ¸…理临时文件
#                     rm "$delete_pattern" "$temp_file"
 
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/warn-list/update
@@ -19,4 +19,4 @@
fi
sn=`$jsoner $content sn`
`msg alarm $id` > /dev/null
`msg alarm $sn` > /dev/null
local/www/detail-jmkt.html
@@ -473,23 +473,6 @@
    function renderValue(type,item) {
        var result = item.value;
        // if(type == "2002" || type == "2020" || type == "2022"){
        //     if(item.passcode >= 8 && item.passcode <= 998){
        //         result = (item.value=="0"?"正常":"告警");
        //         if(item.passcode == 16){
        //             if(item.value=="0"){
        //                 result = "送风";
        //             }
        //             if(item.value=="1"){
        //                 result = "制热";
        //             }
        //             if(item.value=="2"){
        //                 result = "制冷";
        //             }
        //             // result = (item.value=="0"?"关闭":"开启");
        //         }
        //     }
        // }
        var str = "";
        if(item.note && item.note.length > 0){
local/www/detail-mj.html
@@ -14,158 +14,6 @@
<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">-->
<!--                <div class="layui-col-lg5 layui-col-md5">-->
<!--                    <div class="pdgxq-m1-left pdgxq-m1-box" style="height: 730px">-->
<!--                        <div class="pdgxq-H">-->
<!--                            <h3><i></i>最近开门记录</h3>-->
<!--                        </div>-->
<!--                        <div class="pdgxq-table jmkt-table-wrap">-->
<!--                            <table class="layui-table pdgxq-table1" lay-skin="nob">-->
<!--                                <colgroup>-->
<!--                                    <col width="30%">-->
<!--                                    <col width="30%">-->
<!--                                    <col width="40%">-->
<!--                                    <col>-->
<!--                                </colgroup>-->
<!--                                <thead>-->
<!--                                <tr>-->
<!--                                    <th>卡号/姓名</th>-->
<!--                                    <th>开门说明</th>-->
<!--                                    <th>开门时间</th>-->
<!--                                </tr>-->
<!--                                </thead>-->
<!--                                <tbody>-->
<!--                                <tr>-->
<!--                                    <td>1001/张三</td>-->
<!--                                    <td>1号门-刷卡开门</td>-->
<!--                                    <td>2020-04-26 12:30:56</td>-->
<!--                                </tr>-->
<!--                                <tr>-->
<!--                                    <td>1002/李四</td>-->
<!--                                    <td>2号门-指纹开门</td>-->
<!--                                    <td>2020-04-25 12:35:28</td>-->
<!--                                </tr>-->
<!--                                <tr>-->
<!--                                    <td>1003/王五</td>-->
<!--                                    <td>3号门-密码开门</td>-->
<!--                                    <td>2020-04-25 12:35:28</td>-->
<!--                                </tr>-->
<!--                                <tr>-->
<!--                                    <td>1002/李四</td>-->
<!--                                    <td>2号门-指纹开门</td>-->
<!--                                    <td>2020-04-25 12:35:28</td>-->
<!--                                </tr>-->
<!--                                <tr>-->
<!--                                    <td>1003/王五</td>-->
<!--                                    <td>3号门-密码开门</td>-->
<!--                                    <td>2020-04-25 12:35:28</td>-->
<!--                                </tr>-->
<!--                                <tr>-->
<!--                                    <td>1002/李四</td>-->
<!--                                    <td>2号门-指纹开门</td>-->
<!--                                    <td>2020-04-25 12:35:28</td>-->
<!--                                </tr>-->
<!--                                <tr>-->
<!--                                    <td>1003/王五</td>-->
<!--                                    <td>3号门-密码开门</td>-->
<!--                                    <td>2020-04-25 12:35:28</td>-->
<!--                                </tr>-->
<!--                                <tr>-->
<!--                                    <td>1003/王五</td>-->
<!--                                    <td>3号门-密码开门</td>-->
<!--                                    <td>2020-04-25 12:35:28</td>-->
<!--                                </tr>-->
<!--                                <tr>-->
<!--                                    <td>1003/王五</td>-->
<!--                                    <td>3号门-密码开门</td>-->
<!--                                    <td>2020-04-25 12:35:28</td>-->
<!--                                </tr>-->
<!--                                <tr>-->
<!--                                    <td>1003/王五</td>-->
<!--                                    <td>3号门-密码开门</td>-->
<!--                                    <td>2020-04-25 12:35:28</td>-->
<!--                                </tr>-->
<!--                                <tr>-->
<!--                                    <td>1003/王五</td>-->
<!--                                    <td>3号门-密码开门</td>-->
<!--                                    <td>2020-04-25 12:35:28</td>-->
<!--                                </tr>-->
<!--                                <tr>-->
<!--                                    <td>1003/王五</td>-->
<!--                                    <td>3号门-密码开门</td>-->
<!--                                    <td>2020-04-25 12:35:28</td>-->
<!--                                </tr>-->
<!--                                </tbody>-->
<!--                            </table>-->
<!--                        </div>&lt;!&ndash;pdgxq-table end&ndash;&gt;-->
<!--                    </div>-->
<!--                </div>&lt;!&ndash;pdgxq-m1-left end&ndash;&gt;-->
<!--                <div class="layui-col-lg7 layui-col-md7">-->
<!--                    <div class="pdgxq-m1-right pdgxq-m1-box">-->
<!--                        <div class="pdgxq-H">-->
<!--                            <h3><i></i>统计信息</h3>-->
<!--                        </div>-->
<!--                        <div class="lsyg-jkxx-box">-->
<!--                            <div class=" layui-row">-->
<!--                                <div class="layui-col-lg6 layui-col-md6">-->
<!--                                    <div class="mj-item mj-item1">-->
<!--                                        <img src="./images/mj-bg1-img.png" class="mj-item-img"/>-->
<!--                                        <div class="mj-itemCon">-->
<!--                                            <h4>单日开门次数</h4>-->
<!--                                            <p>5</p>-->
<!--                                        </div>-->
<!--                                    </div>-->
<!--                                </div>-->
<!--                                <div class="layui-col-lg6 layui-col-md6">-->
<!--                                    <div class="mj-item mj-item2">-->
<!--                                        <img src="./images/mj-bg1-img.png" class="mj-item-img"/>-->
<!--                                        <div class="mj-itemCon">-->
<!--                                            <h4>近7天开门次数</h4>-->
<!--                                            <p>20</p>-->
<!--                                        </div>-->
<!--                                    </div>-->
<!--                                </div>-->
<!--                            </div>-->
<!--                        </div>&lt;!&ndash;lsyg-jkxx-box end&ndash;&gt;-->
<!--                    </div>-->
<!--                    <div style="padding-top: 20px">-->
<!--                        <div class="pdgxq-m2-right pdgxq-m2-box">-->
<!--                            <h3>设备基本信息</h3>-->
<!--                            <p>设备名称:机房门禁</p>-->
<!--                            <p>设备状态:激活</p>-->
<!--                            <p>运维厂商:风正致远信息技术股份有限公司</p>-->
<!--                            <div class="pdgxq-phone">-->
<!--                                <h4>运维电话</h4>-->
<!--                                <p>400-627-1116</p>-->
<!--                            </div>-->
<!--                        </div>-->
<!--                    </div>-->
<!--                </div>&lt;!&ndash;pdgxq-m1-left end&ndash;&gt;-->
<!--            </div>&lt;!&ndash;pdgxq-m1 end&ndash;&gt;-->
<!--        </div>-->
<!--    </div>&lt;!&ndash;jmkt-main end&ndash;&gt;-->
    <div class="jmkt-main">
        <div class="layui-fluid">
@@ -182,9 +30,9 @@
                                <p></p>
                                <p>设备名称:<span id="deviceName">未知设备#1</span></p>
                                <p>设备状态:<span id="deviceVld">激活</span></p>
                                <p>运维厂商:<span id="opVendor"></span></p>
                                <p style="display: none;">运维厂商:<span id="opVendor"></span></p>
                                <div class="pdgxq-phone">
                                <div class="pdgxq-phone" style="display: none;">
                                    <h4>运维电话</h4>
                                    <p id="opPhone"></p>
                                </div>
@@ -200,15 +48,15 @@
                    <div class="pdgxq-m1-right pdgxq-m1-box" style="height: 730px">
                        <div class="pdgxq-H">
                            <h3><i></i>开门记录</h3>
<!--                            <div id="open" class="jmkt-tit-more" onclick="sendAction();">-->
<!--                                <button type="button" class="layui-btn layui-btn-normal pop-complete-btn"-->
<!--                                        style="background-color: #46b8da;color: #ffffff;">开门</button>-->
<!--                            </div>-->
                            <div id="open" class="jmkt-tit-more" onclick="sendAction();">
                                <button type="button" class="layui-btn layui-btn-normal pop-complete-btn"
                                        style="background-color: #46b8da;color: #ffffff;">开门</button>
                            </div>
                        </div>
                        <div class="pdgxq-group clearfix">
                        <div class="pdgxq-group clearfix" style="">
                            <div class="pdgxq-group-item jmkt-chuli">
                                <span id="warnState">无</span>警告状态
                                <span id="warnState">关门</span>告警状态
                            </div>
                            <div class="pdgxq-group-item jmkt-yichuli">
                                <span id="conState">正常</span>通讯状态
@@ -268,6 +116,8 @@
        </div><!--pdgxq-m1 end-->
    </div>
</div> <!--i-container end-->
@@ -297,21 +147,21 @@
        $("#deviceName").html(device.name);
        $("#deviceVld").html(device.vld==0?'激活':'停用');
        queryRecord(deviceId);
        //setInterval(function () {
        setInterval(function () {
        //    queryRecord(deviceId);
        //    // queryData(deviceId);
        //},5000);
            queryData(deviceId);
        },5000);
    }
    function queryData(deviceId,device) {
    function queryData(deviceId) {
        console.log("======门禁页面-查询实时======");
        var data = {id: deviceId};
        $.post("./cgi-bin/detail/query-data", JSON.stringify(data), function (data, status) {
            if ("success" == status) {
                console.log('---------获取到的设备实时数据-----' + data);
                renderInfo(data,device);
                renderInfo(data);
            } else {
                console.log("数据查询出错,请重新操作!");
                window.parent.notify("数据查询出错,请重新操作!");
@@ -320,25 +170,20 @@
    };
    //开始渲染实时数据
    function renderInfo(deviceData, device) {
        console.log("--------渲染实时数据-------门禁id="+device.id);
        console.log(deviceData);
        //设备基本信息
        $("#deviceName").html(device.name);
        $("#deviceVld").html(device.vld==0?'激活':'停用');
    function renderInfo(deviceData) {
        //监控属性实时数据渲染
        var list = deviceData.value;
        if(list !=null && list.length>0){
            $.each(list,function(index,item) {
                //通讯状态
                if (item.passcode == 1) {
                    $("#conState").html(item.value == 0 ? "正常" : "异常");
                    $("#conState").html(item.value == 0 ? "正常" : "通讯异常");
                    $("#warnState").html(item.value == 0 ? "正常" : "通讯异常");
                }
                //警告状态
                if (item.passcode == 2) {
                    $("#warnState").html(item.value == 0 ? "无" : "报警");
                }
                // //门禁状态
                // if (item.passcode == 4) {
                //     $("#warnState").html(item.value == 0 ? "关门" : "开门");
                // }
            });
        }
@@ -361,6 +206,15 @@
    function queryRecord(id) {
        console.log("--------查看门禁历史记录-------门禁id="+id);
        var param = {"id": id};
        // $.post("./cgi-bin/record-his/query", JSON.stringify(param), function (data, status) {
        //     if ("success" == status) {
        //         //渲染历史数据列表
        //         renderRecordInfo(data);
        //     }else {
        //         window.parent.notify("门禁数据查询出错,请重新操作!");
        //     }
        // }, "json");
        $.post("./cgi-bin/record-his/query-by-id", JSON.stringify(param), function (data, status) {
            if ("success" == status) {
                //渲染历史数据列表
@@ -372,46 +226,74 @@
    }
    //开始渲染
    function renderRecordInfo(dataList) {
        console.log(dataList);
        var li = dataList;
        console.log(li);
        console.log(li.length);
        //门禁历史数据渲染
        var html="";
        if(dataList !=null && dataList.length>0){
        if(li != null && li.length > 0){
            var list;
            $.each(dataList,function(index,item){
            $.each(li,function(index,item){
                if(item.value){
                list = eval(item.value);
                if(list !=null && list.length>0){
                    var tag1 = '';  //卡号/姓名
                    var tag2 = '';  //门号
                    var tag3 = '';  //开门类型
                    var tag4 = '';  //开门时间
                    $.each(list,function(index,item){
                        if(item.passcode == 3){
                            tag2 = item.value + '号门-';
                        for (var i = 0; i < list.length; i++) {
                            var cur = list[i];
                            if (cur.passcode == 3) {
                                tag2 = cur.value + '号门-';
                        }
                        if(item.passcode == 5){
                            tag1 = item.value;
                            if (cur.passcode == 5) {
                                tag1 = cur.value;
                        }
                        if(item.passcode == 6){
                            tag3 = item.value;
                            if (cur.passcode == 6) {
                                tag3 = cur.value;
                        }
                        if(item.passcode == 7){
                            tag4 = item.value.substring(0,4) + "-" +
                                item.value.substring(4,6) + "-" +
                                item.value.substring(6,8) + " " +
                                item.value.substring(8,10) + ":" +
                                item.value.substring(10,12)+ ":" +
                                item.value.substring(12,14);
                            if (cur.passcode == 7) {
                                // tag4 = cur.value.substring(0, 4) + "-" +
                                //     cur.value.substring(4, 6) + "-" +
                                //     cur.value.substring(6, 8) + " " +
                                //     cur.value.substring(8, 10) + ":" +
                                //     cur.value.substring(10, 12) + ":" +
                                //     cur.value.substring(12, 14);
                                tag4 = cur.value;
                        }
                    });
                        }
                    html += "<tr><td>"+ tag1 +"</td><td>" + tag2  + tag3 + "</td><td>" + tag4 + "</td></tr>";
                }
                }
            });
        }else {
            html += "<tr><td colspan='3'>暂无数据</td></tr>";
            // html += "<tr><td colspan='3'>暂无数据</td></tr>";
        }
        $("#listData").html(html);
    }
    function sendAction() {
        if (confirm('是否进行开门操作?')){
            var param = {"id": deviceId,"passcode":8,"value":1};
            console.log("======开门操作命令发送======");
            // console.log(JSON.stringify(param));
            // $.post("./cgi-bin/action/open-door", JSON.stringify(param), function (data, status) {
            //
            // }, "json");
            $.ajaxSettings.async = false;
            $.post("./cgi-bin/file/action-control", JSON.stringify(param), function (data, status) {
            }, "json");
            window.parent.notify("命令发送成功!");
        }
        return false;
    }
</script>
</body>
local/www/detail-ups.html
@@ -203,7 +203,7 @@
                    }
                    html += "<tr><td>"+cur.name+"</td><td>"+str+"</td><td>"+time+"</td></tr>";
                }else{
                    html += "<tr><td>"+cur.name+"</td><td>"+renderValue(device.id,device.type,cur.passcode,cur.value)+"</td><td>"+time+"</td></tr>";
                    html += "<tr><td>"+cur.name+"</td><td>"+renderValue(device.type,cur)+"</td><td>"+time+"</td></tr>";
                    //渲染列表
@@ -284,7 +284,7 @@
                    }
                    html += "<tr><td>"+cur.name+"</td><td>"+str+"</td><td>"+time+"</td></tr>";
                }else{
                    html += "<tr><td>"+cur.name+"</td><td>"+renderValue(device.id,device.type,cur.passcode,cur.value)+"</td><td>"+time+"</td></tr>";
                    html += "<tr><td>"+cur.name+"</td><td>"+renderValue(device.type,cur)+"</td><td>"+time+"</td></tr>";
                    //渲染列表
                    // html += "<tr><td>"+cur.name+"</td><td>"+(cur.value?cur.value:"")+"</td><td>"+time+"</td></tr>";
@@ -357,139 +357,8 @@
        }
    }
    function renderValue(id,type,code,value) {
        var res = value;
        // if(type == "1001"){
        //     if(code == 3 || code == 5){
        //         res = value+"V";
        //     }
        //     else if(code == 4 || code == 6){
        //         res = value+"A";
        //     }
        //     else if(code == 7){
        //         res = value+"Hz";
        //     }
        //     else if(code == 8){
        //         res = value+"%";
        //     }
        //     else if(code == 9){
        //         res = value+"℃";
        //     }
        //     else if(code == 10){
        //         if(value == 0){
        //             res = "市电供电"
        //         }
        //         if(value == 1){
        //             res = "电池供电"
        //         }
        //     }
        //     else if(code == 11){
        //         if(value == 0){
        //             res = "正常"
        //         }
        //         if(value == 1){
        //             res = "旁路"
        //         }
        //         if(value == 2){
        //             res = "电池供电"
        //         }
        //     }
        //     else if(code == 12){
        //         res = value+"V";
        //     }
        //     else if(code == 13){
        //         res = value+"%";
        //     }
        //     else if(code == 14){
        //         res = value+"min";
        //     }
        //     else if(code >= 15 && code < 999){
        //         res = value == "0"?"正常":"告警";
        //     }
        // }
        //
        // if(type == "1002"){
        //     if(code >= 3 && code <= 5){
        //         res = value+"V";
        //     }
        //     else if(code >= 6 && code <= 8){
        //         res = value+"A";
        //     }
        //     else if(code >= 9 && code <= 11){
        //         res = value+"V";
        //     }
        //     else if(code >= 12 && code <= 14){
        //         res = value+"A";
        //     }
        //     else if(code == 15){
        //         res = value+"Hz";
        //     }
        //     else if(code >= 16 && code <= 18){
        //         res = value+"%";
        //     }
        //     else if(code == 19){
        //         res = value+"℃";
        //     }
        //     else if(code == 20){
        //         if(value == 0){
        //             res = "市电供电"
        //         }
        //         if(value == 1){
        //             res = "电池供电"
        //         }
        //         if(value == 2){
        //             res = "不供电"
        //         }
        //         if(value == 3){
        //             res = "联合供电"
        //         }
        //         if(value == 4){
        //             res = "旁路供电"
        //         }
        //     }
        //     else if(code == 21){
        //         if(value == 0){
        //             res = "正常"
        //         }
        //         if(value == 1){
        //             res = "旁路"
        //         }
        //         if(value == 2){
        //             res = "电池供电"
        //         }
        //     }
        //     else if(code == 22){
        //         res = value+"V";
        //     }
        //     else if(code == 23){
        //         res = value+"%";
        //     }
        //     else if(code == 24){
        //         res = value+"min";
        //     }
        //     else{
        //         if(code >= 25 && code <= 998){
        //             res = value == 0 ? "正常" : "告警";
        //             if(value != 0 && value != 1){
        //                 res = value;
        //             }
        //
        //             // if(code >= 25 && code <= 27){
        //             //     res = value + "V";
        //             // }
        //             // if(code >= 28 && code <= 30){
        //             //     res = value + "KW";
        //             // }
        //             // if(code >= 31 && code <= 35){
        //             //     res = value + "Hz";
        //             // }
        //
        //         }
        //
        //     }
        // }
    function renderValue(type,cur) {
        var res = cur.value;
        var str = "";
        if(cur.note && cur.note.length > 0){
local/www/download.html
ÎļþÒÑɾ³ý
local/www/js/page/device-net.js
@@ -272,7 +272,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(),
local/www/sys-param-set.html
@@ -39,10 +39,11 @@
                        <li class="layui-this"><span>端口设置</span></li>
                        <li class=""><span>平台设置</span></li>
                        <li class=""><span>网络设置</span></li>
                        <li class=""><span>存储管理</span></li>
                        <li class=""><span>存储设置</span></li>
                        <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-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=/temp/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>
local/www/upload.html
ÎļþÒÑɾ³ý
upgrade/app.tgz
Binary files differ