ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

vue共用的 混淆

2022-01-21 11:32:42  阅读:763  来源: 互联网

标签:混淆 vue return url value else callback rule 共用


//引入混淆
import { tool } from "../../../utils/common";
export default {
  mixins: [tool],
}

可以直接调用混淆中的方法

 this.downloadFile(item.path, item.name);

common.js

import ajax from '@/utils/request'
import $ from 'jquery-slim'

export const ruleTool = {
    data() {
        return {
            rules: {
                // 必填规则
                required(msg = '请输入') {
                    return { required: true, message: msg, trigger: 'change' };
                },
                // 税率规则
                cess(required = true, msg = '请输入100以下非负数') {
                    return { validator: formRule.cess, message: msg, trigger: 'change' };
                },
                // 金额规则
                money(required = true, msg = '请输入正确格式的金额') {
                    return { validator: formRule.money, required: required, message: msg, trigger: 'change' };
                },
                // 整数规则
                int(required = true, size = [], msg = '请输入正整数') {
                    return { validator: formRule.numberSize, required: required, size: size, message: msg, trigger: 'change' };
                },
            },
        }
    },
}

export const tool = {
    data() {
        return {
            searchParam: {},
            pageSize: 10,
            pageSizeSetting: [10, 20, 40, 100],
            page: 1, // 当前页
            listCount: 1,
            listUrl: "",
            pageLayout: "total, sizes, prev, pager, next, jumper",
            list: [],
            loading: false
        }
    },
    watch: {
        loading(val) {
            this.$root.$children[0].loading = val;
        },
    },
    // 返回页面调用
    activated() {
        this.getList();
    },
    methods: {
        // 切换列表Url
        getListByUrl(url) {
            this.listUrl = url;
            this.resetList();
        },
        //重置筛选
        resetList() {
            this.searchParam = {};
            this.handleCurrentChange(1);
        },
        //切换页容量
        handleSizeChange(val) {
            this.pageSize = val;
            this.page = 1;
            this.getList();
        },
        //翻页
        handleCurrentChange(val) {
            this.page = val;
            this.getList();
        },
        getListBefore(params) {},
        getListAfter(callback) {},
        //查询列表
        getList(callback) {

            if (!this.listUrl) {
                return;
            }
            const params = Object.assign({}, this.searchParam);
            console.info("1111111111", this.searchParam)
            params.size = this.pageSize;
            params.current = this.page;
            // params.rows = this.pageSize;
            // params.page = this.page;
            this.getListBefore(params);
            ajax.get(this.listUrl, params).then(res => {

                if (typeof res.records === "object") {
                    this.list = res.records;
                    this.listCount = res.total;
                }
                if (typeof res.rows === "object") {
                    this.list = res.rows;
                    this.listCount = res.records;
                }
                if (typeof res.list === "object") {
                    this.list = res.list;
                    this.listCount = res.total;
                } else {
                    $.isFunction(callback) && callback(res);
                    this.getListAfter();
                }
            })
        },

        showMessage(text, type, callback) {
            this.$message({
                showClose: true,
                message: text,
                duration: 2000,
                type: type || 'error',
                onClose: callback || function() {}
            });
        },
        checkResponse(res, disabledMessage) {
            if (res && res.status == 0) {
                return true;
            } else {
                this.showMessage(res.message);
                return false;
            }
        },
        closeCurPage(url) {
            let tag = $(".tags-view-item.active .el-icon-close");
            this.$router.push({ path: url });
            window.setTimeout(_ => {
                tag.click();
            }, 500);
        },
        getCurrentUserInfo() {
            return this.extend(true, {}, this.$store.getters.user);
        },
        getCurrentUserAuthority(url) {
            let auth = this.$store.getters.auth;
            return auth.indexOf(url) !== -1;
        },

        downloadFile(filePath, fileName) {
            var param = "filePath=" + filePath +
                "&fileName=" + fileName;
            location.href = encodeURI(this.exportUrl("file/download/downloadFile?" + param));
        },

        exportUrl(url) {
            var token = this.$store.getters.token;
            if (token) {
                if (url.indexOf("?") != -1) {


                    return process.env.VUE_APP_API + url + "&access_token=" + token + "&t=" + new Date().getTime();
                } else {



                    return process.env.VUE_APP_API + url + "?access_token=" + token + "&t=" + new Date().getTime();
                }
            } else {
                if (url.indexOf("?") != -1) {

                    return process.env.VUE_APP_API + url + "&t=" + new Date().getTime();
                } else {
                    return process.env.VUE_APP_API + url + "?t=" + new Date().getTime();
                }

            }
        },
        add() {
            if (~this.$route.fullPath.indexOf("/add?")) {
                return;
            }
            let url = this.$route.fullPath;
            if (url.indexOf("?") != -1) {
                url = url.split("?")[0];
            }
            url = url + '/add';
            this.$router.push({ path: url });
        },
        addDrawer() {
            this.$refs['formTemplate'].open();
        },
        editDrawer(id) {
            this.$refs['formTemplate'].open(id);
        },
        edit(id) {
            if (~this.$route.fullPath.indexOf("/edit?")) {
                return;
            }
            let url = this.$route.fullPath;
            if (url.indexOf("?") != -1) {
                url = url.split("?")[0];
            }
            url = url + '/edit?id=' + id;
            this.$router.push({ path: url });
        },
        close() {
            let i;
            if (this.$route.fullPath.indexOf('/detail/') !== -1) {
                i = this.$route.fullPath.lastIndexOf('/detail/');

            } else {
                i = this.$route.fullPath.lastIndexOf('/');
            }
            let url = this.$route.fullPath.substring(0, i);
            this.closeCurPage(url);
        },
        toDetail(row) {
            if (~this.$route.fullPath.indexOf("/detail/")) {
                return;
            }
            let url = this.$route.fullPath + '/detail/' + row.id;
            this.$router.push({ path: url });
        },
        toPage(url) {
            this.$router.push({ path: url });
        },
        extend: $.extend,
        showBigImg(e) {
            let img = $("<img>");
            img[0].src = e.target.src;
            let div = $("<div class='full-big-img'>").append(img);
            div.on("click", function() {
                $(this).remove();
            });
            $("body").append(div);
        },

        handleFileByWps(fileId, type) {
            this.$router.push({ path: `/common/index/wps/view/${fileId}/${type}` });
            // this.$router.push({ path: "/common/index/wps/view/" });
        },

        chickFileTypeForWps(suffix, type) {
            let readType = ['xls', 'xlt', 'et', 'xlsx', 'xltx', 'csv', 'xlsm', 'xltm', 'doc', 'dot', 'wps', 'wpt', 'docx', 'dotx', 'docm', 'dotm', 'ppt', 'pptx', 'pptm', 'ppsx', 'ppsm', 'pps', 'potx', 'potm', 'dpt', 'dps', 'pdf']
            let writeType = ['xls', 'xlt', 'et', 'xlsx', 'xltx', 'csv', 'xlsm', 'xltm', 'doc', 'dotx', 'txt', 'dot', 'wps', 'wpt', 'docx', 'docm', 'dotm', 'ppt', 'pptx', 'pptm', 'ppsx', 'ppsm', 'pps', 'potx', 'potm', 'dpt', 'dps', 'pdf']
            if (type == 'read') {
                return readType.indexOf(suffix) > -1
            }
            if (type == 'write') {
                return writeType.indexOf(suffix) > -1
            }
        },
        // 各行变色
        tableRowClassName({ row, rowIndex }) {
            //  
            if (rowIndex % 2 == 0) {
                return "warning-row";
            } else if (rowIndex % 2 == 1) {
                return "success-row";
            }
            return "";
        }

    },
    mounted() {

    },


};

