自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 thinkphp5验证码使用保姆教程(宝塔linux)

最近被人问到用TP5使用验证码问题,这个在文档里直接有案例,但是小白确实会遇到一些问题,网上的很多叙述确实也不是很清晰,这里从小白的角度讲一下TP5使用验证码的流程和问题。另外也把部分小白不习惯使用composer,习惯手动加载的方案做简单介绍(附下载地址)

2024-03-21 10:26:02 173 1

原创 thinkphp微信小程序获取用户手机号极简教程(uniapp演示)

小程序获取手机号的功能,网上很多教程都能实现,但是真的太繁琐了,个人特别不喜欢各种引用和耦合,没打算跨域复用就简简单单写在控制器里就行了,所以这次也把功能简化了,以尽可能的小白视角可以进行使用。

2023-10-14 15:27:56 967

原创 node打包pkg和nexe比较

最近基于node写了一些小工具,自己用的时候就直接在node环境下运行了,结果圈外的朋友看了也想要,但是给他安装环境和叫她用命令行太过麻烦,就想着还是直接打包成exe文件吧。于是就对比了一下pkg和nexe两种主流的打包工具。

2023-07-31 21:36:08 1629

原创 python利用vbs实现无依赖windows弹窗

三行代码实现python无依赖进行windows弹窗

2023-02-03 10:14:14 979 1

原创 tp5使用native在PC网页端实现微信支付

我们在开发中经常遇到在要在网页端唤起支付的情况,虽然很多时候是在微信浏览器中打开,可以直接用jsapi解决,但实际上有很多时候我们也是要在网页端实现调用二维码进行扫码支付的。这里使用thinkphp5作为案例进行开发。

2023-01-17 15:33:07 490

原创 纯CSS利用checkbox实现状态切换

在页面中经常会用到例如侧边栏收起和展开,导航栏点击展示等功能,这些都需要一个变量来存储当前状态,最简单的办法当时是通过js,但是很多时候我们不愿意用js来实现,html和js混装以后阅读性下降,用css和checkbox来进行状态管理相对来说就方便很多。

2023-01-10 11:07:13 267

原创 CSS中用统一变量控制整体风格

手写CSS会有个问题就是我们经常会想到什么写什么,例如颜色代码,阴影参数等,如果每个变量都单独到一个css字段中的话,到使用的时候,class会比较长,可以去记的话还不如直接学习像tailwind之类的规范了。但是用var进行CSS参数进行统一变量还是比较合适的,尤其是在客户说要修改整体风格的是就很容易进行修改

2023-01-10 10:12:43 217

原创 vue结合flask利用pandas上传并读取excel

项目中使用到前端导入数据,之前都是vue读取excel,然后批量axios分段提交,好处是可以监控上传进度,坏处是批量化axios会导致前端大量占用资源,页面卡顿,让用户体验下降,用户无法离开当前页面,甚至卡死,所以这次选择了使用直接将文件上传到后端进行操作的方式,由于前端使用vue后端使用flask,所以出现了一些问题,折腾了大半个小时,问题其实很简单,但是往往解决问题就是在一层窗户纸的事情。

2022-10-02 07:00:36 1056

原创 nodeJs中vue调用qrcode生成二维码

二维码生成已经是很常用的功能了,之前一直用python生成二维码,这次用JS生成二维码,实际使用中比较了下qrcodejs2和qrcode两个库。

2022-09-08 20:23:08 901

原创 nodeJS中调用exe文件

由于不同语言各有优势,所以有时候会用不同的语言去写不同的脚本,这次写的软件中涉及到爬虫的部分用python写的,主程序用electron+vue的方式写的,所以使用了child_process来调用python打包的exe

2022-09-08 20:10:49 5728

原创 简单实现label控制div的展示与隐藏

经常会用到局部div的隐藏与展示,但是很多时候不方便用JS来控制,那就用CSS来进行控制会比较合适一点。所以就可以已用label绑定checkbox,再由checkbox的状态来控制div的display属性的方法来实现。代码原理很简单,在需要隐藏和展示的div中定义隐藏和checkbox选中状态隐藏css.nav_mNav{display: none;}#navController:checked~.nav_mNav{display: block;}html利用label的for属性

2022-05-16 21:28:02 878

原创 uniapp使用iconfont保姆级教程

