一、后端代码
SysDicData sysDicData = new SysDicData();
sysDicData.setDicValue(-1);
sysDicData.setDicType("sys_question_type");
sysDicData.setDicPid(-1);
SysDicData sysDic = sysDicDataService.selectModel(sysDicData);
//获得所有第一级别的答案分类
List<SysDicData> question_total_types=sysDicDataService.selectDicDatasByDicType("sys_question_type").stream().filter(t->t.getDicPid()==sysDic.getDicId()).collect(Collectors.toList());
List<List<SysDicData>> sysDicDataGroup=new LinkedList<>();
ArrayList<String> question_total_typeNames = new ArrayList<>();
for (SysDicData question_total_type:question_total_types) {
question_total_typeNames.add(question_total_type.getDicLabel());
//获得所有第二级别的答案分类
List<SysDicData> sysDicDatas = sysDicDataService.selectDicDatasById(question_total_type.getDicId());
sysDicDataGroup.add(sysDicDatas);
}
model.addAttribute("sysDicDataGroup",sysDicDataGroup);
model.addAttribute("question_total_typeNames",question_total_typeNames);
二、前端代码
<link rel="stylesheet" href="/css/formSelects-v4.css" media="all" />
<select th:if="${paper.testId==null}" name="testAttrtype" id="testAttrtype" xm-select="" xm-select-radio="" lay-filter="testAttrtypeChange" lay-verify="required">
<optgroup th:each="sysDicdatas,sysDicdataStat:${sysDicDataGroup}" th:label="${question_total_typeNames[sysDicdataStat.index]}">
<option th:each="sysDicData:${sysDicdatas}" th:value="${sysDicData.dicValue}" th:text="${sysDicData.dicLabel}"></option>
</optgroup>
</select>
三、js中代码
layui.config({
base:'/js/'
}).extend({
formSelects:'formSelects-v4'
});
![]()