公共JS方法
/*! * Copyright (c) 2013-Now http://jeesite.com All rights reserved. * 项目自定义的公共JavaScript,可覆盖jeesite.js里的方法 */ // 帆软报表地址 var FINE_BI_URL = ""; /*让form页面只读(不包含文件上传/图片上传区域) *@method js.readonlyAll *@return null */ js.readonlyAll = function(){ // form表单整体不可点击 $("form *").attr("disabled", true); // 所有A标签, 所有按钮隐藏, 隐藏附件(图片)上面的继续添加按钮 , 隐藏附件(图片)上面的删除按钮 $(".wup_file .btns, .wup_img .btns, .wup_file .delete,.wup_img .cancel, a, button").hide(); // 显示文件下载, 预览按钮 , 关闭按钮 $("#btnCancel, .preview, .wup_file .blue").show().attr("disabled", false); } /* 批量操作 LIST/FORM页面中对数据进行批量提交、删除、驳回等操作 *@method 确定将<button class="batch">XXX</button>放入到<XXX class="box-tools"></XXX>中 *列表中必须包含id字段 {header:'${text('id')}', name:'id', index:'a.id'} 批量操作只针对ID传值 *@param {Boolean} [参数名]:data-mult [参数说明] 多选为true 单选为 false * {String} [参数名]:data-confirm [参数说明] 弹出框提示内容 $ 将替换成提交的数量(默认值:"确认操作这$条数据?") * {String} [参数名]:data-loading [参数说明] 点击确认按钮后loading的内容 * {String} [参数名]:data-id [参数说明] dataGrid的id 默认为 $("#dataGrid") * {String} [参数名]:data-url [参数说明] 需要提交的地址 * {String} [参数名]:data-remarks [参数说明] 需要填写原因的(比如填写驳回原因) 后台接收remarks * {String} [参数名]:data-cid [参数说明] 用于form页面的提交/驳回等 data-cid为当前的id data-cid="${xxx.id}" *@receive 服务端需要接收参数 {String} [参数名]:ids [参数说明] 选择的数据id,如果多选将用英文逗号隔开 * 服务端需要接收参数 {String} [参数名]:remarks [参数说明] 如果需要驳回类似操作,remarks将接收弹出框输入的内容 *@example {list页面提交} <button type="button" class="btn btn-default btn-sm batch" data-url="XXX/submit" * data-confirm="确认提交这$条数据?" data-mult="false"><i class="fa fa-check"></i> 提交</button> * {list页面驳回} <button type="button" class="btn btn-default btn-sm batch" data-remarks="true" data-url="XXX/reject" * data-confirm="确认驳回这$条数据,请输入驳回原因?" data-mult="false"><i class="red fa icon-arrow-left-circle confimBtn"></i> 驳回</button> * {form页面提交} <button type="button" class="btn btn-sm btn-default confimBtn batch" data-remarks="true" data-url="XXX/reject" * data-confirm="确认提交这条数据?" data-mult="false" data-cid="${XXX.id}"> * <i class="fa fa-check"></i> 审核</button> * {form页面驳回} <button type="button" class="btn btn-sm btn-default confimBtn batch" data-remarks="true" data-url="XXX/reject" * data-confirm="确认驳回这条数据,请输入驳回原因?" data-mult="false" data-cid="${XXX.id}"> * <i class="red fa icon-arrow-left-circle confimBtn"></i> 驳回</button> * {XXXcontroller} // 驳回 * @RepeatSubmit @RequiresPermissions("XXX") @PostMapping(value = "reject") @ResponseBody public String reject(String ids, String status, String remarks) { return XXXService.reject(ids, status, remarks); } // 提交 @RepeatSubmit @RequiresPermissions("xs:xsInquiryMain:edit") @PostMapping(value = "submit") @ResponseBody public String submit(String ids) { return xsInquiryMainService.submit(ids); } *@remarks 按钮必须包含class="batch",按钮父级必须包含class="box-tools",建议form页面和list页面的审核使用同一接口 */ $(".box-tools").delegate(".batch", "click", function(){ // 是否允许多选 默认是允许 var mult = $(this).data("mult"); // 提交的url地址 var url = $(this).data("url"); if (url == "") { return js.showErrorMessage("data-url参数不能为空"); } // 提示内容 var confirm = $(this).data("confirm") || "确认操作这$条数据?", loading = $(this).data("loading") || "加载中...", dataGridId = $(this).data("id") || "dataGrid"; // 是否已传入ID var currentId = $(this).data("cid"); // 是否需要写备注 var remarks = $(this).data("remarks"); // 判断showCheckbox if(currentId){ var showCheckbox = false; var ids = currentId; var selectLength = 1; } else { var showCheckbox = $('#' + dataGridId).dataGrid('getParam', "showCheckbox"); var ids = showCheckbox ? $('#' + dataGridId).dataGrid('getSelectRows') : $('#' + dataGridId).dataGrid('getSelectRow'); if (ids == null || ids.length == 0) { if (mult) { return js.showErrorMessage("请至少选择一条数据"); } else { return js.showErrorMessage("请选择一条数据"); } } // 获取选中元素长度 var selectLength = showCheckbox ? ids.length: 1; if (selectLength > 1 && mult == false) { return js.showErrorMessage("请选择一条数据"); } } if(remarks){ layer.prompt({ formType: 2, title: confirm.replace("$", selectLength), area: ['300px', '80px'], btnAlign: 'c', yes: function(index, layero){ // 获取文本框输入的值 var value = layero.find(".layui-layer-input").val(); js.ajaxSubmit(url, {ids: showCheckbox ? ids.join(",") : ids, remarks: value}, function(data){ if (data.result == Global.TRUE) { js.showMessage(data.message); if(currentId){ js.closeCurrentTabPage(function(contentWindow){ contentWindow.page(); }); } else { $('#' + dataGridId).dataGrid('refresh'); } } else { js.showErrorMessage(data.message); } }, 'json', true, loading) } }); } else { // 提交数据 js.confirm(confirm.replace("$", selectLength), url, { ids: showCheckbox ? ids.join(",") : ids }, function(data) { if (data.result == Global.TRUE) { js.showMessage(data.message); if(currentId){ js.closeCurrentTabPage(function(contentWindow){ contentWindow.page(); }); } else { $('#' + dataGridId).dataGrid('refresh'); } } else { js.showErrorMessage(data.message); } }, 'json', true, loading); } }); /* * 报表 * 放入.box-tools 中 必须包含class report * 列表中必须包含id字段 {header:'${text('id')}', name:'id', index:'a.id'}, * data-mult 多选为true 单选为 false * data-url 报表地址 * <button class="btn btn-default report" data-url="report.cpt" data-mult="false" title="${text('报表')}"> * <i class="fa fa-bar-chart" style="color:blue"></i> ${text('报表')}</button> */ $(".box-tools").delegate(".report", "click", function(){ // 是否允许多选 默认是允许 var mult = $(this).data("mult"); // 提交的url地址 var url = $(this).data("url"); if (url == "") { return js.showErrorMessage("data-url参数不能为空"); } dataGridId = $(this).data("id") || "dataGrid"; // 判断showCheckbox var showCheckbox = $('#' + dataGridId).dataGrid('getParam', "showCheckbox"); var ids = showCheckbox ? $('#' + dataGridId).dataGrid('getSelectRows') : $('#' + dataGridId).dataGrid('getSelectRow'); if (ids == null || ids.length == 0) { if (mult) { return js.showErrorMessage("请至少选择一条数据"); } else { return js.showErrorMessage("请选择一条数据"); } } // 获取选中元素长度 var selectLength = showCheckbox ? ids.length: 1; if (selectLength > 1 && mult == false) { return js.showErrorMessage("请选择一条数据"); } window.open(FINE_BI_URL + (url.indexOf("?") == -1 ? url + "?" : url) + "id=" + (showCheckbox ? ids.join(",") : ids),'_blank'); }); /*打开帆软报表 *@method js.openWebReport *@param{String} [参数名]: param[参数说明]: url拼接 name=zhangsan&age=15 */ js.openWebReport = function(param) { window.open(FINE_BI_URL + param,'_blank'); } // 验证必须两位小数 class 加入 twoDecimal <input class="twoDecimal"> if (jQuery && jQuery.validator) { jQuery.validator.addMethod("twoDecimal", function(value, element) { var twoDecimal = /^(-d|d){0,20}.{0,1}(d{1,2})?$/; return this.optional(element) || (twoDecimal.test(value)); },"金额不正确,最多两位小数"); } // 验证必须四位小数 class 加入 fourDecimal <input class="fourDecimal"> if (jQuery && jQuery.validator) { jQuery.validator.addMethod("fourDecimal", function(value, element) { var fourDecimal = /^(-d|d){0,20}.{0,1}(d{1,4})?$/; return this.optional(element) || (fourDecimal.test(value)); },"重量不正确,最多四位小数"); }
子表日期选择框不灵敏
formatter:'date', formatoptions:{srcformat:'Y-m-d H:i:s',newformat:'Y-m-d'}, editable:true, edittype:'text', editoptions:{'class':'form-control laydate edit-able', 'readonly':'true', dataInit: function(element){ laydate.render({elem:element, type:'date', format:'yyyy-MM-dd', trigger: 'click'}); } }