自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

云游云记

云游云记

  • 博客(55)
  • 收藏
  • 关注

原创 FastAdmin 框架实战:商品多规格管理功能完整开发方案

本文基于 FastAdmin 框架实现的商品多规格管理功能,覆盖了电商系统商品规格管理的全业务场景,完美支持单规格 / 多规格自由切换,从前端动态交互到后端数据持久化,形成了完整的解决方案。代码遵循 FastAdmin 开发规范,结构清晰、易于二次开发,可直接集成到各类电商、分销、零售类 FastAdmin 项目中,大幅降低多规格商品管理的开发成本。

2026-04-09 17:22:28 410

原创 FastAdmin 路由完全开启教程:去掉 index 前缀 + 优雅路由配置

本文详细介绍了如何优化FastAdmin框架的URL路由配置。首先需修改Common.php行为扩展,移除index前缀的路由限制;然后在config.php中开启路由功能。文章提供了静态路由、动态路由等实用配置示例,强调路由规则的优先级顺序(动态路由需放在静态路由前)。通过优化后,原本带有index前缀的URL(如/index/news)可简化为/news,提升美观度和SEO效果。最后提醒注意常见问题排查,如路由顺序错误、缓存问题等。只需两个核心步骤即可实现简洁优雅的项目URL结构。

2026-04-09 17:22:16 554

原创 网站一键分享功能实现:微信扫码 + 微博快捷分享教程

本文提供了一套纯前端实现的网页分享功能解决方案,包含微信扫码分享弹窗和微博快捷分享两大核心功能。微信分享通过二维码弹窗实现,用户扫码即可分享至微信;微博分享则直接跳转官方接口自动填充内容。代码简洁高效,无需后端支持,仅需引入CDN库即可使用,适配各种网页项目。文章详细展示了HTML结构、JS交互逻辑及自定义配置方法,特别适合新手快速集成社交分享功能,提升网站内容传播效率。

2026-04-03 14:26:59 528

原创 ThinkCMF6 菜单名称修改:两种方法轻松搞定

ThinkCMF6后台菜单名称修改方法详解:1. 系统优先读取语言包配置的菜单名称,无配置则显示菜单管理中的默认名称;2. 可视化修改适用于未配置语言包的菜单,通过后台菜单管理直接编辑;3. 代码配置需修改admin/lang目录下的语言包文件,适用于多语言系统;4. 修改后必须清除缓存才能生效;5. 根据菜单"语言标识"判断应使用哪种修改方式。两种方法分别满足快速修改和规范开发需求,解决菜单名称修改不生效问题。

2026-04-03 14:24:56 339

原创 HTML a 标签跳转方式,一篇搞定所有页面跳转

本文全面介绍了HTML中a标签的多种实用功能:基础页面跳转、target属性控制打开方式、锚点定位、特殊协议跳转(电话/邮箱/短信)、文件下载以及纯点击事件处理。重点讲解了_blank新窗口打开、download文件下载、mailto/tel等移动端常用功能,并提供了代码示例。文章指出a标签不仅能实现简单跳转,还能完成90%的前端跳转需求,是开发必备技能。通过系统梳理,帮助开发者掌握a标签的核心用法,提升开发效率。

2026-03-10 08:48:16 743

原创 宝塔WAF过期致网站无法访问?教你快速解决

摘要:网站运维中常采用"阿里云WAF+宝塔WAF"双重防护方案,但近期出现因宝塔WAF过期未续费导致阿里云WAFIP被封、网站无法访问的问题。故障原因是宝塔WAF过期后白名单失效,将阿里云WAFIP误判为异常。解决方案包括:1)临时将阿里云WAFIP加入系统防火墙白名单;2)彻底续费宝塔WAF并重新配置白名单。建议运维人员定期检查防火墙有效期、备份关键配置,确保双重防护配置同步,避免类似故障发生。(149字)

2026-03-10 08:47:58 360

原创 前端表单提交:拦截与自定义处理全攻略

