Jeesite4常見問題總結


 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM