主题切换及其管理

简介:

想做一个更换主题的功能

第一步,做主题管理:


?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
< entity-model id = "theme" name = "theme" title = "主题"
     enable-delete = "true" enable-modity = "true" version = "2.0" cache-enabled = "true" >
     < operations >
         < operation id = "thememodelopadduuid" name = "addTheme" title = "新增"
             enable-delete = "true" enable-modity = "true" type = "add" fixed-size = "false"
             modal = "true" >
             < condition-fields >
                 < condition-field editable = "false" hidden = "false"
                     field-id = "theme_id" connect-mode = "AND" />
             </ condition-fields >
             < operation-group id = "addopbasicgroup" name = "basicgroup"
                 title = "操作字段" enable-delete = "true" enable-modity = "true" >
                 < operation-fields >
                     < operation-field editable = "false" hidden = "true"
                         field-id = "theme_id" />
                     < operation-field editable = "true" hidden = "false"
                         field-id = "theme_code" />
                     < operation-field editable = "true" hidden = "false"
                         field-id = "theme_title" />
                     < operation-field editable = "true" hidden = "false"
                         field-id = "theme_css_path" >
                         < input-mode type = "textWholeLineMode" ></ input-mode >
                     </ operation-field >
                     < operation-field editable = "true" hidden = "false"
                         field-id = "theme_thumbnail" >
                         < input-mode type = "textWholeLineMode" ></ input-mode >
                     </ operation-field >
                 </ operation-fields >
             </ operation-group >
         </ operation >
         < operation id = "thememodelopupdateuuid" name = "modifyTheme"
             title = "修改" enable-delete = "true" enable-modity = "true" type = "modify"
             fixed-size = "false" modal = "true" >
             < condition-fields >
                 < condition-field editable = "false" hidden = "false"
                     field-id = "theme_id" connect-mode = "AND" />
             </ condition-fields >
             < operation-group id = "modifyopbasicgroup" name = "basicgroup"
                 title = "操作字段" enable-delete = "true" enable-modity = "true" >
                 < operation-fields >
                     < operation-field editable = "false" hidden = "true"
                         field-id = "theme_id" />
                     < operation-field editable = "true" hidden = "false"
                         field-id = "theme_code" />
                     < operation-field editable = "true" hidden = "false"
                         field-id = "theme_title" />
                     < operation-field editable = "true" hidden = "false"
                         field-id = "theme_css_path" >
                         < input-mode type = "textWholeLineMode" ></ input-mode >
                     </ operation-field >
                     < operation-field editable = "true" hidden = "false"
                         field-id = "theme_thumbnail" >
                         < input-mode type = "textWholeLineMode" ></ input-mode >
                     </ operation-field >
                 </ operation-fields >
             </ operation-group >
         </ operation >
         < operation id = "thememodelopdeleteuuid" name = "deleteTheme"
             title = "删除" enable-delete = "true" enable-modity = "true" type = "delete"
             fixed-size = "false" modal = "true" >
             < condition-fields >
                 < condition-field editable = "false" hidden = "false"
                     field-id = "theme_id" connect-mode = "AND" />
             </ condition-fields >
             < operation-group id = "deleteopbasicgroup" name = "basicgroup"
                 title = "操作字段" enable-delete = "true" enable-modity = "true" >
                 < operation-fields >
                     < operation-field editable = "false" hidden = "true"
                         field-id = "theme_id" />
                     < operation-field editable = "true" hidden = "false"
                         field-id = "theme_code" />
                     < operation-field editable = "true" hidden = "false"
                         field-id = "theme_title" />
                     < operation-field editable = "true" hidden = "false"
                         field-id = "theme_css_path" />
                     < operation-field editable = "true" hidden = "false"
                         field-id = "theme_thumbnail" />
                 </ operation-fields >
             </ operation-group >
         </ operation >
         < operation id = "thememodelopqueryuuid" name = "viewTheme"
             title = "查看" enable-delete = "true" enable-modity = "true" type = "view"
             fixed-size = "false" modal = "true" >
             < condition-fields >
                 < condition-field editable = "false" hidden = "false"
                     field-id = "theme_id" connect-mode = "AND" />
             </ condition-fields >
             < operation-group id = "viewopbasicgroup" name = "basicgroup"
                 title = "操作字段" enable-delete = "true" enable-modity = "true" >
                 < operation-fields >
                     < operation-field editable = "false" hidden = "true"
                         field-id = "theme_id" />
                     < operation-field editable = "true" hidden = "false"
                         field-id = "theme_code" />
                     < operation-field editable = "true" hidden = "false"
                         field-id = "theme_title" />
                     < operation-field editable = "true" hidden = "false"
                         field-id = "theme_css_path" >
                         < input-mode type = "labelWholeLineMode" ></ input-mode >
                     </ operation-field >
                     < operation-field editable = "true" hidden = "false"
                         field-id = "theme_thumbnail" >
                         < input-mode type = "labelWholeLineMode" ></ input-mode >
                     </ operation-field >
                 </ operation-fields >
             </ operation-group >
         </ operation >
         < operation id = "thememodelopaddcopyuuid" name = "copyAddTheme"
             title = "拷贝新增" enable-delete = "true" enable-modity = "true" type = "copyAdd"
             fixed-size = "false" modal = "true" >
             < condition-fields >
                 < condition-field editable = "false" hidden = "false"
                     field-id = "theme_id" connect-mode = "AND" />
             </ condition-fields >
             < operation-group id = "copyAddopbasicgroup" name = "basicgroup"
                 title = "操作字段" enable-delete = "true" enable-modity = "true" >
                 < operation-fields >
                     < operation-field editable = "true" hidden = "false"
                         field-id = "theme_code" />
                     < operation-field editable = "true" hidden = "false"
                         field-id = "theme_title" />
                     < operation-field editable = "true" hidden = "false"
                         field-id = "theme_css_path" >
                         < input-mode type = "textWholeLineMode" ></ input-mode >
                     </ operation-field >
                     < operation-field editable = "true" hidden = "false"
                         field-id = "theme_thumbnail" >
                         < input-mode type = "textWholeLineMode" ></ input-mode >
                     </ operation-field >
                 </ operation-fields >
             </ operation-group >
         </ operation >
     </ operations >
     < views >
         < view id = "thememodeloptableuuid" name = "tabletheme" title = "主题管理"
             enable-delete = "true" enable-modity = "true" type = "table" page-size = "10"
             allow-edit = "false" allow-filter-front = "false" fixed-size = "false"
             modal = "false" front-paging = "false" >
             < view-groups >
                 < view-group id = "viewbasicgroup" name = "basicgroup" title = "基本信息"
                     enable-delete = "true" enable-modity = "true" >
                     < display-field editable = "false" hidden = "true"
                         field-id = "theme_id" aggregate-by-view = "false" />
                     < display-field editable = "false" hidden = "false"
                         field-id = "theme_code" aggregate-by-view = "false" />
                     < display-field editable = "false" hidden = "false"
                         field-id = "theme_title" aggregate-by-view = "false" />
                 </ view-group >
             </ view-groups >
             < references >
                 < operation-reference type = "operation" id = "thememodelopadduuid" />
                 < operation-reference type = "operation"
                     id = "thememodelopaddcopyuuid" />
                 < operation-reference type = "operation"
                     id = "thememodelopdeleteuuid" />
                 < operation-reference type = "operation"
                     id = "thememodelopupdateuuid" />
                 < operation-reference type = "operation"
                     id = "thememodelopqueryuuid" />
             </ references >
         </ view >
     </ views >
     < groups >
         < group id = "basicgroup" name = "basicgroup" title = "基本字段"
             enable-delete = "true" enable-modity = "true" >
             < field standard-field-id = "theme_id" primary = "true" unique = "true"
                 display = "false" not-null = "false" auto-increase = "false" editable = "false"
                 hidden = "false" table-field = "true" id = "theme_id" />
             < field standard-field-id = "theme_code" primary = "false" unique = "false"
                 display = "false" not-null = "false" auto-increase = "false" editable = "false"
                 hidden = "false" table-field = "true" id = "theme_code" />
             < field standard-field-id = "theme_title" primary = "false" unique = "false"
                 display = "false" not-null = "false" auto-increase = "false" editable = "false"
                 hidden = "false" table-field = "true" id = "theme_title" />
             < field standard-field-id = "theme_css_path" primary = "false"
                 unique = "false" display = "false" not-null = "false" auto-increase = "false"
                 editable = "false" hidden = "false" table-field = "true" id = "theme_css_path" />
             < field standard-field-id = "theme_thumbnail" primary = "false"
                 unique = "false" display = "false" not-null = "false" auto-increase = "false"
                 editable = "false" hidden = "false" table-field = "true" id = "theme_thumbnail" />
         </ group >
     </ groups >
