questionsEdit.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  6. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  7. <title>题库编辑</title>
  8. <link rel="stylesheet" href="../../assets/libs/layui/css/layui.css"/>
  9. <link rel="stylesheet" href="../../assets/module/admin.css?v=315"/>
  10. <link rel="stylesheet" href="../../assets/module/formSelects/formSelects-v4.css"/>
  11. <!-- <link rel="stylesheet" href="../../assets/libs/wangEditor/wangEditor.css"/>-->
  12. <!--[if lt IE 9]>
  13. <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
  14. <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  15. <![endif]-->
  16. <style>
  17. [lay-filter="formQA"] .layui-form-item, .layui-inline {
  18. margin-bottom: 0;
  19. margin-top: 20px;
  20. }
  21. .qa-xx-item {
  22. padding-left: 25px;
  23. margin-bottom: 20px;
  24. }
  25. .qa-xx-item-title {
  26. position: absolute;
  27. left: 0;
  28. line-height: 38px;
  29. }
  30. </style>
  31. </head>
  32. <body>
  33. <!-- 加载动画 -->
  34. <div class="page-loading">
  35. <div class="ball-loader">
  36. <span></span><span></span><span></span><span></span>
  37. </div>
  38. </div>
  39. <!-- 正文开始 -->
  40. <div class="layui-fluid">
  41. <div class="layui-card">
  42. <div class="layui-card-header">
  43. 修改试题
  44. <div class="layui-inline pull-right" style="margin: 0px;">
  45. <button onclick="history.back()" class="layui-btn layui-btn-sm layui-btn-radius layui-btn-normal"><i
  46. class="layui-icon">&#xe65c;</i>返回
  47. </button>
  48. </div>
  49. </div>
  50. <div class="layui-card-body">
  51. <form class="layui-form" lay-filter="formQA" style="max-width: 960px;">
  52. <input type="hidden" name="id" id="id" value=""/>
  53. <div class="layui-form-item">
  54. <label class="layui-form-label">试题类型:</label>
  55. <div class="layui-input-block">
  56. <input type="radio" lay-filter="raQT" id="questionsType1" name="questionsType" value="1" title="单选题" checked>
  57. <input type="radio" lay-filter="raQT" id="questionsType2" name="questionsType" value="2" title="多选题">
  58. <input type="radio" lay-filter="raQT" id="questionsType3" name="questionsType" value="3" title="判断题">
  59. <input type="radio" lay-filter="raQT" id="questionsType4" name="questionsType" value="4" title="问答题">
  60. </div>
  61. </div>
  62. <div class="layui-form-item">
  63. <label class="layui-form-label">试题内容:</label>
  64. <div class="layui-input-block">
  65. <div name="questionsName" id="qaContent"></div>
  66. <!-- <textarea name="questionsName" id="qaContent"></textarea>-->
  67. </div>
  68. <div class="layui-form-item layui-form-text" id="xxGroup">
  69. </div>
  70. <div class="layui-form-item layui-form-text">
  71. <label class="layui-form-label">正确答案:</label>
  72. <div id="qaRIGroup" class="layui-input-block">
  73. </div>
  74. </div>
  75. <div class="layui-form-item">
  76. <div class="layui-input-block text-center">
  77. <button ew-event="back" type="button" class="layui-btn layui-btn-primary">&emsp;关闭&emsp;</button>
  78. <button class="layui-btn" lay-filter="formSubmitAQ" lay-submit>&emsp;提交&emsp;</button>
  79. </div>
  80. </div>
  81. </form>
  82. </div>
  83. </div>
  84. </div>
  85. <!-- 不同类型题目的正确答案选项 -->
  86. <script type="text/html" id="qaRI1">
  87. <!-- 单选题 -->
  88. <div style="max-width: 160px;">
  89. <select name="answer" id="answer" lay-verType="tips" lay-verify="required" required>
  90. <option value="A">A</option>
  91. <option value="B">B</option>
  92. <option value="C">C</option>
  93. <option value="D">D</option>
  94. </select>
  95. </div>
  96. </script>
  97. <script type="text/html" id="qaRI2">
  98. <!-- 多选题 -->
  99. <div class="xm-select-nri" style="max-width: 220px;">
  100. <select name="answer" id="answer2" xm-select="qaRIMore" lay-verType="tips" lay-verify="required" required>
  101. <option value="A">A</option>
  102. <option value="B">B</option>
  103. <option value="C">C</option>
  104. <option value="D">D</option>
  105. <option value="E">E</option>
  106. </select>
  107. </div>
  108. </script>
  109. <script type="text/html" id="qaRI3">
  110. <!-- 判断题 -->
  111. <div style="max-width: 160px;">
  112. <select name="answer" id="qaRI3Answer" lay-verType="tips" lay-verify="required" required>
  113. <option value="T">正确</option>
  114. <option value="F">错误</option>
  115. </select>
  116. </div>
  117. </script>
  118. <script type="text/html" id="qaRI4">
  119. <!-- 问答题 -->
  120. <!-- <textarea name="answer" id="wdContent"></textarea>-->
  121. <div name="answer" id="wdContent"></div>
  122. </script>
  123. <script type="text/html" id="xxHtml">
  124. <label class="layui-form-label">试题选项:</label>
  125. <div class="layui-input-block">
  126. <div class="qa-xx-item">
  127. <span class="qa-xx-item-title">A:</span>
  128. <input type="text" name="A" id="A" placeholder="请输入选项内容" class="layui-input"
  129. autocomplete="off" lay-verType="tips" lay-verify="required" required/>
  130. </div>
  131. <div class="qa-xx-item">
  132. <span class="qa-xx-item-title">B:</span>
  133. <input type="text" name="B" id="B" placeholder="请输入选项内容" class="layui-input"
  134. autocomplete="off" lay-verType="tips" lay-verify="required" required/>
  135. </div>
  136. <div class="qa-xx-item">
  137. <span class="qa-xx-item-title">C:</span>
  138. <input type="text" name="C" id="C" placeholder="请输入选项内容" class="layui-input"
  139. autocomplete="off" lay-verType="tips" lay-verify="required" required/>
  140. </div>
  141. <div class="qa-xx-item">
  142. <span class="qa-xx-item-title">D:</span>
  143. <input type="text" name="D" id="D" placeholder="请输入选项内容" class="layui-input" autocomplete="off" lay-verify="required" required/>
  144. </div>
  145. <div class="qa-xx-item" id="questionSelect">
  146. <span class="qa-xx-item-title">E:</span>
  147. <input type="text" name="E" id="E" placeholder="请输入选项内容" class="layui-input" autocomplete="off"/>
  148. </div>
  149. </div>
  150. </script>
  151. <!-- js部分 -->
  152. <script type="text/javascript" src="../../assets/libs/layui/layui.js"></script>
  153. <script type="text/javascript" src="../../assets/js/common.js?v=315"></script>
  154. <script type="text/javascript" src="../../assets/libs/wangEditor/wangEditor.js"></script>
  155. <script>
  156. layui.use(['layer', 'form', 'table', 'admin', 'formSelects', 'uParas'], function () {
  157. var $ = layui.jquery;
  158. var layer = layui.layer;
  159. var form = layui.form;
  160. var formSelects = layui.formSelects;
  161. var table = layui.table;
  162. var uParas = layui.uParas;
  163. var admin = layui.admin;
  164. var editIndex = uParas.initWangEditor("qaContent");
  165. editIndex.create();
  166. var wdContent;
  167. var id = uParas.getUrlParam("id");
  168. var url = uParas.baseUrl + '/ol/questions/queryId';
  169. $.getJSON(url, {id: id}, function (resp) {
  170. $("#questionsType" + resp.data.questionsType).attr("checked", true);
  171. $("#id").val(resp.data.id);
  172. form.val('formQA', resp.data);
  173. editIndex.txt.html(resp.data.questionsName)
  174. changeQT(resp.data.questionsType, resp.data.answer);
  175. $("#qaRI3Answer").find("option[value ='" + resp.data.answer + "']").attr("selected", "selected");
  176. if (resp.data.questionsType == 1) {
  177. $("#answer").find("option[value ='" + resp.data.answer + "']").attr("selected", "selected");
  178. }
  179. if (resp.data.questionsType == 2) {
  180. $("#answer2").find("option[value ='" + resp.data.answer + "']").attr("selected", "selected");
  181. }
  182. if (resp.data.questionsType != 4) {
  183. var answerContent = $.parseJSON(resp.data.answerContent);
  184. setTimeout(function () {
  185. $("#A").val(answerContent.A);
  186. $("#B").val(answerContent.B);
  187. $("#C").val(answerContent.C);
  188. $("#D").val(answerContent.D);
  189. if (resp.data.questionsType == 2) {
  190. $("#E").val(answerContent.E);
  191. }
  192. }, 50);
  193. } else {
  194. wdContent.txt.html(resp.data.answerContent);
  195. }
  196. form.render();
  197. });
  198. // 表单提交事件
  199. form.on('submit(formSubmitAQ)', function (data) {
  200. var url = uParas.baseUrl + '/ol/questions/update';
  201. var idArray = new Object();
  202. var flag = true;
  203. idArray.A = data.field.A;
  204. idArray.B = data.field.B;
  205. idArray.C = data.field.C;
  206. idArray.D = data.field.D;
  207. //多选
  208. if (data.field.questionsType == 2){
  209. var eVal = data.field.E;
  210. if (eVal == null || eVal == ""){
  211. flag = false;
  212. layer.msg("请输入选项E内容");
  213. }else{
  214. idArray.E = eVal;
  215. }
  216. }
  217. data.field.answerContent = JSON.stringify(idArray);
  218. data.field.questionsName = editIndex.txt.text();
  219. if (data.field.questionsName == null || data.field.questionsName == ""){
  220. layer.msg("题目名称不能为空");
  221. flag = false;
  222. return false;
  223. }
  224. //问答题获取富文本编辑器的内容
  225. if (data.field.questionsType == 4) {
  226. data.field.answerContent = wdContent.txt.text();
  227. if (data.field.answerContent == null || data.field.answerContent == ""){
  228. layer.msg("题目答案不能为空");
  229. flag = false;
  230. return false;
  231. }
  232. }
  233. if (flag){
  234. admin.req(url, data.field, function (res) {
  235. layer.closeAll('loading');
  236. if (res.code == 1) {
  237. layer.msg(res.msg, {
  238. time: 1000,
  239. end: function () {
  240. location.href = "./questionsIndex.html";
  241. }
  242. });
  243. } else {
  244. layer.msg(res.msg);
  245. }
  246. }, 'POST');
  247. }
  248. return false;
  249. });
  250. // 试题类型切换事件
  251. form.on('radio(raQT)', function (data) {
  252. changeQT(data.value);
  253. });
  254. function changeQT(value, sel) {
  255. if (value == 1) {
  256. $('#qaRIGroup').html($('#qaRI1').html());
  257. form.render('select');
  258. $('#xxGroup').html($('#xxHtml').html());
  259. $("#questionSelect").hide();
  260. } else if (value == 2) {
  261. $('#qaRIGroup').html($('#qaRI2').html());
  262. if (sel) {
  263. formSelects.render('qaRIMore', {init: sel.split(',')});
  264. } else {
  265. formSelects.render('qaRIMore');
  266. }
  267. formSelects.btns('qaRIMore', ['select', 'remove', 'reverse'], {space: '13px'});
  268. $('#xxGroup').html($('#xxHtml').html());
  269. $("#questionSelect").show();
  270. } else if (value == 3) {
  271. $('#qaRIGroup').html($('#qaRI3').html());
  272. form.render('select');
  273. $('#xxGroup').html('');
  274. } else if (value == 4) {
  275. $('#qaRIGroup').html($('#qaRI4').html());
  276. form.render('select');
  277. $('#xxGroup').html('');
  278. wdContent = uParas.initWangEditor("wdContent");
  279. wdContent.create();
  280. // wdContent = layEdit.build('wdContent'); // 建立编辑器
  281. }
  282. }
  283. });
  284. </script>
  285. </body>
  286. </html>