自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1692)
  • 资源 (27)
  • 收藏
  • 关注

转载 实用工具 提高效率

实用工具、效率办公。https://zhuanlan.zhihu.com/p/105804622原创技术知识与实用工具分享https://zhuanlan.zhihu.com/p/105804622

2021-03-25 09:33:33 71

转载 翻译:iOS 7中的自动布局教程第1部分:入门

https://www.jianshu.com/p/1d82bcc87d32本文内容:参考外文学习并使用Auto Layout,顺便翻译记录。原文 Beginning Auto Layout Tutorial in iOS 7: Part 1@Matthijs Hollemans on October 16, 2013 Beginning Auto Layout Tutorial in iOS 7: Part 2@Matthijs Hollemans on October 1...

2021-03-08 10:10:48 54

转载 自律给你自由——Android设计布局的新姿势

https://www.jianshu.com/p/38f62061c8dc自律给你自由——设计布局的新姿势在今天的文章开始之前,有个忙想请大家帮一下,希望在京东、淘宝、当当、亚马逊购买了我的书《Android群英传:神兵利器》的朋友们,帮忙去网店上给个简短的评价,举手之劳,还是多谢大家啦~~ConstraintLayout基本界面更新Android Studio 2.2之后,更新了布局设计器,同时,引人了ConstraintLayout,这一布局,旨在降低布局层级,其主要界面如下所示:

2021-03-08 09:57:57 56

转载 Java8 lambda表达式10个示例

https://www.cnblogs.com/coprince/p/8692972.html例1、用lambda表达式实现Runnable我开始使用Java 8时,首先做的就是使用lambda表达式替换匿名类,而实现Runnable接口是匿名类的最好示例。看一下Java 8之前的runnable实现方法,需要4行代码,而使用lambda表达式只需要一行代码。我们在这里做了什么呢?那就是用() -> {}代码块替代了整个匿名类。// Java 8之前:new Thread(new R

2021-01-14 21:03:54 88

转载 Java开发人员最常犯的10个错误

https://www.cnblogs.com/chenpi/p/5508949.htmlJava开发人员最常犯的10个错误Array转ArrayList 判断一个数组是否包含某个值 在循环内部删除List中的一个元素 HashTable与HashMap 使用集合原始类型(raw type) 访问级别 ArrayList和LinkedList 可变与不可变 父类和子类的构造方法 “”还是构造方法 未来工作...

2020-08-28 18:32:03 74

原创 程序员的工具库

程序员常用的软件(附下载地址)https://blog.csdn.net/HXNLYW/article/details/81235444程序员必备工具https://blog.csdn.net/scmrpu/article/details/79036668程序员必备的十个工具https://blog.csdn.net/shuaizhen/article/details/616954...

2019-01-23 14:50:11 479

转载 linux中的cp命令总结

Cp总结功能说明 :复制文件或目录 语法:cp[参数]源文件目录   目标文件或目录 该命令用于将一个或多个文件复制到目标目录 补充说明: Cp指令用在复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,而最后的目的地并非是一个已存在的目录,则会出现错误信息

2014-03-15 18:23:22 638

原创 orthanc 文件存储服务中使用数据库查询

添加声明 class ServerIndex;添加class ServerIndex;MemoryStorageArea 类比修改。

2023-01-12 22:46:58 34

原创 orthanc 源码3

【代码】orthanc 源码3。

2023-01-11 13:52:46 33

原创 orthanc源码分析

【代码】orthanc源码分析。

2023-01-10 21:29:32 38

原创 orthanc 源码

orthanc 获取文件路径

2023-01-07 23:14:51 23

转载 EasyExcel复杂模板填充

2.编辑模板{xxx}代表map填充(填入key)或者bean填充(填入属性名){.xxx}代表list填充,填入对应属性名 注意模板的第一列是填充序号的,这里我是在bean添加了这么一个字段使用stream流来给他添加的序号,java使用stream的代码会被编译成匿名内部类,而匿名内部类想要使用外部变量则必须是fian修饰的,所以这里不可以使用基础int或者Integetr类型,使用int数组是可以的,因为对象本身并没有改变.另外我查了好多资料也没发找到easyExcel自定义添加序号的方法

