element-plus选择器自定义筛选方法(拼音首字母搜索)
引言
最近,来了个需求,需要在下拉列表中做筛选。下拉列表显示的是中文,但筛选时可能会输入中文的拼音首字母。因此,需要实现一个筛选功能,能够根据拼音首字母筛选出匹配的选项。
自定义筛选方法
前端使用的是 vue3 和 element-plus。我使用的组件是 Select 选择器 | Element Plus 。为 el-select 添加 filterable 属性即可启用搜索功能。默认情况下,Select 会找出所有 label 属性包含输入值的选项。但这里需要匹配拼音首字母进行搜索,因此要通过传入一个 filter-method 来实现。filter-method 是一个函数,它会在输入值发生变化时调用,参数为当前输入值。
下面是这部分的简短代码:
vue部分:
<el-select
v-model="queryParams.word"
filterable
placeholder="请输入"
clearable
:filter-method="filterMethod&quo ...
Java实现RS485串口通信
近期,我接到了一个任务,将报警器接入到Java项目中,而接入的方式就是通过RS485接入,本人之前可以说是对此毫无所知。不过要感谢现在的互联网,通过网络我查到了我想要知道的一切,这里记录下本次学习的情况,供大家参考
一、RS485简单介绍
RS485是一种常用的串行通信标准,广泛应用于工业自动化和嵌入式系统。它采用差分信号传输,具有抗干扰能力强、传输距离远等优点。以下是关于RS485串口的一些关键点:
1、硬件连接
RS485使用差分信号传输,通常需要使用收发器(如MAX485芯片)将串口的TTL信号转换为RS485信号
可以使用USB转RS485转换器实现与计算机的连接
2、通信方式
RS485支持半双工通信,即发送和接收不能同时进行,通常需要软件控制来实现发送和接收的切换
通过两个数据线进行通信,数据线为A和B,A为正,B为负
3、数据发送和接收
在数据发送时,控制器的TX信号经过收发器转换成差分信号传输到总线上
接收时,差分信号通过收发器转换为TTL信号,再传输给控制器的RX端口
数据传输速率可以根据具体应用需求进行调整,常见的波特率有9600 ...
20240512盖章整理
盖章整理
ts(typescript)看这篇就够了
Typescript 简介
TypeScript是用于应用程序规模开发的JavaScript。
TypeScript是强类型,面向对象的编译语言。它是由微软的Anders Hejlsberg(C#的设计者)设计的。
TypeScript既是一种语言又是一组工具。TypeScript是JavaScript的一个超集。换句话说,TypeScript是JavaScript加上一些额外的功能。
TypeScript 扩展了 JavaScript 的语法,所以任何现有的 JavaScript 程序可以不加改变的在 TypeScript 下工作。TypeScript 是为大型应用之开发而设计,而编译时它产生 JavaScript 以确保兼容性。
TypeScript 可以编译出纯净、 简洁的 JavaScript 代码,并且可以运行在任何浏览器上、Node.js 环境中和任何支持 ECMAScript 3(或更高版本)的 JavaScript 引擎中。
TypeScript 的优势
TypeScript相对于纯粹的JavaScript具有许多优势,特别是在开发大型应用程序时。以下是一些TypeSc ...
win电脑安装绿色版MySQL8
一、下载压缩包
下载mysql server的zip文件,地址:Windows (x86, 64-bit), ZIP Archive
解压后:
二、创建配置文件(可忽略)
配置文件可存放位置及名称:
C:\WINDOWS\my.ini
C:\WINDOWS\my.cnf
C:\my.ini
C:\my.cnf
解压目录的根目录下(mysql-8.3.0-winx64)\my.ini
解压目录的根目录下(mysql-8.3.0-winx64)\my.cnf
三、初始化数据库
以管理员身份运行cmd,进入到bin目录,运行下面的命令创建mysql默认的数据库,并创建一个root账号,空密码
mysqld --initialize-insecure
四、启动MySQL服务
我使用的是安装到服务的方式,执行下面的命令
mysqld --install-manual
默认创建的服务名称为MySQL,然后在服务中启动
也可以直接运行一下命令
mysqld
这是最简单的方式了,但是无法安装到服务中,其他详细的可参看帮助说明
mysqld --verbose --he ...
Git操作指南:子模块、用户名修改和Subtree
引言
在软件开发中,版本控制是一个至关重要的环节。Git 作为目前最流行的版本控制工具之一,提供了丰富的功能和灵活的操作方式。本文将介绍一些常用的 Git 操作,包括管理子模块、修改用户名、使用 Git Subtree 合并项目以及其他一些常见操作。
一、引用子模块
git submodule是一个用于将其他两个 Git 仓库嵌入到一个主仓库中。这样做可以使主仓库包含其他两个仓库的内容,并能够管理它们的版本和更新。以下是将两个其他仓库添加为子模块到主仓库的基本步骤:
1、初始化主仓库
mkdir main_project
cd main_project
git init
2、添加子模块
使用 git submodule add 命令将其他仓库添加为子模块到主仓库中。
git submodule add <URL_of_repository1> repository1_folder
git submodule add <URL_of_repository2> repository2_folder
3、提交更改
git commit -m "Add sub ...
docker-compose部署单机版nacos
nacos数据库建表语句
/*
* Copyright 1999-2018 Alibaba Group Holding Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT ...
Map类方法整理(jdk8)
前言
今天在查看力扣周赛385题解时,发现了几个我平时没注意的map方法,看了jdk相关的源码,感觉很巧妙,可以帮我节省代码,于是乎顺带着整个Map类的方法都过了一遍,下面是我看后整理的内容。
Map类中包括了以下方法:
clear()
compute(K,BiFunction<K,V,V>)
computeIfAbsent(K,Function<K,V>)
computeIfPresent(K,BiFunction<K,V,V>)
containsKey(Object)
containsValue(Object)
entrySet()
equals(Object)
forEach(BiConsumer<K,V>)
get(Object)
getOrDefault(Object, V)
hashCode()
isEmpty()
keySet()
merge(K,V,BiFunction<V,V,V>)
put(K,V)
putAll(Map<K,V> ...
win11新电脑环境安装
新的mini主机到了,为了之后的开发方便,需要先安装各种软件,这里记录下需要安装的软件,我这边是以Java为主
Java
我这边Java下载安装的是17版本的,下载地址:Java Downloads | Oracle,下面是下载页面,根据自己电脑的情况安装不同的版本
maven
我使用的是3.6.3,下载地址:maven
nvm
安装包在GitHub中下载的,安装说明也挺详细,地址:nvm-windows
git
官网下载地址:git
nodejs
通过nvm安装LTS版本
1686. 石子游戏 VI(2024-02-02)
力扣每日一题
题目:1686. 石子游戏 VI
日期:2024-02-02
用时:15 m 0 s
时间:103ms
内存:57.95MB
代码:
class Solution {
public int stoneGameVI(int[] aliceValues, int[] bobValues) {
int cnt = aliceValues.length;
int[][] arrs = new int[cnt][2];
for (int i = 0; i < cnt; i++) {
arrs[i] = new int[]{aliceValues[i],bobValues[i]};
}
Arrays.sort(arrs,(a,b)->(b[0]+ b[1])-(a[0]+ a[1]));
int sub = 0;
for ...
2024-01-27-跑章整理
总览
通过几天晚上的整理,规划出了今天的路线,大概上要去下面这些地方:辽宁美术馆,城市规划馆,万豪酒店,k11,广电博物馆,文化路万达,盛京龙城,盛京大家庭,大悦城乐高,全运路万达,在跑章的过程中,临时加入了大悦城霸王别姬
计划
通过整理这些地方的地点和营业时间,初步按照下面的顺序依次跑章
辽宁美术馆
营业时间:9:00~17:00,16:00后不让进
路线:2号线 “市图书馆”,B口
盖章数:5枚
城市规划馆
时间:9:00~17:00,16:00后不让进
路线:2号线”沈阳市图书馆站“,C口(辽宁美术馆步行过来700米)
盖章数:7枚
注意事项:需要带身份证
沈阳皇朝万豪酒店
时间:2024.1.19~1.28,10:00~18:00
路线:2号线,五里河站,B1口(辽宁美术馆步行900米,城市规划馆步行900米)
盖章数:17枚
注意事项:分布在1楼和3楼的各个摊位,需要挨个问
k11
路线:2号线,五里河,B1口(万豪酒店步行800米)
盖章数:共6枚,中信书店(2枚,3楼),歌德书店(2枚,2楼),西西弗书店(2 ...
162. 寻找峰值(2023-12-18)
力扣每日一题
题目:162. 寻找峰值
日期:2023-12-18
用时:10 m 9 s
时间:0 ms
内存:40.54 MB
代码:
class Solution {
public int findPeakElement(int[] nums) {
if(nums.length==1){
return 0;
}
if(nums.length==2){
return nums[0]>nums[1]?0:1;
}
if(nums[0]>nums[1]){
return 0;
}
if(nums[nums.length-1]>nums[nums.length-2]){
return nums.length-1;
...
2415. 反转二叉树的奇数层(2023-12-15)
力扣每日一题
题目:2415. 反转二叉树的奇数层
日期:2023-12-15
用时:6 m 51 s
时间:0 ms
内存:46.97 MB
代码:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*& ...
2132. 用邮票贴满网格图(2023-12-14)
力扣每日一题
题目:2132. 用邮票贴满网格图
日期:2023-12-14
用时:38 m 32 s
思路:使用前缀和+差分,只是往常是一维,现在变二维了,原理差不多
时间:22ms
内存:98.24MB
代码:
class Solution {
public boolean possibleToStamp(int[][] grid, int stampHeight, int stampWidth) {
int xl = grid.length;
int yl = grid[0].length;
// 前缀和
int[][] sum = new int[xl+1][yl+1];
for(int i=1;i<=xl;i++){
for(int j=1;j<=yl;j++){
sum[i][j] ...
2697. 字典序最小回文串(2023-12-13)
力扣每日一题
题目:2697. 字典序最小回文串
日期:2023-12-13
用时:4 m 53 s
时间:7ms
内存:43.61MB
代码:
class Solution {
public String makeSmallestPalindrome(String s) {
char[] chs = s.toCharArray();
int size = s.length();
for(int i=0;i<size/2;i++){
if(chs[i]>chs[size-1-i]){
chs[i] = chs[size-1-i];
}else{
chs[size-1-i] = chs[i];
}
}
return ...







