HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

每日互动联合绍兴高速交警、温州高速交警和浙江高信发布“高速障碍物预警系统”

5月18日,以“瓯江论数 数安中国”为主题的2023数据安全发展大会在温州圆满举办。其中,每日互动聚焦“安全是前提,发展是主题”,承办了本次大会5个分论坛之一的“数据智能安全与发展论坛”。在此论坛上,每日互动和绍兴高速交警、温州高速交警和浙江高信技术股份有限公司(“浙江高信”)联合发布了高速障碍物预警系统,基于数据智能,以低成本、高效率、智慧化的方式,护航高速交通的畅通与安全。

图:数据智能安全与发展论坛现场发布“高速障碍物预警系统”

党的二十大报告指出,要加快建设交通强国。发展数字交通,成为促进综合交通高质量发展的重要推动力。在此背景下,每日互动和浙江高信基于各自的行业及技术优势,携手开展在智慧高速领域的数据智能实践,共同打造推出了“高速障碍物预警系统”,推动智慧高速场景建设。

每日互动是专业的数据智能服务商,聚焦数据智能赛道十余年,构建了“数据积累-数据治理-数据应用”的服务生态闭环,为商业主体和政府部门提供丰富的数据智能产品、服务与解决方案。其中,在公共服务领域,公司具有丰富的实践经验,积累了对人、车、道路、时间、空间等多要素数据进行关联计算和分析洞察的能力,已在城市治理、智慧交通等领域给政府相关部门提供了有力的大数据支撑。

浙江高信是浙江省交通投资集团有限公司(以下简称“交通集团”)下属科技型子公司,是交通集团交通信息产业的主体平台。二十年来主要围绕智慧交通、智慧城市、数字政企、智能轨道和航空航运等业务领域,依托数字化规划咨询、数字基础设施建设和数据资源增值服务三大核心竞争力,专业提供多场景、多业务、全周期、全生态、数字化的一站式服务。

此次双方合作打造的高速障碍物预警系统主要用于保障高速交通的畅通与安全。从提高市民出行安全来看,系统将高速异常事件预警模型与大数据技术相结合,能实时感知高速道路上的车速变化,及时发现异常事件并快速预警,实现“预警”跑在“报警”前,减少二次事故风险。而从道路的营运、管理部门的角度看,传统的视频监控、人工巡检等预警方式,在光线不好或者道路出现透明液体等特定抛洒物的情况下,往往检测效果不佳,容易出现漏检或误检的情况。相比而言,此次发布的“高速障碍物预警系统”则是基于车流特征去提供更加精准、更为及时的预警信息,能够大大提高运营和管理的效率。

现场,浙江高信CTO陆启荣提及该系统时,用“小而全面,少而及时”八个字来形容。“从产品实施的角度来讲,成本非常‘小’;高速门架的铺设又是最‘全面’的;同时,ETC门架是专门独立设置的,所以数据被干扰较‘少’;最后,ETC数据采集的‘及时’度非常高,比传统视频监测、人工巡检要更高。”陆启荣说到。

除此之外,每日互动CTO叶新江在现场还分享了每日互动数据智能在交通安全领域的最新应用。“每日互动目前正在探索交通高危人群的洞察,协助交警部门针对性地开展宣传教育工作,提高交通出行的安全性。”叶新江说到。

目前,高速障碍物预警系统已在绍兴、温州落地试点,成效显著。未来,每日互动和浙江高信将继续携手,共同推动高速障碍物预警系统在各城市的落地应用,促进智慧高速场景的普及;同时,双方也将进一步深化产品的持续迭代,加速高速公路信息化、降低高速公路事故率、提高高速通行通畅度,为行业深度赋能。

继续阅读 »

5月18日,以“瓯江论数 数安中国”为主题的2023数据安全发展大会在温州圆满举办。其中,每日互动聚焦“安全是前提,发展是主题”,承办了本次大会5个分论坛之一的“数据智能安全与发展论坛”。在此论坛上,每日互动和绍兴高速交警、温州高速交警和浙江高信技术股份有限公司(“浙江高信”)联合发布了高速障碍物预警系统,基于数据智能,以低成本、高效率、智慧化的方式,护航高速交通的畅通与安全。

