string(7723) "{"docs":[{"id":"158579","text":"\u3010Python\u3011Tkinter\u56fe\u5f62\u754c\u9762\u8bbe\u8ba1\uff08GUI\uff09","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"HGNET","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183196","_id":"158579"},{"id":"158620","text":"python\u4e4bgui-tkinter\u53ef\u89c6\u5316\u7f16\u8f91\u754c\u9762 \u81ea\u52a8\u751f\u6210\u4ee3\u7801","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"darkspr","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183190","_id":"158620"},{"id":"158603","text":"python3.6 +tkinter GUI\u7f16\u7a0b \u5b9e\u73b0\u754c\u9762\u5316\u7684\u6587\u672c\u5904\u7406\u5de5\u5177","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"chenyuebai","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183187","_id":"158603"},{"id":"27850","text":"Python GUI\u4e4btkinter\u7a97\u53e3\u89c6\u7a97\u6559\u7a0b\u5927\u96c6\u5408\uff08\u770b\u8fd9\u7bc7\u5c31\u591f\u4e86\uff09 - \u6d2a\u536b","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"shwee","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183186","_id":"27850"},{"id":"158605","text":"Python GUI\u7f16\u7a0b(Tkinter) windows\u754c\u9762\u5f00\u53d1","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"itfat","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183184","_id":"158605"},{"id":"28228","text":"tkinter python\uff08\u56fe\u5f62\u5f00\u53d1\u754c\u9762\uff09","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"yudanqu","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183159","_id":"28228"},{"id":"158613","text":"Tkinter\u56fe\u5f62\u754c\u9762\u8bbe\u8ba1\uff08GUI\uff09","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"pywjh","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183158","_id":"158613"},{"id":"341361","text":"\u91cf\u5316\u5206\u6790\u83b7\u53d6\u6570\u636e\u76843\u79cd\u59ff\u52bf\uff08\u538b\u7bb1\u5e95\u7684\u795e\u5668Tushare\uff09","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"casual","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183069","_id":"341361"},{"id":"238879","text":"\u9762\u5411\u4ea4\u6613\u7684\u65e5\u5185\u9ad8\u9891\u91cf\u5316\u4ea4\u6613\u5e73\u53f0\u7b14\u8bb0","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"TaiYangXiManYouZhe","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183067","_id":"238879"},{"id":"238890","text":"2021 \u6700\u65b0\u91cf\u5316\u6295\u8d44\u4ea4\u6613\u8d44\u6e90\u6c47\u603b","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"xgqfrms","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183063","_id":"238890"}],"count":535118}"
array(2) {
["docs"]=>
array(10) {
[0]=>
array(10) {
["id"]=>
string(6) "158579"
["text"]=>
string(46) "【Python】Tkinter图形界面设计(GUI)"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(5) "HGNET"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(0) ""
["catesname"]=>
string(0) ""
["catesid"]=>
string(0) ""
["createtime"]=>
string(10) "1641183196"
["_id"]=>
string(6) "158579"
}
[1]=>
array(10) {
["id"]=>
string(6) "158620"
["text"]=>
string(60) "python之gui-tkinter可视化编辑界面 自动生成代码"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(7) "darkspr"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(0) ""
["catesname"]=>
string(0) ""
["catesid"]=>
string(0) ""
["createtime"]=>
string(10) "1641183190"
["_id"]=>
string(6) "158620"
}
[2]=>
array(10) {
["id"]=>
string(6) "158603"
["text"]=>
string(66) "python3.6 +tkinter GUI编程 实现界面化的文本处理工具"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(10) "chenyuebai"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(0) ""
["catesname"]=>
string(0) ""
["catesid"]=>
string(0) ""
["createtime"]=>
string(10) "1641183187"
["_id"]=>
string(6) "158603"
}
[3]=>
array(10) {
["id"]=>
string(5) "27850"
["text"]=>
string(80) "Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) - 洪卫"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(5) "shwee"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(0) ""
["catesname"]=>
string(0) ""
["catesid"]=>
string(0) ""
["createtime"]=>
string(10) "1641183186"
["_id"]=>
string(5) "27850"
}
[4]=>
array(10) {
["id"]=>
string(6) "158605"
["text"]=>
string(45) "Python GUI编程(Tkinter) windows界面开发"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(5) "itfat"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(0) ""
["catesname"]=>
string(0) ""
["catesid"]=>
string(0) ""
["createtime"]=>
string(10) "1641183184"
["_id"]=>
string(6) "158605"
}
[5]=>
array(10) {
["id"]=>
string(5) "28228"
["text"]=>
string(39) "tkinter python(图形开发界面)"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(7) "yudanqu"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(0) ""
["catesname"]=>
string(0) ""
["catesid"]=>
string(0) ""
["createtime"]=>
string(10) "1641183159"
["_id"]=>
string(5) "28228"
}
[6]=>
array(10) {
["id"]=>
string(6) "158613"
["text"]=>
string(34) "Tkinter图形界面设计(GUI)"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(5) "pywjh"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(0) ""
["catesname"]=>
string(0) ""
["catesid"]=>
string(0) ""
["createtime"]=>
string(10) "1641183158"
["_id"]=>
string(6) "158613"
}
[7]=>
array(10) {
["id"]=>
string(6) "341361"
["text"]=>
string(68) "量化分析获取数据的3种姿势(压箱底的神器Tushare)"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(6) "casual"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(0) ""
["catesname"]=>
string(0) ""
["catesid"]=>
string(0) ""
["createtime"]=>
string(10) "1641183069"
["_id"]=>
string(6) "341361"
}
[8]=>
array(10) {
["id"]=>
string(6) "238879"
["text"]=>
string(51) "面向交易的日内高频量化交易平台笔记"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(18) "TaiYangXiManYouZhe"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(0) ""
["catesname"]=>
string(0) ""
["catesid"]=>
string(0) ""
["createtime"]=>
string(10) "1641183067"
["_id"]=>
string(6) "238879"
}
[9]=>
array(10) {
["id"]=>
string(6) "238890"
["text"]=>
string(41) "2021 最新量化投资交易资源汇总"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(7) "xgqfrms"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(0) ""
["catesname"]=>
string(0) ""
["catesid"]=>
string(0) ""
["createtime"]=>
string(10) "1641183063"
["_id"]=>
string(6) "238890"
}
}
["count"]=>
int(535118)
}
Android框架式编程之架构方案 - 爱码网
目前移动端应用市场已经是百花齐放,很多独角兽公司都是通过App创业发展起来的,现在App类型更加丰富,功能越来越完善,基本上涵盖了各个行业的每个角落。为了开发出更加有竞争力的App,不仅需要功能上有创新,内容也需要更加多元化,这样就出现了相对巨大的工程。这些工程代码不停添加,如果没有一个好的架构,那么所有代码都会强耦合在一起,功能之间也会出现很多依赖,那么就会出现很多问题,例如:
1、修改功能困难,牵一发动全身。很多地方如果api写的不好,封装不优雅,那么就会出现改一个地方需要改很多地方的调用。
2、更新迭代工作中冗余废弃代码资源过多造成删除冗余变得很复杂,并且很可能出现很多bug。
为了解决上述的问题,经过长时间摸索和发展,当今已经有相当成熟的方案来保证尽量避免上述问题的出现。而架构就是为此而生的概念,架构在实际开发中又分为代码架构和项目架构。其中:
1、代码架构主要分为三类:MVC、MVP 和 MVVM。
2、项目架构主要分为:单工程模式、模块化、组件化、插件化。
单工程:此模式就不多说了,就是我们所有的代码都放置在主module下,不对代码进行按照功能模块进行多module的处理。
模块化:根据项目的特点,将一个项目的可以共享的部分抽离出来,形成一个独立的module,这就是模块化。模块化的内容不仅仅可以包含公共部分,一些相对独立的业务模块也是可以模块化的。
组件化:组件化是基于模块化的进一步演进,一个变种。组件化与模块化的不同在于,组件化的核心是模块角色的可转化性,在打包时是libiary,但是在调试的时候为Application。组件化的单位就是组件。(编译时)
插件化:插件化是将一个工程,按照业务划分为不同的插件,来化整为零,相互配合。插件化的单位是apk,可以实现apk的动态加载和动态更新,比组件化更加灵活。(运行时)
一、代码架构
1. 三大代码架构方案的区别比较:
MVC是一个广义的架构方法,将逻辑、数据、视图分离的代码架构,但是因为Android开发的特点,会导致C和V层在实际的代码中出现比较大的耦合。
MVP是一个广义的架构,适用于面向实体或者虚拟用户接口的开发,它是基于MVC的基础上,通过依赖倒置来解决Android开发过程中逻辑复用难、实现更替难的问题。
MVVM是一种页面开发的架构,基于数据驱动,通过只操作 ViewModel 中映射的视图数据 来刷新视图状态,以此来解决 视图调用的一致性问题,从而规避不可预期的错误。
总结:MVP 和 MVVM 二者之间没有任何关系。MVP 是对 MVC 的升级,而 MVVM 是现代化软件开发模式的范例。
2. JetPack MVVM 架构
在谷歌官方提供的MVVM架构中,提供了:Lifecycle、LiveData、ViewModel、DataBinding 组件。下面逐一介绍一下这些组件的作用:
- Lifecycle 的存在解决了 生命周期管理 的一致性问题
- LiveData 的存在,帮助 新手老手 都能不假思索地 遵循 通过唯一可信源分发状态 的标准化开发理念,从而在快速开发过程中 规避一系列 难以追溯、难以排查、不可预期 的问题。
- ViewModel 的存在,主要是为了解决 状态管理 和 页面通信 的问题。
- DataBinding 的存在,主要是为了解决 视图调用 的一致性问题。
二、项目架构
项目架构的核心思想:分层 和 通信。
1. 子模块的划分
除了常见的common部分抽离, 业务模块的划分尤为重要,相比于狭义上的架构,广义上的子系统的划分的关注点,很考验技术经验以及对业务的理解。
2. 通信方式
模块化的通信方式,无非是相互引入;抽取出来了common模块, 其他模块使用自然要引入这个module
组件化的通信方式,按理说可以划分为多种,主流的是隐式和路由。隐式的存在使解耦与灵活大大降低,因此路由是主流。
插件化的通信方式,不同插件本身就是不同的进程了。因此通信方式偏向于Binder机制类似的进程间通信。
推荐资料:
1. 是让人 提神醒脑 的 MVP、MVVM 关系精讲:https://juejin.im/post/6846687603547176974
2. 是让人耳目一新的 Jetpack MVVM 精讲:https://juejin.im/post/6844903976240939021
相关文章:
-
2021-12-10
-
2020-10-15
-
2021-09-29
-
2021-10-01
-
2021-08-27
-
2021-09-12
-
2018-05-06
-
2022-01-02
猜你喜欢
-
2021-09-18
-
2021-10-20
-
2021-10-09
-
2021-10-20
-
2021-09-17
-
2021-10-16
-
2020-04-01
相关资源
-
下载
2023-01-24
-
下载
2021-07-01
-
下载
2021-06-29