exampaper_edit.html 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
  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>
  167. </div>
  168. <button class="layui-btn" id="id_save" lay-submit lay-filter="component-form-element"
  169. style="display: none">保存
  170. </button>
  171. </form>
  172. </div>
  173. </div>
  174. </div>
  175. <script src="../../layuiadmin/layui/layui.js"></script>
  176. <script>
  177. layui.config({
  178. base: '../../../layuiadmin/' //静态资源所在路径
  179. }).extend({
  180. index: 'lib/index',
  181. }).use(['index', 'form', 'utils', 'table', ], function () {
  182. var $ = layui.$
  183. , admin = layui.admin
  184. , table = layui.table
  185. , form = layui.form;
  186. var exam_id = layui.view.getParameterByName('exam_id');
  187. admin.req({
  188. url: '/admin/subject/dict/',
  189. done: function (res) {
  190. var subject = res.data.subject;
  191. var subject_node = $('#id_subject');
  192. for (var i in subject) {
  193. var pid = subject[i].id;
  194. var subject_value = subject[i].name;
  195. subject_node.append("<option value='" + pid + "'>" + subject_value + "</option>");
  196. }
  197. form.render();
  198. loadData()
  199. }
  200. });
  201. var loadData = function () {
  202. var subject = $('#id_subject').val();
  203. var type = $('#id_type').val();
  204. if (type === '1'){
  205. $('#fixed').show();
  206. $('#fixed_exampaper').show();
  207. $('#random').hide();
  208. if (subject){
  209. table_reload(subject)
  210. }
  211. }else{
  212. $('#fixed').hide();
  213. $('#fixed_exampaper').hide();
  214. $('#random').show();
  215. }
  216. };
  217. $('.single').on("input", function (e) {
  218. var total = 0;
  219. $('.single').each(function (i) {
  220. var target = $('.single')[i];
  221. var val = parseInt(target.value);
  222. if(!isNaN(val) && val){
  223. total += val
  224. }
  225. });
  226. var txt = '共&nbsp;&nbsp;&nbsp;&nbsp;' + total + '&nbsp;&nbsp;&nbsp;&nbsp;题';
  227. $('#id_single_total_count').html(txt);
  228. });
  229. $('.multiple').on("input", function (e) {
  230. var total = 0;
  231. $('.multiple').each(function (i) {
  232. var target = $('.multiple')[i];
  233. var val = parseInt(target.value);
  234. if(!isNaN(val) && val){
  235. total += val
  236. }
  237. });
  238. var txt = '共&nbsp;&nbsp;&nbsp;&nbsp;' + total + '&nbsp;&nbsp;&nbsp;&nbsp;题';
  239. $('#id_multiple_total_count').html(txt);
  240. });
  241. $('.fill').on("input", function (e) {
  242. var total = 0;
  243. $('.fill').each(function (i) {
  244. var target = $('.fill')[i];
  245. var val = parseInt(target.value);
  246. if(!isNaN(val) && val){
  247. total += val
  248. }
  249. });
  250. var txt = '共&nbsp;&nbsp;&nbsp;&nbsp;' + total + '&nbsp;&nbsp;&nbsp;&nbsp;题';
  251. $('#id_fill_total_count').html(txt);
  252. });
  253. $('.judgment').on("input", function (e) {
  254. var total = 0;
  255. $('.judgment').each(function (i) {
  256. var target = $('.judgment')[i];
  257. var val = parseInt(target.value);
  258. if(!isNaN(val) && val){
  259. total += val
  260. }
  261. });
  262. var txt = '共&nbsp;&nbsp;&nbsp;&nbsp;' + total + '&nbsp;&nbsp;&nbsp;&nbsp;题';
  263. $('#id_judgment_total_count').html(txt);
  264. });
  265. form.render(null, 'component-form-element');
  266. $('#search_btn').on('click', function () {
  267. var subject = $('#id_subject').val();
  268. var name = $('#exampaper_name').val();
  269. table_reload(subject, name)
  270. });
  271. var typeChange = function (value) {
  272. // 如果试卷类型是固定试卷 根据科目和类型 去后端请求相应类型的试卷 加载 如果是 随机试卷 改变table
  273. if (value === '2'){
  274. $('#fixed').hide();
  275. $('#fixed_exampaper').hide();
  276. $('#random').show();
  277. }else if (value === '1'){
  278. $('#fixed').show();
  279. $('#fixed_exampaper').show();
  280. $('#random').hide();
  281. }else{
  282. layer.msg('请选择一个合法试卷类型!', {icon: 2});
  283. return false
  284. }
  285. var subject = $('#id_subject').val();
  286. if (subject && value === '1'){
  287. table_reload(subject);
  288. }
  289. };
  290. var subjectChange = function (value) {
  291. // 如果试卷类型是 固定试卷 科目改变了添加相应科目的固定试卷 如果是随机试卷不做处理
  292. var type = $('#id_type').val();
  293. if (type && type === '1'){
  294. table_reload(value);
  295. }
  296. };
  297. // 试卷类型修改 重新加载table
  298. form.on('select(typeChange)', function (data) {
  299. if (!data.value) return;
  300. typeChange(data.value)
  301. });
  302. // 科目改变 重新加载table
  303. form.on('select(subjectChange)', function (data) {
  304. if (!data.value) return;
  305. subjectChange(data.value)
  306. });
  307. var tbWidth = $('#tableRes').width();
  308. var cols = [
  309. {title: '', type: 'radio', width: '5%', },
  310. {title: '编号', type: 'numbers', width: '8%', },
  311. {title: '名称', field: 'name', width: '20%', },
  312. {title: '科目', field: 'subject_name', width: '15%', },
  313. {title: '总分', field: 'question_total_scores', width: '10%', },
  314. {title: '及格线', field: 'passline', width: '10%', },
  315. {title: '添加人', field: 'create_user_text', width: '10%', },
  316. {title: '时间', field: 'create_time', width: '22%', },
  317. ]
  318. var layTableId = 'layTable';
  319. var tableIns = table.render({
  320. elem: '#dataTable',
  321. id: layTableId,
  322. data: [],
  323. width: tbWidth,
  324. page: true,
  325. limit: 10,
  326. loading: true,
  327. even: true,
  328. cols: [cols],
  329. done: function (data, date, total) {
  330. }
  331. })
  332. var table_reload = function (subject, name='') {
  333. admin.req({
  334. url: '/admin/exampaper/?subject=' + subject + '&name=' + name + '&type=2',
  335. type: 'get',
  336. done: function (res) {
  337. tableIns.reload({
  338. data: res.data,
  339. cols: [cols],
  340. });
  341. }
  342. });
  343. };
  344. form.on('submit(component-form-element)', function(data){
  345. if (data.field.type === '1'){
  346. var url = '/admin/exam/' + exam_id + '/allocation_fixed_exampaper/';
  347. var tableData = table.cache[layTableId], exampaper_id = '', checked = 0;
  348. for (var i = 0; i < tableData.length; i++) {
  349. if (tableData[i].LAY_CHECKED){
  350. checked += 1;
  351. exampaper_id = tableData[i].id;
  352. }
  353. }
  354. if (checked !==1 ){
  355. layer.msg('请选择一张试卷!', {icon: 2});
  356. return false;
  357. }
  358. data.field['exampaper_id'] = exampaper_id
  359. }else{
  360. url = '/admin/exam/' + exam_id + '/allocation_random_exampaper/';
  361. }
  362. admin.req({
  363. url: url
  364. , data: data.field
  365. , type: 'post'
  366. ,done: function(res){
  367. parent.layui.onSubmitChild(res.data);
  368. }
  369. });
  370. return false;
  371. });
  372. parent.layui.submitChild = function () {
  373. $("#id_save").click();
  374. };
  375. });
  376. </script>
  377. </body>
  378. </html>