图:数据智能安全与发展论坛现场发布“高速障碍物预警系统”

党的二十大报告指出,要加快建设交通强国。发展数字交通,成为促进综合交通高质量发展的重要推动力。在此背景下,每日互动和浙江高信基于各自的行业及技术优势,携手开展在智慧高速领域的数据智能实践,共同打造推出了“高速障碍物预警系统”,推动智慧高速场景建设。

每日互动是专业的数据智能服务商,聚焦数据智能赛道十余年,构建了“数据积累-数据治理-数据应用”的服务生态闭环,为商业主体和政府部门提供丰富的数据智能产品、服务与解决方案。其中,在公共服务领域,公司具有丰富的实践经验,积累了对人、车、道路、时间、空间等多要素数据进行关联计算和分析洞察的能力,已在城市治理、智慧交通等领域给政府相关部门提供了有力的大数据支撑。

浙江高信是浙江省交通投资集团有限公司(以下简称“交通集团”)下属科技型子公司,是交通集团交通信息产业的主体平台。二十年来主要围绕智慧交通、智慧城市、数字政企、智能轨道和航空航运等业务领域,依托数字化规划咨询、数字基础设施建设和数据资源增值服务三大核心竞争力,专业提供多场景、多业务、全周期、全生态、数字化的一站式服务。

此次双方合作打造的高速障碍物预警系统主要用于保障高速交通的畅通与安全。从提高市民出行安全来看,系统将高速异常事件预警模型与大数据技术相结合,能实时感知高速道路上的车速变化,及时发现异常事件并快速预警,实现“预警”跑在“报警”前,减少二次事故风险。而从道路的营运、管理部门的角度看,传统的视频监控、人工巡检等预警方式,在光线不好或者道路出现透明液体等特定抛洒物的情况下,往往检测效果不佳,容易出现漏检或误检的情况。相比而言,此次发布的“高速障碍物预警系统”则是基于车流特征去提供更加精准、更为及时的预警信息,能够大大提高运营和管理的效率。

现场,浙江高信CTO陆启荣提及该系统时,用“小而全面,少而及时”八个字来形容。“从产品实施的角度来讲,成本非常‘小’;高速门架的铺设又是最‘全面’的;同时,ETC门架是专门独立设置的,所以数据被干扰较‘少’;最后,ETC数据采集的‘及时’度非常高,比传统视频监测、人工巡检要更高。”陆启荣说到。

除此之外,每日互动CTO叶新江在现场还分享了每日互动数据智能在交通安全领域的最新应用。“每日互动目前正在探索交通高危人群的洞察,协助交警部门针对性地开展宣传教育工作,提高交通出行的安全性。”叶新江说到。

目前,高速障碍物预警系统已在绍兴、温州落地试点,成效显著。未来,每日互动和浙江高信将继续携手,共同推动高速障碍物预警系统在各城市的落地应用,促进智慧高速场景的普及;同时,双方也将进一步深化产品的持续迭代,加速高速公路信息化、降低高速公路事故率、提高高速通行通畅度,为行业深度赋能。

收起阅读 »

前端工程化之代码提交规范

uni_app

前言

前端工程化是一个很宽泛的概念,大致上可以分为四个方面,也就是:模块化组件化规范化自动化。这里不对其他概念进行展开,只大概阐述一下规范化的概念,看完这篇文章如果大家对这些工程化的概念感兴趣可以点赞留言,大家一起讨论,后续我也会更新相应的文章。

代码提交规范实践:FantMiniPlus组件库

具体的实践可以参考我们的组件库。

规范化 规范化有哪些意义呢?

  • 规范的代码可以促进团队合作
  • 规范的代码可以降低维护成本
  • 规范的代码有助于 code review(长得都不一样,我还怎么review)
  • 养成代码规范的习惯,有助于程序员自身的成长

