Promise
promise 封装 ajax,并且 promise 的链式调用的示例let request = function (url, type = 'get', data = '', msg = '请求失败') { return new Promise((resolve, reject) => { // 封装jq ajax $.ajax({ type, url, async: true, data, success(res) { //成功的回调函数 if (res.code === 500) { Hussar.info(msg) reject() } resolve(res.data) }, error() { reject() } & ...
监听窗口的尺寸变化,动态刷新echarts图
window.onresize = function () { let chart = echarts.init(document.getElementById('id')) chart.resize()}
vue组件公共模板
<template> <div></div></template><script>export default { name: 'index'}</script><style scoped></style>
markLine或markArea在使用滚动条放大之后消失的问题
问题:水平的 markLine 或者 markArea 当使用 dataZoom 放大的时候。只要 markLine/markArea 不完全在当前缩放的范围内(有部分在)那么它们就会整体消失
解决方式:官方没有给出真正的解决方式。临时解决方式如下
监听滚动条的滚动,获得使用滚动条缩放 echarts 缩放后的范围(x 轴的最小值和最大值)。根据后台请求的 markLineData/markAreaData 重新计算边界。如果某个 markLine/markArea 的左侧边界小于缩放后的 x 轴左侧边界,那么就将它的左侧边界放大到 x 轴的左侧边界。右侧同理。替换掉原先的标记 series。
注意:重新 setOption()时,可以合并原先的 option(noMerge:false)。因为只是重绘 markLine/markArea,没必要销毁原先的所有组件,并重新创建新的组件。同时如果有内置滚动条的情况下,必须指定(silent:true)(不抛出事件),否则使用内置滚动条放大 echarts 后,每次左右平移只能移动一点点,因为只要移动就会进入到滚动条监听事件里,而监听事件 ...
npm常用命令
检查前 NPM 源:npm get registry
设置镜像命令npm config set registry http://registry.npm.taobao.org/ #设置淘宝镜像npm config set registryhttps://registry.npmjs.org #设置默认镜像
初始化项目建立一个空文件夹,在命令提示符进入该文件夹 执行命令初始化npm init按照提示输入相关信息,如果是用默认值则直接回车即可。name: 项目名称name: 项目名称description: 项目描述keywords: {Array}关键词,便于用户搜索到我们的项目最后会生成 package.json 文件,这个是包的配置文件,相当于 maven 的 pom.xml我们之后也可以根据需要进行修改。如果想直接生成 package.json 文件,那么可以使用命令npm init -y
当从 git/svn 下载源码的时候,此时没有 node_modules 目录,使用此命令能根据 package.json 里的配置的依赖版本下载所有的依赖包npm install
( ...
vue自定义上传功能
export function importData(params) { return axios.post('/engineeringCar/importData', params, { headers: { 'Content-Type': 'multipart/form-data' } })}
<template> <div> <el-button @click="importData">导入</el-button> <input v-show="false" name="file" ref="selectFile" type="file" @change="changeFile" /> </div& ...
上传组件设置token
<el-upload class="uploadBtn" accept="xlsx" action="http://127.0.0.1:82/lineDic/sstjq/importData" :on-success="importData" :show-file-list="false" :limit="1" :headers="headers" :file-list="fileList"> <el-button size="small" type="primary">导入</el-button></el-upload>data(){ return{ headers: { Authorization: null }, } } methods: { s ...
后台运行命令
如果使用 nohup 命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为 nohup.out 的文件中,除非另外指定 了输出文件:
输出被重定向到 myout.file 文件中。
nohup command > myout.file 2>&1 &
不输出日志文件。
nohup command >/dev/null 2>&1 &
二进制文件流转文件并触发下载
/** * word/doc * data就是后台返回的二进制流 * fileName就是你想要把这个流转为二进制的名称 */export function downloadDoc(data, fileName) { let blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' }) let link = document.createElement('a') link.href = window.URL.createObjectURL(blob) link.style.display = 'none' link.setAttribute('download', fileName + '.doc') link.click()}
/** * excel/xlsx * data ...
局部导入css
<template> <div></div></template><script>export default { name: 'index'}</script><style scoped>@import '~@/assets/css/single_block.css';</style>
创建shell脚本并且运行
创建 shell 脚本并且运行
vim hello.sh
提权
chmod u+x hello.sh
执行
bash hello.sh
查看网址
示例
curl 127.0.0.1:80 #查看本地的nginx是否启动
查看命令所在源文件的位置
直接使用下面这条命令跟随符号链接来以获取实际的可执行文件
readlink -f `which java`
readlink 命令会跟随一个符号链接。我在 which java 的外侧使用 readlink 将会使用 which java 的输出来替换要检查的符号链接,这被称之为命令替换。因此,在这个实例中,上面的命令大体上相当于 readlink -f /usr/bin/java 。
在我的示例中,可执行文件的位置是 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 。
查看后台运行的java -jar项目的端口号,并杀死该进程
lsof -i:8088Kill -9 pid
查看cpu核心数
查看物理 cpu 数目
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
查看每个物理 cpu 里的核数
cat /proc/cpuinfo| grep "cpu cores"| uniq
查看 cpu 逻辑核心数(cpu 数量*每个 cpu 的核数)
cat /proc/cpuinfo| grep "processor"| wc -l
原文链接
用windowd的cmd向linux服务器上传文件
示例代码
scp -P 221 D:\hussar-web-2.2.0.war root@123.123.122.138:/opt/tomcat8/webapps/
城轨项目的使用的上传 war 包用:
scp -P 221 D:\Work\workProject\dtjc\target\hussar-web-2.2.0.war root@123.123.122.138:/opt/tomcat8/webapps/
说明:其中 221 是端口,123.123.122.138 是 ip,root 是登陆用户,D:\hussar-web-2.2.0.war 是文件路径,/opt/tomcat8/webapps/是服务器存储上传文件的路径
网上拷贝
1、上传本地文件到服务器
scp -P 221 /path/filename username@servername:/path/
例如 scp /var/www/test.php root@192.168.0.101:/var/www/ 把本机/var/www/目录下的 test.php 文件上传到 192.168.0.101 这台服务器上的/ ...
磁盘管理
查看某个文件夹所属的磁盘容量df -h 文件路径
查看磁盘列表
df -hl
端口管理
开放端口firewall-cmd --zone=public --add-port=5672/tcp --permanent # 开放5672端口firewall-cmd --zone=public --remove-port=5672/tcp --permanent #关闭5672端口firewall-cmd --reload # 配置立即生效
查看防火墙所有开放的端口firewall-cmd --zone=public --list-ports
开放端口,复杂规则# 只允许10.13.49.108的ip通过tcp协议访问18080端口firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="10.13.49.108" port protocol="tcp" port="18080" accept"# 只允许172.16.1.0网段的ip通过tcp协议访 ...
查看日志最后几行
tail -n 50 wx.log
示例:查看/var/log/boot.log,只显示最后一行。则执行
tail -n 1 /var/log/boot.log
tail -n 1000 #显示最后1000行tail -n +1000 #从1000行开始显示,显示1000行以后的head -n 1000 #显示前面1000行
实时监听文件末尾多行的变化,打印到控制台。ctrl+c 退出
tail -f file #默认显示10行tail -500f file #调整为500行
原文链接
@Async和@EnableAsync注解
1) 含义:1,在方法上使用该@Async 注解,申明该方法是一个异步任务;
2,在类上面使用该@Async 注解,申明该类中的所有方法都是异步任务;
3,使用此注解的方法的类对象,必须是 spring 管理下的 bean 对象;
4,要想使用异步任务,需要在主类上开启异步配置,即,配置上@EnableAsync 注解;
2) 使用:在 Spring 中启用@Async:
1,@Async 注解在使用时,如果不指定线程池的名称,则使用 Spring 默认的线程池,Spring 默认的线程池为SimpleAsyncTaskExecutor。
2,方法上一旦标记了这个@Async 注解,当其它线程调用这个方法时,就会开启一个新的子线程去异步处理该业务逻辑。
3) 代码示例—默认线程池:3.1,启动类中增加@EnableAsync以 Spring boot 为例,启动类中增加@EnableAsync:
@EnableAsync@SpringBootApplicationpublic class ManageApplication { //...}
3.2,方法上 ...
