zoukankan      html  css  js  c++  java
  • 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'});
    }
    }
  • 相关阅读:
    grep命令详解
    Git命令详解(一)-个人使用
    android intent和intent action大全
    android 监控EditText的变化
    第86章、系统服务之TELEPHONY_SERVICE(从零开始学Android)
    android中getSystemService详解
    关于android各种双卡手机获取imei,imsi的处置(mtk,展讯,高通等)
    Android 获取运营商信息(完整版)-解决高通,MTK等双卡问题
    Android 移动缩放的ImageView
    Android 读写SD卡的文件
  • 原文地址:https://www.cnblogs.com/shuaihan/p/13030203.html
Copyright © 2011-2022 走看看