- 博客(114)
- 资源 (10)
- 收藏
- 关注
原创 Java使用定时任务开始-结束活动
有一种场景,比如抢购活动,活动的开始肯定不是到点后手动点击开始按钮的,而是通过配置活动开始时间和结束时间,然后开启定时任务,通过定时任务来控制活动的开始和结束。
2024-07-25 16:26:23 348
原创 sql中使用collection返回集合数据
今天在写一个接口时,有两级目录(父子关系),接口需要把两级数据以嵌套的形式返回给前端。我这个新手菜鸟一上来就查询两次sql,然后业务中处理嵌套关系,事实这种方法也能达到目的。我当然不知道还有这种骚操作,下面是在主管的指导下改造的通过sql语句实现的,记录下来慢慢欣赏。
2024-03-15 15:00:24 734
原创 PostgreSQL表中字段由字符串改为数组
需求:PostgreSQL数据库中的一张表的某些字段,之前存的是字符串,由于业务需求变更,需要存储多条数据,字段类型要改为数组,并保留原来的数据。
2023-12-21 10:00:25 1595
原创 vue详情页面卡片样式封装
在前端项目中,详情页面是必不可少的,详情页面通过卡片样式进行分片展示的需求也很多,这里记录下来方便以后直接套用。
2023-02-09 18:32:19 2521 1
原创 小程序/公众号抽奖活动页面-逻辑
后台返回对应的奖品数据,小程序以九宫格形式展示奖品信息,点击抽奖后转动转盘,通过接口获取奖品对应的位置,并把奖品位置高亮显示。
2023-02-03 13:51:38 762
原创 vant实现Select效果--单选和多选
vue项目无论是用element中的Select选择器,还是使用公司维护的组件,都可以轻松实现单选和多选的需求,但在移动端使用vant时,找了几遍发现居然没有提供Select组件,这里提供了基于popup和cell、field封装的select单选、多选组件。...
2022-07-29 17:11:51 12737 3
原创 Vue自定义Tag标签
1、需求:项目中有好几处用到标签组,有单行、多行、单行显示不下省略(鼠标放上去提示)等等需求,为了方便使用提取为组件。单行样式如下:2、在项目的components文件下新建文件夹
2022-06-01 14:02:10 4267
原创 el-upload限制文件大小(图片尺寸)
1. 在el-upload控件中加入on-change方法:<el-upload id="file" ref="upload" slot="append" :action="file.action" :with-credentials="true" name="file" :data="file.data" :show-file-list="false" accept=".xls,.xlsx,.csv" :disabled="isDisabled" :au
2022-04-25 14:48:10 12847 1
原创 vue移动端van-uploader上传图片压缩工具类
1、最近移动端项目中使用van-uploader上传图片,开发测试都正常,上线后苹果用户反馈图片上传不了,最后排查是图片过大导致调用上传接口后一直没有返回。2、utils文件夹下新建imgCompressUtil.js文件:3、工具类中的具体代码:const imgCompressUtil = { compressImg (file) { let self = this if (!file || !window.FileReader) return // 判断是否支持F
2022-04-22 17:31:46 1981 1
原创 vue日期时间工具类
最近做的一个项目对日期时间的处理比较多,最后整理到一个工具类里面,方便以后使用:1.在utils文件夹下新建一个dateTimeUtil.js文件:// 获取当前时间并格式化export function getCurrentTime(){ var date = new Date() var month = date.getMonth() + 1 var day = date.getDate() if (month <= 9) { month = '0' + .
2022-04-20 14:59:56 4774
原创 vue项目图标处理工具
1、vue项目中的png、svg图片统一处理工具类,图片正常放在对应的目录下(images中放png图片,ui-icon中放svg图片):2、在style文件夹下新建一个ui-page.less工具类类:// 图标.ui-icon { .common { display: inline-block; width: 24px; height: 24px; background-size: contain; vertical-align: midd..
2022-04-06 14:47:42 4112
原创 vue -- watermark添加水印工具类
1、在utils文件夹下新建watermark.js工具类:watermark.js工具类对应代码:const watermark = {}const setWatermark = (str) => { const id = '1.8989898989898989.123412416' if (document.getElementById(id) !== null) { document.body.removeChild(document.getElementBy
2022-03-04 14:25:57 1252 1
原创 vue table动态表头数据处理
table动态表头数据处理经常用到,记录下来方便以后查阅1、data中定义表头和表格数据:tableData: [], //表格数据headerTeamList: [] //表头数据2、接口获取表头数据:getHeaderList () { serviceApi.getHeaderList().then(res => { this.headerTeamList = res.data })}3、获取table表格数据并处理结果:getTe
2022-03-02 16:33:07 7048 1
原创 van-tabs下划线位置错位
初始化页面时,van-tabs下划线位置错位:解决方案:①如果是通过v-show来控制组件显隐,改为v-if:<applyList v-if="index === '2'"></applyList>②使用官方提供的resize方法:<van-tabs ref="tabs" v-model="active" title-active-color="#2080F7" color="#2080F7"> <van-tab tit.
2022-01-21 11:19:57 2457
原创 echarts雷达图点击事件 获取indicator节点详情
需求:点击雷达图上的indicator时获取对应indicator上的信息,而不是获取整个系列的数据1、设置点击事件:chart.on('click', (param) => { console.log(param)})点击回调的param是整个雷达图的数据,我们要从中找到我们想要的数据(对应indicator的数据),通过每次改变点击的indicator,然后再去观察数据,最后发现在event-topTarget中有个__dimIdx字段,对应的刚好说我点击的indicat.
2021-11-15 11:18:14 5545 3
原创 vue的keep-alive组件清除缓存
需求:A页面 -> B页面 -> C页面,当C页面返回到B页面时,保存B页面的数据;但A页面到B页面时,B页面需要重新加载数据。网上的方法试了很多种,下面这个有效果:1、路由router中设置keepAlive:{ name: 'personnelList', path: '/personnelList/', menuCode: '001', component: 'personnelList', meta: { keepAlive: true }
2021-11-12 14:31:20 6706 2
原创 vue实现打标记录
项目需要的效果如下图:实现代码:<template> <div class="step-template"> <div class="step" v-for="item in 12" :key="item"> <div class="step-l"> <p class="time">2021-08-01 12:09:11</p> <p class="name"&g.
2021-11-06 10:26:04 327
原创 小程序开发之 wx.getSetting 授权检测
wx.getSetting在 未拒绝 和 未同意 状态下 ,success: (res) => {} 的res.authSetting{}值是空的!在getUserInfo()后,点击拒绝后 wx.getSetting的fail:(res)=>{}触发,res.authSetting['scope.userInfo'] 的值是false ,表示scope.userInfo这个权限没有授权。在getUserInfo()后,点击同意后 wx.getSetting的success:(res..
2021-08-03 09:52:06 994
原创 Android网络基础3——HTTP协议原理
1. HTTP简介HTTP协议用于客户端与服务器之间的通信,在通信线路两端,必定一端是客户端,另一端是服务器。注意:客户端与服务器的角色不是固定的,一端充当客户端,也可能在某次请求中充当服务器,这取决与请求的发起端。HTTP协议属于应用层,建立在传输层协议TCP之上。客户端通过与服务器建立TCP连接,之后发送HTTP请求与接收HTTP响应都是通过访问Socket接口来调用TCP协议实现。...
2019-03-27 11:25:39 272
原创 Android网络基础2——TCP协议的三次握手和四次挥手
HTTP协议用于客户端与服务器之间的通信,在通信线路两端,必定一端是客户端,另一端是服务器。HTTP协议属于应用层,建立在传输层协议TCP之上。也就是说,客户端与服务器通信之前要建立TCP连接,之后发送HTTP请求与接收HTTP响应都是通过访问Socket接口来调用TCP协议实现;通信之后要断开TCP连接。建立TCP需要三次握手才能建立,而断开连接则需要四次挥手。整个过程如下图所示:...
2019-03-22 16:37:51 745
原创 Android网络基础1——网络分层
OSI模型OSI 模型(Open System Interconnection model)是一个由国际标准化组织提出的概念模型,试图提供一个使各种不同的计算机和网络在世界范围内实现互联的标准框架。OSI 模型各层间关系和通讯时的数据流向如图所示:七层模型介绍物理层:物理层负责最后将信息编码成电流脉冲或其它信号用于网上传输。RJ45等将数据转化成0和1。数据链路层:...
2019-03-19 13:13:10 486
原创 Android错误码转换
Android程序员和后天交互时,后台会返回数据或错误码,当我们拿到错误码时,不能直接把错误码展示给用户,而是要把错误码转换为用户能够理解的信息。1. 先在资源文件夹string中定义错误码对应的字符串,如下:<string name="N500">请求服务器超时!</string><string name="B33015">格口正在建包,已锁定&l...
2019-03-19 10:35:56 781
原创 设计模式六大原则(6):迪米特原则
定义:一个对象应该对其他对象有最少的了解。场景:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。解决方案:遵循迪米特原则,尽量降低类与类之间的耦合。迪米特原则英文全称为Law of Demeter,简称LOD,又叫最少知道原则,还有一个英文解释是:Only talk to your immedate friends,翻译过来就是:只与直接的朋友通信。什么...
2018-08-29 09:55:50 365
原创 设计模式六大原则(5):接口隔离原则
定义:客户端不应该依赖它不需要的接口。另外一种定义:类间的依赖关系应该建立在最小的接口上。场景:在接口I中定义多个方法(假如A,B,C,D),类C1通过实现接口I来扩展自己需要的方法A、B;类C2通过实现接口I来扩展自己需要的方法C、D;那么接口I对于类C1和类C2来说不是最小接口,则类C1和类C2必须去实现他们不需要的方法。解决方案:采用接口隔离原则。将臃肿的接口I拆分为独立的几个接口,...
2018-08-27 09:49:46 405
原创 设计模式六大原则(4):依赖倒置原则
定义:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。场景:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。解决方案:遵循依赖倒置原则,将类A修改为依赖接口I,类B和类C各自实现接口I,类A...
2018-08-24 09:28:52 434
原创 设计模式六大原则(3):里氏替换原则
定义:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型。这种描述不太好理解,里氏替换原则还有第二种定义:所有引用基类的地方必须能透明地使用其子类的对象。场景:有一功能F1(会飞),由类A完成。现需要将功能F1进行扩展,扩展后的功能为F(...
2018-08-23 09:42:29 1016
原创 设计模式六大原则(2):开闭原则
定义:软件中的对象(类、模块、函数等)应该对于扩展是开放的,但是,对于修改是封闭的。即对扩展开放,对修改关闭。场景:在软件的生命周期内,产品需要不断的升级、维护,没有一个产品从第一个版本开发完就不需要再变化了,除非在下个版本诞生之前它已经终止了。而产品的升级需要修改原来的代码,这可能会给原来的代码中引入错误,影响原有的软件模块。解决方案:遵守开闭原则。程序一旦开发完成,程序中一个类的实现只...
2018-08-22 10:15:11 387
原创 设计模式六大原则(1):单一职责原则
定义:就一个类而言,应该仅有一个引起它变化的原因。简单来说,即一个类只负责一项职责。场景:类C负责两个不同的职责:职责T1,职责T2,当职责T1的需求发生改变而需要修改类C时,有可能导致原本运行正常的职责T2出现错误。也就是说职责T1和T2被耦合在了一起。解决方案:使用单一职责原则。分别建立两个类C1、C2,C1负责职责T1的功能,C2负责职责T2的功能。这样,当修改C1时,只会改变职责T...
2018-08-21 16:22:55 323
原创 Android全局捕获异常并生成崩溃日志文件的工具类
开发Android项目时,经常会遇到程序崩溃的情况,这时我们可以在logcat中查看崩溃日志,但有时错误的堆栈信息并没有显示出来,这时找起来很不方便;另外一种情况就是项目在测试阶段,如果有崩溃,只需让测试人员把崩溃日志发过来即可。 /** * 全局异常捕获 * Created by ljw on 2017/7/3. */public class CrashHandler impl...
2017-11-30 13:58:56 4545 2
原创 Android使用Handler+postDelayed实现简单计时器
使用Handler+postDelayed实现计时器:timeHandler.postDelayed(runnable, 1000);timeHandler.removeCallbacks(runnable);使用Chronometer实现计时器:timer.setBase(SystemClock.elapsedRealtime());timer.setFormat("0"+String.valueOf(hour)+":%s");先看效果图:
2017-11-28 13:19:02 4451
原创 AlertDialog修改标题、内容、按钮的颜色和字体大小
Android开发中,AlertDialog因为使用起来方便,用的还是很多的,但有时领导还是很会挑刺的,说默认的按钮不够大、提示信息不够醒目。。。这里介绍一种不用通过自定义view便可修改这些样式的方法:AlertDialog dialog = new AlertDialog.Builder(context) .setTitle("分拣中
2017-11-15 11:40:34 8161 2
原创 Android屏蔽EditText软键盘
最近在做一个PDA项目,因为PDA上自带的有键盘,所以要屏蔽掉输入框EditText在点击时弹出的软键盘,网上的方法基本上测试了一个遍,最后发现只有这个既能保证屏蔽掉软键盘,又能使光标正常显示:/** * 禁止Edittext弹出软件盘,光标依然正常显示。 */public void disableShowSoftInput(){ if(android.os.Build.VE
2017-08-14 18:06:15 1289
原创 Android自定义属性实现显示两行文字的button
最近项目有个需求是实现一个button上显示两个按钮,而且这两行文字可以改变,最终是通过自定义属性来解决的,下面是全部过程和代码:一、在res/values文件下定义一个attrs.xml文件,format表示参数类型。 二、自定义一个类,继承Button,获取到自定义的属性,并通过onDraw()方法绘制出
2017-07-19 19:03:53 3921
原创 android热修复之Robust使用(真正的入门)
目前能够实现热修复的方案很多,各个方案的优缺点这里也不在一一比较了,这篇文章主要针对第一次尝试集成美团点评基于Instant Run的热修复方案的开发者。Robust的GitHub地址:https://github.com/Meituan-Dianping/Robust 。1.在APP的build.gradle,加入依赖:apply plugin: 'com.android
2017-06-28 17:02:22 7659 19
转载 Android7.0下载Apk自动安装
这是一篇非常有价值的文章,详细介绍了获取root权限,实现静默安装的逻辑,代码层次也十分清晰。原文地址:http://blog.csdn.net/cfy137000/article/details/702579121. 整体需求下载APK文件 使用DownloadManager来下载在应用界面中展示下载进度安装下载后的APK文件 root模式: 可以自动
2017-06-26 14:42:04 2441
转载 Android Binder机制原理(史上最强理解,没有之一)
原文地址: http://blog.csdn.net/universus/article/details/6211589 Binder是Android系统进程间通信(IPC)方式之一。Linux已经拥有的进程间通信IPC手段包括(Internet Process Connection): 管道(Pipe)、信号(Signal)和跟踪(Trace)、插口(Socket)、报文队列
2017-06-17 16:04:00 622
灵者Gif录制软件
2016-09-24
android-smart-image-view-master图片异步下载+使用详解
2016-09-14
junit-4.10.jar及使用方法
2016-09-01
Genymotion插件完整版(eclipse离线安装版)
2016-08-29
图书管理系统java源代码
2016-08-28
Java猜拳游戏源代码
2016-08-28
okhttp-2.75.jar和okio-1.8.0.jar下载
2016-08-25
gson完整jar包
2016-08-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人