那么规范化又可以在哪些地方体现呢?

  • 代码格式规范,如引入eslint和prettier等。
  • 统一项目结构,在大多数情况下使用相同的项目目录结构,否则不知几人称帝几人称王咯。
  • 制定前后端联调沟通的规范,比如我们现在常用的后端生成ts模型给到前端,这一点已经是极大的提升了前端开发的工作效率,当然这一点并没有明显地提升后端开发人员的工作效率,所以有些后端开发人员还不了解或者不愿意了解这个生成ts模型的插件。
  • 文件命名规范,这一点不用多说,你是AaaBbb,我是aaaBbb,他是aaa-bbb,这还怎么玩。
  • 样式管理规范:目前流行的样式管理有 BEM、Sass、Less、Stylus、CSS Modules 等方式。
  • git flow 工作流:分支命名规范、代码合并规范,代码提交规范等。
  • ...等等

文章完整地址前端代码提交规范

uni-app的社区不支持发一些emoji,所以完整文章在掘金

继续阅读 »

前言

前端工程化是一个很宽泛的概念,大致上可以分为四个方面,也就是:模块化组件化规范化自动化。这里不对其他概念进行展开,只大概阐述一下规范化的概念,看完这篇文章如果大家对这些工程化的概念感兴趣可以点赞留言,大家一起讨论,后续我也会更新相应的文章。

代码提交规范实践:FantMiniPlus组件库

具体的实践可以参考我们的组件库。

规范化 规范化有哪些意义呢?

  • 规范的代码可以促进团队合作
  • 规范的代码可以降低维护成本
  • 规范的代码有助于 code review(长得都不一样,我还怎么review)
  • 养成代码规范的习惯,有助于程序员自身的成长

那么规范化又可以在哪些地方体现呢?

  • 代码格式规范,如引入eslint和prettier等。
  • 统一项目结构,在大多数情况下使用相同的项目目录结构,否则不知几人称帝几人称王咯。
  • 制定前后端联调沟通的规范,比如我们现在常用的后端生成ts模型给到前端,这一点已经是极大的提升了前端开发的工作效率,当然这一点并没有明显地提升后端开发人员的工作效率,所以有些后端开发人员还不了解或者不愿意了解这个生成ts模型的插件。
  • 文件命名规范,这一点不用多说,你是AaaBbb,我是aaaBbb,他是aaa-bbb,这还怎么玩。
  • 样式管理规范:目前流行的样式管理有 BEM、Sass、Less、Stylus、CSS Modules 等方式。
  • git flow 工作流:分支命名规范、代码合并规范,代码提交规范等。
  • ...等等

文章完整地址前端代码提交规范

uni-app的社区不支持发一些emoji,所以完整文章在掘金

收起阅读 »

需要uniapp k线图的请私,支持安卓/苹果/h5。

不是webview,采用renderjs实现。完美兼容app

不是webview,采用renderjs实现。完美兼容app

uni.uploadFile上传本地图片,没有图片后缀名的问题

uniapp

通过本地路径,上传图片到后台,会没有图片的后缀名

  uni.uploadFile({  
    url: 'api地址',  
       filePath:'/static/test.png',  
    name: 'file',  
    formData: {},  
    success: (res) => {  
        console.log(res.data);  
    }  
  });

改为以下代码,思路是把本地图片转成blob,再把blob转成file对象,同时添加文件名带后缀:

    var xhr = new XMLHttpRequest()  
    xhr.open('GET',img)  
    xhr.responseType = "blob";  
    xhr.onload = () => {  
      // 获取返回结果  
        var blob = xhr.response;  
        var file = new File([blob], 'test.jpg')  

  uni.uploadFile({  
    url: 'api地址',   
        file, // 改为file上传  
    name: 'file',  
    formData: {},  
    success: (res) => {  
        console.log(res.data);  
    }  
  });  
    }  

    xhr.send()
继续阅读 »

通过本地路径,上传图片到后台,会没有图片的后缀名

  uni.uploadFile({  
    url: 'api地址',  
       filePath:'/static/test.png',  
    name: 'file',  
    formData: {},  
    success: (res) => {  
        console.log(res.data);  
    }  
  });

