dynamicFormConfigTempletAction.jsp
4.86 KB
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
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="com.weaver.formmodel.mobile.manager.MobileUserInit"%>
<%@ page import="weaver.hrm.User"%>
<%@ page import="java.util.List" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="com.alibaba.fastjson.JSONObject" %>
<%@ page import="com.weaver.formmodel.mobile.utils.MobileCommonUtil" %>
<%
JSONObject resultObj = new JSONObject();
try {
User user = MobileUserInit.getUser(request, response);
if(user == null){
throw new IllegalAccessException("No user login, please try again later after login!");
}
/*
此示例返回结果如下,详细示例参照(/mobilemode/mobile/demo/plugin/DynamicForm/demo.html):
[{
title: "1.文本字段",
group: true,
childs: [
{
group: false,
type: "FInputText",
option: {
field : {
label: "单行文本",
name: "f1",
type: "text"
},
required: true
}
}
}
]
},...]
*/
List<Map<String, Object>> datas = new ArrayList<>();
//分组1
Map<String, Object> groupNode1 = getGroupNode("1、文本字段");
//分组下的子节点
List<Map<String, Object>> childs1 = new ArrayList<>();
groupNode1.put("childs", childs1);
childs1.add(getChildNode("FInputText", true, "单行文本", "field1", "这是一个文本字段", false, false, -1, null));
childs1.add(getChildNode("FTextarea", false, "多行文本", "field2", "这是一个多文本字段", false, false, -1, null));
datas.add(groupNode1);
//分组2
Map<String, Object> groupNode2 = getGroupNode("2、选择字段");
//分组下的子节点
List<Map<String, Object>> childs2 = new ArrayList<>();
groupNode2.put("childs", childs2);
childs2.add(getChildNode("FSelect", true, "选择框", "field3", "1", false, false, -1, getItems()));
childs2.add(getChildNode("FCheckbox", false, "单选", "field4", "2", false, false, -1, getItems()));
childs2.add(getChildNode("FCheckbox", true, "多选", "field5", "1,2", true, true, -1, getItems()));
datas.add(groupNode2);
//分组3
Map<String, Object> groupNode3 = getGroupNode("3、拍照");
//分组下的子节点
List<Map<String, Object>> childs3 = new ArrayList<>();
groupNode3.put("childs", childs3);
childs3.add(getChildNode("FPhoto", false, "拍照", "field6", "", false, false, 3, getItems()));
datas.add(groupNode3);
resultObj.put("datas", datas);
resultObj.put("status", "1");
}catch (Exception e){
e.printStackTrace();
resultObj.put("status", "0");
resultObj.put("errMsg", MobileCommonUtil.getExceptionMsg(e));
}finally {
out.print(resultObj);
}
%>
<%!
private static List<Map<String, String>> getItems(){
List<Map<String, String>> items = new ArrayList<>();
Map<String, String> item1 = new HashMap<>();
item1.put("name", "java");
item1.put("value", "1");
items.add(item1);
Map<String, String> item2 = new HashMap<>();
item2.put("name", "javascript");
item2.put("value", "2");
items.add(item2);
Map<String, String> item3 = new HashMap<>();
item3.put("name", "jquery");
item3.put("value", "3");
items.add(item3);
Map<String, String> item4 = new HashMap<>();
item4.put("name", "zepto");
item4.put("value", "4");
items.add(item4);
return items;
}
private static Map<String, Object> getGroupNode(String title){
Map<String, Object> groupNode = new HashMap<>();
groupNode.put("title", title);
groupNode.put("group", true);
return groupNode;
}
private static Map<String, Object> getChildNode(String type, boolean required, String label, String fieldName, String value, boolean vertical, boolean multi, int limit, List<Map<String, String>> items){
Map<String, Object> childNode = new HashMap<>();
childNode.put("group", false);
childNode.put("type", type);//字段类型
Map<String, Object> childOption = new HashMap<>();//字段属性
Map<String, Object> childOptionField = new HashMap<>();
childOption.put("field", childOptionField);
childOption.put("required", required);
childOptionField.put("label", label);
childOptionField.put("name", fieldName);
childOptionField.put("value", value);//字段值
switch (type){
case "FSelect":
childOption.put("items", items);
break;
case "FCheckbox":
childOption.put("items", items);
childOption.put("vertical", vertical);
childOption.put("multiselect", multi);
break;
case "FPhoto":
childOption.put("limit", limit);
break;
}
childNode.put("option", childOption);
return childNode;
}
%>