本文详细介绍了如何通过JavaScript拦截并自定义处理表单提交。首先分析了表单默认提交的局限性,提出了拦截需求场景,包括参数预处理、异步提交等。然后给出了4步实现方案:获取表单DOM、监听submit事件、阻止默认行为、自定义处理参数。文中提供了两种参数收集方式和两种提交方式的完整代码实现,并对比了它们的优缺点。最后总结了关键知识点和注意事项,强调要优先使用AJAX异步提交来提升用户体验。通过本文方法,开发者可以灵活控制表单提交流程,满足各类业务需求。

2026-03-06 14:52:15 268

原创 重磅更新|OpenSwoole 26.2.0 正式发布:全面支持 PHP 8.5,io_uring 与协程调试迎来重大升级

OpenSwoole 26.2.0 重大更新带来多项核心升级:全面支持PHP8.5新特性,采用原生Fiber协程上下文提升调试体验,新增io_uring高性能反应器降低延迟,支持协程内Xdebug断点调试。版本还优化了HTTP解析器、事件循环监控等关键功能,修复多项错误,要求最低PHP8.3环境。此次更新显著提升了异步开发性能、稳定性和调试便利性,是PHP高性能开发的重要里程碑。

2026-03-04 09:00:00 643

原创 在 UniApp 中使用 uni-data-picker 实现省市区地址选择

借助官方扩展组件 uni-data-picker,可以高效实现省市区三级联动选择,无需重复造轮子,大幅提升开发效率。通过以上步骤,你可以快速在 UniApp 项目中实现标准化、高可用的省市区地址选择功能,避免重复开发三级联动逻辑,显著提升开发效率。后端需提供省市区树形结构数据接口,将数据库中的省市区数据组装成树形结构,并通过 Redis 缓存提升接口响应速度。页面结构包含地址输入框区域和 uni-data-picker 选择器区域,通过 v-if 控制选择器的显示与隐藏。

2026-02-28 16:29:12 912

原创 FastAdmin Layer 弹窗大小设置全攻略

本文详细介绍了FastAdmin中Layer弹窗大小的设置方法。核心通过area参数控制,支持像素和百分比两种单位。重点讲解了三种场景下的配置方式:原生弹窗直接设置area参数、按钮绑定通过data-area属性或点击事件设置、表格操作列按钮通过extend属性配置。文章还提供了自适应高度优化和响应式弹窗等高级技巧,并解答了常见问题。合理设置弹窗大小能显著提升后台操作体验,开发者可根据实际需求灵活选择固定尺寸或自适应布局方案。

2026-02-28 11:19:11 313

原创 ThinkPHP 嵌套集合模型(Nested Set Model)适配用户邀请关系

嵌套集合模型通过左右值(lft/rgt)标记节点位置,实现高效的树形结构查询。该模型将树结构转化为二维表,支持快速获取子节点、路径和层级关系。核心优势是查询效率高(单条SQL完成),但写操作较复杂(需批量更新相关节点的lft/rgt值)。适用于读多写少的场景如商品分类、网站导航等,不适用于频繁修改的评论树等场景。文中详细介绍了节点操作方法,包括添加/删除节点、修改父节点等,并提供了多种查询示例,如获取邀请链路、下级树形结构等统计功能。

2026-02-24 15:03:55 667

原创 在FastAdmin ThinkPHP5环境下 关联查询 软删除未生效

摘要:在使用ThinkPHP的软删除功能时,发现主表(fa_user)的软删除条件在关联查询(withparent)时未自动生效,导致已删除用户仍被查询。问题原因是关联查询仅对关联表自动添加软删除条件。解决方案是手动添加主表软删除条件:whereNull('user.deletetime')。建议在涉及关联查询时检查生成的SQL,确保主表和关联表的软删除条件都完整,避免数据异常。该问题未在官方文档明确说明,需要开发者特别注意。

2026-02-24 14:58:47 276

原创 vue2 vue3 uniapp (微信小程序) v-model双向绑定

本文摘要:文章系统解析了Vue框架中v-model双向绑定的实现原理与版本差异。Vue2通过value/input实现,Vue3采用modelValue/update:modelValue机制并支持多参数绑定,uni-app兼容Vue语法但需注意小程序原生事件参数格式。详细对比了基础绑定、多值绑定和自定义绑定的实现方式,重点指出:Vue3原生支持多v-model语法,复杂数据应创建新对象避免直接修改props。最佳实践建议优先使用框架原生语法,uni-app需区分组件类型处理事件参数,保持单向数据流规范。