改为以下代码,思路是把本地图片转成blob,再把blob转成file对象,同时添加文件名带后缀:

    var xhr = new XMLHttpRequest()  
    xhr.open('GET',img)  
    xhr.responseType = "blob";  
    xhr.onload = () => {  
      // 获取返回结果  
        var blob = xhr.response;  
        var file = new File([blob], 'test.jpg')  

  uni.uploadFile({  
    url: 'api地址',   
        file, // 改为file上传  
    name: 'file',  
    formData: {},  
    success: (res) => {  
        console.log(res.data);  
    }  
  });  
    }  

    xhr.send()
收起阅读 »

uv-ui插件已经迈向成功的第一步,破釜沉舟,利剑出击!

uniapp插件 uniapp
  1. uv-ui在5月10号发布以来,得到了广大uniapp开发者的好评,已经迈向成功的第一步。
  2. 最开始,在uview2.0的基础上全部修改兼容vue3,并且独立上线命名为uv-ui,支持独立导入使用。并且上线新组件 瀑布流 uv-waterfall。
  3. 再后来,在努力修改下,修复了部分兼容性问题,并且开始脱离在main.js中引入依赖,全部组件都可以不引入依赖,导入即可使用。
  4. 前几天,排查了其他平台的兼容性,发现百度小程序、抖音小程序等还有一些BUG,在挑灯夜战中,修复了99%的问题,并且上线新组件 颜色选择器 uv-pick-color。
  5. 目前,整体比较明显的BUG已经全部修复完,根据开发者的反馈,觉得有问题的都是不会使用,或者文档没说清楚的,这些在后续都会完善,对开发者更友好。
  6. 将来,dcloud插件市场目前的运营模式,让我们做开源的有些动力了,所以uv-ui的开发会持续下去,再接再厉!欢迎广大开发者使用uv-ui,有问题我们会尽最大努力去处理。欢迎大家加入uv-ui的QQ交流群:549833913。

uv-ui插件列表:https://ext.dcloud.net.cn/plugin?id=12287
uv-ui插件文档:https://www.uvui.cn/components/quickstart.html
uv-ui插件H5演示:https://h5.uvui.cn

继续阅读 »
  1. uv-ui在5月10号发布以来,得到了广大uniapp开发者的好评,已经迈向成功的第一步。
  2. 最开始,在uview2.0的基础上全部修改兼容vue3,并且独立上线命名为uv-ui,支持独立导入使用。并且上线新组件 瀑布流 uv-waterfall。
  3. 再后来,在努力修改下,修复了部分兼容性问题,并且开始脱离在main.js中引入依赖,全部组件都可以不引入依赖,导入即可使用。
  4. 前几天,排查了其他平台的兼容性,发现百度小程序、抖音小程序等还有一些BUG,在挑灯夜战中,修复了99%的问题,并且上线新组件 颜色选择器 uv-pick-color。
  5. 目前,整体比较明显的BUG已经全部修复完,根据开发者的反馈,觉得有问题的都是不会使用,或者文档没说清楚的,这些在后续都会完善,对开发者更友好。
  6. 将来,dcloud插件市场目前的运营模式,让我们做开源的有些动力了,所以uv-ui的开发会持续下去,再接再厉!欢迎广大开发者使用uv-ui,有问题我们会尽最大努力去处理。欢迎大家加入uv-ui的QQ交流群:549833913。

uv-ui插件列表:https://ext.dcloud.net.cn/plugin?id=12287
uv-ui插件文档:https://www.uvui.cn/components/quickstart.html
uv-ui插件H5演示:https://h5.uvui.cn

收起阅读 »

这种总得说明下怎么处理吧

这种总得说明下怎么处理吧

unserialize('O:8:"stdClass":2:{s:7:"errCode";s:22:"uni-id-illegal-request";s:6:"errMsg";s:15:"Illegal request";}')

继续阅读 »

这种总得说明下怎么处理吧

unserialize('O:8:"stdClass":2:{s:7:"errCode";s:22:"uni-id-illegal-request";s:6:"errMsg";s:15:"Illegal request";}')

收起阅读 »