1.背景uniapp中自带的icon很少,不管哪个UI框架都有这个问题,最好就是引用来自iconfont之类的自定义项目文件,我见过很多项目是将文件直接下载下来使用,弊端是操作麻烦,颜色不可修改,只能用已下载的颜色,最好的方式当然是使用字体文件来实现,这里就详细说下操作流程2.方案步骤步骤主要分两块,一块是iconfont上的项目管理,一块是本地uniapp项目中的配置2.1.iconfont端iconfont端主要分几步:1.创建项目2.选择图标3导出字体文件2.2.项目端引用项目端引

2022-04-30 08:45:38 9064 1

原创 js中的async await 入门解惑篇

背景很多人在js异步执行的时候被回调地狱折磨的和痛苦,虽然知道promise或async/await可以实现同步执行和链式结构,但是不元好好沉下心来学习原理和逻辑。这里做一个简单对比,帮助小白理解。对比假设我们有个work1想要在request1执行完成后打印“work期望在request完成后执行”,只需要简单改造即可request1(){ axios.post('url****').then(function(r){ console.log('获取数据完成') });

2022-04-29 17:10:15 332

原创 uniapp使用阿里云OSS直接上传文件

背景由于服务器带宽优先,很多时候上传文件,尤其是视频文件,稍微大一点上传速度有很慢,加上一些安全方面的原因,我还是喜欢将文件直接上传到阿里云OSS上,但是在uniapp中配置上传相对有点繁琐,这里记录一下,也方便大家直接拷贝使用。流程1.阿里云后台获取相关key这里用需要三个数据分别是:1.accessid:2.accesskey:3.Bucket域名:前两个大家都知道,最后一个由于阿里云后台都写在一起,比较容易搞混,这里截图给大家参考下2.小程序端配置js文件小程序主要配置4个文件

2022-04-29 16:50:03 9599 4

原创 uniapp使用vant

背景操作1.下载文件https://github.com/andurils/vant-weapp-uniapp解压后如图2.复制文件在uniapp项目根目录创建wxcomponents 目录,并将上图中标红的dist整个复制到改文件夹下,并改为为vant,如图:3.文件引用3.1pages.json 引入组件在 uniapp 项目的 pages.json 文件中的 globalStyle 属性中使用 usingComponents 引入 vant 组件"globalStyle": {

2022-04-24 14:56:55 2757 1

原创 使用mysqlbinlog恢复误删除的表单

背景昨天不小心把mysql中的一个数据库的用户表单删除了,天大的悲剧,于是想到用mysqlbinlog进行数据恢复。原理mysqlbinlog恢复数据库的原理就是将记录在binlog中的命令再运行一次。当然所有的前提是你已经打开了log_bin,按照这个逻辑,如果你是误删除或吴修改了某条数据,非常简单,只要找到对应的这条数据写一条逆向的sql语句就可以了,但是大部分删除都是不包含原数据的,这个比较悲催,就只能通过还原点来进行恢复,逻辑是通过mysqbinlog读取binlog中的数据,过滤误操作语句后

2022-03-04 10:44:48 955

原创 TP5微信公众号H5支付极简攻略

1.背景每次写到微信支付这块的时候总觉得不够清晰,网上代码大部分太长,依赖太多,还是坚持我的原则,给人复制就尽量少一些依赖,方便配置和理解,高手看懂了自然回去拆分。2.前置条件已认证的服务号公众号关联微信商户微信商户中添加支付链接域名以上部分都有清晰的教程,此处不做赘述,聚焦在代码和常见问题上3.代码3.1 前端前端共三个function,比较好理解就不合并了function pay(amount) { var that = this; axios.get('/index/test/

2022-02-24 09:41:29 1521

原创 H5页面获取微信用户openid极简攻略

背景之前每次写到获取openid 就觉得特别麻烦,网上很多代码段会把一部分功能分开写,确实相对合理,但是对于复制粘贴代码来说依赖越少越方便,所以根据自己的经验做了一个极简的复用代码前置条件1.公众号已认证,否则会出现“Scope 参数错误或没有 Scope 权限”2.公众号后台设置安全域名【公众号设置】=》【功能设置】=》【JS接口安全域名】&【网页授权域名】代码前端getOpenId(){ const code = getUrlParam('code') // 截取路径中的

2022-02-23 14:51:04 6992

原创 thinkphp5 workerman极简配置方案

thinkphp项目中要用到实时传输,小伙伴觉得功能简单,使用轮询的方式,觉得一来消耗资源,二来不够优雅,所以还是决定用websocket,之前也对比了长链接,SSE等,最终还是选择了websocket一步到位。很多人说websocket后台配置麻烦,其实实际操作的时候发现网上很多文章写的已经够简洁了,但是缺少一张地图,所以很多人看的一头雾水,有了地图,就非常简单明了了。

2022-01-14 11:47:48 1272 2

原创 TP5实现前端微信分享功能

上传文件vendor中新建文件夹“wxshare"将官方的文件直接上传到该文件夹其中sample.php没必要上传,其他直接上传就好。文件修改但是在使用前由于相对路径问题,还需要对jssdk进行一点修改。两处:“access_token.php”改为__DIR__."/access_token.php"两处"jsapi_ticket.php"改为__DIR__."/jsapi_ticket.php"控制器调用在controller中调用public function

2021-09-26 16:14:33 533

原创 简化VUEX多级调用的方法

背景vuex中的使用mutations中的方法时只能带2个参数,使得我们在页面中调用和变更时非常不方便,需要写多个方法对应多个参数,后来在uni中发现他们的写法很方便,可以在内容页直接用函数的方式修改任意层的单个参数。于是就想扒出来用在其他vue项目中。思路其实说起来原理也很简单,无非是在$store.commit之前加入一步参数的分解而已。并且在main.js中写入方法直接调用。代码1.页面调用this.vuex('newMsg', '20')2.main.jsVue.prototype

2021-09-16 10:23:56 275

原创 electron-vue官方模板打包失败问题合集

1.背景最近使用electron-vue进行项目开发,到打包的时候发现打包失败,各种问题,于是就尝试直接使用官方模板进行打包,发现也是不行,各种问题在后文列举。这里记录一下最后我可用的方案,同时将常见问题罗列以备小伙伴们少走弯路。当前环境:node:14.12electron:2.0.18electron-vue获取:vue init simulatedgreg/electron-vue newPro2.当前顺利打包流程记录一下我目前可用的方案。2.1 关于multispinner的bu

2021-06-07 09:09:49 3437 5

原创 tp5 使用tcpdf导出pdf

前言某协会之前的项目,需要进行升级,其中有一个功能是需要将奖状导出成pdf后发给印刷厂生产。查询后决定使用tcpdf来实现,TP5 有多个pdf插件可选,其他没试,这个代码比较简单,坑也不大,就决定用这个了。安装composer安装根目录使用命令:composer require tecnickcom/tcpdf参考:ThinkPHP5使用TCPDF生成PDF文件直接拷贝由于对方服务器composer比较老,懒得升级了,直接使用拷贝的方式,将Tcpdf文件夹拷贝到vendor文件夹下。有些

2021-03-18 22:11:39 892

原创 electron 多窗口通信

主进程位置/src/main/index.js模块import { app, BrowserWindow ,ipcMain } from 'electron'监听 console.log('receive render process msg') console.log(JSON.stringify(message)) // 主进程向渲染进程触发事件 mainWindow.webContents.send('c2', message)})渲染进程位置所有用到icpRe

2021-03-11 08:22:49 959

原创 vue开发APP使用微信分享和QQ分享功能

条件微信开放平台申请微信开放平台appid腾讯开放平台申请腾讯开放平台appid打包环境Hbuildermanifest.json中plus下的plugins下添加如下代码,并填写你的appid"share" : { "weixin" : { "appid" : "wx****************", "UniversalLinks" : "" }, "QQ"

2021-02-10 21:05:45 2732 3

原创 vue使用better-scroll实现下拉刷新和上拉加载,文末附文档

这里写自定义目录标题背景逻辑展示部分逻辑部分小结代码HTMLJSCSS参考背景在使用VUE 开发APP过程中由于uniapp各项限制,决定弃用,直接使用VUE-CLI进行开发。其中遇到的一个问题就是上拉加载和下来刷新的问题,直接使用window.addEventListener scroll在移动端是无效的。后来采用了better-scroll库实现,但是在使用时发现在理解上有些问题导致期初使用有点疙瘩,这里梳理一下逻辑,最后附上代码。逻辑展示部分其实better-scroll库的逻辑很简单,繁琐

2021-01-27 15:30:35 2049

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除