主题切换及其管理

简介:

想做一个更换主题的功能

第一步,做主题管理:


?
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,收工。

相关文章
|
Web App开发 存储 编解码
Freeswitch关于支持jsip的配置
1、freeswitch安装过程(安装过程省略,运行环境为centos7,freeswitch1.6.5)
1122 0
|
6月前
|
SQL 缓存 Java
深入拆解 MyBatis:Mapper 动态代理、一级与二级缓存的底层实现与实战
本文深入解析MyBatis三大核心机制:1)Mapper接口通过动态代理实现SQL执行,核心类包括MapperProxy和MapperMethod;2)一级缓存是SqlSession级别的内存缓存,默认开启且基于HashMap实现;3)二级缓存是Mapper级别的可共享缓存,需手动开启且要求实体类实现Serializable。通过代码示例详细演示了缓存的生效条件和失效场景,并对比了一二级缓存的关键差异,帮助开发者深入理解MyBatis底层原理,在实际开发中合理运用缓存机制。
380 1
|
9月前
|
PyTorch 算法框架/工具
JAX核心设计解析:函数式编程让代码更可控
JAX采用函数式编程,参数与模型分离,随机数需显式传递key,确保无隐藏状态。这使函数行为可预测,便于自动微分、编译优化与分布式训练,虽初学略显繁琐,但在科研、高精度仿真等场景下更具可控性与可复现优势。
624 115
|
9月前
|
Linux C语言 C++
cpp-7.3.0-20190804.35.p06.ky10.x86_64.rpm 安装步骤
本文介绍在Linux系统中通过RPM包安装cpp(C++预处理器)的完整步骤:先检查是否已安装,再上传RPM包并验证依赖,随后提供纯RPM或YUM两种安装方式,最后通过版本命令确认安装成功,适合初学者快速上手。
|
11月前
|
Web App开发 前端开发 数据可视化
小白零代码模板建站:从选模板到上线的完整攻略
小白无需代码,借模板和工具可搭政务门户、博客等网站。先按需求选适配模板,再换基础信息与核心内容、微调布局,适配留言等功能并测试,最后申请服务器与域名、备案绑定,即可上线,全程无技术门槛。
725 1
|
搜索推荐 API
【强烈推荐使用】免费在线使用 GPT-4 | Free GPT-4 Online
这是一个无需API密钥的在线GPT-4工具,用户可直接输入消息进行交互。特色功能包括:重试按钮、Prompt菜单、重新开始对话及设置选项(如随机性调整和历史消息数选择),提供个性化和高效交流体验。详情见个人主页简介。
1653 5
【强烈推荐使用】免费在线使用 GPT-4 | Free GPT-4 Online
|
存储 算法 安全
虚拟内存
【10月更文挑战第25天】虚拟内存是计算机系统中一项非常重要的技术,它通过扩展内存空间、提供内存保护和支持多任务处理等功能,提高了计算机系统的性能和可用性。虽然虚拟内存存在一些缺点,但通过合理的优化和管理,可以有效地发挥其优势,为计算机系统的稳定运行提供有力保障。
1094 144
|
缓存 监控 前端开发
SPA 首屏加载速度优化
【10月更文挑战第14天】解决 SPA 首屏加载速度慢的问题需要综合运用多种优化策略和技术。通过资源压缩、减少异步请求、优化渲染流程、利用缓存、代码分割、预加载等方法,可以有效提高 SPA 首屏加载速度,为用户提供更好的体验。同时,性能监控和分析是持续优化的关键,应根据实际情况不断调整优化策略。在未来,随着技术的不断发展,我们还需要不断探索新的优化方法和途径,以适应不断变化的需求。
549 56
|
设计模式 网络协议 Java
10.桥接模式设计思想
本文介绍了桥接模式的设计思想和实现方法。桥接模式通过将抽象部分与实现部分分离,使它们可以独立变化,解决了多层继承带来的复杂性和耦合性问题。文章详细讲解了桥接模式的由来、定义、应用场景和实现步骤,并通过具体实例演示了如何在支付场景中使用桥接模式。此外,还讨论了桥接模式的优缺点及其适用环境,提供了丰富的代码示例和进一步学习的资源链接。
618 2
|
监控 数据可视化 安全
如何查找访问 Nginx 的前 10 个 IP?
【5月更文挑战第1天】
1107 1
如何查找访问 Nginx 的前 10 个 IP?

热门文章

最新文章