自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(332)
  • 资源 (25)
  • 收藏
  • 关注

原创 为ABP新增手机验证模块之二

在上一篇文章,实现了登录的验证,但没有实现实现在新增或编辑用户时将手机作为必填项,本文将完成这最后一步。

2023-01-14 22:11:49 853 2

原创 为ABP新增手机验证模块

当前手机验证基本是标配,但Abp自身并没有实现这个功能,于是有了通过自定义模块实现的想法。

2023-01-11 22:36:56 887

原创 升级到Abp 7.0后脚本问题的临时解决方案

升级到7.0后,因为本地化和授权策略的一些调整,造成返回的配置脚本存在问题,本文中为解决该问题提供了一个临时方案。

2023-01-08 14:53:25 605

原创 我实现的一些Abp模块

我实现的一些Abp模块。

2023-01-04 17:01:41 613

原创 快速模板的演示网站初步搭建好了

这里写自定义目录标题为什么主要功能演示地址为什么快速模板的想法由来已久,也一直在变化,但就是没时间去完善和更新,这次总算是有时间来实现了,而且Sencha官方也正打算我让做一个示例,也是就行动起来了。主要功能有太多的想法,但这需要时间来实现,目前主要简单实现了以下几个功能:Json格式的本地化;改进Ext.ajax;OAuth2认证与登录;枚举的使用;路由的使用;Crud集成;以后会慢慢添加更多的功能,敬请期待。演示地址https://www.extjs.tech...

2022-04-29 16:21:49 638 4

原创 Abp.io(vNext)开发日志:单页面应用与外部/社交登录