uni-webview-js在vite的SSR(或SSG)下的使用解决方案

webview通信 WebView调试 Webview uniapp uni_app

由于uni-webview-js是基于window对象的,所以在SSR下无法使用, vite-plugin-uniwebviewjs-ssr 插件提供了一个uni方法,该方法会在SSR下返回一个空对象,以避免报错。

安装

npm i vite-plugin-uniwebviewjs-ssr 
yarn add vite-plugin-uniwebviewjs-ssr

配置

首先在vite.config.js中引入插件,这一步是为了获取vite是否处于SSR模式

// vite.config.js  
import { defineConfig } from 'vite'  
import { uniWebviewJS } from 'vite-plugin-uniwebviewjs-ssr'  

export default defineConfig({  
  plugins: [  
    uniWebviewJS()  
  ]  
})

引入

手动引入

在您工程内任意想使用的地方引入uni方法即可

import { uni } from 'vite-plugin-uniwebviewjs-ssr'

自动引入

安装unplugin-auto-import插件,并在vite.config.js中配置

// vite.config.js  
import { defineConfig } from 'vite'  
import { uniWebviewJS } from 'vite-plugin-uniwebviewjs-ssr'  
import AutoImport from 'unplugin-auto-import/vite'  

export default defineConfig({  
  plugins: [  
    uniWebviewJS(),  
    AutoImport({  
      imports: [  
        {  
          'vite-plugin-uniwebviewjs-ssr': [  
            ['uni', 'uni']  
          ]  
        }  
      ]  
    })  
  ]  
})

这样你就可以在任意地方直接使用uni方法了,无需手动引入

使用

uni.getEnv((res) => {  
  console.log(res)  
})

更多方法请参考uni-webview-js文档中的相关信息,最后感谢uni-app团队的开发者们和您的使用,希望您能给本项目一个star,谢谢!

继续阅读 »

由于uni-webview-js是基于window对象的,所以在SSR下无法使用, vite-plugin-uniwebviewjs-ssr 插件提供了一个uni方法,该方法会在SSR下返回一个空对象,以避免报错。

安装

npm i vite-plugin-uniwebviewjs-ssr 
yarn add vite-plugin-uniwebviewjs-ssr

配置

首先在vite.config.js中引入插件,这一步是为了获取vite是否处于SSR模式

// vite.config.js  
import { defineConfig } from 'vite'  
import { uniWebviewJS } from 'vite-plugin-uniwebviewjs-ssr'  

export default defineConfig({  
  plugins: [  
    uniWebviewJS()  
  ]  
})

引入

手动引入

在您工程内任意想使用的地方引入uni方法即可

import { uni } from 'vite-plugin-uniwebviewjs-ssr'

自动引入

安装unplugin-auto-import插件,并在vite.config.js中配置

// vite.config.js  
import { defineConfig } from 'vite'  
import { uniWebviewJS } from 'vite-plugin-uniwebviewjs-ssr'  
import AutoImport from 'unplugin-auto-import/vite'  

export default defineConfig({  
  plugins: [  
    uniWebviewJS(),  
    AutoImport({  
      imports: [  
        {  
          'vite-plugin-uniwebviewjs-ssr': [  
            ['uni', 'uni']  
          ]  
        }  
      ]  
    })  
  ]  
})

这样你就可以在任意地方直接使用uni方法了,无需手动引入

使用

uni.getEnv((res) => {  
  console.log(res)  
})

更多方法请参考uni-webview-js文档中的相关信息,最后感谢uni-app团队的开发者们和您的使用,希望您能给本项目一个star,谢谢!

收起阅读 »

uni.request 中的 abort 使用技巧 在.vue 文件中使用报错 Cannot read property 'promise' of undefined

在 vue 文件中如 把每一次请求对象存在 data 中 就会引发此BUG,特别是vue3 的uni-app 项目 因为 vue3 的响应是用了 ES6的 Proxy,此时 我们想取出对应的重复请求,拿到对应的请求为 Proxy 当要阻断请求时调用abort() 方法就会报错,解决报错也非常简单,把请求返回 不存在data中就能够解决此问题,此问题在编译成微信小程序必然会出现