export const statConfig = {
    methods: {
        // 公用饼图配置
        getChartPieOption() {
            return {
                color: ['#2a78fd', '#f73b3b', '#58d24c', '#ff5824', '#ff9600'],
                legend: {
                    show: false,
                    top: 40,
                    right: 30,
                    orient: 'vertical',
                    icon: "circle"
                },
                grid: {
                    left: "30px",
                    right: "30px",
                    top: "330px",
                    bottom: "20px",
                },
                series: {
                    radius: '40%',
                    center: ['22%', '50%'],
                    type: 'pie',
                    label: {
                        normal: {
                            show: false,
                            position: 'outside',
                            formatter: '{b} {d}%', //模板变量有 {a}、{b}、{c}、{d},分别表示系列名,数据名,数据值,百分比。{d}数据会根据value值计算百分比
                        },
                    },
                },
            }
        },
    }
};

export const formRule = {
    /**
     * 通用验证 reg可自定义验证正则
     * 常用正则:http://note.youdao.com/noteshare?id=537934c2896cad5aa2cb50e323102d8e&sub=EE59464E3EDC46A08A5F71E4E928CC62
     * field: [{ validator: formRule.common, reg:/^[1][3,4,5,7,8][0-9]{9}$/, message: 'xxxx', trigger: 'change' }],
     */
    common(rule, value, callback) {
        if (!rule.required && !value && value !== 0) {
            return callback();
        }
        if (!rule.reg.test(value)) {
            return callback(new Error(rule.message));
        } else {
            return callback();
        }
    },
    /**
     * 验证数字大小
     * field: [{ validator: formRule.number, size:[1,10], message: 'xxxx', trigger: 'change' }],
     */
    number(rule, value, callback) {
        if (!rule.required && !value && value !== 0) {
            return callback();
        }
        if (isNaN(value)) {
            return callback(new Error(rule.message));
        } else if (rule.size && rule.size.length == 2 && (value < rule.size[0] || value > rule.size[1])) {
            return callback(new Error("请输入" + rule.size.join("-") + "的数字"));
        } else {
            return callback();
        }
    },
    /**
     * 验证数字长度
     * field: [{ validator: formRule.numberSize, size:[1,10], message: 'xxxx', trigger: 'change' }],
     */
    numberSize(rule, value, callback) {
        if (!rule.required && !value && value !== 0) {
            return callback();
        }
        if (isNaN(value) || (rule.size && rule.size.length == 2 && (value < rule.size[0] || value > rule.size[1]))) {
            return callback(new Error(rule.message));
        } else {
            return callback();
        }
    },
    /**
     * 验证整数
     * field: [{ validator: formRule.numberSize, size:[1,10], message: 'xxxx', trigger: 'change' }],
     */
    standardSize(rule, value, callback) {
        if (!rule.required && !value && value !== 0) {
            return callback();
        }
        if (isNaN(value) || (rule.size && rule.size.length == 2 && (value < rule.size[0] || value > rule.size[1])) ||
            (value.toString().indexOf(".") != -1) || (value.toString().charAt(0) == "0" && value.length > 1)) {
            return callback(new Error(rule.message));
        } else {
            return callback();
        }
    },
    isNumber(rule, value, callback) {
        if (value === '') {
            return callback();
        } //这是用来判断如果不是必须输入的,则直接跳出
        const r = /^\+?[1-9][0-9]*$/; // 正整数
        // 如果判断不符合正则,则不是正整数不能提交
        if (!r.test(value)) {
            return callback(new Error('数量必须为正整数'));
        } else {
            return callback();
        }
    },

    /**
     * 验证手机号码
     * field: [{ validator: formRule.phone, message: 'xxxx', trigger: 'change' }],
     */
    phone(rule, value, callback) {
        if (!rule.required && !value && value !== 0) {
            return callback();
        }
        if (isNaN(value) || (value.length != 11) || (value.toString().indexOf(".") != -1)) {
            return callback(new Error(rule.message));
        } else {
            return callback();
        }
    },
    /**
     * 验证手机号码(与required配合使用,空值时不校验)
     */
    isMobilePhone(rule, value, callback) {
        if (!rule.required && !value && value !== 0) { //只有有值时才进行校验
            return callback();
        } else {
            let reg = /^((1[3-9][0-9])+\d{8})$/;
            if (reg.test(value)) {
                return callback();
            } else {
                return callback(new Error(rule.message));
            }
        }
    },
    /**
     * 验证固定电话(与required配合使用,空值时不校验)
     */
    isFixedPhone(rule, value, callback) {
        if (!rule.required && !value && value !== 0) { //只有有值时才进行校验
            return callback();
        } else {
            let reg = /^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/;
            if (reg.test(value)) {
                return callback();
            } else {
                return callback(new Error(rule.message));
            }
        }
    },
    /**
     * 税率(<=100,2位小数)
     */
    cess(rule, value, callback) {
        if (!rule.required && !value && value !== 0) {
            return callback();
        } else {
            let reg = /^\d{1,2}(?:\.\d{1,2})?$/;
            if (reg.test(value) || parseFloat(value) == 100) {
                return callback();
            } else {
                return callback(new Error(rule.message));
            }
        }
    },
    /**
     * 金额校验(11位整数,2位小数)
     * @param rule
     * @param value
     * @param callback
     */
    money(rule, value, callback) {
        if (!rule.required && !value && value !== 0) {
            return callback();
        } else {
            let reg = /^\d{1,11}(?:\.\d{1,2})?$/;
            if (reg.test(value)) {
                return callback();
            } else {
                return callback(new Error(rule.message));
            }
        }
    },
    /**
     * 校验车牌号
     * @param rule
     * @param value
     * @param callBack
     */
    validatePlate(rule, value, callBack) {
        if (!value) {
            callBack();
        } else if (value.length >= 7) {
            var provinceArray = ['京', '津', '冀', '晋', '蒙', '辽', '吉', '黑', '沪', '苏', '浙', '皖', '闽', '赣', '鲁', '豫', '鄂', '湘', '粤', '桂', '琼', '渝', '川', '黔', '滇', '藏', '陕', '甘', '青', '宁', '新', '台', '港', '澳']
            var plateProvince = value.substring(0, 1);
            var plateNo = value.substring(1, value.length)
            if (provinceArray.indexOf(plateProvince) > 0) {
                if (/^[A-Z][A-Z0-9]{5,6}$/.test(plateNo)) {
                    callBack();
                } else {
                    callBack(new Error('车牌号格式有误'));
                }
            } else {
                callBack(new Error('车牌号格式有误'));
            }
        } else {
            callBack(new Error('车牌号格式有误'));
        }
    },
    /**
     * 校验小数
     * @param rule
     * @param value
     * @param callBack
     */
    validateNumber(rule, value, callBack) {
        if (!value) {
            callBack();
        } else if (!(/^(?!0+(?:\.0+)?$)(?:[1-9]\d*|0)(?:\.\d{1,4})?$/.test(value.replace(new RegExp(/,/g), '')) || /^(0|0[.]0|0[.]00)$/.test(value.replace(new RegExp(/,/g), '')))) {
            callBack(new Error('数字格式有误'));
        } else if (value > 99999999999.99) {
            callBack(new Error('您输入的金额太大'));
        } else {
            callBack();
        }
    }
};

