热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LayUI结合Guns使用技巧方法记录

记录一些guns框架结合LayUI使用遇到解决的问题及方法1、父页面获取子页面的表单数据原理就是父页面调用子页面的方法,触发隐藏的按钮提交表单,返回需

记录一些guns框架结合LayUI使用遇到解决的问题及方法



1、父页面获取子页面的表单数据

原理就是父页面调用子页面的方法,触发隐藏的按钮提交表单,返回需要的数据!

父页面弹出框

layer.open({type: 2, //iframe 层skin: 'layui-layer-admin',area:['1000px',"580px"],title:'修改关键性结果',btn: ['确定', '取消'],content:Feng.ctxPath+'/duties/duties_update_result',success: function(layero, index){},yes: function(index, layero){//获取子页面的数据 原理是调用子页面的 getMgrDatas 方法 返回值var getMgrDatas = $(layero).find("iframe")[0].contentWindow.getMgrDatas();layer.close(index);},btn2: function(index, layero){layer.close(index);}
});

子页面的js内容

var dutiesResultData = {};
layui.use(['layer', 'form', 'xmSelect'], function () {// 表单提交事件form.on('submit(btnSubmit)', function (data) {data.field.cooper = getMgrName.getValue('nameStr');data.field.coopers = getMgrName.getValue();data.field.cooperIds = JSON.parse(JSON.stringify(getMgrName.getValue('value')));data.field.tempId = new Date().valueOf();dutiesResultData = data.field;//刷新父页弹窗数据return false;});
})
function getMgrDatas() {document.getElementById("dutiesResultSubmit").click();return dutiesResultData;
}

子页面的html

<button style&#61;"display: none" id&#61;&#39;dutiesResultSubmit&#39; class&#61;"layui-btn" lay-filter&#61;"btnSubmit" lay-submit>确定button>

2、子页面获取父页面的数据

//在父页面声明全局的参数 赋值
var upData &#61; {"name":"张三"};

//在子页面获取数据
var setUpDataTrans &#61; parent.upData;

此方法获取数据的前提是打开页面的方法必须用此方法&#xff0c;不可用func.open

layer.open({type: 2, //iframe 层skin: &#39;layui-layer-admin&#39;,area:[&#39;1000px&#39;,"580px"],title:&#39;修改关键性结果&#39;,btn: [&#39;确定&#39;, &#39;取消&#39;],content:Feng.ctxPath&#43;&#39;/duties/duties_update_result&#39;,success: function(layero, index){},yes: function(index, layero){},btn2: function(index, layero){layer.close(index);}});

3、layui导入插件

在项目中建好目录将js插件放入指定目录&#xff0c;进行layui.config

// 以下代码是配置layui扩展模块的目录&#xff0c;每个页面都需要引入
layui.config({version: Feng.version,base: Feng.ctxPath &#43; &#39;/assets/common/module/&#39;
}).extend({//在此处配置插件即可//合并单元格插件tableMerge: &#39;../../expand/module/tableMerge/tableMerge&#39;,//xm-select插件xmSelect:&#39;../../expand/module/xmSelect/xmSelect&#39;}).use([&#39;layer&#39;], function () {
});

使用插件

//直接导入插件即可使用
layui.use([&#39;layer&#39;, &#39;xmSelect&#39;], function () {var layer &#61; layui.layer;var xmSelect &#61; layui.xmSelect;
})

4、guns中ajax携带数组参数请求处理

优化ax.js&#xff0c;优化后的代码如下&#xff1a;

layui.define([&#39;jquery&#39;], function (exports) {var $ &#61; layui.$;var $ax &#61; function (url, success, error,contentType) {this.url &#61; url;this.type &#61; "post";this.data &#61; {};this.dataType &#61; "json";if(contentType){this.contentType &#61; contentType}else{this.contentType &#61; "application/x-www-form-urlencoded;charset&#61;utf-8";}this.async &#61; false;this.success &#61; success;this.error &#61; error;};//添加弹出层var axindex &#61; null;$ax.prototype &#61; {start: function () {axindex &#61; layer.load(0, {shade: false});var me &#61; this;var result &#61; "";if (this.url.indexOf("?") &#61;&#61;&#61; -1) {this.url &#61; this.url &#43; "?jstime&#61;" &#43; new Date().getTime();} else {this.url &#61; this.url &#43; "&jstime&#61;" &#43; new Date().getTime();}$.ajax({type: me.type,url: me.url,dataType: me.dataType,contentType:me.contentType,async: me.async,data: me.data,beforeSend: function (data) {},success: function (data) {result &#61; data;if (me.success !&#61;&#61; undefined) {me.success(data);}},error: function (data) {if (me.error !&#61;&#61; undefined) {me.error(data);}}});layer.close(axindex);return result;},set: function (key, value) {if (typeof key &#61;&#61;&#61; "object") {for (var i in key) {if (typeof i &#61;&#61;&#61; "function")continue;this.data[i] &#61; key[i];}} else {this.data[key] &#61; (typeof value &#61;&#61;&#61; "undefined") ? $("#" &#43; key).val() : value;}return this;},setData: function (data) {this.data &#61; data;return this;},clear: function () {this.data &#61; {};return this;}};exports(&#39;ax&#39;, $ax);
});

使用时的参数设置

const ajax&#61;new $ax(Feng.ctxPath&#43;"/quarContent/edit",function(data){Feng.success("修改成功&#xff01;");//传给上个页面&#xff0c;刷新table用admin.putTempData(&#39;formOk&#39;,true);//关掉对话框admin.closeThisDialog();},function(data){Feng.error("修改失败&#xff01;"&#43;data.responseJSON.message)},"application/json");ajax.setData(JSON.stringify(data.field));ajax.start();

java后台接收

/*** 修改数据** &#64;param quarContent* &#64;return*/&#64;Permission&#64;RequestMapping("/edit")&#64;ResponseBodypublic ResponseData editQuarContent(&#64;RequestBody QuarContent quarContent) {this.quarContentService.editQuarContent(quarContent);return SUCCESS_TIP;}

推荐阅读
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
author-avatar
听海的音_104
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有