From f108686555148f84af095c10874c8213fd5a1a8c Mon Sep 17 00:00:00 2001 From: zhengpengju Date: Sat, 30 May 2020 10:22:46 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E5=A4=84=E7=90=86=EF=BC=8C=E5=8F=AA=E6=98=BE=E7=A4=BA=E6=9C=80?= =?UTF-8?q?=E8=BF=91100=E6=9D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Former-commit-id: 2ca8596cd78220579c91978dd3a71d8b7d38e8de --- projects/WebSPA/wwwroot/images/warn.svg | 1 + projects/WebSPA/wwwroot/js/app.js | 2 +- projects/WebSPA/wwwroot/js/store.js | 18 +++++++++++++++--- 3 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 projects/WebSPA/wwwroot/images/warn.svg diff --git a/projects/WebSPA/wwwroot/images/warn.svg b/projects/WebSPA/wwwroot/images/warn.svg new file mode 100644 index 00000000..7d08ff2b --- /dev/null +++ b/projects/WebSPA/wwwroot/images/warn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/projects/WebSPA/wwwroot/js/app.js b/projects/WebSPA/wwwroot/js/app.js index da753827..4c217cbd 100644 --- a/projects/WebSPA/wwwroot/js/app.js +++ b/projects/WebSPA/wwwroot/js/app.js @@ -231,7 +231,7 @@ function saveMessage(msg){ } } -function loadMessage(callback, limit = 10){ +function loadMessage(callback, limit = 99){ if(db){ console.log("数据库打开"); console.log(db); diff --git a/projects/WebSPA/wwwroot/js/store.js b/projects/WebSPA/wwwroot/js/store.js index 8c58730a..de616124 100644 --- a/projects/WebSPA/wwwroot/js/store.js +++ b/projects/WebSPA/wwwroot/js/store.js @@ -148,16 +148,28 @@ const store = new Vuex.Store({ * 设置消息数据 * @param {*} state 原有状态 * @param {*} messages 新的消息数组 + * @param {*} limit 默认条数限制 */ - setMessages(state, messages){ + setMessages(state, messages, limit = 99){ console.log('<<>>'); console.log(state.messages); console.log(messages); - console.log('===================================='); + console.log('=================state.messages==================='); //state.messages = messages; //state.messages.push(messages); - // 便利消息列表追加 + console.log('state.messages::s:', state.messages); + // 推出超出条数(FIFO) + state.messages.forEach(function(value,i){ + if(i >= limit){ + state.messages.shift() + } + }) + console.log('state.messages::e:', state.messages); + // 消息列表追加 messages.forEach(function(value,i){ + if(state.messages >= limit){ + state.messages.shift() + } state.messages.push(value); }) console.log(state.messages); From 91bc8c70014ffb7c6346708d9a2740061703d6ff Mon Sep 17 00:00:00 2001 From: zhengpengju Date: Sat, 30 May 2020 11:09:20 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=B8=85=E7=90=86=E8=B0=83=E8=AF=95?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Former-commit-id: 373142af6887f1235cac0ba1d30770e81921edad --- projects/WebSPA/wwwroot/js/app.js | 53 ++----------------- projects/WebSPA/wwwroot/js/config.js | 1 - projects/WebSPA/wwwroot/js/iot.js | 12 ++--- projects/WebSPA/wwwroot/js/message.js | 25 --------- projects/WebSPA/wwwroot/js/store.js | 14 +---- projects/WebSPA/wwwroot/js/util.js | 1 - projects/WebSPA/wwwroot/pages/home.js | 4 +- projects/WebSPA/wwwroot/pages/iot/device.js | 25 ++------- .../wwwroot/pages/iot/device/camera.html | 5 -- .../wwwroot/pages/iot/device/color-light.html | 2 - .../wwwroot/pages/iot/device/socket.html | 2 - projects/WebSPA/wwwroot/pages/iot/node.js | 11 ---- projects/WebSPA/wwwroot/pages/iot/product.js | 8 --- projects/WebSPA/wwwroot/pages/iot/products.js | 8 --- projects/WebSPA/wwwroot/pages/login.js | 2 - 15 files changed, 17 insertions(+), 156 deletions(-) diff --git a/projects/WebSPA/wwwroot/js/app.js b/projects/WebSPA/wwwroot/js/app.js index 4c217cbd..fb637c63 100644 --- a/projects/WebSPA/wwwroot/js/app.js +++ b/projects/WebSPA/wwwroot/js/app.js @@ -3,9 +3,7 @@ var isApp = userAgent.indexOf('isapp') !== -1; var localStoreMsg = false; // 是否本地存储消息 /* API 网关 */ var apigateway = config.apigateway; -console.log('config:'); -console.log(apigateway); - +/* 从存储载入消息 */ var isLoadedMSG = false; /** @@ -21,7 +19,6 @@ axios.interceptors.request.use( config.headers['x-requested-with'] = 'XMLHttpRequest'; config.headers['Authorization'] = 'Bearer ' + store.state.accessToken; config.headers['X-APP-VERSION'] = '2.0.0'; - console.log('url:' + config.url + 'auth token:' + config.headers['Authorization']); } // 绝对路径替换为网关+路径 (防止多次请求重复拼接URL) config.url = config.url.indexOf('/') == 0 ? apigateway + config.url : config.url; @@ -32,8 +29,6 @@ axios.interceptors.request.use( return config; }, function (error) { - console.log('axios.interceptors.request.error:'); - console.log(error); $('#loading').fadeOut(100); return Promise.reject(error); } @@ -44,8 +39,6 @@ axios.interceptors.request.use( * 前端网络请求异常统一处理 */ axios.interceptors.response.use(function (response) { - console.log('axios.interceptors.response:'); - console.log(response); $('#loading').fadeOut(100); //根据config内容动态设置url @@ -88,7 +81,7 @@ axios.interceptors.response.use(function (response) { error.config.headers['Authorization'] = 'Bearer ' + store.state.accessToken; console.log('刷新token后重发api请求'); /* 重新发送原请求 */ - delete error.config.headers.Authorization //移除旧的AccessToken信息,避免拦截器无法设置新AccessToken + delete error.config.headers.Authorization // 移除旧的AccessToken信息,避免拦截器无法设置新AccessToken axios.request(error.config); }) .catch(function (error) { // 如果为RefreshToken失败则跳转登录页面 @@ -111,11 +104,7 @@ const router = new VueRouter({ }); router.beforeEach((to, from, next) => { $('#loading').show(); - console.log('before...') - console.log('store.state.accessToken', store.state.accessToken) - console.log('to.path', to.path) if (!store.state.accessToken && to.path !== '/pages/login') { - console.log('router.push') router.push('/pages/login'); return; } @@ -128,14 +117,10 @@ router.beforeEach((to, from, next) => { route = routeList[i]; } } - console.log('route', route) if (!route) { - console.log('<<>>', to.path) var path = to.path === '/' ? '/pages/home' : to.path; - var url = path + '.js'; var method = path.replace(/\//g, '_').substr(1) + "()"; - console.log('preRoute:from ' + from.path + ' to path ' + to.path); $.getScript(url, function () { var response = eval(method); var route = { @@ -149,8 +134,6 @@ router.beforeEach((to, from, next) => { }); } else { - console.log('!route else', route) - console.log('route from:' + from.path + ' to:' + to.path); next(); } }); @@ -185,7 +168,6 @@ if(indexedDB){ console.log('不支持'); } -console.log(indexedDB); var db = null; var request = indexedDB.open('app', 1); request.onupgradeneeded = function(e) { @@ -201,29 +183,22 @@ request.onsuccess = function() { /** * 初始化消息列表 */ - console.log('loading message'); + //loadMessage(); } function saveMessage(msg){ if(db){ console.log("数据库打开"); - console.log(db); var transaction = db.transaction('message','readwrite'); var objectStore = transaction.objectStore('message'); - console.log("数据:"); - console.log(msg); - console.log("类型:"); var jsonMsg = JSON.parse(msg); - console.log(typeof JSON.parse(msg)); // 校验数据格式(当前只存储带key的消息,后续会有调整) if( jsonMsg.key ){ - console.log('IS MSG'); // 本地存储 if(localStoreMsg){ objectStore.add({data: jsonMsg}); } - // objectStore.delete(store.state.messages[0]._id); store.commit('setMessages', [{data: jsonMsg}]); } }else{ @@ -234,47 +209,29 @@ function saveMessage(msg){ function loadMessage(callback, limit = 99){ if(db){ console.log("数据库打开"); - console.log(db); var transaction = db.transaction('message','readwrite'); var objectStore = transaction.objectStore('message'); - console.log('objectStore:') - console.log(objectStore); var req = objectStore.openCursor(); - console.log('req:') - console.log(req); var items = []; // 回调会被多次调用 req.onsuccess = function (evt) { var cursor = evt.target.result; - console.log('cursor:') - console.log(cursor); if(cursor){ // 必要检查 var item = cursor.value; - //console.log(item); if(item.data.device){ items.push(item); - console.log('append item !!!'); - //console.log(items); - console.log('####### item #######'); - console.log('displayName: ' + item.data.device.displayName); - console.log('Name: ' + item.data.name); - console.log('Value: ' + item.data.value); } - cursor.continue(); // 移动到下一项 }else{ // 回调函数 - console.log('call back!!!'); callback(items); // 加载后删除数据库,只缓存上次应用开启数据 //indexedDB.deleteDatabase('app'); objectStore.clear(); - //alert(items.length -100) } }; - console.log(limit); var req = objectStore.get(limit); req.onerror = function(event) { console.log('事务失败'); @@ -292,7 +249,6 @@ const app = new Vue({ data: { }, mounted: function () { - console.log('mounted:app'); // 判断是否登录 if(localStorage.getItem('accessToken') === null){ // @@ -300,8 +256,9 @@ const app = new Vue({ } }, destroyed: function(){ - alert('des'); + //Todo }, methods: { + //Todo }, }).$mount('#app'); \ No newline at end of file diff --git a/projects/WebSPA/wwwroot/js/config.js b/projects/WebSPA/wwwroot/js/config.js index 1cd49e6d..5d4db5cd 100644 --- a/projects/WebSPA/wwwroot/js/config.js +++ b/projects/WebSPA/wwwroot/js/config.js @@ -5,4 +5,3 @@ var config = (function(global){ global.liverUrl = global.apigateway; // 流媒体服务器地址 return global; })(window.config||{}); -console.log('config init'); \ No newline at end of file diff --git a/projects/WebSPA/wwwroot/js/iot.js b/projects/WebSPA/wwwroot/js/iot.js index b7713a77..724dbde0 100644 --- a/projects/WebSPA/wwwroot/js/iot.js +++ b/projects/WebSPA/wwwroot/js/iot.js @@ -38,17 +38,16 @@ function getData(device, name) { } //devices function parseModel(response) { - console.log('parseModel'); + var html = new DOMParser().parseFromString(response.data, 'text/html'); - console.log(html); + var template = html.getElementsByTagName('template')[0].innerHTML; - console.log(template); + var script = html.getElementsByTagName('script')[0].innerHTML; - console.log(script); + var model = eval(script); model.template = template; - console.log('model:::::'); - console.log(model); + return model; } Vue.component('iot-gateway', function (resolve, reject) { @@ -78,7 +77,6 @@ Vue.component('iot-person', function (resolve, reject) { }); Vue.component('iot-curtain', function (resolve, reject) { axios.get("/pages/iot/device/curtain.html").then(function (response) { - console.log(response); resolve(parseModel(response)); }); }); diff --git a/projects/WebSPA/wwwroot/js/message.js b/projects/WebSPA/wwwroot/js/message.js index 62536c20..1472b9c4 100644 --- a/projects/WebSPA/wwwroot/js/message.js +++ b/projects/WebSPA/wwwroot/js/message.js @@ -34,25 +34,9 @@ connection.on("ServerToClient", function (method, message, to, from) { var model = JSON.parse(message); router.currentRoute.meta.onMessage(event, model, to, from); - console.log('receive:'); - console.log(method); // 调用方法 - console.log(message); // 消息内容 // 本地存储消息 saveMessage(message); - console.log('old messages:'); - console.log('==='); - console.log(store.state.messages); - - console.log('save message'); - console.log('===event==='); - console.log(event); - - - console.log('-------------'); - //store.commit('setMessages', []); - console.log('-------------'); - /** * 调用定义的update事件处理 * 注:设备移除 @@ -64,15 +48,6 @@ connection.on("ServerToClient", function (method, message, to, from) { * from: null */ - console.log('message.js event:'); - console.log(event); - console.log('message.js model:'); - console.log(model); - console.log('message.js to:'); - console.log(to); - console.log('message.js from:'); - console.log(from); - /** * 事件过滤处理,绑定到对应异步操作 * 除设备操作事件外(Event > Mutations > State),其他事件只做Action触发,不直接刷新数据 diff --git a/projects/WebSPA/wwwroot/js/store.js b/projects/WebSPA/wwwroot/js/store.js index de616124..b160d361 100644 --- a/projects/WebSPA/wwwroot/js/store.js +++ b/projects/WebSPA/wwwroot/js/store.js @@ -33,9 +33,6 @@ const store = new Vuex.Store({ * */ update(context, model) { - console.log('#########################################'+model.event+'#########################################'); - console.log(model) - // alert('update'); context.commit(model.event, model); }, @@ -151,20 +148,13 @@ const store = new Vuex.Store({ * @param {*} limit 默认条数限制 */ setMessages(state, messages, limit = 99){ - console.log('<<>>'); - console.log(state.messages); - console.log(messages); - console.log('=================state.messages==================='); - //state.messages = messages; - //state.messages.push(messages); - console.log('state.messages::s:', state.messages); // 推出超出条数(FIFO) state.messages.forEach(function(value,i){ if(i >= limit){ state.messages.shift() } }) - console.log('state.messages::e:', state.messages); + // 消息列表追加 messages.forEach(function(value,i){ if(state.messages >= limit){ @@ -172,7 +162,7 @@ const store = new Vuex.Store({ } state.messages.push(value); }) - console.log(state.messages); + }, nodeEntityUpdated(state, data) { diff --git a/projects/WebSPA/wwwroot/js/util.js b/projects/WebSPA/wwwroot/js/util.js index 2d913927..b0002784 100644 --- a/projects/WebSPA/wwwroot/js/util.js +++ b/projects/WebSPA/wwwroot/js/util.js @@ -22,7 +22,6 @@ function update(list, item, key) { list.push(item); result = true; } - console.log(result?'insert':'update'+' data by '+key); return result; } //delete diff --git a/projects/WebSPA/wwwroot/pages/home.js b/projects/WebSPA/wwwroot/pages/home.js index 6396b475..a7508d9d 100644 --- a/projects/WebSPA/wwwroot/pages/home.js +++ b/projects/WebSPA/wwwroot/pages/home.js @@ -15,14 +15,14 @@ }, mounted: function () { weui.tab('#tab', { defaultIndex: 1 }); - console.log('setUser>>>>>>>>'); + var url = this.url; axios.get(url).then(function (response) { store.commit('setUser', response.data); }).catch(function (error) { //error }) - console.log('载入消息2>>>>>>>>'); + // 从存储载入消息 if(!isLoadedMSG) { loadMessage(function(msgs){ diff --git a/projects/WebSPA/wwwroot/pages/iot/device.js b/projects/WebSPA/wwwroot/pages/iot/device.js index 0de1548c..98136de3 100644 --- a/projects/WebSPA/wwwroot/pages/iot/device.js +++ b/projects/WebSPA/wwwroot/pages/iot/device.js @@ -30,12 +30,10 @@ }, // 实例生命周期钩子 (销毁完毕) destroyed: function () { - console.log('destroyed:'); store.commit('setDevice', null); }, methods: { updateChart: function () { - console.log('updateChart:'); var dataList = Enumerable.from(this.device.data).where(function (o) { return o.type === 10 || o.type === 20; }).toArray(); @@ -44,7 +42,6 @@ } }, changeTime: function (key, time,title) { - console.log('changeTime:'); var vm = this; var t = (new Date()).valueOf(); var url = '/IoTCenter/api/v1/Device/GetChartData?t=' + t; @@ -57,14 +54,12 @@ .then(function (response) { var data = response.data; vm.UpdateChartInternal(key, data,title); - console.log('折线图更新成功'); }) .catch(function (error) { console.log(error); }); }, UpdateChartInternal(key, data, title) { - console.log('UpdateChartInternal:'); var canvas = document.getElementById(this.device.number + '-' + key); var chart; Chart.helpers.each(Chart.instances, function (instance) { @@ -72,7 +67,6 @@ chart = instance; } }); - console.log('chart:', chart); if (chart === '') { chart.data = data; @@ -80,8 +74,7 @@ } else { var ctx = canvas.getContext('2d'); - // ctx.canvas.height = 150; - console.log('canvas.getContext:', ctx); + var options = { responsive: true, legend: { @@ -124,11 +117,8 @@ }, computed: { // 计算属性的 getter - device: function () { - console.log('++++++++++++++++debug++++++++++++++++'); - console.log(store.state.device); + device: function () { return store.state.device; - }, hasChart: function () { // `this` 指向 app 实例 @@ -141,18 +131,9 @@ }), onMessage: function (event, model, to, from) { // event : execApiResponse | dataEntityUpdated - console.log('@@@@ device.js @@@@') - console.log(event) - console.log('@@@@ device.js @@@@') if(event === 'dataEntityUpdated'){ - console.log('%%%%%%%%') - console.log(event) - console.log(model) - console.log(to) - console.log(from) store.dispatch('update', {event, model, to, from}); - } - //alert(event) + } } } } \ No newline at end of file diff --git a/projects/WebSPA/wwwroot/pages/iot/device/camera.html b/projects/WebSPA/wwwroot/pages/iot/device/camera.html index 268e36f5..e3a40a1b 100644 --- a/projects/WebSPA/wwwroot/pages/iot/device/camera.html +++ b/projects/WebSPA/wwwroot/pages/iot/device/camera.html @@ -123,25 +123,20 @@ this.flvPlayer.muted = this.muted; var vm = this; this.timer = setInterval(function () { - console.log('.'); if (vm.flvPlayer.statisticsInfo.speed === 0) { - console.log('reload1'); clearInterval(vm.timer); vm.playByFlvJs(); } else if (vm.decodedFrames && vm.flvPlayer.statisticsInfo.decodedFrames <= decodedFrames) { - console.log('reload2'); clearInterval(vm.timer); vm.playByFlvJs(); } else if (vm.flvPlayer.buffered.length > 0 && vm.flvPlayer.buffered.end(0) - vm.flvPlayer.currentTime > 2) { - console.log('reset currentTime'); vm.flvPlayer.currentTime = vm.flvPlayer.buffered.end(0) - 0.001; } vm.decodedFrames = vm.flvPlayer.statisticsInfo.decodedFrames; }, 30 * 1000); } catch (e) { - console.log('error:'); console.log(e); } } diff --git a/projects/WebSPA/wwwroot/pages/iot/device/color-light.html b/projects/WebSPA/wwwroot/pages/iot/device/color-light.html index ebc9aa89..b8197b7f 100644 --- a/projects/WebSPA/wwwroot/pages/iot/device/color-light.html +++ b/projects/WebSPA/wwwroot/pages/iot/device/color-light.html @@ -56,7 +56,6 @@ color: function () { var h = Math.round(parseInt(this.hue || 128) * 360 / 255); var result = 'hsl(' + h + ',100%,50%)'; - console.log('color:'+result); return result; }, hsl: function () { @@ -64,7 +63,6 @@ var s = Math.round(parseInt(this.saturation || 128) * 100 / 254); var l = Math.round(parseInt(this.brightness || 128) * 100 / 254); var result = 'hsl(' + h + ',' + s + '%,' + l + '%);'; - console.log('hsl:'+result); return result; } } diff --git a/projects/WebSPA/wwwroot/pages/iot/device/socket.html b/projects/WebSPA/wwwroot/pages/iot/device/socket.html index d82f037d..aa839c98 100644 --- a/projects/WebSPA/wwwroot/pages/iot/device/socket.html +++ b/projects/WebSPA/wwwroot/pages/iot/device/socket.html @@ -27,11 +27,9 @@ props: ['device'], computed: { electricity: function () { - console.log('$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-electricity'); return parseFloat(getDeviceDataValue(this.device, '电量')||0).toFixed(2); }, power: function (){ - console.log('$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-power'); return parseFloat(getDeviceDataValue(this.device, '功率')||0).toFixed(2); } } diff --git a/projects/WebSPA/wwwroot/pages/iot/node.js b/projects/WebSPA/wwwroot/pages/iot/node.js index c85fb539..3fcf6159 100644 --- a/projects/WebSPA/wwwroot/pages/iot/node.js +++ b/projects/WebSPA/wwwroot/pages/iot/node.js @@ -30,8 +30,6 @@ }, getShowFlag:function (name){ arr = Enumerable.from(this.node.devices).where(function (o) { return o.name === name; }).toArray(); - console.log('arrarrarrarr', arr) - console.log('arrarrarrarr', JSON.parse(arr[0].data[0].value)[0].name) return JSON.parse(arr[0].data[0].value)[0].name !== '测试' ? true : false; }, getDeviceDataAttr: function (number, name, attr) { @@ -59,18 +57,9 @@ }), onMessage: function (event, model, to, from) { // event : execApiResponse | dataEntityUpdated - console.log('@@@@ node.js @@@@') - console.log(event) - console.log('@@@@ node.js @@@@') if(event === 'dataEntityUpdated'){ - console.log('%%%%%%%%') - console.log(event) - console.log(model) - console.log(to) - console.log(from) store.dispatch('update', {event, model, to, from}); } - //alert(event) } } } \ No newline at end of file diff --git a/projects/WebSPA/wwwroot/pages/iot/product.js b/projects/WebSPA/wwwroot/pages/iot/product.js index 76de0bd7..4360a186 100644 --- a/projects/WebSPA/wwwroot/pages/iot/product.js +++ b/projects/WebSPA/wwwroot/pages/iot/product.js @@ -36,18 +36,10 @@ }), onMessage: function (event, model, to, from) { // event : deviceEntityDeleted | productEntityInserted - console.log('@@@@') - console.log(event) - // 当当前为产品设备列表页面时,刷新产品设备列表 (由于每次进入页面都触发数据刷新,非当前页面则不做数据更新处理) var number = getUrlKey('number'); if(event === 'productEntityInserted'){ - console.log('%%%%%%%%') - console.log(event) - console.log(model) - console.log(to) - console.log(from) store.dispatch('getProducts', {event, model, to, from}); // 向产品设备列表中新增 store.dispatch('getProduct', {number:number}); diff --git a/projects/WebSPA/wwwroot/pages/iot/products.js b/projects/WebSPA/wwwroot/pages/iot/products.js index 780ba689..44304adb 100644 --- a/projects/WebSPA/wwwroot/pages/iot/products.js +++ b/projects/WebSPA/wwwroot/pages/iot/products.js @@ -33,17 +33,9 @@ function pages_iot_products() { }), onMessage: function (event, model, to, from) { // event : execApiResponse | dataEntityUpdated - console.log('@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@') - console.log(event) if(event === 'productEntityInserted'){ - console.log('%%%%%%%%') - console.log(event) - console.log(model) - console.log(to) - console.log(from) store.dispatch('getProducts', {event, model, to, from}); } - //alert(event) } } } \ No newline at end of file diff --git a/projects/WebSPA/wwwroot/pages/login.js b/projects/WebSPA/wwwroot/pages/login.js index 625c7601..3e2bf79f 100644 --- a/projects/WebSPA/wwwroot/pages/login.js +++ b/projects/WebSPA/wwwroot/pages/login.js @@ -11,11 +11,9 @@ }; }, mounted: function () { - console.log('mounted:login'); weui.form.checkIfBlur('#form', this.regexp); // 绑定enter事件 this.enterKeyup(); - console.log('mounted:enterKeyup'); }, computed: { regexp: function () {