custUserIndex.html [添加页面代码]

  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" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
  9. <link rel="stylesheet" href="/layuiadmin/layui/css/layui.css" media="all">
  10. <link rel="stylesheet" href="/layuiadmin/style/admin.css" media="all">
  11. </head>
  12. <body>
  13.  
  14. <div class="layui-fluid">
  15. <div class="layui-card">
  16. <div class="layui-form layui-card-header layuiadmin-card-header-auto">
  17. <div class="layui-form-item">
  18. <!-- <div class="layui-inline">
  19. <label class="layui-form-label">编号</label>
  20. <div class="layui-input-block">
  21. <input type="text" name="id" placeholder="请输入编号" autocomplete="off" class="layui-input">
  22. </div>
  23. </div>-->
  24. <!-- <div class="layui-inline">
  25. <label class="layui-form-label">问卷编号</label>
  26. <div class="layui-input-block">
  27. <input type="text" name="qnId" placeholder="请输入问卷编号" autocomplete="off" class="layui-input">
  28. </div>
  29. </div>-->
  30. <!-- <div class="layui-inline">
  31. <label class="layui-form-label">用户编号</label>
  32. <div class="layui-input-block">
  33. <input type="text" name="userId" placeholder="请输入用户编号" autocomplete="off" class="layui-input">
  34. </div>
  35. </div>-->
  36. <div class="layui-inline">
  37. <label class="layui-form-label">用户邮箱</label>
  38. <div class="layui-input-block">
  39. <input type="text" name="emain" placeholder="请输入用户邮箱" autocomplete="off" class="layui-input">
  40. </div>
  41. </div>
  42. <div class="layui-inline">
  43. <label class="layui-form-label">完成时间</label>
  44. <div class="layui-input-block">
  45. <input type="text" id="completeDate" name="completeDate" placeholder="请输入完成时间" autocomplete="off" class="layui-input">
  46. </div>
  47. </div>
  48. <!-- <div class="layui-form-item">
  49. <label class="layui-form-label">有效期始</label>
  50. <div class="layui-input-inline">
  51. <input type="text" name="validateStart" id="validateStart" lay-verify="required" placeholder="请输入有效期始" autocomplete="off" class="layui-input layer-date start">
  52. </div>-->
  53. <!-- <div class="layui-inline">
  54. <label class="layui-form-label">排序</label>
  55. <div class="layui-input-block">
  56. <input type="number" name="sort" placeholder="请输入排序" autocomplete="off" class="layui-input">
  57. </div>
  58. </div>
  59. <div class="layui-inline">
  60. <label class="layui-form-label">备注</label>
  61. <div class="layui-input-block">
  62. <input type="text" name="remark" placeholder="请输入备注" autocomplete="off" class="layui-input">
  63. </div>
  64. </div>
  65. -->
  66. <div class="layui-inline">
  67. <button class="layui-btn layuiadmin-btn-admin" lay-submit lay-filter="manager_search">
  68. <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
  69. </button>
  70. </div>
  71. </div>
  72. </div>
  73.  
  74. <div class="layui-card-body">
  75. <div style="padding-bottom: 10px;">
  76. <!--更改为批量上传,先选择问卷,然后添加然后上传-->
  77. <button class="layui-btn layuiadmin-btn-admin" data-type="add">批量上传</button>
  78. </div>
  79.  
  80. <table id="table_manage" lay-filter="table_manage"></table>
  81. <script type="text/html" id="table_operate_html">
  82. <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="openKS"><i class="layui-icon layui-icon-edit"></i>开始考试</a>
  83. <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="openKS"><i class="layui-icon layui-icon-edit"></i>生成报告</a>
  84. <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="openKS"><i class="layui-icon layui-icon-edit"></i>查看报告</a>
  85. <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
  86. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
  87. </script>
  88. </div>
  89. </div>
  90. </div>
  91.  
  92. <script src="/layuiadmin/layui/layui.js"></script>
  93. <script>
  94. layui.config({
  95. base: '/layuiadmin/' //静态资源所在路径
  96. }).extend({
  97. index: 'lib/index' //主入口模块
  98. }).use(['index','laydate', 'table'], function(){
  99. var $ = layui.$
  100. ,form = layui.form
  101. ,table = layui.table;
  102. var laydate = layui.laydate;//实例化引用
  103. laydate.render({//构造
  104. elem: '#completeDate' //指定元素
  105. ,type: 'datetime',//时间类型
  106. min: '1900-1-1 00:00:00',//开始
  107. max: '2099-6-16 23:59:59',//结束
  108. trigger: 'click' //采用click弹出
  109. ,theme: '#393D49'//自定义颜色
  110. ,calendar: true,//公历
  111.  
  112. });
  113.  
  114. table.render({
  115. elem: "#table_manage",
  116. url: "/custUser/list",
  117. page: true,
  118. autoSort:false,
  119. response:{statusCode:200},
  120. initSort:{
  121. field: 'id'
  122. ,type: 'desc'
  123. },done:function(res,curr,count){
  124. // 隐藏列
  125. $(".layui-table-box").find("[data-field='id']").css("display","none");
  126.  
  127. },
  128. cols: [
  129. [
  130. {field: "id",title: "编号",sort: !0},
  131. {field: "qnId",title: "问卷名称",width: "20%",sort: !0},
  132. {field: "userId",title: "用户名",width: "20%",sort: !0},
  133. {field: "emain",title: "用户邮箱",width: "10%",sort: !0},
  134. {field: "completeDate",title: "完成时间",width: "10%",sort: !0},
  135. {title: "操作",width: "40%",align: "center",fixed: "right",toolbar: "#table_operate_html"}
  136. ]],
  137. text: "对不起,加载出现异常!"
  138. }),
  139. table.on("sort(table_manage)", function(obj){ //注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值"
  140. //尽管我们的 table 自带排序功能,但并没有请求服务端。
  141. //有些时候,你可能需要根据当前排序的字段,重新向服务端发送请求,从而实现服务端排序,如:
  142. console.log(obj);
  143. table.reload("table_manage", {
  144. initSort: obj //记录初始排序,如果不设的话,将无法标记表头的排序状态。 layui 2.1.1 新增参数
  145. ,where: { //请求参数(注意:这里面的参数可任意定义,并非下面固定的格式)
  146. field: obj.field //排序字段
  147. ,order: obj.type //排序方式
  148. }
  149. });
  150. });
  151. table.on("tool(table_manage)",
  152. function(e) {
  153. e.data;
  154. if ("del" === e.event){
  155. layer.confirm("确定删除此受试者?",
  156. function(t) {
  157. $.ajax({
  158. type: "post",
  159. url: "/custUser/delete?id="+e.data.id,
  160. success: function (result) {
  161. console.log(result);
  162. table.reload('table_manage'); //数据刷新
  163. layer.close(t); //关闭弹层
  164. }
  165. });
  166. });
  167. }
  168. //考试,生成报告,。
  169. if ("openKS" === e.event){
  170. layer.msg('正在完善中,请稍等..');
  171. }
  172.  
  173. else if ("edit" === e.event) {
  174. console.log($(e.tr));
  175. layer.open({
  176. type: 2,
  177. title: "编辑受试者",
  178. content: "/custUser/prepareUpdate?id="+e.data.id,
  179. area: ["710px", "450px"],
  180. btn: ["确定", "取消"],
  181. yes: function(e, t) {
  182. var l = window["layui-layer-iframe" + e],
  183. r = "manager_submit",
  184. n = t.find("iframe").contents().find("#" + r);
  185. l.layui.form.on("submit(" + r + ")",
  186. function(t) {
  187. t.field;
  188. console.log(t.field);
  189. $.ajax({
  190. type: "post",
  191. url: "/custUser/update",
  192. data:t.field,
  193. success: function (result) {
  194. console.log(result);
  195. table.reload('table_manage'); //数据刷新
  196. layer.close(e); //关闭弹层
  197. }
  198. });
  199. }),
  200. n.trigger("click")
  201. },
  202. success: function(e, t) {}
  203. })
  204. }
  205. })
  206.  
  207. //监听搜索
  208. form.on('submit(manager_search)', function(data){
  209. var field = data.field;
  210.  
  211. //执行重载
  212. table.reload('table_manage', {
  213. where: field
  214. });
  215. });
  216.  
  217. //事件
  218. var active = {
  219. batchdel: function(){
  220. var checkStatus = table.checkStatus('table_manage')
  221. ,checkData = checkStatus.data; //得到选中的数据
  222.  
  223. if(checkData.length === 0){
  224. return layer.msg('请选择数据');
  225. }
  226.  
  227. layer.prompt({
  228. formType: 1
  229. ,title: '敏感操作,请验证口令'
  230. }, function(value, index){
  231. layer.close(index);
  232.  
  233. layer.confirm('确定删除吗?', function(index) {
  234.  
  235. //执行 Ajax 后重载
  236. /*
  237. admin.req({
  238. url: 'xxx'
  239. //,……
  240. });
  241. */
  242. table.reload('table_manage');
  243. layer.msg('已删除');
  244. });
  245. });
  246. },
  247.  
  248. //添加受试者
  249. /*
  250.  
  251. */
  252.  
  253. /*
  254. layer.open({
  255. type: 2
  256. ,title: '添加试卷'
  257. ,content: '/custQuestionnaire/choose',
  258. area: ["1510px", "610px"]
  259. ,btn: ['确定', '取消']
  260. ,yes: function(index, layero){
  261. var iframeWindow = window['layui-layer-iframe'+ index]
  262. ,submitID = 'manager_submit'
  263. ,submit = layero.find('iframe').contents().find('#'+ submitID);
  264.  
  265. //监听提交
  266. iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
  267. var field = data.field; //获取提交的字段
  268. console.log(field);
  269. //提交 Ajax 成功后,静态更新表格中的数据
  270. $.ajax({
  271. type: "post",
  272. url: "/custUser/insert",
  273. data:field,
  274. success: function (result) {
  275. console.log(result);
  276. table.reload('table_manage'); //数据刷新
  277. layer.close(index); //关闭弹层
  278. }
  279. });
  280.  
  281. });
  282.  
  283. submit.trigger('click');
  284. }
  285. });
  286. */
  287. add: function(){
  288. var ide= layer.open({
  289. type: 2,
  290. title: "添加试卷",
  291. content: "/custQuestionnaire/choose",
  292. area: ["1300px", "450px"],
  293. btn: ["确定", "取消"],
  294. shadeClose:true,//点击阴影处关闭窗口。
  295. yes: function(index, layero) {
  296.  
  297. var iframeWindow = window['layui-layer-iframe'+ index]
  298. ,submitID = 'btn2_choose'
  299. ,submit = layero.find('iframe').contents().find('#'+ submitID);
  300. var selected = layero.find("iframe")[0].contentWindow.getSelected();
  301. console.log(selected);
  302. //将用户id和授权文档进行绑定
  303. /* $.ajax({
  304. cache:false,
  305. type:"post",
  306. data:{"CompanyData":JSON.stringify(selected),"id":e.data.id} ,
  307. url:"/custUser/inserts",
  308. async:true,
  309. traditional:true,
  310. success:function (res) {
  311. if(res.code=='200'){
  312. if(res.msg=="-1"){
  313. layer.msg("授权成功");
  314. //关闭当前窗口
  315. layer.close(ide);
  316. //刷新当前页面..
  317. //location.reload();
  318. }else{
  319. layer.msg(res.msg);
  320. //关闭当前窗口
  321. layer.close(ide);
  322.  
  323. }
  324.  
  325. }
  326.  
  327. }, error:function(res){
  328. alert(res.msg)
  329.  
  330. }
  331. })*/
  332.  
  333. },
  334. success: function(e, t) {}
  335. })
  336. }
  337.  
  338. }
  339. $('.layui-btn.layuiadmin-btn-admin').on('click', function(){
  340. var type = $(this).data('type');
  341. active[type] ? active[type].call(this) : '';
  342. });
  343. });
  344. </script>
  345. </body>
  346. </html>

  被请求页面代码:custQuestionnaireChoose.html

  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" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
  9. <link rel="stylesheet" href="/layuiadmin/layui/css/layui.css" media="all">
  10. <link rel="stylesheet" href="/layuiadmin/style/admin.css" media="all">
  11. </head>
  12. <body>
  13.  
  14. <div class="layui-fluid">
  15. <div class="layui-card">
  16. <div class="layui-form layui-card-header layuiadmin-card-header-auto">
  17. <div class="layui-form-item">
  18.  
  19. <div class="layui-inline">
  20. <label class="layui-form-label">名称</label>
  21. <div class="layui-input-block">
  22. <input type="text" name="title" placeholder="请输入名称" autocomplete="off" class="layui-input">
  23. </div>
  24. </div>
  25. <!--修改-->
  26. <div class="layui-inline">
  27. <label class="layui-form-label">问卷类型</label>
  28. <div class="layui-input-block">
  29. <select name="type" lay-verify="">
  30. <option value="">请输入</option>
  31. <option value="dist">dist</option>
  32. <option value="360">360</option>
  33. </select>
  34. </div>
  35. </div>
  36.  
  37. <div class="layui-inline">
  38. <button class="layui-btn layuiadmin-btn-admin" lay-submit lay-filter="manager_search">
  39. <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
  40. </button>
  41. </div>
  42. </div>
  43. </div>
  44.  
  45. <div class="layui-card-body">
  46. <div style="padding-bottom: 10px;">
  47. <button class="layui-btn layuiadmin-btn-admin" data-type="add">添加</button>
  48. </div>
  49.  
  50. <table id="table_manage" lay-filter="table_manage"></table>
  51. <div style="display:none;">
  52. <button id="btn2_choose" class="layui-btn layuiadmin-btn-admin" data-type="choose">选择</button>
  53. </div>
  54.  
  55. </div>
  56. </div>
  57. </div>
  58.  
  59. <script src="/layuiadmin/layui/layui.js"></script>
  60. <script>
  61. var checkData=[];
  62. layui.config({
  63. base: '/layuiadmin/' //静态资源所在路径
  64. }).extend({
  65. index: 'lib/index' //主入口模块
  66. }).use(['index', 'table'], function(){
  67. var $ = layui.$
  68. ,form = layui.form
  69. ,table = layui.table;
  70.  
  71. table.render({
  72. elem: "#table_manage",
  73. url: "/custQuestionnaire/list",
  74. page: true,
  75. autoSort:false,
  76. response:{statusCode:200},
  77. initSort:{
  78. field: 'id'
  79. ,type: 'desc'
  80. },done:function(res,curr,count){
  81. // 隐藏列
  82. $(".layui-table-box").find("[data-field='id']").css("display","none");
  83.  
  84. },
  85. cols: [
  86. [
  87. {type:'checkbox'},
  88. {field: "id",title: "编号",sort: !0},
  89. {field: "title",title: "名称",width:"15%",sort: !0},
  90. {field: "type",title: "问卷类型",width:"10%",sort: !0, templet: function(d){
  91. if (d.type=="dist") { // 自定义内容
  92. return "dist";
  93. } else if (d.type=="360") {
  94. return "360";
  95. }
  96. else {
  97. return "其他";
  98. }
  99. } },
  100. {field: "start",title: "导语",width:"15%",sort: !0},
  101. {field: "end",title: "结束语",width:"15%",sort: !0},
  102. {field: "report",title: "报告语",width:"15%",sort: !0},
  103.  
  104. {title: "操作",width:"30%",align: "center",fixed: "right",toolbar: "#table_operate_html"}
  105. ]],
  106. text: "对不起,加载出现异常!"
  107. }),
  108. table.on("sort(table_manage)", function(obj){ //注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值"
  109. //尽管我们的 table 自带排序功能,但并没有请求服务端。
  110. //有些时候,你可能需要根据当前排序的字段,重新向服务端发送请求,从而实现服务端排序,如:
  111. console.log(obj);
  112. table.reload("table_manage", {
  113. initSort: obj //记录初始排序,如果不设的话,将无法标记表头的排序状态。 layui 2.1.1 新增参数
  114. ,where: { //请求参数(注意:这里面的参数可任意定义,并非下面固定的格式)
  115. field: obj.field //排序字段
  116. ,order: obj.type //排序方式
  117. }
  118. });
  119. });
  120. table.on("tool(table_manage)",
  121. function(e) {
  122. e.data;
  123. if ("del" === e.event){
  124. layer.confirm("确定删除此授权问卷?",
  125. function(t) {
  126. $.ajax({
  127. type: "post",
  128. url: "/custQuestionnaire/delete?id="+e.data.id,
  129. success: function (result) {
  130. console.log(result);
  131. table.reload('table_manage'); //数据刷新
  132. layer.close(t); //关闭弹层
  133. }
  134. });
  135. });
  136. }
  137.  
  138. })
  139.  
  140. //监听搜索
  141. form.on('submit(manager_search)', function(data){
  142. var field = data.field;
  143.  
  144. //执行重载
  145. table.reload('table_manage', {
  146. where: field
  147. });
  148. });
  149.  
  150. //事件
  151. var active = {
  152. choose: function(){
  153. var checkStatus = table.checkStatus('table_manage');
  154. checkData = checkStatus.data; //得到选中的数据
  155.  
  156. if(checkData.length === 0){
  157. return layer.msg('请选择数据');
  158. }
  159.  
  160. return checkData;
  161. }
  162.  
  163. }
  164.  
  165. $('.layui-btn.layuiadmin-btn-admin').on('click', function(){
  166. var type = $(this).data('type');
  167. active[type] ? active[type].call(this) : '';
  168. });
  169. });
  170. </script>
  171. </body>
  172. </html>
  173. <script src="/jquery/jquery-3.3.1.js"></script>
  174. <script>
  175. var getSelected = function () {
  176. $("#btn2_choose").click();
  177. var selected = checkData;
  178. return selected;
  179. }
  180. </script>

  