</ entity-model >
OK,管理功能就算开发完毕了。


主窗口如下:

新增窗口如下:

复制新增如下:

修改窗口:

查看窗口:

删除确认窗口:

至此,通过配置xml,主题的管理功能开发完毕。

于是,增加数据,由于有拷贝新增,因此增加起来还是比较快速的。

第二步,做主题选择对话框:

增加一个新的view

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
< view id = "thememodelopcarduuid" name = "cardtheme" title = "主题选择"
     enable-delete = "true" enable-modity = "true" type = "card" page-size = "0"
     allow-edit = "false" allow-filter-front = "true" fixed-size = "false"
     modal = "false" front-paging = "false" >
     < customize-stage-configs >
         < customize-stage-config stage-name = "card"
             view-path = "/biz/theme/theme_card.page" >
         </ customize-stage-config >
     </ customize-stage-configs >
     < condition-fields >
     </ condition-fields >
     < view-groups >
         < view-group id = "viewbasicgroup" name = "basicgroup" title = "基本信息"
             enable-delete = "true" enable-modity = "true" >
             < display-field editable = "false" hidden = "true"
                 field-id = "theme_id" aggregate-by-view = "false" />
             < display-field editable = "false" hidden = "false"
                 field-id = "theme_code" aggregate-by-view = "false" />
             < display-field editable = "false" hidden = "false"
                 field-id = "theme_title" aggregate-by-view = "false" />
             < display-field editable = "false" hidden = "false"
                 field-id = "theme_css_path" aggregate-by-view = "false" />
             < display-field editable = "false" hidden = "false"
                 field-id = "theme_thumbnail" aggregate-by-view = "false" />
         </ view-group >
     </ view-groups >