/**
 * 公共文件下载
 * 跨域问题,需要在服务端增加跨域配置
 */
export const downloadFile = {
    download(url, fileName) {
        downloadFile.getBlob(url).then(blob => {
            downloadFile.saveAs(blob, fileName);
        });
    },
    /**
     * 获取 blob
     * @param  {String} url 目标文件地址
     * @return {Promise}
     */
    getBlob(url) {
        return new Promise(resolve => {
            const xhr = new XMLHttpRequest();
            xhr.open('GET', url, true);
            xhr.responseType = 'blob';
            xhr.onload = () => {
                if (xhr.status === 200) {
                    resolve(xhr.response);
                }
            };
            xhr.send();
        });
    },

    /**
     * 保存
     * @param  {Blob} blob
     * @param  {String} filename 想要保存的文件名称
     */
    saveAs(blob, filename) {
        if (window.navigator.msSaveOrOpenBlob) {
            navigator.msSaveBlob(blob, filename);
        } else {
            const link = document.createElement('a');
            const body = document.querySelector('body');

            link.href = window.URL.createObjectURL(blob);
            link.download = filename;
            // fix Firefox
            link.style.display = 'none';
            body.appendChild(link);

            link.click();
            body.removeChild(link);
            window.URL.revokeObjectURL(link.href);
        }
    },
}

标签:混淆,vue,return,url,value,else,callback,rule,共用
来源: https://blog.csdn.net/weixin_54682740/article/details/122617582

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有