常见不会出现此问题 (一般都会封装请求,从而绕开了此问题)

<template>  
    <view class="content">  
        <button @click="sendhttp('http://192.168.88.65:3339/integralRecord/DelIntegralRecord',{type:2})">  
            发送HTTP</button>  
        <button @click="sendhttp('http://192.168.88.65:3339/integralRecord/DelIntegralRecord',{type:1})">  
            发送HTTP</button>  
        <button @click="sendhttp('http://192.168.88.65:3339/integralRecord/DelIntegralRecord1',{type:1})">  
            发送HTTP2</button>  
    </view>  
</template>  

<script>  
    export default {  
        data() {  
            return {  
                httpurl: []  
            }  
        },  
        methods: {  
            sendhttp(url, data = {}) {  

                const is = this.httpurl.find(u => u.url === url && u.data === JSON.stringify(data))  
                const indexId = this.httpurl.findIndex(u => u.url === url && u.data === JSON.stringify(data))  

                if (is) {  

                    //#ifdef H5  
                    is.requestTask.abort();  
                    //#endif  

                    //#ifdef MP-WEIXIN  
                    is.requestTask  
                    //#endif  
                }  

                const requestTask = uni.request({  
                    url,  
                    data,  
                    complete() {  
                        console.log('响应了');  
                    }  
                })  

                this.httpurl.push({  
                    url,  
                    data: JSON.stringify(data),  
                    requestTask  
                })  
            }  
        }  
    }  
</script>

修改后

<template>  
    <view class="content">  
        <button @click="sendhttp('http://192.168.88.65:3339/integralRecord/DelIntegralRecord',{type:2})">  
            发送HTTP</button>  
        <button @click="sendhttp('http://192.168.88.65:3339/integralRecord/DelIntegralRecord',{type:1})">  
            发送HTTP</button>  
        <button @click="sendhttp('http://192.168.88.65:3339/integralRecord/DelIntegralRecord1',{type:1})">  
            发送HTTP2</button>  
    </view>  
</template>  

<script>  
    const httpurl = {}  
    export default {  
        data() {  
            return {  
                title: 'Hello',  
            }  
        },  

        methods: {  
            sendhttp(url, data = {}) {  

                for (let s in httpurl) {  
                    // console.log(this.httpurl[s].url);  
                    if (httpurl[s].url === url) {  
                        httpurl[s].requestTask.abort()  
                        delete httpurl[s]  
                    }  
                }  
                const requestTask = uni.request({  
                    url,  
                    data,  
                    complete() {  
                        console.log('响应了');  
                    }  
                })  

                const uniqueId = requestTask.uniqueId || new Date().getTime()  
                httpurl[uniqueId] = {  
                    requestTask,  
                    url,  
                    data: JSON.stringify(data)  
                }  
            }  
        }  
    }  
</script>
继续阅读 »

在 vue 文件中如 把每一次请求对象存在 data 中 就会引发此BUG,特别是vue3 的uni-app 项目 因为 vue3 的响应是用了 ES6的 Proxy,此时 我们想取出对应的重复请求,拿到对应的请求为 Proxy 当要阻断请求时调用abort() 方法就会报错,解决报错也非常简单,把请求返回 不存在data中就能够解决此问题,此问题在编译成微信小程序必然会出现

常见不会出现此问题 (一般都会封装请求,从而绕开了此问题)

<template>  
    <view class="content">  
        <button @click="sendhttp('http://192.168.88.65:3339/integralRecord/DelIntegralRecord',{type:2})">  
            发送HTTP</button>  
        <button @click="sendhttp('http://192.168.88.65:3339/integralRecord/DelIntegralRecord',{type:1})">  
            发送HTTP</button>  
        <button @click="sendhttp('http://192.168.88.65:3339/integralRecord/DelIntegralRecord1',{type:1})">  
            发送HTTP2</button>  
    </view>  
</template>  