2026-02-13 22:59:19 1065

原创 php crm客户属性字段变更记录:业务合规与数据可信的核心保障

CRM系统变更记录机制是企业客户管理的核心要素。该机制通过完整记录客户信息变更(如等级、联系方式、归属销售等),实现责任追溯、数据可信和合规风控三大价值。标准变更记录应包含客户ID、字段名、新旧值、操作人及时间等要素,未实施该机制将导致数据混乱、扯皮纠纷和合规风险。技术实现上采用双表结构(操作记录表+属性变更表),通过字段比较方法自动捕捉变更内容,并支持批量操作追踪。该机制既保障业务决策的数据可靠性,又满足审计监管要求,是客户全生命周期管理的重要基础。

2026-02-13 17:15:39 842

原创 php CRM客户分配方案整理

本文介绍了三种客户分配方式:1)依次分配(轮询),确保均匀分配;2)随机均衡分配(先随机打乱再轮询),兼具随机性和均衡性;3)完全随机分配,不保证均衡性。文章提供了PHP实现代码示例,并建议根据业务场景选择合适方案:需均衡时采用轮询或随机均衡,强调随机性时选择完全随机分配。还给出了综合分配函数,通过类型参数灵活切换不同分配模式。

2026-02-13 16:46:53 391

原创 php 随机红包数生成

本文介绍了随机红包分配的核心约束条件,包括总金额固定、非空金额、随机分配且总和严格匹配。提供了一个PHP实现函数,将金额转换为分计算以避免精度问题,通过参数校验确保分配合法性。算法采用动态调整方式,在每次分配时计算当前可分配的最大金额,确保剩余红包能满足最小值要求,最后打乱数组模拟随机顺序。该实现保证了红包分配的公平性和随机性,同时严格遵循所有约束条件。

2026-02-11 15:22:00 310

原创 js、vue2、vue3、uniapp环境下实现复制内容到剪贴板的方式

摘要:本文总结了多种环境下的剪贴板复制实现方案。原生JavaScript采用Clipboard API(需HTTPS)和execCommand降级方案;Vue2/Vue3封装原生逻辑并整合UI提示;UniApp使用跨端API uni.setClipboardData;微信小程序调用原生wx.setClipboardData。各方案对比显示:UniApp最适合多端应用,纯Web端推荐Vue3/原生JS,微信环境优先使用小程序原生API。关键注意事项包括:Clipboard API的安全限制、必须用户主动触发、

2026-02-11 14:56:31 1212

原创 uniapp 中 page 标签样式设置scoped在微信小程序不生效的原因与解决方案

摘要:uniapp项目中,scoped样式在微信小程序的page标签上失效,原因在于scoped的隔离机制与小程序根节点结构冲突。推荐解决方案:1)单独为page编写无scoped的样式;2)必须保留scoped时使用/deep/穿透;3)关键需加min-height:100vh确保全屏显示。全局样式可统一在App.vue中设置(不加scoped)。此问题源于小程序原生限制,通过合理区分scoped使用范围即可解决,既保证page样式生效,又不影响组件样式隔离效果。(150字)

2026-02-11 14:53:07 395

原创 php 高精度数学扩展 bcmath 知识笔记

PHP的bcmath扩展提供高精度数学运算功能,通过字符串存储数值避免浮点数精度丢失。主要函数包括bcadd、bcsub等,支持自定义小数位数和多种舍入模式。适用于金融等需要精确计算的场景,但运算速度较慢且仅支持十进制。相比gmp扩展更擅长处理小数,而普通浮点数运算则适用于对精度要求不高的场景。使用时建议保持字符串格式,注意PHP版本对高级功能的支持。bcmath是解决PHP精度问题的有效方案,但需根据实际需求权衡性能与精度。

2026-02-02 11:14:48 1078 1

原创 PHP 汉字转拼音扩展包:overtrue/pinyin 全面指南

overtrue/pinyin是PHP汉字转拼音扩展包,支持普通、声调、多音字三种模式,可配置分隔符大小写等。安装简便,适合URL优化、拼音检索等场景,但不支持上下文多音字判断和生僻字转换。