2022-12-06 20:34:36 155

转载 easyexcel一个模板动态多个sheet填充

根据模板中第一个Sheet的样式生成多个Sheet,每个sheet中的样式与模板第一个sheet中的样式一样目前easyexcel不能根据模板动态生成sheet,模板固定的几个sheet就只能填充那几个sheet,当代码里指定了模板中不存在的sheet就会报空指针.。遇到这种情况一般只能通过代码动态生成excel文件,而且样式什么的都需要通过代码来设定,这也是比较麻烦的,所以想要通过模板动态导出多个sheet,可以先利用poi克隆出多个sheet的模板写到流里然后再进行填充。引入jar包

2022-12-06 20:31:25 317

转载 uni-app App端半屏连续扫码

【代码】uni-app App端半屏连续扫码。

2022-11-22 21:12:39 125 1

原创 dicom 打印

【代码】dicom 打印。

2022-09-18 19:30:01 153

转载 C# 操作JSON的几种方式

以上是我们通过json结构映射实体类的方式去实现的解析json数据,很多时候我们可能并不需要,或者并不想创建太多的类,这时候我们可以通过以下方式去实现解析。以上基本可以解决我们的日常开发需求,个人推荐使用JSON.NET,下一篇会再介绍下JSON.NET的部分高级用法,用来满足我们的一些特殊需求。原文链接:https://blog.csdn.net/qq_27410185/article/details/120819917。//json.txt中的数据为上面的json数据。

2022-09-03 08:01:55 3044

转载 聊聊JavaScript中eval()函数的用法

介绍一下JavaScript中eval()函数的用法

2022-08-25 21:09:42 229

原创 java 连接不同数据库

【代码】java 连接不同数据库。

2022-08-20 22:24:55 157

转载 java 中PATH, -classpath, -Djava.library.path 的功能和区别

2.-classpath:设置CLASSPATH变量的目的就是让Java执行环境找到指定的Java程序对应的class文件以及程序中引用的其他class文件。总结:运行jar java -cp a.jar:b.jar:./libs/* -Djava.library.path=./libs com.test.Main param1 param2。3.-Djava.library.path:指定非java类包的位置(如:dll,so)-cp:声明依赖的jar,a,b和libs下所有的jar。...

2022-08-04 20:15:29 151

转载 maven添加本地包依赖

1、通过 system 的依赖方式引入 2、通过mvn install 命令将依赖包添加到本地maven仓库1、system 的依赖方式引入比如项目目录下有lib/errorWordsCore-1.0.jar需求:maven项目需要引入本地一个jar包。并且打包后需要把该文件引入依赖。比如项目目录下有lib/errorWordsCore-1.0.jar将jar包引入pom.xml ...

2022-08-03 19:31:43 2825

转载 SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息

文章目录SpringBoot读取配置文件的几种方式总结准备工作案例说明1)测试方式1通过Environment读取配置信息注意点说明2)测试方式2通过@Value注解读取配置信息(推荐使用)3)测试方式3通过@ConfigurationProperties注解读取配置信息注意点说明4)测试方式4通过@PropertySource+@Value注解读取配置信息注意点说明5)测试方式5案例说明1)测试方式1。...

2022-07-22 22:36:12 2993

转载 SpringMVC过滤器(Filter)与拦截器(Interceptor)的区别(附源码)

在JavaWeb阶段我们学习了Filter过滤器,提出Filter的概念一开始我们为了过滤字符集乱码,在Servlet体系中拦截目标请求,而拦截器是在SpringMVC中定义的概念名叫HandlerInteceptor。在开发过程中,使用拦截器的配置更为灵活,其API接口更丰富,他们的目的都可以达到对请求的前置和后置处理,其本质上区别不大,但由于拦截器可以被Spring容器管理,从而获得被容器赋予的能力,而filter功能单一,所以后期大家都习惯使用拦截器完成某项特定的功能...

2022-07-21 22:06:33 987

原创 aop 获取目标对象 修改目标对象

aop获取目标对象修改目标对象。

2022-07-20 23:46:46 306

转载 @RestControllerAdvice作用及原理

创建MyControllerAdvice,并添加@ControllerAdvice注解。/***controller增强器*//***应用到所有@RequestMapping注解方法,在其执行之前初始化数据绑定器*//***把值绑定到Model中,使全局@RequestMapping可以获取到该值*/}/***全局异常捕捉处理*@return*/returnmap;}Model}//或者通过@ModelAttribute获取。...

