zoukankan      html  css  js  c++  java
  • 【js】【笔记】普通js常用

    var util = {
        //返回上一个页面
        breakpage: function (p) {
            if (p == undefined) {
                p = -1;
            }
            window.location.href = "javascript:history.go(" + p + ")";
        },
    
        //时间转换
        convertTime: function (val) {
            var date;
            if (typeof val == 'string' && val.indexOf("Date") <= -1) {
                date = new Date(val);
            } else {
                var re = /-?d+/;
                var m = re.exec(val);
                date = new Date(parseInt(m[0]));
            }
            return date;
        },
    
        //时间格式化显示
        formatTime: function (val, format) {
            if (val == '' || val == null) {
                return '';
            }
            var date;
            if (typeof val == 'string' && val.indexOf("Date") <= -1) {
                date = new Date(val);
            } else if (typeof val == 'object') {
                //时间格式
                date = val;
            }
            else {
                var re = /-?d+/;
                var m = re.exec(val);
                date = new Date(parseInt(m[0]));
            }
            if (format || format != null) {
                var o = {
                    "M+": date.getMonth() + 1, //month
                    "d+": date.getDate(), //day
                    "H+": date.getHours(), //hour
                    "m+": date.getMinutes(), //minute
                    "s+": date.getSeconds(), //second
                    "q+": Math.floor((date.getMonth() + 3) / 3), //quarter
                    "S": date.getMilliseconds() //millisecond
                }
                if (/(y+)/.test(format)) format = format.replace(RegExp.$1,
                    (date.getFullYear() + "").substr(4 - RegExp.$1.length));
    
                for (var k in o)
                    if (new RegExp("(" + k + ")").test(format))
                        format = format.replace(RegExp.$1,
                            RegExp.$1.length == 1 ? o[k] :
                                ("00" + o[k]).substr(("" + o[k]).length));
            }
            return format;
        },
    
        //表单提交重定向
        formSubmitRedrict: function (url, datas, method, target, bc) {
            var tempFormName = 'tempForm';
            for (var i = 0; document.getElementById(tempFormName) != undefined; i++) {
                tempFormName = 'tempForm' + i;
            }
            var tempForm = document.createElement("form");
            tempForm.id = tempFormName;
            tempForm.method = method == undefined ? "post" : method;
            tempForm.action = url;
            tempForm.target = target == undefined ? "" : target;
            for (var i = 0; i < datas.length; i++) {
                var hideInput = document.createElement("input");
                hideInput.type = "hidden";
                hideInput.name = datas[i].name;
                hideInput.value = datas[i].value;
                tempForm.appendChild(hideInput);
            }
    
            if (bc == undefined) {
                bc = function () { }
            }
            if (document.all) {
                tempForm.attachEvent("onsubmit", bc);        //IE
            } else {
                tempForm.addEventListener("submit", bc);    //firefox
            }
            document.body.appendChild(tempForm);
            if (document.all) {
                tempForm.fireEvent("onsubmit");
            } else {
                tempForm.dispatchEvent(new Event("submit"));
            }
            tempForm.submit();
            document.body.removeChild(tempForm);
        },
    
        //copy到剪切板
        copyText: function (data, cb) {
            //data==={text: OrderNo,target:$event.target }
            //创建隐藏的标签
            var textArea;
            try {
                textArea = document.createElement("<textarea></textarea>");
            } catch (e) {
                textArea = document.createElement("textarea");
            }
            textArea.textContent = data.text;
    
            //不显示出来
            textArea.style.width = '1px';
            textArea.style.height = '1px';
            textArea.style.color = textArea.style.backgroundColor;
    
            //定位,不滚动
            if (!data.target) {
                data.target = document.body;
            }
    
            data.target.appendChild(textArea);
    
            textArea.select(); // 选择对象
    
            var res = false;
            try {
                res = document.execCommand("copy");//复制
            } catch (err) {
                data.target.removeChild(textArea);
                console.log('该浏览器不支持点击复制到剪贴板');
            }
    
            if (cb && typeof cb == "function") {
                cb(res)
            }
            data.target.removeChild(textArea);
        },
    
        //生成【类型-名称】获取器,本地session存储,可用于过滤器调用
        GetTypeNameModel: function (op) {
            var model = {
                sessionStorageKey: op.sessionStorageKey,//此类型在本地session中key值
                apiUrl: op.apiUrl,//此类型列表获取接口
                idKey: op.idKey,//此类型在对象中id标识字段名
                nameKey: op.nameKey,//此类型在对象中显示名称字段名
                list: [],
                getList: function () {
                    var list = sessionStorage.getItem(model.sessionStorageKey);
                    if (list) {
                        model.list = JSON.parse(list);
                    } else {
                        ajaxProtogenesis.ajax("post", model.apiUrl, true, {}, function (res) {
                            model.list = res.RetData;
                            sessionStorage.setItem(model.sessionStorageKey, JSON.stringify(model.list));
                        })
                    }
                },
                getName: function (id) {//根据类型获取名称的方法
                    if (model.list == [] || model.length == 0) {
                        model.getList();
                    }
                    var res = '';
                    if (model.list.length > 0) {
                        for (var i = 0; i < model.list.length; i++) {
                            if (model.list[i][model.idKey] == id) {
                                res = model.list[i][model.nameKey];
                                break;
                            }
                        }
                    }
                    return res;
                }
            };
            model.getList();
            return model;
        },
    
        //数组转为二维数组形式成表格的行
        arrayToRow: function (model, all, rowNo, maxCell,defaultData) {
            //model行的数组,all所有数据数组,rowNo当前行下标,maxCell总列数,defaultData数据不存在时用默认值填充
    
            //获取当前这行数据
            var row = [];
            for (var i = 0; i < maxCell; i++) {
                if (all.length > rowNo * maxCell + i) {
                    row.push(all[rowNo * maxCell + i]);
                } else {
                    row.push(defaultData)
                }
            }
            model.push(row);
            rowNo++;//下一行下标
    
            if (all.length > rowNo * maxCell) {
                this.arrayToRow(model, all, rowNo, maxCell, defaultData);
            }
            return model;
        },
        //数组转为二维数组形式成表格
        arrayToTable: function (all, maxRow, maxCell,def) {
            //all所有数据数组,单张表maxRow总行数,maxCell总列数,def默认值。
    
            //每张表的数据数组
            var tableDatas = [];
            util.arrayToRow(tableDatas, all, 0, maxRow * maxCell, def);
    
            //为表获取行
            var tables = [];
            for (var i = 0; i < tableDatas.length; i++) {
                var rows = [];
                rows = util.arrayToRow(rows, tableDatas[i], 0, maxCell, def);
                tables[i] = rows;
            }
    
            return tables;
        },
        //数组转为二维数组形式成表格_示例
        arrayToTableTest: function () {
            var all = [];
            for (var i = 0; i < 97; i++) {
                all.push(i + 1);
            }
            var t96 = this.arrayToTable(all, 12, 8, {})
            console.log(t96);
            return t96;
        },
    
        //添加属性到util,用合并对象的方式,用来给全局调用的属性,但要注意属性名称冲突
        addAssign: function (obj) {
            Object.assign(util, obj);
        }
    };
    //获取样本类型名称方法对象
    util.TypeNameModel_SampleType = util.GetTypeNameModel({
        sessionStorageKey: "_sampleTypeList20210932",
        apiUrl: "/Product/ProductInfo/GetProductExtractionSampleDTO",
        idKey: "ExtractionSampleTypeId",
        nameKey: "SampleTypeName",
    });
    
    ////ng过滤器例:
    //FeiYeNGApp.filter("SampleType", function () {
    //    return function (input) {
    //        return util.TypeNameModel_SampleType.getName(input);
    //    }
    //});
    
    //微信小程序转ng电脑端,复制代码做部分中间处理
    var wx = {
        //本地缓存
        setStorageSync: function (key, value) {
            if (typeof value == "object") {
                value = JSON.stringify(value);
            }
            localStorage.setItem(key, value);
        },
        getStorageSync: function (key) {
            var value = localStorage.getItem(key);
            try {
                return JSON.parse(value);
            } catch (e) {
            }
            return value;
        },
        removeStorageSync: function (key) {
            localStorage.removeItem(key);
        },
    
        //跳转
        navigateTo: function (data) {
            document.location.href = data.url;
        },
        navigateBack: function (data) {
            if (!data) {
                util.breakpage(-1);
                return;
            }
            util.breakpage((0 - data.delta));
        }
    };
  • 相关阅读:
    hdu 4496 D-City 并查集
    hdu 4493 Tutor 水题
    codeforces 377A. Puzzles 水题
    hdu 1257 小希的迷宫 并查集
    图论500题
    cdoj 93 King's Sanctuary 傻逼几何题
    cdoj 题目简单分类
    cdoj 80 Cube 水题
    cdoj 71 I am Lord Voldemort 水题
    cdoj 65 CD Making 水题
  • 原文地址:https://www.cnblogs.com/lanofsky/p/15357140.html
Copyright © 2011-2022 走看看