2026-02-02 11:10:09 998

原创 基于 FastAdmin+ThinkPHP 的二维码防伪系统

摘要:本文介绍了一款基于FastAdmin+ThinkPHP开发的二维码防伪系统,支持"一物一码"唯一标识、真伪查询、防串货和产品溯源等功能。系统提供完整源码,可私有化部署,要求nginx+PHP7.2+MySQL5.7环境。详细部署流程包括:1)宝塔环境安装;2)PHP扩展配置;3)网站部署与数据库设置;4)Redis和进程守护配置;5)后台管理界面展示。系统支持任务队列异步处理大数据操作,并可根据需求定制前端界面。

2026-01-30 17:14:53 921

原创 php JWT 使用全攻略(firebase/php-jwt 实践笔记)

本文介绍了使用firebase/php-jwt库实现JWT认证的方法。主要内容包括:1)通过Composer安装库文件;2)核心类JWT的encode()和decode()方法使用说明;3)对称加密(HS256)和非对称加密(RS256)两种实现方案;4)参数配置要点及安全性注意事项。文章提供了完整的代码示例,并强调必须设置过期时间、妥善保管密钥、捕获验证异常等安全实践。适用于单体应用和分布式系统的身份认证场景。

2026-01-30 11:01:39 870

原创 ThinkPHP 队列扩展 (topthink/think-queue) 使用笔记

ThinkPHP队列扩展使用指南 think-queue是ThinkPHP官方队列扩展,支持Redis、Database等多种驱动,用于异步执行短信发送、邮件推送等耗时任务。核心配置位于config/queue.php,包含驱动类型、连接参数等设置。使用流程包括:1)创建任务类并实现fire方法;2)通过Queue::push投递任务;3)命令行启动消费者进程执行任务。扩展支持延迟执行、任务重试、失败存储等功能,生产环境建议使用Redis驱动配合Supervisor守护进程。通过队列机制可有效提升系统并发处

2026-01-30 10:56:14 879

原创 php Composer 使用全攻略

Composer是PHP生态的核心依赖管理工具,具备安装、更新、卸载依赖的能力,并自动处理版本兼容问题。主要命令包括init初始化项目、install安装依赖、require添加依赖、update更新依赖等,支持通过--no-dev参数区分生产/开发环境依赖。国内用户可配置阿里云镜像加速下载,生产环境推荐使用install --no-dev -o命令。核心文件包括composer.json(依赖配置)、composer.lock(版本锁定)和vendor/目录(依赖存储)。常见问题涉及网络超时、环境要求冲突

2026-01-29 10:10:23 883

原创 php cURL 常用参数详解与实用指南

本文详细介绍了PHP中cURL扩展的核心参数配置,涵盖HTTP/HTTPS请求的关键设置。主要内容包括:基础参数(URL、返回方式、超时)、请求方法(GET/POST/PUT等)、请求头设置、HTTPS安全配置(证书验证)、响应处理及调试技巧。文章提供了POST+JSON请求的完整示例代码,并强调生产环境必须保持HTTPS证书验证。最后总结了参数分类记忆方法,建议优先掌握基础参数、HTTPS设置和请求体/头配置,为开发者提供了全面的cURL使用指南。

2026-01-29 10:04:20 605

原创 php Token 主流实现方案详解

本文介绍了PHP中4种主流Token实现方案:1. Session Token(基于PHP原生Session机制)2. JWT Token(无状态JSON Web Token)3. Redis Token(利用Redis存储验证)4. 数据库Token(MySQL存储方案)。各方案在存储位置、状态特性、分布式支持、性能等方面各有优劣,适用于不同场景。小型项目推荐Session Token,前后端分离推荐JWT,分布式系统推荐Redis Token,需要审计则考虑数据库方案。安全建议包括HTTPS传输、密钥管

2026-01-28 17:46:06 4199

原创 php 网络请求工具全解:cURL 与 Guzzle 总结

