公共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'}); } }