</ view >
编写视图中指定的模板文件:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#@wijDialog("${modelDefine.id}_${operationDefine.id}" "${operationDefine.title}")
#foreach($bean in $modelProcessResult.beans)
     < a href = "javascript:doChangeTheme('${TINY_CONTEXT_PATH}$bean.themeCssPath')" >< img title = "$bean.themeTitle" style = "float:left;border:1px solid;margin:5px 5px;width:50pt;" src = "${TINY_CONTEXT_PATH}$bean.themeThumbnail" /></ a >
#end
#end
 
< script >
     function doChangeTheme(path){
         var list=$("link");
         for(var i=0;i< list.length ;i++){
             var link = list .get(i);
             var pos = link .href.indexOf("/themes/");
             if(pos>0){
                 pos=link.href.indexOf(contextPath+"/");
                 link.href=link.href.substr(0,pos)+ path;
                 return;
             }
         }
     }
 
</ script >
至此开发任务完成,看一下模板选择界面


第三步,验证实际效果:

OK,收工。

相关文章
|
4月前
|
存储 安全 测试技术
阿里云轻量应用服务器38元与云服务器99元和199元性能、适用场景区别及选择参考
2026年,阿里云推出的三款入门级云服务器,38元轻量应用服务器、99元经济型e实例及199元通用算力型u1实例,凭借卓越性能和亲民价格,满足个人开发者、小型网站及中小企业的多元需求。轻量服务器以200M峰值带宽和一键部署功能,成为快速建站首选;经济型e实例通过99元续费同价和灵活配置,平衡成本与性能;u1实例则以独享算力和5M固定带宽,为小微企业正式业务提供稳定支撑。本文通过详细对比和测评,助力用户根据实际需求选择最优方案,实现低成本高效上云。
|
6月前
|
安全 PHP
PHP 8 新特性实战:让代码更简洁高效
PHP 8 新特性实战:让代码更简洁高效
341 112
|
4月前
|
编解码 算法 数据可视化
基于 YOLOv8 的面向矿井场景的煤炭图像智能检测系统 [目标检测完整源码](YOLOv8 + PyQt5 实战)
本文围绕矿井复杂环境下的煤炭图像识别需求,系统阐述了一套基于 YOLOv8 与 PyQt5 的煤炭图像智能检测解决方案。从数据集构建、模型训练与评估,到推理流程及图形化界面部署,完整展示了工业视觉项目从算法到应用落地的全过程。实践结果表明,YOLOv8 在矿井场景中具备良好的检测精度与实时性能,而 PyQt5 界面有效降低了系统使用与部署门槛,使模型真正具备工程化和产品化能力。该方案可直接服务于煤炭分拣、矿区巡检等智慧矿山应用,也为工业场景下目标检测系统的设计与实现提供了可复用的技术范式。
371 9
|
6月前
|
PyTorch 算法框架/工具
JAX核心设计解析:函数式编程让代码更可控
JAX采用函数式编程,参数与模型分离,随机数需显式传递key,确保无隐藏状态。这使函数行为可预测,便于自动微分、编译优化与分布式训练,虽初学略显繁琐,但在科研、高精度仿真等场景下更具可控性与可复现优势。
524 115
|
6月前
|
Linux C语言 C++
cpp-7.3.0-20190804.35.p06.ky10.x86_64.rpm 安装步骤
本文介绍在Linux系统中通过RPM包安装cpp(C++预处理器)的完整步骤:先检查是否已安装,再上传RPM包并验证依赖,随后提供纯RPM或YUM两种安装方式,最后通过版本命令确认安装成功,适合初学者快速上手。
|
8月前
|
Web App开发 前端开发 数据可视化
小白零代码模板建站:从选模板到上线的完整攻略
小白无需代码,借模板和工具可搭政务门户、博客等网站。先按需求选适配模板,再换基础信息与核心内容、微调布局,适配留言等功能并测试,最后申请服务器与域名、备案绑定,即可上线,全程无技术门槛。
560 1
|
存储 算法 安全
虚拟内存
【10月更文挑战第25天】虚拟内存是计算机系统中一项非常重要的技术,它通过扩展内存空间、提供内存保护和支持多任务处理等功能,提高了计算机系统的性能和可用性。虽然虚拟内存存在一些缺点,但通过合理的优化和管理,可以有效地发挥其优势,为计算机系统的稳定运行提供有力保障。
922 144
|
缓存 监控 前端开发
SPA 首屏加载速度优化
【10月更文挑战第14天】解决 SPA 首屏加载速度慢的问题需要综合运用多种优化策略和技术。通过资源压缩、减少异步请求、优化渲染流程、利用缓存、代码分割、预加载等方法,可以有效提高 SPA 首屏加载速度,为用户提供更好的体验。同时,性能监控和分析是持续优化的关键,应根据实际情况不断调整优化策略。在未来,随着技术的不断发展,我们还需要不断探索新的优化方法和途径,以适应不断变化的需求。
474 56
|
设计模式 网络协议 Java
10.桥接模式设计思想
本文介绍了桥接模式的设计思想和实现方法。桥接模式通过将抽象部分与实现部分分离,使它们可以独立变化,解决了多层继承带来的复杂性和耦合性问题。文章详细讲解了桥接模式的由来、定义、应用场景和实现步骤,并通过具体实例演示了如何在支付场景中使用桥接模式。此外,还讨论了桥接模式的优缺点及其适用环境,提供了丰富的代码示例和进一步学习的资源链接。
527 2
|
Java 编译器
Java“返回类型为 void 的方法不能返回一个值”解决
在 Java 中,如果一个方法的返回类型被声明为 void,那么该方法不应该包含返回值的语句。如果尝试从这样的方法中返回一个值,编译器将报错。解决办法是移除返回值语句或更改方法的返回类型。
1225 5

热门文章

最新文章