PHP网络请求工具对比:cURL与Guzzle 本文对比了PHP中两种主要的网络请求工具。cURL是PHP内置扩展,支持多种协议但代码冗余,需要手动处理错误和格式化数据。Guzzle是基于cURL封装的现代化HTTP客户端,提供简洁API、自动数据格式化、完善的异常处理和异步请求支持。选型建议:简单场景或无Composer环境使用cURL,生产环境或复杂请求优先选择Guzzle,框架开发推荐集成Guzzle。Guzzle凭借其易用性和强大功能成为现代PHP开发的首选HTTP客户端。

2026-01-28 17:42:47 565

原创 php自动加载

PHP自动加载的核心机制是通过回调函数自动加载未定义的类文件,避免手动引入的繁琐。现代PHP主要使用spl_autoload_register()注册多个加载规则,形成加载栈。行业标准PSR-4规范将命名空间映射到目录结构,Composer工具内置了该规范的实现。建议项目中优先使用Composer管理自动加载,注意路径兼容和性能优化。自动加载机制显著提升了PHP开发的便利性,是现代PHP项目的基础设施。

2026-01-27 11:14:22 597

原创 nesbot/carbon 常用功能总结

Carbon是PHP DateTime的增强库,提供更简洁的日期时间操作方式。支持多种实例化方法(now()、today()、parse()等),便捷的格式化输出(toDateString()、diffForHumans()等),以及日期计算(addDay()、subMonth()等)。包含时区处理、本地化支持、节假日判断等扩展功能,覆盖90%以上的日期处理场景,显著提升开发效率。通过Composer安装即可快速使用。

2026-01-27 11:11:15 119

原创 php性能优化总结

PHP性能优化策略摘要:从代码、运行环境、缓存、数据库等多维度提升系统性能。代码层优化包括减少冗余运算、高效内存管理;运行环境建议升级PHP8+并启用OPcache;缓存方案推荐Redis/APCu;数据库优化着重索引设计和查询优化。高并发场景可采用异步处理、负载均衡等架构方案。优化前需通过Xdebug等工具定位瓶颈,遵循"减少计算、降低IO、合理缓存"原则,按实际监控数据针对性调整。

2026-01-26 12:58:42 926

原创 php设计模式总结

本文系统梳理了PHP开发中常用的设计模式,将其分为创建型、结构型和行为型三大类。创建型模式(如单例、工厂、建造者)专注于对象创建优化;结构型模式(如适配器、装饰器、代理)处理类与对象组合关系;行为型模式(如观察者、策略、迭代器)规范对象间交互方式。文章详细分析了各模式的核心思想、优缺点及适用场景,并补充了PHP特有的设计模式应用。最后强调设计模式的选择应基于实际业务需求,避免过度设计,以提升代码复用性、扩展性和可维护性为目标。

2026-01-26 11:17:28 623

原创 php常用compser依赖整理

本文介绍了ThinkPHP开发中常用的扩展工具包,涵盖数据处理、支付、存储、安全验证等多个方面。主要包括:官方增强工具包(topthink系列)、UUID/日期处理、图片/二维码生成、Redis/队列扩展、支付SDK、云存储适配、加密验证、模板引擎、邮件短信、日志管理、文档处理、Elasticsearch客户端等实用组件。这些扩展能有效提升开发效率,如phpoffice处理Office文档、guzzle作为HTTP客户端、overtrue系列处理微信/短信等功能。同时还包含测试分析工具(phpunit/ph

2026-01-24 11:42:44 551

原创 php获取IP地址归属

本文介绍了查询IP地址及其归属地的多种方法。查询IP地址可通过访问特定网址(如https://3.0.3.0/ip)或搜索引擎搜索"本地IP"。获取IP归属地则主要通过调用第三方API接口,包括ThinkAPI、百度API商城、阿里云/腾讯云市场、高德地图API和聚合数据等平台,这些服务大多需要购买或申请密钥,部分提供试用功能。各API在调用方式、费用及功能上有所不同,开发者可根据需求选择适合的接口服务。

2026-01-24 11:41:46 360

原创 php 防伪溯源项目:防伪码生成与批量写入实践

本文介绍了16位纯数字防伪码的生成与批量写入方案。针对防伪码的全局唯一性要求,提出了多种实现方法:1)使用ThinkPHP助手函数或自定义函数生成随机数字;2)通过"预生成+查重+批量插入"方案确保唯一性;3)利用MySQL唯一索引作为最终兜底。文章详细比较了基于MySQL查重和Redis Set去重两种方案,推荐使用Redis提高性能。最后给出了批量写入的insertAll()规范,强调字符串存储方式以避免溢出问题,为防伪溯源系统提供了高效可靠的实现方案。