<script>  
    export default {  
        data() {  
            return {  
                httpurl: []  
            }  
        },  
        methods: {  
            sendhttp(url, data = {}) {  

                const is = this.httpurl.find(u => u.url === url && u.data === JSON.stringify(data))  
                const indexId = this.httpurl.findIndex(u => u.url === url && u.data === JSON.stringify(data))  

                if (is) {  

                    //#ifdef H5  
                    is.requestTask.abort();  
                    //#endif  

                    //#ifdef MP-WEIXIN  
                    is.requestTask  
                    //#endif  
                }  

                const requestTask = uni.request({  
                    url,  
                    data,  
                    complete() {  
                        console.log('响应了');  
                    }  
                })  

                this.httpurl.push({  
                    url,  
                    data: JSON.stringify(data),  
                    requestTask  
                })  
            }  
        }  
    }  
</script>

修改后

<template>  
    <view class="content">  
        <button @click="sendhttp('http://192.168.88.65:3339/integralRecord/DelIntegralRecord',{type:2})">  
            发送HTTP</button>  
        <button @click="sendhttp('http://192.168.88.65:3339/integralRecord/DelIntegralRecord',{type:1})">  
            发送HTTP</button>  
        <button @click="sendhttp('http://192.168.88.65:3339/integralRecord/DelIntegralRecord1',{type:1})">  
            发送HTTP2</button>  
    </view>  
</template>  

<script>  
    const httpurl = {}  
    export default {  
        data() {  
            return {  
                title: 'Hello',  
            }  
        },  

        methods: {  
            sendhttp(url, data = {}) {  

                for (let s in httpurl) {  
                    // console.log(this.httpurl[s].url);  
                    if (httpurl[s].url === url) {  
                        httpurl[s].requestTask.abort()  
                        delete httpurl[s]  
                    }  
                }  
                const requestTask = uni.request({  
                    url,  
                    data,  
                    complete() {  
                        console.log('响应了');  
                    }  
                })  

                const uniqueId = requestTask.uniqueId || new Date().getTime()  
                httpurl[uniqueId] = {  
                    requestTask,  
                    url,  
                    data: JSON.stringify(data)  
                }  
            }  
        }  
    }  
</script>
收起阅读 »

edge浏览器的ADGUARD广告屏蔽插件把“导出插件”按钮给隐藏了?

插件需求

今天想导出插件,发现导出按钮没有了,倒腾了半天发现是广告插件屏蔽了按钮~~

今天想导出插件,发现导出按钮没有了,倒腾了半天发现是广告插件屏蔽了按钮~~

页面显示空白,微信开发者工具只剩下page

HBuilder X 中有代码,但是微信开发者工具中只剩下<page></page>,h5页面又正常,注意app.js 是否被编译成App.js ,只有app.js 才有用

HBuilder X 中有代码,但是微信开发者工具中只剩下<page></page>,h5页面又正常,注意app.js 是否被编译成App.js ,只有app.js 才有用

公共模块上传失败,一次出现两个关于nodejs的报错没有上传成功

经验分享

具体报错:
[阿里云:*****]公共模块上传失败。失败原因:npm install 执行失败。请检查node执行环境。 例:尝试安装npm并设置环境变量后,再次操作。
云函数taxi上传失败。失败原因:npm install执行失败.如果云函数目录下存在package-lock.json, node_modules可能会导致 npm install失败, 请删除后重试.


原因:期初我并没有环境变量的时候在工具-->设置-->运行哪里家上了路径,上传报错,配置完环境变量后依然不行,
解决方法:设置完环境变量删除“工具-->设置-->运行”里的路径试试看。

继续阅读 »

具体报错:
[阿里云:*****]公共模块上传失败。失败原因:npm install 执行失败。请检查node执行环境。 例:尝试安装npm并设置环境变量后,再次操作。
云函数taxi上传失败。失败原因:npm install执行失败.如果云函数目录下存在package-lock.json, node_modules可能会导致 npm install失败, 请删除后重试.


原因:期初我并没有环境变量的时候在工具-->设置-->运行哪里家上了路径,上传报错,配置完环境变量后依然不行,
解决方法:设置完环境变量删除“工具-->设置-->运行”里的路径试试看。

收起阅读 »