2022分享一份基于layui开发框架的日常js函数清单

  • 原创
  • 作者:程序员三丰
  • 发布时间:2022-06-01 13:07
  • 浏览量:532
虽然现在现在流行现代框架 Vue,React,Angular ,但是有些项目处于历史原因,以及技术选型考虑,还有很多在使用或基于 Layui ,现在很多管理后台在一些中小型项目中首选还是 Layui 。而我个人用 Layui 做过太多项目,从早期的只有 Layer,到后期发展为 Layui,包括官方的商用 LayuiAdmin,我都很熟悉,目前的工作中有些后台还是基于 Layui 构建。诚然,虽然不被推崇,但是不一样的编程体验,我对此乐此不疲! 今天,我就把日常工作整理和使用的 js 清单分享给大家,希望对有需要的人有所帮助!

Alert 弹框(基于Layui的模块layer封装)

操作成功信息提示框

/**
 * 统一操作成功信息提示框
 * 
 * @param msg
 * @param time
 * @param callback
 */
function alert_success(msg = '操作成功', time = 5000, callback = null) {
    layer.msg(msg, {icon: 1, shade: 0.1, shadeClose: true, time: time}, function () {
        callback && callback()
    })
}

操作失败信息提示框

/**
 * 统一操作失败信息提示框
 *
 * @param msg
 * @param time
 * @param callback
 */
function alert_error(msg = '操作失败', time = 5000, callback = null) {
    layer.msg(msg, {icon: 2, shade: 0.1, btn: ['确定'], time: time}, function () {
        callback && callback()
    })
}

toast错误消息提示框

/**
 * 统一toast错误消息提示框
 *
 * @param msg
 * @param time
 */
function totast_error(msg = '操作失败', time = 5000) {
    layer.msg(msg, {icon: 2, shade: 0.1, shadeClose: true, anim: 6, time: time})
}

加载中信息提示框

/**
 * 统一加载中信息提示框
 * @param msg
 * @param shade
 * @returns number 弹层index
 */
function alert_loading(msg = '请求处理中……', shade = 0.3) {
    return layer.msg(msg, {icon: 16, time: 0, shade: shade})
}

开发中信息提示框

/**
 * 开发中信息提示框,支持提示信息自定义
 *
 * @param msg
 */
function alert_undev(msg = '开发中,敬请期待....') {
    layer.msg(msg, {icon: 4, shade: 0.1, shadeClose: true, btn: ['确定'], btnAlign: 'c', time: 5000})
}

其他常用函数

获取文件后缀

/**
 * 获取文件后缀
 * @param filename
 * @returns {string}
 */
function get_file_ext(filename) {
    return filename.split('.').pop().toLowerCase()
}

获取文件名称

/**
 * 获取文件名称
 * @param filename
 * @returns {string}
 */
function get_file_name(filename) {
    return filename.split('/').pop()
}

判断后缀是否为图片

/**
 * 判断后缀是否为图片
 * @param ext
 * @returns {boolean}
 */
function check_imagefile_byext(ext) {
    return $.inArray(ext, ['jpg', 'png', 'gif', 'bmp', 'jpeg']) !== -1
}

判断文件是否为图片

/**
 * 判断文件是否为图片
 * @param filename
 * @returns {boolean}
 */
function check_imagefile_byfilename(filename) {
    return check_imagefile_byext(get_file_ext(filename))
}

判断后缀是否为 office文档

/**
 * 判断后缀是否为 office文档
 * @param ext
 * @returns {boolean}
 */
function check_officefile_byext(ext) {
    return $.inArray(ext, ['doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx']) !== -1
}

隐藏身份证号码中间8位

/**
 * 隐藏身份证号码中间8位
 * @param id
 * @returns {string}
 */
function safe_idcard(id) {
    return id.slice(0, 6) + '*'.repeat(8) + id.slice(14)
}

获取url参数

/**
 * 获取url参数
 * @param param_name
 * @param parent
 * @returns {string|boolean}
 */
function get_url_queryparams(param_name, parent = false) {
    const location_o = parent === true ? window.parent.location : window.location
    const query = location_o.search.substring(1);
    const params = query.split("&");
    for (let i = 0; i < params.length; i++) {
        const key_value = params[i].split("=");
        if (key_value[0] == param_name) {
            return key_value[1];
        }
    }
    return (false);
}

随机返回一个Array数组元素

function array_random(arr) {
    return arr[Math.floor(Math.random() * arr.length)];
}

检测是否微信浏览器

function isWxBrowser() {
    if (window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == "micromessenger") {
        return true
    } else {
        return false
    }
}
声明:本文为原创文章,51blog.xyz和作者拥有版权,如需转载,请注明来源于51blog.xyz并保留原文链接:https://www.51blog.xyz/article/26

文章归档

强烈推荐的PHP全栈开发后台管理系统
buildadmin logo
Thinkphp8 Vue3 Element PLus TypeScript Vite Pinia

🔥BuildAdmin是一个永久免费开源,无需授权即可商业使用,且使用了流行技术栈快速创建商业级后台管理系统。

推荐文章

热门标签

PHP ThinkPHP ThinkPHP5.1 Go Mysql Mysql5.7 Redis Linux CentOS7 Git HTML CSS CSS3 Javascript JQuery Vue LayUI VMware Uniapp 微信小程序 docker wiki Confluence7 学习笔记 uView ES6 Ant Design Pro of Vue React ThinkPHP6.0 chrome 扩展 翻译工具 Nuxt SSR 服务端渲染 scrollreveal.js ThinkPHP8.0 Mac webman 跨域CORS vscode GitHub ECharts Canvas vue3 three.js 微信支付 PHP全栈开发 Python AI 人工智能 AI辅助 工作经验 实战笔记