2026-01-22 09:01:33 780

原创 php 防伪溯源项目:二维码生成和打包导出

本文介绍了二维码的核心功能及两种生成方法。二维码作为信息载体,具有防伪核验、溯源传递和数据留存三大核心功能,能有效保障商品真伪、供应链透明和企业管控。文章详细阐述了使用QRcode库和endroid/qr-code库生成二维码的具体代码实现,包括直接显示和保存二维码两种方式。此外,还介绍了通过ZipArchive批量导出二维码图片的技术方案,包括服务器环境配置和具体打包流程代码。这些方法为二维码的应用提供了完整的技术实现路径。

2026-01-21 09:48:57 225

原创 PHP 时间处理工具全解析

Carbon 是最流行的 PHP 时间处理库,基于 DateTimeImmutable,提供优雅 API、全面功能、强大本地化,适合绝大多数项目。DateTime 是 PHP 5.2+ 的核心可变时间日期类,支持时间的创建、修改、格式化等基础操作,是原生时间处理的核心。强类型时间处理库,完全独立于 PHP 原生类,强调类型安全和不可变性,适合大型、严谨项目。专注于时间段的处理,支持交集、合并、分割等复杂运算,适合预约、账单、考勤等场景。基于 Carbon 的扩展,强化多语言本地化,适合国际化、多语言项目。

2026-01-21 09:37:38 969

原创 禁止谷歌浏览器强制跳转到https

本文介绍了如何解决HTTPS强制跳转问题。当网站配置SSL后,浏览器会记住HTTPS访问记录并自动跳转。解决方法包括:1.在Chrome地址栏输入chrome://net-internals/#hsts,删除指定域名的安全策略;2.清除浏览器缓存数据,若无效可扩大清除时间范围。这两种方法能有效解除HTTPS的自动跳转,恢复HTTP访问。操作简单,适用于需要临时关闭HTTPS跳转的情况。

2026-01-18 12:54:08 779

原创 php后台框架整理

本文推荐了13款优秀的PHP后台开发框架,包括FastAdmin、ThinkCMF、HiPHP、OneBase等。这些框架基于ThinkPHP、Laravel等主流PHP框架开发,集成了权限管理、模块化开发、代码生成等常用功能,可大幅提升后台系统开发效率。大多数框架都采用开源协议(如Apache2.0),支持商业使用,并提供完善的文档和社区支持。这些框架各有特色,如FastAdmin的快速开发、ThinkCMF的灵活扩展、MineAdmin的Swoole高性能等,开发者可根据项目需求选择合适的框架进行企业级

2026-01-18 12:46:16 866

原创 PHP 单例模式深度解析与实战应用

本文深入探讨PHP中的单例模式,包括其核心概念、实现方式及实际应用。单例模式通过私有构造方法、克隆方法和静态实例确保类只有一个实例,适用于数据库连接、配置管理和日志系统等资源密集型场景。文章分析了标准实现方式,并针对多线程环境、反序列化等问题提供解决方案。同时指出单例模式在测试、扩展性和全局状态方面的问题,建议仅在真正需要全局唯一实例时使用。合理运用单例模式可提升性能,但需权衡利弊避免过度使用。

2026-01-17 20:37:34 606

原创 微信相关服务入口集合

本文整理了微信开发相关的官方工具和文档链接,包括JS接口签名校验工具、微信支付助手、代码审核咨询入口等开发资源。主要涉及微信公众号、小程序和微信支付等功能,涵盖开发调试、支付对接、网页跳转等场景,为开发者提供官方支持渠道和文档参考。这些链接均为微信官方提供的开发工具和帮助文档,适合微信生态开发者使用。

2026-01-17 20:33:55 111

基于 thinkphp,mysql 嵌套集(Nested Set)模型 处理无限级分类的trait

基于 thinkphp,mysql 嵌套集(Nested Set)模型 处理无限级分类的trait

2026-02-18

空空如也

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

TA关注的人

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