layui页面操作,点击一个添加页面,跳转有确定,然后点击确定后将选择的几个数据返回前一个页面获取值,然后ajax请求后台的更多相关文章

  1. Laravel 5.2+ 使用url()全局函数返回前一个页面的地址

    注意:文章标题中5.2+表示该文章内容可向上兼容,适用于Laravel版本5.2及更高(目前最新为5.6),但不可向下兼容,即不适用于5.2版本以下.推荐大家花一点点时间,将自己的Laravel更新至 ...

  2. Spring MVC中Controller如何将数据返回给页面

    要实现Controller返回数据给页面,Spring MVC 提供了以下几种途径: ModelAndView:将视图和数据封装成ModelAndView对象,作为方法的返回值,数据最终会存到Http ...

  3. C# 动态创建SQL数据库(二) 在.net core web项目中生成二维码 后台Post/Get 请求接口 方式 WebForm 页面ajax 请求后台页面 方法 实现输入框小数多 自动进位展示,编辑时实际值不变 快速掌握Gif动态图实现代码 C#处理和对接HTTP接口请求

    C# 动态创建SQL数据库(二) 使用Entity Framework  创建数据库与表 前面文章有说到使用SQL语句动态创建数据库与数据表,这次直接使用Entriy Framwork 的ORM对象关 ...

  4. JS 操作 HTML 和 AJAX 请求后台数据

    为某个元素插入值,添加属性,添加子元素 <div class="col-sm-6"> <select class="form-control" ...

  5. 高德地图 JS API (jsp + miniui(子页面数据返回父页面并设值) + 单个点标记 + 点标记经纬度 + 回显 + 限制地图显示范围+搜索)

    -*-  父页面js function mapFocus(){ //console.log("-*-"); var longitude = mini.get("jd&qu ...

  6. WebForm 页面ajax 请求后台页面 方法

    function ReturnOperation(InventoryID) { //入库 接口 if (confirm('你确认?')) { $.ajax({ type: "post&quo ...

  7. Qt中实现点击一个label,跳转到打开一个浏览器链接

    配置模块 首先需要在.pro配置文件中添加QT += network 重写自定义Label .h文件 class MyClickLabel : public QLabel { Q_OBJECT pub ...

  8. vux 表单提交数据 返回后页面跳转

    ps:仅作参考

  9. jquery,从后台查数据,给页面上添加树形。

    前台jquery+ajax请求往页面上添加树形的js代码 //传入当前点击节点的id,在后台代码查询出parentid=当前节点id的记录数,从而实现点击当前节点,往后台发送ajax请求,查询出子节点 ...

随机推荐

  1. 某个buuctf的题(easy_tornado)

    题目:http://88099f53-12b6-470a-9993-b73e4155940e.node3.buuoj.cn/ 1首先看三个文件的内容 2简单分析 如果出题人没整一些花里胡哨的,那么fl ...

  2. 2020.4.6--UCF Local Programming Contest 2017的正式赛

    Problem A : Electric Bill 题目大意:进行电量分级制收费,1000kwh及以下一档收费,1000kwh以上按另一档收费,给出每个人的电量总额,问每人应支付多少钱. 思路:基础i ...

  3. Go语言核心36讲(Go语言基础知识六)--学习笔记

    06 | 程序实体的那些事儿 (下) 在上一篇文章,我们一直都在围绕着可重名变量,也就是不同代码块中的重名变量,进行了讨论.还记得吗? 最后我强调,如果可重名变量的类型不同,那么就需要引起我们的特别关 ...

  4. k8s 关于Job与Cronjob

    在Kubernetes 中通过创建工作负载资源 Job 可完成大型计算以及一些批处理任务.比如 Job 转码文件.获取部分文件和目录,机器学习中的训练任务等.这篇小作文我们一起来了解 k8s 中关于 ...

  5. Less-(38~41) 堆叠注入

    首先申明,Less-(38~41)可以采取和Less-(1~4)相同的解法:(一一对应) 然而,他们的漏洞其实更大,我们可以做更多具有破坏性的事情. 代码审计: Less-(38~41): 41的$s ...

  6. Java继承中父类和子类构造函数的问题

    父类有无参构造函数时(显示或隐式),子类的有参和无参构造函数都是默认调用父类的无参构造函数:当父类只有有参构造函数时,子类可以有有参和无参构造函数,子类有参构造函数必须显式调用父类的有参构造函数,子类 ...

  7. leetcode 6/300 Z字型变换 py

    目录 题目说明 方法一:利用flag 题目说明 方法一:利用flag 简单来说就是利用flag来表示方向,真的神来之笔. class Solution: def convert(self, s: st ...

  8. Noip模拟50 2021.9.10

    已经好长时间没有考试不挂分的良好体验了... T1 第零题 开场数据结构,真爽 对于这道题首先要理解对于一条链从上向下和从下向上走复活次数相等 (这可能需要晚上躺在被窝里面脑摸几种情况的样例) 然后就 ...

  9. Noip模拟32(再度翻车) 2021.8.7

    T1 Smooth 很水的一道题...可是最傻    的是考场上居然没有想到用优先队列优化... 上来开题看到这个,最一开始想,这题能用模拟短除法,再一想太慢了,就想着优化 偏偏想到线性筛然后试别的素 ...

  10. VS2019、Qt5.12及QGis3.16开发常见问题汇总

    在C++.Qt软件开发过程中,常常遇到一些编译错误或警告:本文将VS2019.Qt5.12.10和QGis3.16.10的二次开发过程常见的问题做了整理,供大家参考,也便于日后查阅.该内容分为四部分: ...