方法一、使用动画GIF图标方法二、使用vue-count-toimport CountTo from 'vue-count-to' components: { CountTo },<count-to :start-val="0" :end-val="num" :duration="num>0?num:1" class="card-pan
方法一、利用el-col的属性: xs<768px 响应式栅格数或者栅格属性对象sm≥768px 响应式栅格数或者栅格属性对象md≥992px 响应式栅格数或者栅格属性对象lg≥1200px 响应式栅格数或者栅格属性对象xl≥1920px 响应式栅格数或者栅格属性对象方法二、利用@media@media 是 CSS 中的一个规则,用于定义媒体查询。它可以检查
平台集成了邮件处理包:<dependency> <groupId>org.qlm</groupId> <artifactId>qlm-utils-email</artifactId> <version>1.0-SNAPSHOT</version> </dependency>需要在nacos中配置:ema
平台支持使用图像导航界面,例如展示如下一张图,用户点击对应位置触发对应动作编辑实现原理:<template> <div> <img :src="imageUrl" :usemap="imageMapId" @click="handleClick" /> <map :name="
平台当中有些对象是自定义表结构,时髦的说法就是模型。这种是不方便用实体类封装。(有些平台采用动态编译方式来实现,就是通过模型生成java代码,然后编译,通过这种方法实现实体类) 本平台采用另外的解决思路: 定义org.qlm.db.vo.CellVO类来描述字段,也就是数据表的列,核心属性包括
前端发起一个比较长时间的服务,需要在前端刷新实时进度,告诉用户进展。不是假进度条,是实际的进度,例如需要更新1000条数据,则前端不断刷新 已完成数/1000 前端发起服务,注意生成一个taskID:import uuid from "node-uuid";this.taskID=uuid.v1() 生成一
平台集成了应用于3d展示场景的相关底层,支持fbx和gltf两种模型格式。样例如下: <div class="fullcontainer"> <div style="width:80%"> <iframe :src="url" width="100%" height="100%"
平台中设置样式有如下方法:一、通过style来设置 1、直接设置 <div style="border: 1px solid black;"></dev> 2、通过一个变量设置
如果需要把后台jar包封装为window的服务,可以使用如下方法。平台的紧凑模式(后台服务、前端页面、内嵌数据库打包为一个jar包)发行目录里已经内置了所有脚本,可以直接使用。其他模式在linux下更多推荐docker部署模式,window下也不推荐封装为服务。封装方法有很多,例如1)JSW(Java Service Wrapper)2)YAJSW(Yet Another Java Service
平台中单元测试使用两个工具:1、接口类:使用swagger。 swagger前面介绍已经很多了,不再累述。注意下token的设置即可,否则会报未登录,无法调用该接口。当然也可以修改代码,屏蔽校验。但是屏蔽校验无法获取当前用户信息,对应需要当前用户信息的接口就不行了。2、服务类、工具类:使用junit。 首先引入<!-
紧凑版是最小的平台表现形式,采用了内嵌的数据库、使用内存缓存、前端直连后端(不使用网关),并且集成打包为1个独立的jar包。紧凑版即将开源,适合独立开发者去应付小型项目需求,同时也做为学习的平台。 但是开发方式仍然是前后端分离,也就是同样的代码可以变换为微服务架构,只是打包模式不同。 1、执行n
平台集成了很多应用,例如如下代码: public void put(String key, String value){ if ("Redis".equals(QLMContants.cacheMode)){ redisutils.set(key,value); } else if ("Caffeine".equals(QLMContants.cacheMo
平台兼容Caffeine和Redis两种缓存模式,大型应用使用Redis,小型应用使用Caffeine,最外层使用qlmCacheTools进行封装,例如:public void put(String key, String value){ if ("Redis".equals(QLMContants.cacheMode)){ redisutils.set(key,valu
赛事平台中需要下载伴奏文件。伴奏文件是选手通过小程序上传到minio中的。赛事组织者选择赛场,一次性获取所有伴奏。整个过程耗时很长,后台服务从minio中按节目获取伴奏后会打包成一个zip文件,通过网页下载文g件很慢,也没有断点续传功能,而且伴奏文件需要分享给机构老师、现场服务人员等。 综合业务需要,形成的解决方案是,操作人员选择赛场,后台自动打包,然后上传
后台有些接口耗时非常长,如果采用同步处理机制,前台等待时间过长,这时需要改异步操作。实现方法有很多,例如走消息队列,接口收到请求后,推送消息即返回。处理由其他服务程序来完成。这种方法,业务分散在两个服务中完成,不利于业务内聚。这种方法适合把一些公用操作封装为一个处理服务中心,各业务服务通过消息队列发消息。 一般业务,平台推荐在自己服务中通过线程解
平台后台服务的核心是组件,管理组件的软件有:Apache的Archiva、JFrog的Artifactory、Sonatype的Nexus。本平台选择nexus。nexus的权限模型是用户-角色-权限体系:通过组合权限定义角色,通过给用户赋角色来赋权限。有关nexus的权限管理,自行学习:1、建立平台中心私仓,所有人可以匿名访问平台所有依赖组件、平台本身组件、平台应用组件: <m
1、:close-on-click-modal="false" 必须加这个,否则用户点下对外话框外就关闭对话框,引起误解(是不是设计者觉得有用,默认值为true了,感觉是开发者思维和使用着思维不对等)2、:append-to-body="true" 不设的话,对话框里套对话框会出问题。(也是不知道默认为啥是
App是用uniapp开发的,打包为apk,上传到安卓平板中使用。客户要求登录页面实现微信扫描登录,这一场景下有两个关键问题: 1、微信扫描登录后的回调地址是不可能回到App内页面的。 解决方案:不能直接用,就迂回解决。服务器上需要部署1个H5的应用
一般情况下,一个微服务只链接一个数据库,但是不排除有些情况下需要链多个库。链多个库比较复杂,介绍如下: 1、nocas中要配置多数据源白框内为正常的单数据库情况。下面增加标识(可以任意起,这里为eva),然后跟数据库定义 2、定义新数据库源@Configuration public class
业务实践中除了返回实体类外,经常需要通过SQL语句返回结果集,该集合没有对应的实体类,也不需增加,这种场景使用如下方式:import org.qlm.db.vo.CellVO; // 自定义列CellVO[]=new CellVO[字段数];CellVO[0]=new CellVO();CellVO[0].setItemId("字段名")//定义SQLString sql="select
业务场景中定时任务很常见。平台实现定时任务的原则如下:1、定时任务的定义在业务库(没必要集中到核心库,另外定时任务的服务要访问业务库)。2、定时任务的服务为独立微服务。平台的定时任务基于: <dependency> <groupId>or
平台除了提供各种组件、接口外,更重要的是规定解决方式,就是什么场景用什么解决方案。解决同一个问题有很多种方案,平台开发方会综合各种解决方案的优缺点然后强制选择一种模式。选择同一种模式的好处就是容易维护,因为大家都是同一个思路。 在业务实现中,会有如下场景,以绩效考核结果为例:要求不同的结果显示不同的效果(字体颜色、背景等等),对于这种场景,平台最终选择的方案
选择人员是系统的一个场景功能,平台把这个功能封装为组件:import selectPerson from "@/qlmcomponents/selectPerson"<selectPerson><selectPerson>属性::selectPersonsetting="selectPersonsetting" 这个用来控制组件的行为&
打标签是平台的通用功能,可以为任意对象打标签。import labelDialog from "@/qlmcomponents/selectLabel"<labelDialog v-if="showDialog" ref="showDialogRef"></labelDialog>属性:setID:标签集合ID取返回值:let dynamicTags = this
平台的文本编辑组件是基于wangedit做的二次封装,核心部分为:<template> <div style="border: 1px solid #ccc; margin-top: 10px"> <!-- 工具栏 --> <Toolbar &n
很多业务都需要选择区域,有的到市即可,有的需要到区。这个功能需要调用平台的组件import citySelect from "@/qlmcomponents/citySelect";<citySelect></citySelect>属性: showdistrict 1 显示区 0 不显示区 &nbs
基础用法import vLogin from "@/qlmcomponents/common/loginBox" <v-login class="v-login" v-if="showbox" ref="loginbox" @logined="dologined" 
如果发现某个操作耗时比较长,一般的解决框架如下:一般都是发生在后台:第一步 把整个流程从接收前端参数,到输出结果,按照业务逻辑划分为几个环节。第二步 记录每个环节的耗时:Calendar dateTime = Calendar.getInstance(); Date begin = dateTime.getTime(); ----环节一-- dateTime = Calendar.getInsta
如果链接的是mysql设置,需要做如下配置:服务器端:配置文件中增加如下配置,具体含义自行查阅[mysqld]wait_timeout=86400interactive_timeout=86400临时修改,可以执行如下语句:show global variables like 'wait_timeout' --查询参数SET GLOBAL wait_timeout=864
平台前端框架内置了一个文件version.vue<template> <div> <br> 应用名称: {{name}} <br> 当前版本:{{version}}&n
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号