diff --git a/api/commonRequest.js b/api/commonRequest.js index c52d1ec..ae2866c 100644 --- a/api/commonRequest.js +++ b/api/commonRequest.js @@ -3,8 +3,8 @@ let aqEnnable = false // 参数加密开关 // const commonUrl = "http://11.158.16.194:21624/zhgd/"; // const URL_IP="http://11.158.16.194:21624/zhgd-web" -const commonUrl = "http://192.168.0.14:13030/zhgd/"; -const URL_IP="http://192.168.0.14:13030/zhgd-web" +const commonUrl = "http://192.168.1.107:13030/zhgd/"; +const URL_IP="http://192.168.1.107:13030/zhgd-web" //前端 // const URL_IP="http://127.0.0.1:63343/ah_jjzhgd_webscreen" // const commonUrl = "http://127.0.0.1:18080/zhgd/"; diff --git a/css/dataAnalysis/dataAnalysis.css b/css/dataAnalysis/dataAnalysis.css index 8fa2c36..377f0bd 100644 --- a/css/dataAnalysis/dataAnalysis.css +++ b/css/dataAnalysis/dataAnalysis.css @@ -27,7 +27,7 @@ body { box-sizing: border-box; } -#right-box { +#right-box,#right-table-box,#no-data-box { width: 75.85%; height: 99%; background: url(../../img/alarmMge/dataAnalysis.png) no-repeat 0 0 / 100% 100%; diff --git a/js/login/login.js b/js/login/login.js index 6d7c571..2c0b421 100644 --- a/js/login/login.js +++ b/js/login/login.js @@ -43,6 +43,8 @@ layui.use(function () { window.location.href = "pages/home/navigation.html"; } else if (us.jumpType === '1') { window.location.href = "pages/web/index.html"; + }else{ + window.location.href = "pages/web/index.html"; } }); } else if (result.code === 500) { @@ -66,4 +68,4 @@ function errorFn(xhr, status, error) { // 请求出现其他错误 console.error("ajax请求错误:" + error); } -} \ No newline at end of file +} diff --git a/js/login/login2.js b/js/login/login2.js index 8420ae5..8c96ff8 100644 --- a/js/login/login2.js +++ b/js/login/login2.js @@ -10,10 +10,13 @@ layui.use(function () { let field = data.field; let loginType = ""; let hrefUrl = window.location.href; + console.log(hrefUrl) if (hrefUrl && hrefUrl.indexOf("sg_login") > 0) { loginType = "2" } else if (hrefUrl && hrefUrl.indexOf("sc_login") > 0) { loginType = "1" + }else{ + loginType = "2" } const params = { "username": sm2Encrypt(public_key,field.username), @@ -40,6 +43,8 @@ layui.use(function () { window.location.href = "pages/home/navigation.html"; } else if (us.jumpType === '1') { window.location.href = "pages/web/index.html"; + }else{ + window.location.href = "pages/home/navigation.html"; } }); } else if (result.code === 500) { @@ -63,4 +68,4 @@ function errorFn(xhr, status, error) { // 请求出现其他错误 console.error("ajax请求错误:" + error); } -} \ No newline at end of file +} diff --git a/js/pages/accessMge/accessMge.js b/js/pages/accessMge/accessMge.js index f505c7b..dbaab37 100644 --- a/js/pages/accessMge/accessMge.js +++ b/js/pages/accessMge/accessMge.js @@ -113,9 +113,9 @@ function getStatistics(data) { document.getElementById("threesc").textContent = dycNums[2]; document.getElementById("foursc").textContent = dycNums[3]; - var s = "../../img/video/voi_photo4.png"; - var htmls = ''; - $('#photo').empty().append(htmls); + // var s = "../../img/video/voi_photo4.png"; + // var htmls = ''; + // $('#photo').empty().append(htmls); } @@ -165,27 +165,27 @@ function getVehicleStatisticsPhoto(accessType, timeType) { html += ''; }) } else { - // html += '
无数据
' + html += '
今日无告警
' - html += '
'; - html += ''; - html += '告警1'; - html += '
'; - - html += '
'; - html += ''; - html += '告警2'; - html += '
'; - - html += '
'; - html += ''; - html += '告警3'; - html += '
'; - - html += '
'; - html += ''; - html += '告警4'; - html += '
'; + // html += '
'; + // html += ''; + // html += '告警1'; + // html += '
'; + // + // html += '
'; + // html += ''; + // html += '告警2'; + // html += '
'; + // + // html += '
'; + // html += ''; + // html += '告警3'; + // html += '
'; + // + // html += '
'; + // html += ''; + // html += '告警4'; + // html += '
'; } } else if (result.code === 500) { layer.msg(result.msg, { icon: 2 }); @@ -294,9 +294,9 @@ function getStatisticsPer(data) { document.getElementById("threescPer").textContent = dycNums[2]; document.getElementById("fourscPer").textContent = dycNums[3]; - var s = "../../img/video/voi_photo4.png"; - var htmls = ''; - $('#photos').empty().append(htmls); + // var s = "../../img/video/voi_photo4.png"; + // var htmls = ''; + // $('#photos').empty().append(htmls); } function getPerStatisticsPhoto(accessType, timeType) { @@ -317,26 +317,26 @@ function getPerStatisticsPhoto(accessType, timeType) { html += ''; }) } else { - // html += '
无数据
' - html += '
'; - html += ''; - html += '告警1'; - html += '
'; - - html += '
'; - html += ''; - html += '告警2'; - html += '
'; - - html += '
'; - html += ''; - html += '告警3'; - html += '
'; - - html += '
'; - html += ''; - html += '告警4'; - html += '
'; + html += '
暂无告警
' + // html += '
'; + // html += ''; + // html += '告警1'; + // html += '
'; + // + // html += '
'; + // html += ''; + // html += '告警2'; + // html += '
'; + // + // html += '
'; + // html += ''; + // html += '告警3'; + // html += '
'; + // + // html += '
'; + // html += ''; + // html += '告警4'; + // html += '
'; } } else if (result.code === 500) { layer.msg(result.msg, { icon: 2 }); @@ -369,7 +369,7 @@ function getPerStatisticsList(bidCode) { { type: 'numbers', title: '序号', width: '10%' }, // 添加序号列 { field: 'proName', title: '工程名称', align: 'center', width: '20%' }, { field: 'userName', title: '姓名', align: 'center', width: '10%' }, - { field: 'phone', title: '电话', align: 'center', width: '20%' }, + { field: 'userPhone', title: '电话', align: 'center', width: '20%' }, { field: 'accessType', title: '状态', align: 'center', width: '10%' }, { field: 'accesssTime', title: '时间', align: 'center', width: '30%' } ]], @@ -405,19 +405,19 @@ function exportVehicleData() { const url = commonUrl + "screen/largeScreen/accessMge/exportVehicleData?params=" + montageParam; // url ajaxRequestGetExport(url, "GET", true, function () { }, function (blob, status, xhr) { - // 创建一个 Blob 对象 + // 创建一个 Blob 对象 var url = window.URL.createObjectURL(blob); - // 创建一个隐藏的 标签 + // 创建一个隐藏的 标签 var link = document.createElement('a'); link.href = url; - link.download = '车辆出入统计.xlsx'; // 设置下载文件的名称,假设是 Excel 文件 - // 将 标签添加到文档中 + link.download = '车辆出入统计.xlsx'; // 设置下载文件的名称,假设是 Excel 文件 + // 将 标签添加到文档中 document.body.appendChild(link); - // 触发 标签的 click 事件来下载文件 + // 触发 标签的 click 事件来下载文件 link.click(); - // 释放 URL 对象 + // 释放 URL 对象 window.URL.revokeObjectURL(url); - // 移除 标签 + // 移除 标签 document.body.removeChild(link); }, function (xhr, status, error) { errorFn(xhr, status, error) @@ -434,21 +434,21 @@ function exportPerData() { ajaxRequestGetExport(url, "GET", true, function () { }, function (blob, status, xhr) { - // 创建一个 Blob 对象 + // 创建一个 Blob 对象 var url = window.URL.createObjectURL(blob); - // 创建一个隐藏的 标签 + // 创建一个隐藏的 标签 var link = document.createElement('a'); link.href = url; - link.download = '人员出入统计.xlsx'; // 设置下载文件的名称,假设是 Excel 文件 - // 将 标签添加到文档中 + link.download = '人员出入统计.xlsx'; // 设置下载文件的名称,假设是 Excel 文件 + // 将 标签添加到文档中 document.body.appendChild(link); - // 触发 标签的 click 事件来下载文件 + // 触发 标签的 click 事件来下载文件 link.click(); - // 释放 URL 对象 + // 释放 URL 对象 window.URL.revokeObjectURL(url); - // 移除 标签 + // 移除 标签 document.body.removeChild(link); }, function (xhr, status, error) { errorFn(xhr, status, error) diff --git a/js/pages/dataAnalysis/dataAnalysis.js b/js/pages/dataAnalysis/dataAnalysis.js index e47f368..8216743 100644 --- a/js/pages/dataAnalysis/dataAnalysis.js +++ b/js/pages/dataAnalysis/dataAnalysis.js @@ -1,78 +1,138 @@ +let table, layer, form; +layui.use(['layer', 'table', 'form'], function () { + layer = layui.layer; + table = layui.table; + form = layui.form; + // 响应成功后的拦截器 + $.ajaxSetup({ + beforeSend: function (xhr, options) { + var originalSuccess = options.success + options.success = function (data, textStatus, jqXhr) { + data = modifyResponseData(data); + // success(data,textStatus, jqXhr); + originalSuccess.apply(this, arguments) + } + } + }) + initTable(1, parent.$('#bidPro').val()); +}); let myChart = echarts.init(document.getElementById("one-echarts")); -initData(); -function initData(){ + +function initData() { const bidCode = parent.$('#bidPro').val(); const paramData = 'bidCode=' + bidCode + '&type=' + '1'; let montageParam = aqEnnable ? encryptCBC(paramData) : ' &' + encryptCBC(paramData); - loadDataAnalysis(montageParam,1); + loadDataAnalysis(montageParam, 1); } /* 切换数据 */ function changeData(that, type) { + const bidCode = parent.$('#bidPro').val(); $(".ul-box li").each(function () { if ($(this).hasClass("check")) { $(this).removeClass("check").addClass("nocheck"); } }); + var tableElem = $('#demo2').parents('.layui-table-view'); + tableElem.remove(); $(that).removeClass("nocheck").addClass("check"); - if(type !== 10){ - $('#report-box').css('display','none'); - $('#echarts-box').css('width','100%'); - }else{ + if (type === 1 || type === 2 || type === 3 || type === 6 || type === 12) { + initTable(type, bidCode); + $('#right-table-box').removeAttr('style'); + $('#no-data-box').css({ 'display': 'none' }); + $('#right-box').css({ 'display': 'none' }); + } else if (type === 4 || type === 5 || type === 8 || type === 9 || type === 11) { + $('#no-data-box').removeAttr('style'); + $('#right-table-box').css({ 'display': 'none' }); + $('#right-box').css({ 'display': 'none' }); + } else if (type === 7) { // 环境检测分析echarts + $('#right-box').removeAttr('style'); + $('#right-table-box').css({ 'display': 'none' }); + $('#no-data-box').css({ 'display': 'none' }); + $('#report-box').css({'display':'none'}); + $('#echarts-box').css({'width':'100%'}); + myChart.dispose(); + myChart = echarts.init(document.getElementById("one-echarts")); + const paramData = 'bidCode=' + bidCode + '&type=' + 7; + let montageParam = aqEnnable ? encryptCBC(paramData) : ' &' + encryptCBC(paramData); + loadDataAnalysis2(montageParam, 1); + } else if (type === 10) { + $('#right-box').removeAttr('style'); + $('#right-table-box').css({ 'display': 'none' }); + $('#no-data-box').css({ 'display': 'none' }); $('#report-box').removeAttr('style'); - $('#echarts-box').css('width','58%'); + $('#echarts-box').css({'width':'58%'}); + myChart.dispose(); + myChart = echarts.init(document.getElementById("one-echarts")); + const paramData = 'bidCode=' + bidCode + '&type=' + type + ''; + let montageParam = aqEnnable ? encryptCBC(paramData) : ' &' + encryptCBC(paramData); + loadDataAnalysis(montageParam, type); } - myChart.dispose(); - myChart = echarts.init(document.getElementById("one-echarts")); - const bidCode = parent.$('#bidPro').val(); - const paramData = 'bidCode=' + bidCode + '&type=' + type + ''; - let montageParam = aqEnnable ? encryptCBC(paramData) : ' &' + encryptCBC(paramData); - loadDataAnalysis(montageParam,type); + } /* 加载数据分析应用 */ -function loadDataAnalysis(montageParam,type) { +function loadDataAnalysis(montageParam, type) { const url = commonUrl + 'screen/largeScreen/dataAnalysis/getDataAnalysisByType?params=' + montageParam; ajaxRequestGet(url, "GET", true, function () { }, function (result) { - if (result.code === 200) { - setData(result.data); - } else if (result.code === 500) { - console.error('数据分析应用' + result.msg); - } else if (result.code === 401) { - loginout(1); - } + if (result.code === 200) { + setData(result.data); + } else if (result.code === 500) { + console.error('数据分析应用' + result.msg); + } else if (result.code === 401) { + loginout(1); + } }, function (xhr, status, error) { - errorFn(xhr, status, error) + errorFn(xhr, status, error) }, aqEnnable); /* 项目风险赋值 */ function setData(list) { - let nameList = [],valueList = []; - if(list && list.length > 0){ - $.each(list,function(index,item){ - nameList.push(item.name); - valueList.push({value:item.num,name:item.name}); - }) + let nameList = [], valueList = []; + if (list && list.length > 0) { + $.each(list, function (index, item) { + nameList.push(item.name); + valueList.push({ value: item.num, name: item.name }); + }) } initEcharts(nameList, valueList); - if(type === 10){ + if (type === 10) { setReportTable(list); } } // 数据分析报告 - function setReportTable(list){ - let html = ''; - $.each(list,function(index,item){ - html += ''; - html += '' + item.name + ''; - html += '' + item.num + ''; - html += ''; - }) - $('#report-box table tbody').empty().append(html); + function setReportTable(list) { + let html = ''; + $.each(list, function (index, item) { + html += ''; + html += '' + item.name + ''; + html += '' + item.num + ''; + html += ''; + }) + $('#report-box table tbody').empty().append(html); } } +/* 加载数据分析应用 */ +function loadDataAnalysis2(montageParam, type) { + const url = commonUrl + 'screen/largeScreen/dataAnalysis/getListByType2?params=' + montageParam; + ajaxRequestGet(url, "GET", true, function () { + }, function (result) { + if (result.code === 200) { + console.error(result); + + initEchartsOne(result.data); + } else if (result.code === 500) { + console.error('数据分析应用' + result.msg); + } else if (result.code === 401) { + loginout(1); + } + }, function (xhr, status, error) { + errorFn(xhr, status, error) + }, aqEnnable); +} + /* 初始化echarts */ function initEcharts(nameList, valueList) { let option = { @@ -92,9 +152,6 @@ function initEcharts(nameList, valueList) { }, legend: { show: false, - // orient: 'vertical', - // left: 'left', - // data: ["直接访问", "邮件营销", "联盟广告", "视频广告", "搜索引擎"], data: nameList, }, series: [ @@ -108,13 +165,6 @@ function initEcharts(nameList, valueList) { formatter: "{b} {d}%", }, data: valueList, - /* data: [ - { value: 335, name: "直接访问" }, - { value: 310, name: "邮件营销" }, - { value: 234, name: "联盟广告" }, - { value: 135, name: "视频广告" }, - { value: 1548, name: "搜索引擎" }, - ], */ }, ], }; @@ -123,3 +173,273 @@ function initEcharts(nameList, valueList) { myChart.resize(); }); } + + +function initTable(type, bidCode) { + const url = commonUrl + "screen/largeScreen/dataAnalysis/getListByType"; + table.render({ + elem: '#demo2', + url: url, + skin: 'line', + page: true, + height: 'full-100', + headers: { + "decrypt": "decrypt", + "Authorization": token + }, + where: { + bidCode: bidCode, + type: type + }, + cols: [setCols(type)], + initComplete: function () { + // 在表格渲染完成后,重新渲染序号列 + var that = this.elem.next(); + var tool = that.children('.layui-table-box').children('.layui-table-fixed').children('.layui-table-body').children('.layui-table'); + tool.find("tr").each(function (index, item) { + $(this).find('td[data-field="LAY_TABLE_INDEX"]').text(index + 1); + }); + }, + done: function (res, curr, count, origin) { + // console.log(res); + } + }) + + function setCols(type) { + if (type === 1) { // 工程质量分析 + return [ + { type: 'numbers', title: '序号', width: '10%' }, // 添加序号列 + { field: 'proName', title: '工程名称', align: 'center', width: '40%' }, + { field: 'xmManager', title: '项目经理', align: 'center', width: '25%' }, + { field: 'qualityLevel', title: '工程质量等级', align: 'center', width: '25%' }, + ]; + } else if (type === 2) { + return [ + { type: 'numbers', title: '序号', width: '10%' }, // 添加序号列 + { field: 'proName', title: '工程名称', align: 'center', width: '20%' }, + { field: 'riskLevel', title: '风险等级', align: 'center', width: '10%' }, + { field: 'workTeam', title: '班组名称', align: 'center', width: '20%' }, + { field: 'teamLeader', title: '班组长', align: 'center', width: '10%' }, + { field: 'concat', title: '工作内容', align: 'center', width: '30%' } + ]; + } else if (type === 3) { + return [ + { type: 'numbers', title: '序号', width: '10%' }, // 添加序号列 + { field: 'proName', title: '工程名称', align: 'center', width: '30%' }, + { field: 'planStartTime', title: '计划开始时间', align: 'center', width: '20%' }, + { field: 'planEndTime', title: '计划结束时间', align: 'center', width: '20%' }, + { field: 'gcProcess', title: '工程进度', align: 'center', width: '20%' }, + ]; + }else if (type === 6) { + return [ + { type: 'numbers', title: '序号', width: '10%' }, // 添加序号列 + { field: 'proName', title: '工程名称', align: 'center', width: '30%' }, + { field: 'workTeam', title: '班组名称', align: 'center', width: '20%' }, + { field: 'concat', title: '工作内容', align: 'center', width: '20%' }, + { field: 'sgNum', title: '今日施工人数', align: 'center', width: '10%' }, + { field: 'hisNum', title: '昨日施工人数', align: 'center', width: '10%' }, + ]; + }else if (type === 12) { + return [ + { type: 'numbers', title: '序号', width: '10%' }, // 添加序号列 + { field: 'proName', title: '工程名称', align: 'center', width: '50%' }, + { field: 'yqResaon', title: '延期原因分析', align: 'center', width: '40%' }, + ]; + } + } +} + +/* 变化趋势 */ +function initEchartsOne(list) { + let xLabel = [], dataValue = [], title = ''; + $.each(list, function (index, item) { + if (index === 0) { + title = item.jcName + } + xLabel.push(item.jcTime); + dataValue.push(item.jcValue); + }) + let fontSize = '14', fontFamily = 'Alibaba PuHuiTi R', fontColor = '#fff'; + const tooltip = { + show: true, + trigger: 'axis', + axisPointer: { + type: 'shadow' + }, + backgroundColor: 'rgba(75, 79, 82, 0.80)', //设置背景颜色 + textStyle: { + color: fontColor, + fontFamily: fontFamily + }, + borderColor: "rgba(255,255,255, .5)", + }; + let option = { + backgroundColor: 'transparent', + tooltip, + legend: { + show: false, + }, + grid: { + top: '25%', + left: '5%', + right: '5%', + bottom: '15%', + }, + xAxis: [ + { + type: 'category', + boundaryGap: true, + axisLine: { + //坐标轴轴线相关设置。数学上的x轴 + show: true, + lineStyle: { + color: '#5A6E71', + }, + }, + axisLabel: { + //坐标轴刻度标签的相关设置 + textStyle: { + color: fontColor, + fontSize: fontSize, + fontFamily: fontFamily + }, + }, + splitLine: { + show: false, + lineStyle: { + color: '#233653', + }, + }, + axisTick: { + show: false, + }, + data: xLabel, + }, + ], + yAxis: [ + { + name: title + 'Ƽg/m3', + nameTextStyle: { + color: fontColor, + fontSize: fontSize, + padding: [0, 60, 0, 0], + fontFamily: fontFamily + }, + // minInterval: 1, + type: 'value', + splitLine: { + show: true, + lineStyle: { + color: '#25393B', + type: 'dashed' + }, + }, + axisLine: { + show: true, + lineStyle: { + color: '#25393B', + }, + }, + axisLabel: { + show: true, + textStyle: { + color: fontColor, + fontSize: fontSize, + fontFamily: fontFamily + } + }, + axisTick: { + show: false, + }, + }, + ], + series: [ + { + name: title, + type: 'line', + symbol: 'circle', // 默认是空心圆(中间是白色的),改成实心圆 + smooth: true, + lineStyle: { + normal: { + width: 3, + // color: '#1ED6FF', // 线条颜色 + color: new echarts.graphic.LinearGradient( + 0, + 0, + 0, + 1, + [ + { + offset: 0, + color: '#0DF0FD', + }, + { + offset: 0.6, + color: '#00F1D4', + }, + { + offset: 1, + color: '#0EEEFC', + }, + ], + false + ), + }, + }, + itemStyle: { + normal: { + color: '#1ED6FF',//拐点颜色 + // borderColor: '#fff600',//拐点边框颜色 + // borderWidth: 13//拐点边框大小 + label: { + show: true, //开启显示 + color: fontColor, + fontFamily: fontFamily, + position: 'top', //在上方显示 + formatter: function (res) { + if (res.value) { + return res.value + } else { + return 0 + } + }, + }, + }, + + }, + symbolSize: 8, //设定实心点的大小 + areaStyle: { + normal: { + //线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。 + color: new echarts.graphic.LinearGradient( + 0, + 0, + 0, + 1, + [ + { + offset: 0, + color: '#01DDE9', + }, + { + offset: 0.6, + color: '#086A79', + }, + { + offset: 1, + color: '#0D3134', + }, + ], + false + ), + }, + }, + data: dataValue, + } + ] + } + myChart.setOption(option, true); + window.addEventListener("resize", function () { + myChart.resize(); + }); +} \ No newline at end of file diff --git a/js/pages/video/video.js b/js/pages/video/video.js index e414e9e..68aefe4 100644 --- a/js/pages/video/video.js +++ b/js/pages/video/video.js @@ -31,7 +31,7 @@ layui.config({ // playControl(); let randomNum = Math.floor(Math.random() * 2) + 1; console.log(randomNum); - $('#videoPlayer1').attr('src','../../../video/'+randomNum+'.mp4') + $('#videoPlayer1').attr('src','../../../video/'+'video.mp4') videoObject.devCode = puid; } else { return parent.layer.msg('请选择球机', { icon: 7 }); diff --git a/js/personnelControl/personnelControlList.js b/js/personnelControl/personnelControlList.js index 61f6a94..366be15 100644 --- a/js/personnelControl/personnelControlList.js +++ b/js/personnelControl/personnelControlList.js @@ -308,7 +308,10 @@ function drawAFence(){ overlays.push(e.overlay); debugger if (overlays.length > 0) { - const polygon = overlays[0].Po; + console.log(overlays[0]) + var polygon = e.overlay.getPath();//Array 返回多边型的点数组 + + // const polygon = overlays[0].Po; for (let i = 0; i < polygon.length; i++) { coordinates.push(polygon[i].lng + '@' +polygon[i].lat); } diff --git a/pages/dataAnalysis/dataAnalysis.html b/pages/dataAnalysis/dataAnalysis.html index ddd2979..a1a9859 100644 --- a/pages/dataAnalysis/dataAnalysis.html +++ b/pages/dataAnalysis/dataAnalysis.html @@ -8,6 +8,8 @@ + + @@ -43,7 +45,13 @@
  • 延期原因分析
  • -
    +
    +
    +
    + +
    + diff --git a/pages/index/index.html b/pages/index/index.html index f70b7fd..ce2cfa2 100644 --- a/pages/index/index.html +++ b/pages/index/index.html @@ -23,7 +23,7 @@
    @@ -119,4 +119,4 @@ - \ No newline at end of file + diff --git a/pages/operEnvironment/operEnvironment.html b/pages/operEnvironment/operEnvironment.html index 7a3e0e3..b71ed99 100644 --- a/pages/operEnvironment/operEnvironment.html +++ b/pages/operEnvironment/operEnvironment.html @@ -20,8 +20,8 @@ 作业环境
    @@ -166,4 +166,4 @@
    - \ No newline at end of file + diff --git a/pages/video/video.html b/pages/video/video.html index bdb472f..27db152 100644 --- a/pages/video/video.html +++ b/pages/video/video.html @@ -23,8 +23,8 @@ 视频监控
    diff --git a/video/video.mp4 b/video/video.mp4 new file mode 100644 index 0000000..540c5bf Binary files /dev/null and b/video/video.mp4 differ