@TOCAbp.io(vNext)开发日志:单页面应用与外部/社交登录如果不使用外部/社交登录,实现很简单,使用Identity Server 4的令牌端点(Toekn EndPoint)实现密码登录获取到令牌就行了。如果要使用外部/社交登录,因为没有用户名和密码,需要使用令牌端点(Toekn EndPoint)的授权码(authorization_code)来登录。因而,如何获取授权码是整个流程的关键。获取授权码的流程在Identity Server 4的端点中,提供了一个名未授权端点(Auth

2021-02-24 14:55:21 1160

原创 Abp.Io(vNext)开发体会

使用Abp.Io做开发已经有一段时间了,由于使用的是模块化开发模式,项目比较多,因而不能再像以前那样,把全部项目都放到一个解决方案里了。这时候,就需要使用BaGet搭建一个本地源来存储并引用模块,虽然可以使用PowerShell脚本来对模块进行打包并发布,但还是有点麻烦,主要的痛点是需要更新项目中引用模块的版本号,挺烦人的。经过一段时间摸索,发现只要发布一次,通过覆盖本地缓存包的方式,就可以很轻松的更新dll了。搭建BaGet要搭建BaGet作为本地源比较简单,在GitHub下载一个发布包,然后在Win

2020-10-01 11:06:32 2918

原创 abp.io(vNext)部署备忘

编译镜像编译使用的Dockerfile文件是vs自动创建的,存在以下几个问题:编译使用的aspnet包是3.1-buster-slim,sdk包是3.1-buster,编译后在centOS 8上跑不了,把两个包都换成3.1,也就是没有-buster-slim和-buster,就没有问题了。要在解决方案路径进行编译,不要在项目路径编译,不然会发生复制文件错误。编译的具体语句如下:docker build -t <MyTag> . -f <项目路径>\Dockerfile.

2020-08-25 10:52:50 1221 2

原创 《基于Modern工具包的本地化方式》的重构

在前文,本地化是通过一堆判断语句去切换本地化文本,而且还要记录原文本,比较麻烦,执行起来逻辑比较多,也不畅顺。更重要的是,之前已经实现的表单字段标签的自动化和列标题的自动化很难去实现了,又要加一堆判断逻辑,这样的代码,有很重的异味,必须做改进。要解决判断过多的问题,比较简单,根据对应的类重写相应的类就行了。余下就是要解决localized方法,这方法需要记录属性的原始值,然后做转换,再调用set方法输出,整个流程太麻烦了。现在的焦点就是哪个原始值,如果直接用另外一个属性如langText来记录按钮的原始值

2020-08-07 23:57:41 990

原创 《基于Modern工具包的本地化方式》的错误修正

在《基于Modern工具包的本地化方式》一文中实现的本地化方式忽略了在切换语言后,原始的文本值已经改变,要想再切换回去,由于找不到对应的本地化值,最终切换不了,因而,必须在第一次切换的时候记录下原始文本值,这样才能保证每次切换的时候都能找到对应值。在前文中还有一个bug是当本地化先于组件完成初始化时,就不会监听localizedready事件。本文还添加了语言切换按钮,用于切换语言。以下是修正后的代码:Localized.js:Ext.define('CommonShared.service.Lo

2020-08-02 10:18:46 367

原创 基于Modern工具包的本地化方式(下)

上文完虽已完成了组件的本地化,但Ext JS中还有验证类和插件类这些类需要实现本地化。通过研究发现这些类都有一个父类,这就好办了,和组件类一样,在父类中添加监听就可以实现全部子类的本地化了。下面是插件类的重写代码:Ext.define('CommonOverrides.shared.plugin.Abstract',{ override: 'Ext.plugin.Abstract', constructor: function(config) { const me =

2020-08-01 20:44:08 328

原创 基于Modern工具包的本地化方式(上)

新项目需要从服务器下载本地化资源,如果继续使用快速模板的本地化策略就很尴尬了,绝不可能等待本地化资源全部下载后再去加载项目,得另想办法。在研究过了《[Internationalization & Localization with Sencha Ext JS](https://www.sencha.com/blog/internationalization-localization-with-sencha-ext-js/)》一文后,终于有思路了。文章的思路是通过重写`Ext.Component`来

2020-08-01 20:29:17 408

原创 快速模板——Echart包

在Ext JS中虽然内置了图表包,但整体来说只能算可用。如果希望更好的效果,会引入别的图表包,如Ext JS自身引入了D3包,不过这是收费的。为了健全快速模板的功能,于是引入了EChart包来实现更好的图表功能。要将别的功能包引入到Ext JS,基本都是以扩展组件的方式来实现的,EChart包也不例外,这次唯一不同的地方是将这个功能做了包的形式,将包放到项目的packages文件夹或工作区的packages\local文件夹,然后在app.json中引用这个包就行了。目前的EChart包只定义了一个EC

2020-05-17 15:27:00 797

原创 Ext JS 7 Modern包序列化日期提交值

使用Ext JS 7 Modern包,在提交日期值的时候,会发现提交的是带时区的日期值,譬如,选择的是日期值是2019-12-17,那么在提交的时候会根据浏览器的时区(中国区为+8),提交值会修正为2019-12-16 16:00:00(减8个小时),如果在服务器端,不调整时区,直接转换为日期,就会出现错误。为了修正这个错误,需要在定义日期的时候,添加以下配置项,让表单对日期值进行序列化: ...

2019-12-17 10:55:48 588 5

翻译 【翻译】动态包加载

原文:《Dynamic Package Loading》Sencha Cmd一直以来都支持包的概念,大型应用程序可通过包来封装类、样式和资源,然后通过Sencha Cmd将这些包打包到应用程序中。现在,又有了权限的方式(动态)来使用这些包。如果现在已经使用了包,那会在应用程序的app.json文件中看到类似于以下的“requires”数组:requires: [ 'dashboa...

2019-11-01 13:21:44 616

原创 快速模版(社区版本7.0)——创建模版

随着Ext JS 7的发布, 快速模版也需要进行升级了。由于社区版只提供现代工具包,因而在新的快速模版,只能使用现代工具包来开发桌面应用程序。不过,不用太过于担心,因为现在的现代工具包已经很强大了,用来开发桌面应用程序是一点问题没有的。如果还执着于支持IE浏览器,那还是使用6.2版的快速模版比较合适。在目前Angluar、Vue和React快一统江湖的年代,再考虑兼容IE这样的事情,笔者觉得有点脱...

2019-10-27 15:45:10 1296 1

原创 Abp开发日志:MariaDB(MySql)

在Abp中将数据库由SQL Server切换为MariaDB是相当简单的,但又有一些需要特别注意的问题,如MariaDB的索引字段,字段长度是有限制的,需要修改Abp框架内已定义好的索引字段的长度。本文是笔者在使用MariaDB数据库中的一些经验总结,希望对大家有所帮助。修改数据库连接数据库连接的定义在appsettings.json文件中,需要修改的地方有两处,一个是Web.Host项目,一...

2019-10-06 18:10:49 899

翻译 【翻译】Ext JS 7早期访问版

Ext JS 7.0早期访问版已经发布了。该办法包含了许多增强功能和令人兴奋的新功能,而其中的重点是增强现代工具包。想了解更多与此版本有关的信息,请继续往下阅读。

2019-07-16 13:04:53 2483 6

翻译 【翻译】Ext JS升级顾问1.0发布

很高兴,Ext JS 升级顾问(Ext JS Upgrade Adviser )1.0终于发布了。升级顾问可以通过扫描Ext JS 4.x和5.x的应用程序后,指出这些源代码升级到Ext JS 6.x需要调整的地方。升级顾问主要包括以下功能:Ext JS...

2019-06-23 13:39:49 589

原创 Ext JS 6.7不能跨域上传文件的bug

因为要使用表单实现跨域上传文件,但是发现在6.7居然不行,需要自己手动去创建FormData对象来提交,这比较奇怪。经过分析源代码,终于找到了这个bug,主要代码如下: ... if (Ext.feature.has.XHR2 && request.xhr2) { delete request.form; ...

2019-04-11 04:45:57 1043 3

原创 解决Modern工具包中Ext.field.Date的提交值问题

使用Classic工具包的日期字段,在表单提交的时候,获取的是日期字段的提交值,也就是会在表单提交的时候会将值转换为与定义的格式相符的值。而在Modern工具包中,提交的值是原始值,也就是带有时区属性的日期值,如果在服务器端不进行时区转换,那么日期值就不是预想的值。要解决Modern工具包中的这个问题,如果不想重写任何基类,就只能在提交前或在服务器端对值进行处理,这无疑增加了代码量。最简单直接的...

2019-03-20 09:03:06 577

原创 VS Code升级到1.31.1后,Sencha ExtJS插件不工作的解决办法

原文地址请看:https://www.sencha.com/forum/showthread.php?471410-Bug-in-VS-Code-Plugin-since-VS-Code-Update-(-gt-1-31)&p=1324018#post1324018。在这里我就说说我的修复过程:打开C:\Users[当前机器的用户名].vscode\extensions\sencha...

2019-03-20 08:35:34 874

翻译 【翻译】Sencha Ext JS 6.7 的新增功能(节选)

Ext JS 6.7终于拼接上了Classic工具包的最后一环,如锁定表格、多选组件等,除了不支持IE和RTL外,Modern工具包的功能与Classic的功能已经没有区别了。不过,暂时没发现社区版已经更新到6.7。

2019-02-08 10:35:05 2258

原创 使用Ext JS社区版的快速模版:创建移动版应用程序

注册社区版社区版的注册地址如下:https://www.sencha.com/products/extjs/communityedition/?utm_source=snceb&amp;amp;utm_medium=email&amp;amp;utm_campaign=sncextjs-communtiy&amp;amp;utm_content=181106-pt-sncextjs-community注册社区版要注...

2019-02-05 21:43:30 1468

原创 使用Ext JS社区版的快速模版:包(packages)与工作区(workspace)

基本概念对于包,简单来说就是能用于多个应用程序的共享代码,如模型(model)、存储(Store)的定义,有关包的详细信息,可参阅文章《Sencha Cmd Packages》。工作区不是必需的,但使用它来管理应用程序、包和其他共享代码是个不错的选择。有关工作区的详细信息,可参阅文章《Workspaces in Sencha Cmd》。使用工作区一定要小心,在一个工作区内只能使用一个版本的E...

2019-02-05 19:48:04 1475

原创 使用Ext JS社区版的快速模版:概述

Ext JS社区版的主要优点就是在特定情况下,可以免费使用最新版的Ext JS来开发应用程序。还是老话说得好,天下没有免费的午餐,社区版虽然可以免费使用,但限制也不少,如只能使用NPM的方式进行开发,只能使用Modern工具包开发桌面应用程序等。Classic工具包和Modern工具包应该怎么选择在《What’s New in Ext JS 6.5 and Sencha Cmd 6.5 – Y...

2019-02-05 15:41:46 842

翻译 【翻译】Ext JS社区版

原文地址:https://www.sencha.com/products/extjs/communityedition/?utm_source=snceb&amp;amp;utm_medium=email&amp;amp;utm_campaign=sncextjs-communtiy&amp;amp;utm_content=181106-pt-sncextjs-communitySencha Ext JS社区版为开发人...

2018-11-07 15:07:52 2206 9

原创 一个Ext JS 6可用的下载类

HTML5为A标签添加了download属性,可用来指定链接的文件名,单击A标签后就可实现文件下载功能,该组件就是利用这个特性来实现的,具体代码如下:Ext.define('Admin.util.Download', { alternateClassName: 'DL', singleton: true, saveAs: function(url,filename, f...

2018-10-16 13:16:20 834

翻译 【翻译】更新Sencha路线图

原文地址:Sencha Roadmap Update概述在过去一年,我们一直在倾听开发人员的需求,并发现对Sencha感兴趣的大多数是企业的Web开发人员,而且焦点都集中在以下几个方面:支持最新JavaScript标准的全面的核心框架用于打造美观的企业应用所需的全新的美丽的组件和主题可打造优化过的、高性能和通用的应用程序的现代工具链可通过可视化构建应用程序、可通过可视化创建应用程序的...

2018-10-14 18:21:02 1080

原创 初试Ext JS 6.6的NPM版(二)

NPM版的Ext JS,在文件解构上与使用Cmd版的区别不大,最大的改变是样式文件(scss文件)不再要求放在sass文件夹,而是可以与视图文件放在一起,如下图所示。下面尝试把快速模版的东西迁移过来试试。先把app\desktop\src\view文件夹下的文件和文件夹删除。然后将快速模版中的app\view中的文件复制过来。把NavigationTree.js文件复制到app\deskt...

2018-08-03 14:44:17 3138 1

原创 初试Ext JS 6.6的NPM版(一)

从Ext JS 6.6开始,Ext JS也支持使用nmp来进行辅助开发了。为什么要选择nmp来辅助开发呢?之前使用Sencha Cmd也挺好的。Cmd确实也不错,但唯一的缺点就是不能确定最新版的Cmd是否适合适合你现在项目的版本,笔者一直在用Ext JS 6.2的GPL版本,也一直没去升级Cmd的版本,就是为了避免出问题。使用nmp可以减少这样的麻烦,而且使用npm来进行辅助开发是目前的发展潮流,...

2018-08-01 17:23:30 4315

原创 快速模版的本地化改进

在快速模版中,使用了一个本地化类来实现本地化,但效果不算太好,因为生成操作需要切换不同的本地化包再进行打包。造成这个问题的主要原因是Ext JS自身需要通过重写来实现本地化。研究了一下kitchensink示例(Ext JS 包的examples\kitchensink文件夹)实现本地化的方式,感觉比较恐怖,应用程序的每一个需要使用本地化信息的类都要使用重写方式写一个本地化重写类,太麻烦了。最...

2018-06-29 16:48:06 2034

翻译 【翻译】Ext JS 6.6.0的新东西

原文:《What’s New in Ext JS 6.6.0》简介Sencha Ext JS 6.6已经支持NPM包和开放工具。Ext JS 6.6现在可以通过NPM包让开发人员使用已经相当熟悉的异常简单的工作流。现在,Ext JS开发人员可以是强大的开放式工具来快速生成、构建和更新Ext JS应用程序。Ext JS 6.6还带来了一些主要的增强,如新的现代工具包组件、新的美丽的可访问主题...

2018-06-21 17:23:05 4748

原创 《Ext JS 6.2实战》一书上传按钮的问题

近日,有热心读者发邮件给我说上传按钮有bug,第一次打开上传按钮时,可以打开文件选择对话框,当打开第二个视图时,就不能打开文件选择对话框了。经研究,发现是创建plupload.Uploader对象时,都使用了第一次创建的按钮的id造成的,经过修改代码,已经把bug修复了。首先修改Upload.js,将以下代码删除:Ext.applyIf(me.config.uploader, { ...

2018-05-24 18:17:38 2526

翻译 【翻译】Sencha现状 ———采访Atanas Popov

原文:State of Sencha — Interview with Atanas Popov作者:Ivan Jouikov,Crypto, decentralization, and Web 3.0 enthusiast. Web 2.0 Software Architect with 15 years of professional experience.我与Ext JS、Sench...

2018-04-28 10:40:44 2109 1

原创 在github发布了一个快速开发模版

在写《Ext JS 6.2 实战》的过程中,就有个想法,能不能实现一个比较快速的开发模版,让编写Ext JS更便捷。经过一段时间的研究和尝试,终于找到了比较好的方式,现在就把它分享给大家,希望对大家有所帮助。具体的访问地址是:https://github.com/tianxiaode/qTemplate-ExtJS。在模版中带了一个ABP的示例,暂时没有其他的语言的示例。如果不是使用Web...

2018-04-18 17:59:01 3411 4

翻译 在Ext JS Grid的Action列的列标题中放置按钮

原文:《A button in the header of an Ext JS grid action column》在本文,将演示如何在Grid的Action列的列标题中放置按钮。缘起为了显示和维护大量的数据,开发人员通常会使用Grid来显示数据,并绑定一个表单来添加或编辑记录。要实现这个,有几种做法,例如,在Grid的顶部放置一个工具条: 在这里将演示一个完全集成的U...

2018-03-25 14:38:08 3099

翻译 一个Ext JS开发人员的一天:问与答

原文:Day in the Life of an Ext JS Developer: Your Questions Answered在最近的《一个Ext JS开发人员的一天》的网络研讨会上,我们回答了一些技术问题,如Ext JS如何快速入门、技巧和最佳实践。在问与答环节异常活跃,因此,我们决定在这里分享一下这些讨论。我们将在3月22日星期四的PDT时间上午10点继续相同的网络研讨会,如果有兴趣...

2018-03-22 16:21:41 3050

原创 Ext JS 6:表单字段自动从本地化类获取标签文本

在《Ext JS 6.2实战》一书中,定义了用于实现应用程序本地化的I18N类,而在定义表单字段时,是直接使用I18N来引用表单字段的标签文本的,当表单字段比较多,项目的表单也比较多的时候,老是这样引用,也挺麻烦的,因而,最好的方式是让字段自己根据name配置项定义的名称去I18N取标签文本。本文要做的就是要实现这个。要实现自动获取标签文本,需要解决的问题主要是以下两个: - 怎么修改才能...

2018-03-11 14:50:06 2114

翻译 Ext JS从零开始之二

原文地址:https://www.sencha.com/blog/ext-js-from-scratch-part-2/欢迎来到Ext从零开始博客系列之二。在第一篇博客中,已经从零开始创建了一个应用程序看起来像什么且希望它做什么的的可工作的应用程序,现在,从HTML和CSS角度来审视一下它是如何构建的。应用程序的源代码可以在这里找到:https://github.com/mgusmano/

2018-01-24 15:51:16 3463

vsftpd 3.0.3

vsftpd 3.0.3

2016-07-19

ASP.NET使用的验证码类

ASP.NET使用的验证码类,或许证书你需要的。

2013-09-11

一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之用户管理(4) 源代码

一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之用户管理(4) 源代码

2012-09-28

一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之用户管理(3) 源代码

一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之用户管理(3) 源代码

2012-09-27

一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之用户管理(2) 源代码

一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之用户管理(2) 源代码

2012-09-26

一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建Viewport(2)

一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建Viewport(2)源代码

2012-09-23

一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建Viewport(1)

一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建Viewport(1)

2012-09-16

一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之调整首页显示

一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之调整首页显示

2012-09-15

一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之登录窗口调试代码

一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之登录窗口调试代码

2012-09-09

一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建项目

《一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建项目》的项目文件

2012-08-18

一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之数据库文件

一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之数据库文件

2012-08-18

Asp.net MVC 3实例学习之ExtShop系列最终源代码

Asp.net MVC 3实例学习之ExtShop最终源代码

2011-01-23

Asp.net MVC 3实例学习之ExtShop(四)的源代码

Asp.net MVC 3实例学习之ExtShop(四)的源代码

2011-01-21

《Ext JS 高级程序设计》的数据库文件

《Ext JS 高级程序设计》的数据库文件

2009-12-28

《Ext JS 高级程序设计》的目录与样张

《Ext JS 高级程序设计》的目录与样张

2009-11-18

Ext.ux.submit的例子

基于Ext Core的包含校验功能的表单提交扩展Ext.ux.submit

2009-09-04

《Ext详解与实践》一书缺少的代码:源码6-4-1到6-4-10

《Ext详解与实践》一书缺少的代码:源码6-4-1到6-4-10

2009-07-27

cargo_bridge.zip

Build a bridge using your mouse and available budget. When it is done click "Test your bridge". Your workers will use it to get items located at the other side of valley, and bring them back to the shop. Your goal is to collect all items in level.

2009-06-26

使用Dynamic LINQ实现Ext Grid的远程排序

要实现Ext Grid的远程排序其实很简单,只要修改查询语句的排序关键字就可以了,但是,如果你的项目是使用Linq进行开发的,会发现动态修改排序关键字并不是那么容易的事,解决办法就是使用LINQ Dynamic Query Library。LINQ Dynamic Query Library是一个很实用很强大的库函数,通过该库,可以轻松实现一些需要通过动态参数实现的Linq查询。 本文将通过一个实例演示如何使用LINQ Dynamic Query Library实现Ext Grid的远程排序。

2009-04-15

用Ext 2.0 combobox 做的省份和城市联动选择框的例程

用Ext 2.0 combobox 做的省份和城市联动选择框的例程

2007-10-23

一个Ext2+SWFUpload做的图片上传对话框的例程

我blog文章《一个Ext2+SWFUpload做的图片上传对话框》的例程。没包含Ext库,请自己根据情况修改simple.html文件。

2007-10-13

Ext2.0本地模式动态修改combobox选择项

这次只单独打包了本例子的html文件,大家注意一下js和css的路径就可以了

2007-10-07

Ext2.0 form使用实例的例程

Ext2.0 form使用实例的例程。这个包也包含了Ext 2.0布局实例的例程。

2007-10-02

Ext 2.0布局实例的例程

Ext 2.0布局实例的例程

2007-09-26

Ext布局类的介绍与使用的例程

Ext布局类的介绍与使用的例程

2007-09-03

空空如也

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

TA关注的人

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