2022-07-19 22:48:01 1071

转载 @ModelAttribute运用详解

运用在参数上,会将客户端传递过来的参数按名称注入到指定对象中,并且会将这个对象自动加入ModelMap中,便于View层使用;

2022-07-19 22:28:57 349

原创 el-table 全选

el-table 全选反选

2022-07-11 21:50:45 1541

转载 Mybatis改成Mybatis-plus需要更改地方

1.首先就是如图更改 依赖 在mybatis-plus中已经含有mybatis 2.其次更改yml文件,只需要将mybatis改成如图的mybatis-plus即可.

2022-07-10 20:10:24 321

转载 mybatis plus中的${ew.sqlSegment},${ew.sqlSelect},${ew.customSqlSegment},${ew.sqlSet}使用

mappertest最佳例子2controllermappermapper.xml使用${ew.sqlSegment} 如果是联表查询且查询条件是连表的字段则需在service层拼接查询条件时字段前指定别名,而且不能用lambda的查询了mapper${ew.sqlSet} mybatis plus中的${ew.sqlSegment},${ew.sqlSelect},${ew.customSqlSegment},${ew.sql

2022-07-10 10:55:03 626

转载 mybatis中 的 #{} 与 ${}

1、在MyBatis 的映射配置文件中,动态传递参数有两种方式:(1)#{} 占位符(2)${} 拼接符2、#{} 和 ${} 的区别(1)1)#{} 为参数占位符 ?,即sql 预编译2)${} 为字符串替换,即 sql 拼接(2)1)#{}:动态解析 -> 预编译 -> 执行2)${}:动态解析 -> 编译 -> 执行(3)1)#{} 的变量替换是在DBMS 中2)${} 的变量替换是在 DBMS 外(4)1)变量替换后,#{} 对应的变量自动加上单引号 ‘’2)变量替换后,${} 对应的变量不

2022-07-10 10:43:31 89

转载 @Accessors 注解详解

在你的工作中,有时候可能会看到 @Accessors(chain = true) 这样的注解,他是 lombok 插件包中的一个注解,那么它是什么意思呢?我们打开 @Accessors 的源码可以看到:(1)该注解主要作用是:当属性字段在生成 getter 和 setter 方法时,做一些相关的设置。(2)当它可作用于类上时,修饰类中所有字段,当作用于具体字段时,只对该字段有效。 该字段共有三个属性,分别是 fluent,chain,prefix,下面我们分别来说明下,他的意思分别是什么?2. @Acce

2022-07-09 23:32:31 60

转载 mybatis-plus实现多表联查

以userinfo和house表为例。其中house表中的userrid对应userinfo表中的id。 首先要确定userinfo和house表的关系,一个用户可以拥有多个房子,一个房子只能对应一个用户。以此为例进行多表查询测试。创建项目时需注意在pom文件中导入mybatis-plus依赖: com.baomidou mybatis-plus-boot-starter ...

2022-07-09 23:25:13 4788

转载 mybatis Plus多表查询

连表查询比较特殊,mybatis-plus主要针对单表查询,多表查询的话,可以使用原生的mybatis,当然那样可能麻烦一点需要写大量的sql如果要用mybatis-plus的话其实还是有办法的Dao层Service层 这样也是一种比较不错的方法连表SQl还是得自己写,毕竟mybatisPlus不是万能的...

2022-07-09 23:18:31 3370 1

原创 mybatisPlus 查询视图

一 创建视图create view v_dict asselect sys_dict_data.id,dict_type_id,dict_label,dict_value,dict_type,dict_namefrom sys_dict_data INNER JOIN sys_dict_type on sys_dict_data.dict_type_id = sys_dict_type.id二 定义映射实体三 定义mapper四 xml 文件五 使用...

2022-07-09 23:15:11 920

转载 dom4j简单学习 element和node的区别

使用dom4j解析处理html时,遇到一些麻烦的问题:基中必须要使用XPath取得节点,有个命名空间的问题,需要如下处理:HashMap gm = new HashMap();gm.put("xmlns", "http://www.w3.org/1999/xhtml");Document rootDoc = DocumentHelper.parseText(s);XPath xpathTable = DocumentHelper.c...

2022-07-08 08:00:55 265

转载 Dom4j解析XML

1.XML解析的方式介绍在日常开发中常见的XML解析方式有如下两种:1.DOM解析DOM解析要求解析器将整个XML文件全部加载到内存中,生成一个Document对象。1.优点:元素和元素之间保留结构,关系,可以针对元素进行增删改查操作。2.缺点:如果XML文件过大,可能会导致内存溢出。2.SAX解析SAX解析是一种更加高效的解析方式。它是逐行扫描,边扫描边解析,并且以时间驱动的方式进行具体的解析,每解析一行都会触发一个事件。1.优点:不会出现内存溢出的问题,可以处理大文件。2.缺点:只能读,不

2022-07-07 22:32:06 349

原创 uniapp 顶部固定 下部滑动

方法1方法二

2022-07-03 17:41:09 581

转载 SpringBoot + MyBatisPlus 报错:

Error attempting to get column ‘create_time’ from result set. Cause: java.sql.SQLFeatureNotSupported.MP官方解决方案问题原因:数据库表的create_time类型为DateTime,而Java中createTime的属性的类型是LocalDateTime,这是Java8里面新出来了一些API,LocalDate、LocalTime、LocalDateTime ,但是在Druid1.1.21 版本 数据源里面

2022-07-03 00:43:42 123

转载 Qt界面程序调试利器:Gammaray介绍

简介GammaRay是KDAB开发的用于Qt应用程序的软件自检工具。利用QObject自省机制,可以在运行的过程当中去注入qt应用程序,实时观察QObject相关的各种属性.可以用于解决一些UI上的疑难杂症github页面:https://github.com/KDAB/GammaRay浏览带有实时更新的QObject树。查看和编辑对象属性。查看和调用QObject的插槽,并监视其信号。列出所有QObject入站和出站信号/插槽连接。为QWidget和QtQuick2应用程序提供布局信息覆盖。检

2022-06-30 21:30:04 222

转载 Vue 插槽(slot)详细介绍(对比版本变化,避免踩坑)

Vue中的插槽(slot)在项目中用的也是比较多的,今天就来介绍一下插槽的基本使用以及Vue版本更新之后的插槽用法变化。插槽是什么?插槽就是子组件中的提供给父组件使用的一个占位符,用 表示,父组件可以在这个占位符中填充任何模板代码,如 HTML、组件等,填充的内容会替换子组件的标签。简单理解就是子组件中留下个“坑”,父组件可以使用指定内容来补“坑”。以下举例子帮助理解。怎么使用插槽?基本用法现在,有两个组件,A与B,分别如下:A.vue...

2022-06-24 22:15:51 100

转载 vue中组件的props属性

今天这篇文章,让你彻底学会props属性……props主要用于组件的传值,他的工作就是为了接收外面传过来的数据,与data、el、ref是一个级别的配置项。问题一:那props具体是怎么使用呢?原理又是什么呢?往下看1、【定义被调用组件】首先,我们先定义一个person组件,用于显示个人信息的组件,我们放了一个人的姓名,性别,以及年龄,定义好这个组件之后,就可以等待其他组件进行调用。那么既然别的组件可以调用,我们就需要再定义一个props属性,用于接收别的组件传进来的值。 注意:组件中name、sex

2022-06-24 22:10:53 112

uniapp vue 不规则tab

uniapp vue 不规则tab 特效

2022-06-24

sqlite可视化管理工具

sqlite可视化管理工具 sqliteadmin SQLiteStudio sqlite可视化管理工具 sqliteadmin SQLiteStudio

2020-01-17

c# 编写activex控件 并与网页交互

c# 编写activex控件 并与网页交互,传递数据给网页,调用网页方法 例子 c# 编写activex控件 并与网页交互,传递数据给网页,调用网页方法 例子

2020-01-13

c#通过twain调用扫描设备扫描文件

c#通过twain调用扫描设备扫描文件

2020-01-11

网页通过activeX控件调用扫描设备ScanOnWeb网页扫描

网页通过activeX控件调用扫描设备并通过asp.net

2020-01-11

时空密码查看器.rar

用友cdm,时空ksoa 密码查看器,由密文得到明文,输入密文可以查看明文,输入密文可以查看密码,就是这样简单

2019-12-15

C++重难点总结系列.rar

该系列是本人学习C/C++以来,阅读相关书籍以及编程实践中记载的笔记中提炼的知识点,现整理成博文与大家分享。本系列不是小白系列,尽量避免冗杂的解释和叙述,简明扼要地总结干货,适合进阶的童鞋。限水平有限,有任何问题欢迎大家指正和讨论。

2019-12-08

jPage jquery-ajax表格动态分页.zip

jPage for jQuery ajax 分页 后端使用jPage jquery-ajax表格动态分页.

2019-11-22

springboot web services例子 web服务例子

springboot web services例子 web服务例子 springboot+cxf创建webservice的服务端和客户端

2019-11-06

jquery仿盖章效果并合成图片.zip

jquery仿盖章效果 并获取合成后的图片,图片合成需在web服务器下浏览,在文件系统打开不能看到效果

2019-09-05

SrvanyUI for windows(可注册成系统服务).zip

把frpc.exe作为windows服务随系统启动。Srvany是微软套件的一个小工具。SrvanyUI是一位大神,封装成简化的可视化工具。 此工具貌似支持任何形式的可执行文件,EXE,BAT等。

2019-08-29

websocket+java服务器(mina)

简单实现mina服务器框架的websocket通信(Simple implementation of websocket communication in mina server

2019-07-27

settings.xml

eclipse maven settings.xml 默认是没有的可以把这个放到C:\Users\Administrator\.m2下面

2019-07-05

dns_57735.zip

windows下的dns服务器,迷你dns服务器,设置好开启服务,自己的电脑就可以做dns服务器了,局域网的电脑把dns服务器设置成自己的电脑ip

2019-06-21

eclipse下maven安装oracle的jdbc驱动

eclipse中maven 下载不到oracle数据库驱动 ojdbc5 ojdbc6 需要我们手动将驱动安装到本地仓库 1.找到安装命令的位置在项目的目录下 mvnw就是我们要用到的安装工具 2.下载 驱动 3.安装驱动 把需要安装的驱动放到第一步的目录中如下 4。运行安装命令  在上面的目录打开命令行窗口,执行以下命令 mvnw install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=11.2.0 -Dpackaging=jar -Dfile=ojdbc6.jar

2019-02-20

oraclejdbc驱动

安装教程 eclipse中maven 下载不到oracle数据库驱动 ojdbc5 ojdbc6 需要我们手动将驱动安装到本地仓库 https://blog.csdn.net/az44yao/article/details/87773714 参考地址: http://www.oracle.com/technetwork/cn/articles/oem/jdbc-112010-094555-zhs.html 针对所有平台的 JDBC 瘦客户端 ojdbc5.jar (1,996,228 字节)— 用于 JDK 1.5 的类。它包含 JDBC 驱动程序类,但不包含在 Oracle Object 和 Collection 类型中支持 NLS 的类。 ojdbc5_g.jar (3,081,328 字节)— 与 ojdbc5.jar 一样,除了类通过“javac -g”编译并包含跟踪代码。 ojdbc6.jar (2,111,220 字节)— 用于 JDK 1.6 的类。它包含 JDBC 驱动程序类,但不包含在 Oracle Object 和 Collection 类型中支持 NLS 的类。 ojdbc6_g.jar (3,401,519 字节)— 与 ojdbc6.jar 一样,除了通过“javac -g”编译并包含跟踪代码。 ojdbc5dms.jar (2,429,777 字节)— 与 ojdbc5.jar 一样,除了包含支持 DMS 和有限的 java.util.logging 调用的工具。 ojdbc5dms_g.jar (3,101,875 字节)— 与 ojdbc5_g.jar 一样,除了包含支持 DMS 的工具。 ojdbc6dms.jar (2,655,741 字节)— 与 ojdbc6.jar 一样,除了包含支持 DMS 和有限的 java.util.logging 调用的工具。 ojdbc6dms_g.jar (3,423,263 字节)— 与 ojdbc6_g.jar 一样,除了包含支持 DMS 的工具。 orai18n.jar (1,656,280 字节)— 用于 JDK 1.5 和 1.6 的 NLS 类。它包含在 Oracle Object 和 Collection 类型中支持 NLS 的类。该 jar 文件代替旧的 nls_charset jar/zip 文件。 demo.zip (603,363 字节)— 包含 JDBC 示例程序。

2019-02-20

SQLServer2005_BC.msi SQLServer2005及以后版本 向前 兼容 DTS等功能

SQLServer2005_BCSQLServer2005及以后版本 向前 兼容 DTS等功能 x86,x64,ia64三个版本都有

2018-12-14

delph拦截iapi

delph拦截iapi

2016-08-30

delph代码注入iapi拦截 源码

delphiapi拦截

2016-08-30

Delphi API HOOK 完全说明源码

为了使我们改写的代码正确运行,我们的函数必须和要改写的 API 函数具有同样形式的形参。在我的程序中,我拦截了 MessageBoxA 和 MessageBoxW 两个函数。所以我这样定义自己的函数

2016-08-30

税控发票开票软件(税控盘版)开票组件-百旺开票组件

百旺开票组件 本程序适用于 税控发票开票软件税控盘版 Sniffer文件夹内有三个工程 SnifferLib.dpr 这个为hookdll工程 SnifferApp.dpr 这个为exe工程 提供调用实例 Sniff.dpr 这个是为了方便调用进行的封装 进销存系统可以调用里面的function SayHello( title:PChar; mx:PChar):PChar;stdcall; 即可完成单据的导入 第一个参数为单据信息 第二个参数为明细信息 返回值为增值税票信息 这里面有一个查找窗口的代码要根据不同省份进行修改 FindWindow('TCustomBaseForm', '河南增值税普通发票开具'); 使用时要注意先打开开票窗口

2015-10-31

c# mdi多窗体实现

c# 实现mdi多窗体 主要代码: 屏蔽最大最小化 和 窗体icon 处理 菜单项的ItemAdded

2014-10-23

AsyncListImage

android 网络下载图片 缓存网络图片

2012-12-18

android网络访问框架NiceDayFramework

android网络访问框架 httpclient 访问网络

2012-12-18

Android美工坊--一个QQ登录验证的小例子

客户端: 1、登录时检查网络状态 2、登录加载进度条 3、登录服务器端进行验证,如果用户名和密码存在且正确,则登录,否则失败 4、注册时将用户信息保存到服务器端数据库中(MySQL) 5、记住密码功能(还不完善,只是测试) 6、对密码信息进行md5()单向加密 服务器端: 1、接收客户端发来的登录请求,如果用户名和密码存在于MySQL数据库中则返回客户端一个响应信息"success" 2、接收客户端发来的注册请求,将用户名和密码存放到MySQL数据库中

2012-12-11

TabHost中每个tab中放入多个Activity

有时需要每个tab中有多个页面,也就是说需要 在一个tab中跳转不同的Activity。 当时,我只是简单的在一个Activity中使用了动态布局 (设置layout是否显示) 虽然效果还不错,但实际上依然是同一个Activity,这样的缺点是代码结构会相对复杂,不易维护 今天在网上看到了一篇文章,原文是http://united-coders.com网站的http://united-coders.com/nico-heid/use-android-activitygroup-within-tabhost-to-show-different-activity 特意留下来 供大家和自己以后使用:

2012-12-03

.NET企业服务框架++应用.NET企业服务开发分布式业务解决方案

.NET企业服务框架++应用.NET企业服务开发分布式业务解决方案 pdf电子书

2011-12-02

空空如也

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

TA关注的人

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