diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blStuAnswer/controller/BlStuAnswerController.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blStuAnswer/controller/BlStuAnswerController.java index 1518213..4bfeb93 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blStuAnswer/controller/BlStuAnswerController.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blStuAnswer/controller/BlStuAnswerController.java @@ -237,6 +237,7 @@ public class BlStuAnswerController extends JeecgController \ No newline at end of file diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blStuAnswer/service/impl/BlStuAnswerServiceImpl.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blStuAnswer/service/impl/BlStuAnswerServiceImpl.java index b4c572d..965d3ed 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blStuAnswer/service/impl/BlStuAnswerServiceImpl.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blStuAnswer/service/impl/BlStuAnswerServiceImpl.java @@ -550,7 +550,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result = Maps.newHashMap(); - i1_13(wo, result, id); + //i1_13(wo, result, id); + b1_2(wo, result, id); WordOperator wo2 = WordOperator.twoReplaceWord(wo); wo2.replaceTextPlus(result); @@ -640,9 +641,9 @@ public class BlStuAnswerServiceImpl extends ServiceImpl nameList = Lists.newArrayList(); var seriesList = Lists.newArrayList(); @@ -823,7 +824,7 @@ public class BlStuAnswerServiceImpl extends ServiceImpl nameList = Lists.newArrayList(); List seriesDataList = Lists.newArrayList(); - List maxSeriesDataList = Lists.newArrayList(); + //List maxSeriesDataList = Lists.newArrayList(); if(map != null && !map.isEmpty()) { Set keys = Sets.filter(map.keySet(), key -> !KEY.equals(key)); for(String key: keys){ nameList.add(indicatorDataTemp.formatted(key)); seriesDataList.add(getMapStr(map.get(key))); - maxSeriesDataList.add(maxNumber); + //maxSeriesDataList.add(maxNumber); } } Map runJs = Maps.newHashMap(); var runBeforeTemp = "let dataList = %s;"; runJs.put("runBefore",runBeforeTemp.formatted(JSONUtil.toJsonStr(seriesDataList))); - var title = "title: { right: '30', text: '" + titleText + "', textStyle: { fontSize: 30 } },"; + var title = "title: { right: '30', text: '" + titleText + "', textStyle: { fontSize: 30, fontFamily: '宋体' } },"; //雷达图 var json = """ { - %s - legend: { data: [] }, - radar: { - radius: '50%%', - indicator: %s, - axisName: { - fontSize: 15, color: '#000', padding: 70, - formatter: (v) => { - let l = String(v).split('');let r = ''; - l.forEach((x,i) => { if((i+1) %% 12 == 0){ r += x + '\\n'; } else { r += x; } }); - return r; - } + %s + polar: { radius: '50%%', }, + angleAxis: { + show: false, min: 0, max: %s, interval: 1, inverse: true, + axisLine: { lineStyle: { color: 'rgba(0,0,0,0)', }, }, axisTick: { show: false, inside: true, }, + axisLabel: { textStyle: { color: '#000', fontSize: 20, fontFamily: '宋体' }, formatter: (i) => dataList[i], }, }, - }, - series: [ - { - name: 'data', - type: 'radar', - label: { position: 'top' }, - data: [{ name: 'alxc', value: dataList }] + radiusAxis: { show: false, }, + radar: { + radius: '50%%', + axisName: { + fontSize: 15, fontFamily: '宋体', color: '#000', padding: 70, + formatter: (v) => { + let l = String(v).split('');let r = ''; + l.forEach((x,i) => { if((i+1) %% 12 == 0){ r += x + '\\n'; } else { r += x; } }); + return r; + } + }, + indicator: %s, }, - { - type: 'radar', - data: [ - { - name: 'max', - itemStyle: { color: '#000' }, - lineStyle: { type: 'dashed', color: '#000' }, - label: { - show: true, - fontSize: 20, - formatter: (params) => { - return dataList[params.dimensionIndex]; - } - }, - value: %s - } - ] - } - ] + series: [ { name: 'data', type: 'radar', label: { position: 'top' }, data: [ { value: dataList, name: 'value', }, ] } ] } """; var nameListSb = new StringBuilder(); nameListSb.append("["); nameList.forEach(nameListSb::append); nameListSb.append("]"); - json = json.formatted(title, nameListSb.toString(), JSONUtil.toJsonStr(maxSeriesDataList)); + json = json.formatted(title, nameList.size(), nameListSb.toString()); - return WebDriverUtil.getImgByte(json,"echarts500.html", runJs); + return WebDriverUtil.getImgByte(json,"echarts600.html", runJs); } public void t1_1(WordOperator wo, Map result, String id) { var list1 = baseMapper.t1_1_1(id); @@ -2226,8 +2208,7 @@ public class BlStuAnswerServiceImpl extends ServiceImpl e.name + '\\n' + e.value +'%%' }, diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tools/word/WordOperator.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tools/word/WordOperator.java index 7be4f4a..dedd4dd 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tools/word/WordOperator.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tools/word/WordOperator.java @@ -12,7 +12,10 @@ import org.jeecg.modules.tools.CommonUtil; import org.jeecg.modules.tools.FileUtils; import org.jeecg.modules.tools.Global; import org.jeecg.modules.tools.IdGen; -import org.openxmlformats.schemas.wordprocessingml.x2006.main.*; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTShd; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTc; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTcPr; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -28,33 +31,33 @@ import java.util.Map; */ public class WordOperator { - private static Logger logger = LoggerFactory.getLogger(WordOperator.class); + private static final Logger logger = LoggerFactory.getLogger(WordOperator.class); /** * 模板替换标签开头 */ - private final static String LABEL_STR = "{"; + private static final String LABEL_STR = "{"; /** * 模板替换标签结尾 */ - private final static String LABEL_END = "}"; + private static final String LABEL_END = "}"; /** * 模板替换图片标签开头(List) */ - private final static String LABEL_IMAGE_STR = "<"; + private static final String LABEL_IMAGE_STR = "<"; /** * 模板替换图片标签结尾(List) */ - private final static String LABEL_IMAGE_END = ">"; + private static final String LABEL_IMAGE_END = ">"; /** * 模板替换图片标签开头(List) */ - private final static String LABEL_RICH_TEXT_STR = " paragraphList) { //InputStream imageFileIs = null; // 取出word模板里的全部段落,遍历 - for (int i = 0; i < paragraphList.size(); i++) { - XWPFParagraph paragraph = paragraphList.get(i); + for (XWPFParagraph paragraph : paragraphList) { // 拿出每一个段落,判断内容里是否包含字符串"{"和"}",只有两者同时存在了才执行替换标签的逻辑 String paragraphText = paragraph.getText(); - if (!StringUtils.isBlank(paragraphText) && StringUtils.indexOf(paragraphText,LABEL_STR) != -1 && StringUtils.indexOf(paragraphText,LABEL_END) != -1) { + if (!StringUtils.isBlank(paragraphText) && StringUtils.contains(paragraphText, LABEL_STR) && StringUtils.contains(paragraphText, LABEL_END)) { // 每一个段落分很多小段文本,官方API只能通过XWPFRun对象执行替换文本功能 List runList = paragraph.getRuns(); // 组装replaceMap的key String key = ""; // 是否检测到有"{"字符串,有为true,没有为false boolean include = false; - for (int j = 0; j < runList.size(); j++) { - XWPFRun run = runList.get(j); + for (XWPFRun run : runList) { //颜色 // run.setColor("F3C917"); //加粗 @@ -413,9 +407,11 @@ public class WordOperator { // 取出每一个小段里标签头和尾的角标 //是否存在两个{ boolean isParagraphReplaceAllText = false; - if(StringUtils.ordinalIndexOf(text,LABEL_STR,2) != -1){ + //etxt是否存在两个以上的{ + if (StringUtils.ordinalIndexOf(text, LABEL_STR, 2) != -1) { isParagraphReplaceAllText = true; - text = paragraphReplaceAllText(text,replaceMap); + //进入同行匹配模式,返回结果 + text = paragraphReplaceAllText(text, replaceMap); } int labelStrIndex = StringUtils.indexOf(text, LABEL_STR); int labelEndIndex = StringUtils.indexOf(text, LABEL_END); @@ -434,34 +430,34 @@ public class WordOperator { String textAfter = text.substring(labelEndIndex + 1); key += textBefore; //Object value = replaceMap.get(key); - String value = (String)replaceMap.get(key); + String value = (String) replaceMap.get(key); if (StringUtils.isBlank(value)) value = ""; - WordTextStyle style = (WordTextStyle)replaceMap.get(key + "_style"); + WordTextStyle style = (WordTextStyle) replaceMap.get(key + "_style"); //添加样式 - if(style != null) style.run(run); + if (style != null) style.run(run); if (StringUtils.isBlank(value)) value = ""; value = StringEscapeUtils.unescapeHtml4(value); key = ""; //--2020-04修改 String[] values = value.split("\n"); - if(values.length > 1) { - run.setText(values[0],0); + if (values.length > 1) { + run.setText(values[0], 0); for (int x = 1; x < values.length; x++) { //存在分段则新建一个run - XWPFRun newrun = paragraph.createRun(); + XWPFRun newRun = paragraph.createRun(); //copy样式 - newrun.getCTR().setRPr(run.getCTR().getRPr()); + newRun.getCTR().setRPr(run.getCTR().getRPr()); //换行 - newrun.addBreak(); + newRun.addBreak(); //缩进 - //newrun.addTab(); - if(x == values.length - 1) { - newrun.setText(values[x] + textAfter); - }else { - newrun.setText(values[x]); + //newRun.addTab(); + if (x == values.length - 1) { + newRun.setText(values[x] + textAfter); + } else { + newRun.setText(values[x]); } } - }else { + } else { run.setText(value + textAfter, 0); } include = false; @@ -472,9 +468,9 @@ public class WordOperator { key += text; run.setText("", 0); } - if(isParagraphReplaceAllText){ + if (isParagraphReplaceAllText) { //替换文本 - run.setText(text,0); + run.setText(text, 0); } // 两个都存在,这种情况比较复杂。经过多次试验,XWPFRun切割内容,只会同时各出现1次而已 } else { @@ -484,32 +480,32 @@ public class WordOperator { String textBefore = text.substring(0, labelStrIndex); String textMiddle = text.substring(labelStrIndex + 1, labelEndIndex); String textAfter = text.substring(labelEndIndex + 1); - String value = (String)replaceMap.get(textMiddle); + String value = (String) replaceMap.get(textMiddle); if (StringUtils.isBlank(value)) value = ""; - WordTextStyle style = (WordTextStyle)replaceMap.get(textMiddle + "_style"); + WordTextStyle style = (WordTextStyle) replaceMap.get(textMiddle + "_style"); //添加样式 - if(style != null) style.run(run); + if (style != null) style.run(run); value = StringEscapeUtils.unescapeHtml4(value); //--2020-04修改 String[] values = value.split("\n"); - if(values.length > 1) { - run.setText(textBefore + values[0],0); + if (values.length > 1) { + run.setText(textBefore + values[0], 0); for (int x = 1; x < values.length; x++) { - //存在分段则新建一个run - XWPFRun newrun = paragraph.createRun(); + //存在分段则新建一个run + XWPFRun newRun = paragraph.createRun(); //copy样式 - newrun.getCTR().setRPr(run.getCTR().getRPr()); + newRun.getCTR().setRPr(run.getCTR().getRPr()); //换行 - newrun.addBreak(); + newRun.addBreak(); //缩进 - //newrun.addTab(); - if(x == values.length - 1) { - newrun.setText(values[x] + textAfter,0); - }else { - newrun.setText(values[x]); + //newRun.addTab(); + if (x == values.length - 1) { + newRun.setText(values[x] + textAfter, 0); + } else { + newRun.setText(values[x]); } } - }else { + } else { run.setText(textBefore + value + textAfter, 0); } @@ -522,32 +518,32 @@ public class WordOperator { String textMiddle = text.substring(labelEndIndex + 1, labelStrIndex); String textAfter = text.substring(labelStrIndex + 1); key += textBefore; - String value = (String)replaceMap.get(key); - if (value == null || StringUtils.isBlank(value.toString())) value = ""; - WordTextStyle style = (WordTextStyle)replaceMap.get(textMiddle + "_style"); + String value = (String) replaceMap.get(key); + if (value == null || StringUtils.isBlank(value)) value = ""; + WordTextStyle style = (WordTextStyle) replaceMap.get(textMiddle + "_style"); //添加样式 - if(style != null) style.run(run); + if (style != null) style.run(run); value = StringEscapeUtils.unescapeHtml4(value); //--2020-04修改 - String[] values = value.toString().split("\n"); - if(values.length > 1) { - run.setText(values[0],0); + String[] values = value.split("\n"); + if (values.length > 1) { + run.setText(values[0], 0); for (int x = 1; x < values.length; x++) { - //存在分段则新建一个run - XWPFRun newrun = paragraph.createRun(); + //存在分段则新建一个run + XWPFRun newRun = paragraph.createRun(); //copy样式 - newrun.getCTR().setRPr(run.getCTR().getRPr()); + newRun.getCTR().setRPr(run.getCTR().getRPr()); //换行 - newrun.addBreak(); + newRun.addBreak(); //缩进 - //newrun.addTab(); - if(x == values.length - 1) { - newrun.setText(values[x] + textMiddle,0); - }else { - newrun.setText(values[x]); + //newRun.addTab(); + if (x == values.length - 1) { + newRun.setText(values[x] + textMiddle, 0); + } else { + newRun.setText(values[x]); } } - }else { + } else { run.setText(value + textMiddle, 0); } key = textAfter; @@ -555,31 +551,30 @@ public class WordOperator { } } } - //富文本标签(转成图片的富文本) - } else if(StringUtils.isNotBlank(paragraphText) && paragraphText.indexOf(LABEL_RICH_TEXT_STR) != -1 && paragraphText.indexOf(LABEL_RICH_TEXT_END) != -1){ - System.out.println("paragraphText="+paragraphText); + //富文本标签(转成图片的富文本) + } else if (StringUtils.isNotBlank(paragraphText) && StringUtils.contains(paragraphText, LABEL_RICH_TEXT_STR) && StringUtils.contains(paragraphText, LABEL_RICH_TEXT_END)) { + logger.info("paragraphText={}", paragraphText); //如果匹配到‘<’和‘>’则开始替换为图片 // 每一个段落分很多小段文本,官方API只能否通过XWPFRun对象执行替换文本功能 List runList = paragraph.getRuns(); //组装replaceMap的key String key = ""; - + // //摘出key int $labelStrIndex = StringUtils.indexOf(paragraphText, LABEL_RICH_TEXT_STR); int $labelEndIndex = StringUtils.indexOf(paragraphText, LABEL_RICH_TEXT_END); - + //必须存在开始和结束标签 - if($labelStrIndex != -1 && $labelEndIndex != -1){ + if ($labelStrIndex != -1 && $labelEndIndex != -1) { key = paragraphText; key = key.substring($labelStrIndex + LABEL_RICH_TEXT_STR.length()); $labelEndIndex = StringUtils.indexOf(key, LABEL_RICH_TEXT_END); - key = key.substring(0,$labelEndIndex); + key = key.substring(0, $labelEndIndex); } - + //去除整行(整个paragraph) - for (int j = 0; j < runList.size(); j++) { - XWPFRun run = runList.get(j); + for (XWPFRun run : runList) { run.setText("", 0); } //添加图片 @@ -591,18 +586,18 @@ public class WordOperator { } String imagePath = getHtmlImage(value.toString()); //try { - //imageFileIs = new FileInputStream(new File(imagePath)); - //$run.addPicture(imageFileIs, 6, "image", 595,842); + //imageFileIs = new FileInputStream(new File(imagePath)); + //$run.addPicture(imageFileIs, 6, "image", 595,842); //} catch (InvalidFormatException | IOException e) { - //logger.error("图片读取或添加错误!"); - //logger.error(e.getMessage(),e); - //e.printStackTrace(); + //logger.error("图片读取或添加错误!"); + //logger.error(e.getMessage(),e); + //e.printStackTrace(); //} - createPicturePlus(paragraph,imagePath,595,842,""); + createPicturePlus(paragraph, imagePath, 595, 842, ""); //FileUtils.deleteFile(imagePath); //$run.setText(); - //图片标签 - }else if(StringUtils.isNotBlank(paragraphText) && paragraphText.indexOf(LABEL_IMAGE_STR) != -1 && paragraphText.indexOf(LABEL_IMAGE_END) != -1){ + //图片标签 + } else if (StringUtils.isNotBlank(paragraphText) && StringUtils.contains(paragraphText, LABEL_IMAGE_STR) && StringUtils.contains(paragraphText, LABEL_IMAGE_END)) { //如果匹配到‘<’和‘>’则开始替换为图片 // 每一个段落分很多小段文本,官方API只能否通过XWPFRun对象执行替换文本功能 List runList = paragraph.getRuns(); @@ -612,8 +607,9 @@ public class WordOperator { WordImageLabel wordImageLabel = null; // 是否检测到有"<"字符串,有为true,没有为false boolean include = false; - for (int j = 0; j < runList.size(); j++) { - XWPFRun run = runList.get(j); + for (int i = 0; i < runList.size(); i++) { + //for (XWPFRun run : runList) { + XWPFRun run = runList.get(i); String text = run.getText(0); // 取出每一个小段里标签头和尾的角标 int labelStrIndex = StringUtils.indexOf(text, LABEL_IMAGE_STR); @@ -643,7 +639,7 @@ public class WordOperator { //创建图片 run.setText("", 0); // run.setText(value + textAfter, 0); - createPicturePlus(paragraph,(String)value,wordImageLabel.getWidth(),wordImageLabel.getHeight(),wordImageLabel.getPicAttch()); + createPicturePlus(paragraph, (String) value, wordImageLabel.getWidth(), wordImageLabel.getHeight(), wordImageLabel.getPicAttch()); include = false; // 两个都没有 } else if (labelStrIndex == -1 && labelEndIndex == -1) { @@ -667,7 +663,7 @@ public class WordOperator { } run.setText("", 0); // run.setText(textBefore + value + textAfter, 0); - createPicturePlus(paragraph,(String)value,wordImageLabel.getWidth(),wordImageLabel.getHeight(),wordImageLabel.getPicAttch()); + createPicturePlus(paragraph, (String) value, wordImageLabel.getWidth(), wordImageLabel.getHeight(), wordImageLabel.getPicAttch()); key = ""; include = false; // >在前,<在后 @@ -683,15 +679,15 @@ public class WordOperator { value = ""; } run.setText("", 0); - createPicturePlus(paragraph,(String)value,wordImageLabel.getWidth(),wordImageLabel.getHeight(),wordImageLabel.getPicAttch()); + createPicturePlus(paragraph, (String) value, wordImageLabel.getWidth(), wordImageLabel.getHeight(), wordImageLabel.getPicAttch()); key = textAfter; include = true; } } - } + } } - - + + } } @@ -710,23 +706,21 @@ public class WordOperator { */ private void replaceTextAndCreatePicture(List paragraphList) { // 取出word模板里的全部段落,遍历 - for (int i = 0; i < paragraphList.size(); i++) { - XWPFParagraph paragraph = paragraphList.get(i); + for (XWPFParagraph paragraph : paragraphList) { // 拿出每一个段落,判断内容里是否包含字符串"{"和"}",只有两者同时存在了才执行替换标签的逻辑 String paragraphText = paragraph.getText(); if (!StringUtils.isBlank(paragraphText)) { //判断是否为唯一的image关键字 - if(StringUtils.equals(paragraphText, "{IMAGE}") && paragraphText.indexOf(LABEL_STR) != -1 && paragraphText.indexOf(LABEL_END) != -1){ + if (StringUtils.equals(paragraphText, "{IMAGE}") && StringUtils.contains(paragraphText, LABEL_STR) && StringUtils.contains(paragraphText, LABEL_END)) { //去掉关键字标记 List runList = paragraph.getRuns(); - for (int j = 0; j < runList.size(); j++) { - XWPFRun run = runList.get(j); + for (XWPFRun run : runList) { run.setText("", 0); } //获取图片地址 String picPath = (String) replaceMap.get("IMAGE"); //创建图片 - createPicture(paragraph,picPath,83,83," "); + createPicture(paragraph, picPath, 83, 83, " "); //创建后不需要普通的文字替换了,跳过本段落 continue; } @@ -736,8 +730,7 @@ public class WordOperator { String key = ""; // 是否检测到有"{"字符串,有为true,没有为false boolean include = false; - for (int j = 0; j < runList.size(); j++) { - XWPFRun run = runList.get(j); + for (XWPFRun run : runList) { String text = run.getText(0); // 取出每一个小段里标签头和尾的角标 int labelStrIndex = text.indexOf(LABEL_STR); diff --git a/jeecg-boot/jeecg-module-demo/src/main/resources/officetemplates/exp1/student-tjfx.docx b/jeecg-boot/jeecg-module-demo/src/main/resources/officetemplates/exp1/student-tjfx.docx index 9a7cd77..be570e4 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/resources/officetemplates/exp1/student-tjfx.docx +++ b/jeecg-boot/jeecg-module-demo/src/main/resources/officetemplates/exp1/student-tjfx.docx @@ -418,7 +418,7 @@ 学生学习主动性评价各项占比 在落实推进学生刻苦读书学习,增强学习主动性方面,该校学生评价自身"课前运用网络课程平台、教材或资料进行自主预学,梳理知识并发现问题"的符合程度得分为{b1_1_1}分,"课堂上能跟上老师的讲解,主动提问或参与讨论,每节课学有所获"的符合程度得分为{b1_1_2}分,"课后复习笔记及总结课堂教学相关知识"的符合程度得分为{b1_1_3}分,"除了阅读教材,还延伸阅读教师推荐的其他相关书目"的符合程度得分为{b1_1_4}分。 - + 各环节学生学习主动性 注:图表中数值为计算所得平均分数。 @@ -621,7 +621,7 @@ Z 思政课程各分项满意度评价的各项占比 该校学生对本校思想政治课程的教学内容满意度为{b2_1_6}%,对教学形式的满意度为{b2_1_7}%,对教学质量的满意度为{b2_1_8}%,对教学效果的满意度为{b2_1_9}%。 - + 思政课程各分项满意度 注:图表中数值为计算所得平均分数。 @@ -647,7 +647,7 @@ Z 专业课"两性一度"评价各项占比 在落实课堂教学改革、提高课程两性一度方面,该校学生对专业课程的评价如下:高阶性方面,"课程将知识、能力、素养进行了有机融合"的符合程度得分为{b2_2_1}分,"课程教学培养了我解决复杂问题的综合能力"的符合程度得分为{b2_2_2}分;创新性方面,"课程内容注重学科间的交叉与融合"的符合程度得分为{b2_2_3}分,"课程内容反映了学科发展的前沿内容"的符合程度得分为{b2_2_4}分,"课程教学内容重视实践与理论的结合"的符合程度得分为{b2_2_5}分;挑战度方面,"需要非常努力才能达到课程要求"的符合程度得分为{b2_2_6}分。 - + 学生对专业课"两性一度"评价 注:图表中数值为计算所得平均分数。 @@ -699,7 +699,7 @@ Z 专业课教学方式评价各项占比 在推动"以学为中心、以教为主导"的课堂教学改革方面,该校学生对专业课程的教学方法使用情况评价如下,"课程以传统的教师讲授为主"的符合程度得分为{b2_3_1}分,"课堂中加入互动环节,注重学生参与(提问、讨论)"的符合程度得分为{b2_3_2}分,"提供案例或实例讨论"的符合程度得分为{b2_3_3}分,"采用小组合作的项目式教学方式"的符合程度得分为{b2_3_4}分。 - + 学生对专业课教学方式评价 注:图表中数值为计算所得平均分数。 @@ -747,7 +747,7 @@ Z 体美劳教育满意度评价各项占比 在落实体美劳教育建设方面,该校学生评价体育教育的满意度为{b2_5_1}%,美育教育的满意度为{b2_5_2}%,劳动教育的满意度为{b2_5_3}%。 - + 体美劳教育满意度 注:图表中数值为计算所得平均分数。 @@ -792,7 +792,7 @@ Z 学生发展活动满意度评价各项占比 该校参与过以上各项学生发展活动的学生,评价国际交流活动的满意度为{b2_6_6}%,学生社团活动的满意度为{b2_6_7}%,校园文化活动的满意度为{b2_6_8}%,创新创业活动的满意度为{b2_6_9}%,社会实践活动的满意度为{b2_6_10}%。 - + 各项学生发展活动满意度 注:图表中数值为计算所得平均分数。 @@ -836,7 +836,7 @@ Z 本校实习实践满意度评价各项占比 在落实实践教学建设方面,该校学生评价本校实习实践内容的满意度为{b2_7_1}%,实习实践时间安排的满意度为{b2_7_2}%,实习实践指导情况的满意度为{b2_7_3}%,实习实践场地及设备的满意度为{b2_7_4}%。 - + 本校实习实践各方面满意度 注:图表中数值为计算所得平均分数。 @@ -863,7 +863,7 @@ Z 学习收获评价各项占比 在对在校学习所取得的收获方面,该校学生的评价如下:"分析问题、解决问题能力提升"的符合程度得分为{b2_8_1}分,"自主学习能力提升"的符合程度得分为{b2_8_2}分,"合作能力提升"的符合程度得分为{b2_8_3}分,"书面表达和沟通能力提升"的符合程度得分为{b2_8_4}分,"有能力规划未来工作生活"的符合程度得分为{b2_8_5}分。 - + 学生对学习收获的评价 注:图表中数值为计算所得平均分数。 @@ -907,7 +907,7 @@ Z 核心素养满意度评价各项占比 在自我核心素养提升方面,该校学生对"人文底蕴"的满意度为{b2_9_1}%,"科学精神"的满意度为{b2_9_2}%,"学会学习"的满意度为{b2_9_3}%,"健康生活"的满意度为{b2_9_4}%,"责任担当"的满意度为{b2_9_5}%,"实践创新"的满意度为{b2_9_6}%,"自我提升"的满意度为{b2_9_7}%。 - + 学生评价核心素养满意度 注:图表中数值为计算所得平均分数。 @@ -956,7 +956,7 @@ Z 教学工作满意度评价各项占比 在教师教学工作方面,该校学生评价教师"师德师风及精神面貌"的满意度为{b3_1_1}%,"教学投入"的满意度为{b3_1_2}%,"依法依规,履行教师职责"的满意度为{b3_1_3}%,"关心爱护学生"的满意度为{b3_1_4}%。 - + 教学工作各方面满意度 注:图表中数值为计算所得平均分数。 @@ -1034,7 +1034,7 @@ Z 教师教学行为评价各项占比 在教师教学能力方面,该校学生评价教师"重视立德树人,注重发挥课程育人的作用"的符合程度得分为{b3_3_1}分,"清楚地向学生解释了所学课程的目标和要求"的符合程度得分为{b3_3_2}分,"教学方法灵活多样,引导学生进行创造性思考"的符合程度得分为{b3_3_3}分,"课堂上激发学生的学习兴趣"的符合程度得分为{b3_3_4}分,"课后为学生提供辅导答疑"的符合程度得分为{b3_3_5}分。 - + 教师各方面教学行为评价 注:图表中数值为计算所得平均分数。 @@ -1079,7 +1079,7 @@ Z 本校体现"学生中心"和安全管理评价各项占比 在落实"以学生为中心"和安全管理方面,该校学生评价本校"学生服务能够做到"一站式"的服务与解决,体现了对学生的关怀"的符合程度得分为{b4_1_1}分,"重视实验实训的安全教育与管理"的符合程度得分为{b4_1_2}分,"任课教师积极参与学生活动"的符合程度得分为{b4_1_3}分,"校内学术讲座报告活动多"的符合程度得分为{b4_1_4}分。 - + 本校体现"学生中心"和安全管理各方面评价 注:图表中数值为计算所得平均分数。 @@ -1160,7 +1160,7 @@ Z 学生工作满意度评价各项占比 该校学生评价本校"心理健康教育/咨询"的满意度为{b4_3_1}%,"职业生涯规划和就业创业指导"的满意度为{b4_3_2}%,"班主任、辅导员工作"的满意度为{b4_3_3}%,"学业指导工作"的满意度为{b4_3_4}%,"重视家庭经济困难学生资助工作"的满意度为{b4_3_5}%。 - + 各项学生工作满意度 注:图表中数值为计算所得平均分数。 @@ -1204,7 +1204,7 @@ Z 资源条件满意度评价各项占比 在落实条件保障方面,该校学生评价本校"教室及教学设备"的满意度为{b4_4_1}%,"实验实训室条件"的满意度为{b4_4_2}%,"图书馆资源"的满意度为{b4_4_3}%,"网络资源"的满意度为{b4_4_4}%,"体育文化等基础设施"的满意度为{b4_4_5}%,"住宿条件"的满意度为{b4_4_6}%。 - + 资源条件各方面满意度 注:图表中数值为计算所得平均分数。 diff --git a/jeecg-boot/jeecg-module-demo/src/main/resources/web/html/echarts600.html b/jeecg-boot/jeecg-module-demo/src/main/resources/web/html/echarts600.html new file mode 100644 index 0000000..4d478a6 --- /dev/null +++ b/jeecg-boot/jeecg-module-demo/src/main/resources/web/html/echarts600.html @@ -0,0 +1,47 @@ + + + + + + + + + +
+ + + + +