editPaper.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299
  1. <!DOCTYPE html>
  2. <html>
  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=312"/>
  10. <style>
  11. .layui-form-item {
  12. margin-bottom: 0;
  13. margin-top: 20px;
  14. }
  15. .layui-form-item .layui-inline {
  16. margin-bottom: 25px;
  17. margin-right: 0;
  18. }
  19. .form-group-bottom {
  20. position: fixed;
  21. bottom: 0;
  22. left: 0;
  23. right: 0;
  24. background-color: #fff;
  25. padding: 10px 20px;
  26. box-shadow: 0 -1px 2px 0 rgba(0, 0, 0, .05);
  27. }
  28. .layui-table-cell .layui-form-checkbox[lay-skin="primary"] {
  29. top: -3px;
  30. padding: 0;
  31. }
  32. </style>
  33. </head>
  34. <body>
  35. <!-- 加载动画 -->
  36. <div class="page-loading">
  37. <div class="ball-loader">
  38. <span></span><span></span><span></span><span></span>
  39. </div>
  40. </div>
  41. <!-- 正文开始 -->
  42. <div class="layui-fluid">
  43. <div class="layui-card">
  44. <div class="layui-card-body">
  45. <div class="layui-card-header">
  46. 修改试卷
  47. <div class="layui-inline pull-right">
  48. <button onclick="history.back()" class="layui-btn layui-btn-sm layui-btn-radius layui-btn-normal"><i
  49. class="layui-icon">&#xe65c;</i>返回
  50. </button>
  51. </div>
  52. </div>
  53. <form class="layui-form" lay-filter="layuiForm">
  54. <input type="hidden" name="id" id="id">
  55. <div class="layui-form-item layui-row">
  56. <div class="layui-inline layui-col-md4">
  57. <label class="layui-form-label">试卷名称:</label>
  58. <div class="layui-input-block">
  59. <input name="paperName" type="text" placeholder="请输入试卷名称" class="layui-input"
  60. lay-verType="tips" required>
  61. </div>
  62. </div>
  63. </div>
  64. <div class="layui-form-item layui-row">
  65. <label class="layui-form-label">试题类型:</label>
  66. <input class="layui-form-label" type="checkbox" name="questionsType" id="questionsType1" value="1"
  67. lay-filter="questionsType1" lay-skin="primary" title="单选题">
  68. <div class="layui-inline">
  69. <div class="layui-input-inline" style="width: 100px;">
  70. <input type="number" name="mark1" id="mark1" lay-tips="单选题分数设置" lay-direction="2"
  71. placeholder="每题分值" autocomplete="off" class="layui-input" min="0" max="1000"
  72. onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))">
  73. </div>
  74. </div>
  75. <input class="layui-form-label" type="checkbox" name="questionsType" id="questionsType2" value="2"
  76. lay-filter="questionsType2" lay-skin="primary" title="多选题">
  77. <div class="layui-inline">
  78. <div class="layui-input-inline" style="width: 100px;">
  79. <input type="number" name="mark2" id="mark2" lay-tips="多选题分数设置" lay-direction="2"
  80. placeholder="正确答案分值" autocomplete="off" class="layui-input" min="0" max="1000"
  81. onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))">
  82. </div>
  83. <div class="layui-input-inline" style="width: 100px;">
  84. <input type="number" name="mark2Less" id="mark2_less" lay-tips="少选答案分值" lay-direction="2"
  85. placeholder="少选答案分值" autocomplete="off" class="layui-input" min="0" max="1000"
  86. onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))">
  87. </div>
  88. </div>
  89. <input class="layui-form-label" type="checkbox" name="questionsType" id="questionsType3" value="3"
  90. lay-filter="questionsType3" lay-skin="primary" title="判断题">
  91. <div class="layui-inline">
  92. <div class="layui-input-inline" style="width: 100px;">
  93. <input type="number" name="mark3" id="mark3" lay-tips="判断题分数设置" lay-direction="2"
  94. placeholder="每题分值" autocomplete="off" class="layui-input" min="0" max="1000"
  95. onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))">
  96. </div>
  97. </div>
  98. <input class="layui-form-label" type="checkbox" name="questionsType" id="questionsType4" value="4"
  99. lay-filter="questionsType4" lay-skin="primary" title="问答题">
  100. <div class="layui-inline">
  101. <div class="layui-input-inline" style="width: 100px;">
  102. <input type="number" name="mark4" id="mark4" lay-tips="问答题分数设置" lay-direction="2"
  103. placeholder="每题分值" autocomplete="off" class="layui-input" min="0" max="1000"
  104. onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))">
  105. </div>
  106. </div>
  107. </div>
  108. <div class="layui-form-item layui-row">
  109. <div class="layui-inline layui-col-md4">
  110. <label class="layui-form-label">答题时间:</label>
  111. <div class="layui-input-block">
  112. <input name="useTime" type="number" placeholder="请输入答题时间(分钟)" class="layui-input"
  113. lay-verType="tips" lay-verify="required" required
  114. onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))">
  115. </div>
  116. </div>
  117. </div>
  118. <div class="layui-form-item layui-row">
  119. <label class="layui-form-label">试题说明:</label>
  120. <div class="layui-input-block">
  121. <textarea placeholder="试题说明" name="paperInfo" class="layui-textarea"></textarea>
  122. </div>
  123. </div>
  124. <div class="layui-form-item layui-row" style="height: 900px">
  125. <label class="layui-form-label">&nbsp;</label>
  126. <div class="layui-input-block">
  127. <div class="layui-col-xs3">
  128. <table class="layui-table" id="datatable1" lay-filter="datatable1"></table>
  129. </div>
  130. <div class="layui-col-xs3">
  131. <table class="layui-table" id="datatable2" lay-filter="datatable2"></table>
  132. </div>
  133. <div class="layui-col-xs3">
  134. <table class="layui-table" id="datatable3" lay-filter="datatable3"></table>
  135. </div>
  136. <div class="layui-col-xs3">
  137. <table class="layui-table" id="datatable4" lay-filter="datatable4"></table>
  138. </div>
  139. </div>
  140. </div>
  141. <div class="form-group-bottom text-right">
  142. <button class="layui-btn" lay-filter="formSubmit" lay-submit>&emsp;提交&emsp;</button>
  143. <button type="reset" class="layui-btn layui-btn-primary">&emsp;重置&emsp;</button>
  144. </div>
  145. </form>
  146. </div>
  147. </div>
  148. </div>
  149. </div>
  150. <!-- js部分 -->
  151. <script type="text/javascript" src="../../assets/libs/layui/layui.js"></script>
  152. <script type="text/javascript" src="../../assets/js/common.js?v=312"></script>
  153. <script>
  154. layui.use(['layer', 'form', 'table', 'util', 'zTree', 'admin', 'uParas', 'laydate', 'upload', 'formSelects'], function () {
  155. var $ = layui.jquery;
  156. var layer = layui.layer;
  157. var form = layui.form;
  158. var util = layui.util;
  159. var admin = layui.admin;
  160. var uParas = layui.uParas;
  161. var laydate = layui.laydate,
  162. upload = layui.upload,
  163. table = layui.table;
  164. var id = uParas.getUrlParam("id");
  165. var url = uParas.baseUrl + '/ol/paper/queryId';
  166. admin.req(url, {id: id}, function (resp) {
  167. if (resp.code == 1) {
  168. var paperMark = resp.data.paperMark2;
  169. if (paperMark != null) {
  170. var pm = paperMark.split("#");
  171. if (pm.length > 0) {
  172. for (var i = 0; i < pm.length; i++) {
  173. var questionsType = pm[i].split(",")[0];
  174. var mark = pm[i].split(",")[1];
  175. $("#questionsType" + questionsType).attr("checked", true);
  176. if (questionsType == "2") {
  177. $("#mark2_less").val(pm[i].split(",")[2]);
  178. }
  179. $("#mark" + questionsType).val(mark);
  180. }
  181. }
  182. }
  183. form.val('layuiForm', resp.data);
  184. form.render();
  185. var data1 = new Array();
  186. var data2 = new Array();
  187. var data3 = new Array();
  188. var data4 = new Array();
  189. $.each(resp.data.list, function (index, item) {
  190. if (item.questionsType == "1") {
  191. data1.push(item);
  192. }
  193. if (item.questionsType == "2") {
  194. data2.push(item);
  195. }
  196. if (item.questionsType == "3") {
  197. data3.push(item);
  198. }
  199. if (item.questionsType == "4") {
  200. data4.push(item);
  201. }
  202. });
  203. loadTable(data1, 1);
  204. loadTable(data2, 2);
  205. loadTable(data3, 3);
  206. loadTable(data4, 4);
  207. }
  208. }, 'get');
  209. function loadTable(data, tableId) {
  210. var key = '#datatable' + tableId;
  211. var title = '';
  212. if (tableId == "1") {
  213. title = "单选题";
  214. }
  215. if (tableId == "2") {
  216. title = "多选题";
  217. }
  218. if (tableId == "3") {
  219. title = "判断题";
  220. }
  221. if (tableId == "4") {
  222. title = "简单题";
  223. }
  224. table.render({
  225. elem: key,
  226. data: data,
  227. cellMinWidth: 60,
  228. height: 750,
  229. limit: 1000,
  230. where: {questionsType: tableId, limit: 1000},
  231. cols: [[
  232. {type: 'checkbox'},
  233. {field: 'questionsName', sort: false, title: title},
  234. ]]
  235. });
  236. }
  237. form.on('submit(formSubmit)', function (data) {
  238. var questionsType = '';
  239. var f = false;
  240. var idArray = new Object();
  241. $("input:checkbox[name=questionsType]:checked").each(function () {
  242. var idStr = '';
  243. questionsType += $(this).val() + ",";
  244. var mark = $("#mark" + $(this).val()).val();
  245. if (mark == "") {
  246. layer.msg("缺少试题分数");
  247. $("#mark" + $(this).val()).focus();
  248. f = true;
  249. return false;
  250. }
  251. if ($(this).val() == "2") {
  252. //多选
  253. var mark2Less = $("#mark2_less").val();
  254. if (mark2Less == "") {
  255. layer.msg("多选题缺少少选答案分数");
  256. $("#mark2_less").focus();
  257. f = true;
  258. return false;
  259. }
  260. }
  261. var checkStatus = table.checkStatus('datatable' + $(this).val())
  262. , data = checkStatus.data;
  263. data.forEach(function (val, index, arr) {
  264. idStr += val.id + ",";
  265. });
  266. var keyName = "mark" + $(this).val();
  267. idArray[keyName] = idStr;
  268. });
  269. if (f) {
  270. return false;
  271. }
  272. data.field.questionsType = questionsType;
  273. data.field.idStr = JSON.stringify(idArray);
  274. layer.load();
  275. admin.req(uParas.baseUrl + '/ol/paper/save', data.field, function (resp) {
  276. if (resp.code == 1) {
  277. layer.closeAll()
  278. layer.msg(resp.msg)
  279. location.href = "./paper.html";
  280. } else {
  281. layer.msg(resp.msg)
  282. }
  283. }, 'POST');
  284. return false;
  285. });
  286. });
  287. </script>
  288. </body>
  289. </html>