exampaper_edit.html 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>添加运维宝典</title>
  6. <meta name="renderer" content="webkit">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  8. <meta name="viewport"
  9. content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
  10. <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
  11. <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
  12. </head>
  13. <body>
  14. <div class="layui-fluid">
  15. <div class="layui-card">
  16. <div class="layui-card-body">
  17. <form class="layui-form" action="" lay-filter="component-form-element">
  18. <div class="layui-form-item">
  19. <div class="layui-inline">
  20. <label class="layui-form-label"><font color='red' size="4">*</font>科目:</label>
  21. <div class="layui-input-inline">
  22. <select name="subject" id="id_subject" lay-verify="required" lay-filter="subjectChange">
  23. <option value="">请选择科目</option>
  24. </select>
  25. </div>
  26. </div>
  27. <div class="layui-inline">
  28. <label class="layui-form-label"><font color='red' size="4">*</font>试卷类型:</label>
  29. <div class="layui-input-inline">
  30. <select name="type" lay-verify="required" lay-filter="typeChange" id="id_type">
  31. <option value="1" selected>固定试卷</option>
  32. <option value="2">随机试卷</option>
  33. </select>
  34. </div>
  35. </div>
  36. </div>
  37. <div class="layui-form-item" id="fixed_exampaper">
  38. <div class="layui-inline">
  39. <label class="layui-form-label"><font color='red' size="4">*</font>选择试卷:</label>
  40. <div class="layui-input-inline">
  41. <input type="text" id="exampaper_name" class="layui-input">
  42. </div>
  43. <div class="layui-input-inline">
  44. <button type="button" class="layui-btn" id="search_btn">查询 </button>
  45. </div>
  46. </div>
  47. </div>
  48. <div class="layui-form-item">
  49. <div id="fixed">
  50. <label class="layui-form-label"></label>
  51. <div class="layui-input-block" id="id_table">
  52. <div id="tableRes" class="table-overlay" style="align-items: center">
  53. <table id="dataTable" lay-filter="dataTable"></table>
  54. </div>
  55. </div>
  56. </div>
  57. <div id="random">
  58. <div class="layui-form-item">
  59. <label class="layui-form-label"><font color='red' size="4">*</font>配置:</label>
  60. <div class="layui-inline" style="width: 80%">
  61. <label class="layui-form-label">单选题:</label>
  62. <div class="layui-inline" style="width: 85%">
  63. 每题
  64. <div class="layui-inline" style="width: 10%">
  65. <input type="text" lay-verify="intGtz" name="single_scores" autocomplete="off" class="layui-input">
  66. </div>
  67. ,简单
  68. <div class="layui-inline" style="width: 10%">
  69. <input type="text" lay-verify="intGtz" name="single_simple_count" autocomplete="off" class="layui-input single">
  70. </div>
  71. ,中等
  72. <div class="layui-inline" style="width: 10%">
  73. <input type="text" lay-verify="intGtz" name="single_mid_count" autocomplete="off" class="layui-input single">
  74. </div>
  75. ,困难
  76. <div class="layui-inline" style="width: 10%">
  77. <input type="text" lay-verify="intGtz" name="single_hard_count" autocomplete="off" class="layui-input single">
  78. </div>
  79. <div class="layui-inline" style="width: 10%">
  80. <label id="id_single_total_count" class="layui-form-label">共&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;题</label>
  81. </div>
  82. </div>
  83. </div>
  84. </div>
  85. <div class="layui-form-item">
  86. <label class="layui-form-label"></label>
  87. <div class="layui-inline" style="width: 80%">
  88. <label class="layui-form-label">多选题:</label>
  89. <div class="layui-inline" style="width: 85%">
  90. 每题
  91. <div class="layui-inline" style="width: 10%">
  92. <input type="text" lay-verify="intGtz" name="multiple_scores" autocomplete="off" class="layui-input">
  93. </div>
  94. ,简单
  95. <div class="layui-inline" style="width: 10%">
  96. <input type="text" lay-verify="intGtz" name="multiple_simple_count" autocomplete="off" class="layui-input multiple">
  97. </div>
  98. ,中等
  99. <div class="layui-inline" style="width: 10%">
  100. <input type="text" lay-verify="intGtz" name="multiple_mid_count" autocomplete="off" class="layui-input multiple">
  101. </div>
  102. ,困难
  103. <div class="layui-inline" style="width: 10%">
  104. <input type="text" lay-verify="intGtz" name="multiple_hard_count" autocomplete="off" class="layui-input multiple">
  105. </div>
  106. <div class="layui-inline" style="width: 10%">
  107. <label id="id_multiple_total_count" class="layui-form-label">共&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;题</label>
  108. </div>
  109. </div>
  110. </div>
  111. </div>
  112. <div class="layui-form-item">
  113. <label class="layui-form-label"></label>
  114. <div class="layui-inline" style="width: 80%">
  115. <label class="layui-form-label">判断题:</label>
  116. <div class="layui-inline" style="width: 85%">
  117. 每题
  118. <div class="layui-inline" style="width: 10%">
  119. <input type="text" lay-verify="intGtz" name="judgment_scores" autocomplete="off" class="layui-input">
  120. </div>
  121. ,简单
  122. <div class="layui-inline" style="width: 10%">
  123. <input type="text" lay-verify="intGtz" name="judgment_simple_count" autocomplete="off" class="layui-input judgment">
  124. </div>
  125. ,中等
  126. <div class="layui-inline" style="width: 10%">
  127. <input type="text" lay-verify="intGtz" name="judgment_mid_count" autocomplete="off" class="layui-input judgment">
  128. </div>
  129. ,困难
  130. <div class="layui-inline" style="width: 10%">
  131. <input type="text" lay-verify="intGtz" name="judgment_hard_count" autocomplete="off" class="layui-input judgment">
  132. </div>
  133. <div class="layui-inline" style="width: 10%">
  134. <label id="id_judgment_total_count" class="layui-form-label">共&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;题</label>
  135. </div>
  136. </div>
  137. </div>
  138. </div>
  139. <div class="layui-form-item">
  140. <label class="layui-form-label"></label>
  141. <div class="layui-inline" style="width: 80%">
  142. <label class="layui-form-label">填空题:</label>
  143. <div class="layui-inline" style="width: 85%">
  144. 每题
  145. <div class="layui-inline" style="width: 10%">
  146. <input type="text" lay-verify="intGtz" name="fill_scores" autocomplete="off" class="layui-input">
  147. </div>
  148. ,简单
  149. <div class="layui-inline" style="width: 10%">
  150. <input type="text" lay-verify="intGtz" name="fill_simple_count" autocomplete="off" class="layui-input fill">
  151. </div>
  152. ,中等
  153. <div class="layui-inline" style="width: 10%">
  154. <input type="text" lay-verify="intGtz" name="fill_mid_count" autocomplete="off" class="layui-input fill">
  155. </div>
  156. ,困难
  157. <div class="layui-inline" style="width: 10%">
  158. <input type="text" lay-verify="intGtz" name="fill_hard_count" autocomplete="off" class="layui-input fill">
  159. </div>
  160. <div class="layui-inline" style="width: 10%">
  161. <label id="id_fill_total_count" class="layui-form-label">共&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;题</label>
  162. </div>
  163. </div>
  164. </div>
  165. </div>
  166. <div class="layui-form-item">
  167. <label class="layui-form-label"></label>
  168. <div class="layui-inline" style="width: 80%">
  169. <label class="layui-form-label">论述题:</label>
  170. <div class="layui-inline" style="width: 85%">
  171. 每题
  172. <div class="layui-inline" style="width: 10%">
  173. <input type="text" lay-verify="intGtz" name="discuss_scores" autocomplete="off" class="layui-input">
  174. </div>
  175. ,简单
  176. <div class="layui-inline" style="width: 10%">
  177. <input type="text" lay-verify="intGtz" name="discuss_simple_count" autocomplete="off" class="layui-input discuss">
  178. </div>
  179. ,中等
  180. <div class="layui-inline" style="width: 10%">
  181. <input type="text" lay-verify="intGtz" name="discuss_mid_count" autocomplete="off" class="layui-input discuss">
  182. </div>
  183. ,困难
  184. <div class="layui-inline" style="width: 10%">
  185. <input type="text" lay-verify="intGtz" name="discuss_hard_count" autocomplete="off" class="layui-input discuss">
  186. </div>
  187. <div class="layui-inline" style="width: 10%">
  188. <label id="id_discuss_total_count" class="layui-form-label">共&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;题</label>
  189. </div>
  190. </div>
  191. </div>
  192. </div>
  193. </div>
  194. </div>
  195. <button class="layui-btn" id="id_save" lay-submit lay-filter="component-form-element"
  196. style="display: none">保存
  197. </button>
  198. </form>
  199. </div>
  200. </div>
  201. </div>
  202. <script src="../../layuiadmin/layui/layui.js"></script>
  203. <script>
  204. layui.config({
  205. base: '../../../layuiadmin/' //静态资源所在路径
  206. }).extend({
  207. index: 'lib/index',
  208. }).use(['index', 'form', 'utils', 'table', ], function () {
  209. var $ = layui.$
  210. , admin = layui.admin
  211. , table = layui.table
  212. , form = layui.form;
  213. var exam_id = layui.view.getParameterByName('exam_id');
  214. admin.req({
  215. url: '/admin/subject/dict/',
  216. done: function (res) {
  217. var subject = res.data.subject;
  218. var subject_node = $('#id_subject');
  219. for (var i in subject) {
  220. var pid = subject[i].id;
  221. var subject_value = subject[i].name;
  222. subject_node.append("<option value='" + pid + "'>" + subject_value + "</option>");
  223. }
  224. form.render();
  225. loadData()
  226. }
  227. });
  228. var loadData = function () {
  229. var subject = $('#id_subject').val();
  230. var type = $('#id_type').val();
  231. if (type === '1'){
  232. $('#fixed').show();
  233. $('#fixed_exampaper').show();
  234. $('#random').hide();
  235. if (subject){
  236. table_reload(subject)
  237. }
  238. }else{
  239. $('#fixed').hide();
  240. $('#fixed_exampaper').hide();
  241. $('#random').show();
  242. }
  243. };
  244. $('.single').on("input", function (e) {
  245. var total = 0;
  246. $('.single').each(function (i) {
  247. var target = $('.single')[i];
  248. var val = parseInt(target.value);
  249. if(!isNaN(val) && val){
  250. total += val
  251. }
  252. });
  253. var txt = '共&nbsp;&nbsp;&nbsp;&nbsp;' + total + '&nbsp;&nbsp;&nbsp;&nbsp;题';
  254. $('#id_single_total_count').html(txt);
  255. });
  256. $('.multiple').on("input", function (e) {
  257. var total = 0;
  258. $('.multiple').each(function (i) {
  259. var target = $('.multiple')[i];
  260. var val = parseInt(target.value);
  261. if(!isNaN(val) && val){
  262. total += val
  263. }
  264. });
  265. var txt = '共&nbsp;&nbsp;&nbsp;&nbsp;' + total + '&nbsp;&nbsp;&nbsp;&nbsp;题';
  266. $('#id_multiple_total_count').html(txt);
  267. });
  268. $('.fill').on("input", function (e) {
  269. var total = 0;
  270. $('.fill').each(function (i) {
  271. var target = $('.fill')[i];
  272. var val = parseInt(target.value);
  273. if(!isNaN(val) && val){
  274. total += val
  275. }
  276. });
  277. var txt = '共&nbsp;&nbsp;&nbsp;&nbsp;' + total + '&nbsp;&nbsp;&nbsp;&nbsp;题';
  278. $('#id_fill_total_count').html(txt);
  279. });
  280. $('.discuss').on("input", function (e) {
  281. var total = 0;
  282. $('.discuss').each(function (i) {
  283. var target = $('.discuss')[i];
  284. var val = parseInt(target.value);
  285. if(!isNaN(val) && val){
  286. total += val
  287. }
  288. });
  289. var txt = '共&nbsp;&nbsp;&nbsp;&nbsp;' + total + '&nbsp;&nbsp;&nbsp;&nbsp;题';
  290. $('#id_discuss_total_count').html(txt);
  291. });
  292. $('.judgment').on("input", function (e) {
  293. var total = 0;
  294. $('.judgment').each(function (i) {
  295. var target = $('.judgment')[i];
  296. var val = parseInt(target.value);
  297. if(!isNaN(val) && val){
  298. total += val
  299. }
  300. });
  301. var txt = '共&nbsp;&nbsp;&nbsp;&nbsp;' + total + '&nbsp;&nbsp;&nbsp;&nbsp;题';
  302. $('#id_judgment_total_count').html(txt);
  303. });
  304. form.render(null, 'component-form-element');
  305. $('#search_btn').on('click', function () {
  306. var subject = $('#id_subject').val();
  307. var name = $('#exampaper_name').val();
  308. table_reload(subject, name)
  309. });
  310. var typeChange = function (value) {
  311. // 如果试卷类型是固定试卷 根据科目和类型 去后端请求相应类型的试卷 加载 如果是 随机试卷 改变table
  312. if (value === '2'){
  313. $('#fixed').hide();
  314. $('#fixed_exampaper').hide();
  315. $('#random').show();
  316. }else if (value === '1'){
  317. $('#fixed').show();
  318. $('#fixed_exampaper').show();
  319. $('#random').hide();
  320. }else{
  321. layer.msg('请选择一个合法试卷类型!', {icon: 2});
  322. return false
  323. }
  324. var subject = $('#id_subject').val();
  325. if (subject && value === '1'){
  326. table_reload(subject);
  327. }
  328. };
  329. var subjectChange = function (value) {
  330. // 如果试卷类型是 固定试卷 科目改变了添加相应科目的固定试卷 如果是随机试卷不做处理
  331. var type = $('#id_type').val();
  332. if (type && type === '1'){
  333. table_reload(value);
  334. }
  335. };
  336. // 试卷类型修改 重新加载table
  337. form.on('select(typeChange)', function (data) {
  338. if (!data.value) return;
  339. typeChange(data.value)
  340. });
  341. // 科目改变 重新加载table
  342. form.on('select(subjectChange)', function (data) {
  343. if (!data.value) return;
  344. subjectChange(data.value)
  345. });
  346. var tbWidth = $('#tableRes').width();
  347. var cols = [
  348. {title: '', type: 'radio', width: '5%', },
  349. {title: '编号', type: 'numbers', width: '8%', },
  350. {title: '名称', field: 'name', width: '20%', },
  351. {title: '科目', field: 'subject_name', width: '15%', },
  352. {title: '总分', field: 'question_total_scores', width: '10%', },
  353. {title: '及格线', field: 'passline', width: '10%', },
  354. {title: '添加人', field: 'create_user_text', width: '10%', },
  355. {title: '时间', field: 'create_time', width: '22%', },
  356. ]
  357. var layTableId = 'layTable';
  358. var tableIns = table.render({
  359. elem: '#dataTable',
  360. id: layTableId,
  361. data: [],
  362. width: tbWidth,
  363. page: true,
  364. limit: 10,
  365. loading: true,
  366. even: true,
  367. cols: [cols],
  368. done: function (data, date, total) {
  369. }
  370. })
  371. var table_reload = function (subject, name='') {
  372. admin.req({
  373. url: '/admin/exampaper/?subject=' + subject + '&name=' + name + '&type=2',
  374. type: 'get',
  375. done: function (res) {
  376. tableIns.reload({
  377. data: res.data,
  378. cols: [cols],
  379. });
  380. }
  381. });
  382. };
  383. form.on('submit(component-form-element)', function(data){
  384. if (data.field.type === '1'){
  385. var url = '/admin/exam/' + exam_id + '/allocation_fixed_exampaper/';
  386. var tableData = table.cache[layTableId], exampaper_id = '', checked = 0;
  387. for (var i = 0; i < tableData.length; i++) {
  388. if (tableData[i].LAY_CHECKED){
  389. checked += 1;
  390. exampaper_id = tableData[i].id;
  391. }
  392. }
  393. if (checked !==1 ){
  394. layer.msg('请选择一张试卷!', {icon: 2});
  395. return false;
  396. }
  397. data.field['exampaper_id'] = exampaper_id
  398. }else{
  399. url = '/admin/exam/' + exam_id + '/allocation_random_exampaper/';
  400. }
  401. admin.req({
  402. url: url
  403. , data: data.field
  404. , type: 'post'
  405. ,done: function(res){
  406. parent.layui.onSubmitChild(res.data);
  407. }
  408. });
  409. return false;
  410. });
  411. parent.layui.submitChild = function () {
  412. $("#id_save").click();
  413. };
  414. });
  415. </script>
  416. </body>
  417. </html>