常用的public.js

var publicFunc = {

    back : function(num){

        var _num = num ? num : -1;

        if(navigator.userAgent.indexOf('Android') > -1){

            window.callAndroid.back(_num);

        }else{

            if(_num ==1 || _num ==3){

                var arr = new Array();

                arr[1] = '/bao/index';

                arr[2] = '/task/index';

                arr[3] = '/user/index';

                window.location.href = arr[_num];

            }

            window.history.go(_num);

        }

    }

};

jQuery(function ($) {

    $("img.lazy").lazyload();

});

 

/**

 * author yangchengsheng@eoemarket.com

 * desc 消息提醒

 * used  $.messageAlert($message)

 */

jQuery.extend({

    messageAlert: function ($message) {

        if ($(".message_alert").length < 1) {

            var div = $('<div></div>');

            div.addClass('message_alert');

            div.appendTo('body');

        }

        $(".message_alert").html("<span>" + $message + "</span>");

        $(".message_alert").fadeIn();

        setTimeout(function () {

            $(".message_alert").fadeOut();

            $(".message_alert").html("");

        }, 3000)

        return true;

    },

    /**

     * desc 拍照

     * used  $.takePhoto(type,param,callback)

     */

    takePhoto: function (type,param,callback) {

        if ($(".setface_alert").length < 1) {

            var html = '<div class="setface_alert">' +

                '<span id="take_phone_alert">拍照</span>' +

                '<span class="album" id="select_phone_alert">从相册中选择</span>' +

                '<span class="cancel">取消</span></div>' +

                '<div class="shade"></div>';

            $('body').append(html);

            $(".setface_alert .cancel").unbind("click");

            $(".setface_alert .cancel").on("click", function () {

                $(".setface_alert").hide();

                $(".shade").hide();

            });

        };

        $("#take_phone_alert").unbind("click");

        $("#select_phone_alert").unbind("click");

        //调用Android拍照

        $("#take_phone_alert").on("click", function () {

            $(".setface_alert").hide();

            $(".shade").hide();

            $(this).unbind("click");

            window.callAndroid.takePhoto(type, param, callback);

 

        });

        //调用Android相册

        $("#select_phone_alert").on("click", function () {

            $(".setface_alert").hide();

            $(".shade").hide();

            $(this).unbind("click");

            window.callAndroid.selectPhoto(type, param, callback);

        });

        $(".setface_alert").fadeIn();

        $(".shade").show();

    },

    /**

     * 事件统计

     * @param tag

     * @param label

     * @param duration

     */

    onEvent:function (tag, label, duration) {

        prompt("event", JSON.stringify({tag:tag,label:label, duration:duration}));

    }

});

 

jQuery.fn.extend({

    /**

     * desc 分页

     * used  $.(select).pager(url,param)

     */

    pager: function (url, param) {

        var _this = this;

        var _param = param ? param : new Object();

        var _page = _param.page ? _param.page : 2;

        var _limit = _param.limit ? _param.limit : 20;

        var is_load_more = false;

        if (_this.children().size() >= _limit) {

            if ($(".Loading").length < 1) {

                $('body').append('<div class="Loading">正在加载更多...</div>');

            }

            is_load_more = true;

        }

        $(window).scroll(function () {

            if (_page < 51 && is_load_more == true) {

                //拖到页底时,自动AJAX加载新数据

                var pageH = $(document.body).height();

                var winH = $(window).height();//可视区高

                var scrollT = $(window).scrollTop();

                var pageRest = (pageH - winH - scrollT) / winH;

                if (pageRest>0.02) {

                    is_load_more = false;

                    _param.page = _page;

                    _param.limit = _limit;

                    $.get(url, _param, function (data) {

                        if ($.trim(data)) {

                            _page += 1;

                            _this.append(data);

                            is_load_more = true;

                            $("img.lazy").lazyload();

                        } else {

                            $('.Loading').hide();

                        }

                    });

                }

            } else {

                $('.Loading').hide();

            }

        });

    }

});

转载于:https://www.cnblogs.com/hehuiself/p/7100244.html

### Vue 3.0 中 `vue.config.js` 的常用配置项详解 在 Vue 3.0 中,`vue.config.js` 是一个可选的配置文件,用于对项目进行自定义配置。以下是该文件中常见的配置项及其详细说明: --- #### 1. **`outputDir` 和 `assetsDir`** - **`outputDir`**:指定生成文件的目录,默认为 `dist`。 - **`assetsDir`**:指定静态资源(如图片、字体等)相对于 `outputDir` 的目录。 ```javascript module.exports = { outputDir: 'build', // 输出目录改为 build assetsDir: 'static' // 静态资源目录改为 static }; ``` 此配置项允许开发者灵活调整构建输出路径[^1]。 --- #### 2. **`devServer`** - 配置开发服务器的行为,例如端口号、代理设置等。 ```javascript module.exports = { devServer: { port: 8081, // 设置开发服务器端口 proxy: { '/api': { target: 'http://localhost:3000', changeOrigin: true, pathRewrite: { '^/api': '' } } } } }; ``` 通过 `proxy` 可以解决开发环境下的跨域问题[^1]。 --- #### 3. **`configureWebpack` 和 `chainWebpack`** - **`configureWebpack`**:直接向 Webpack 配置添加额外的选项。 - **`chainWebpack`**:使用链式 API 修改 Webpack 配置。 ```javascript const path = require('path'); module.exports = { configureWebpack: { resolve: { alias: { '@': path.resolve(__dirname, 'src') } } }, chainWebpack: config => { config.module .rule('graphql') .test(/\.graphql$/) .use('graphql-tag/loader') .loader('graphql-tag/loader'); } }; ``` `chainWebpack` 提供了更灵活的配置方式,适合复杂的项目需求[^1]。 --- #### 4. **`publicPath`** - 指定应用的公共路径,默认为 `/`。如果部署到子路径或 CDN 上,需要调整此值。 ```javascript module.exports = { publicPath: process.env.NODE_ENV === 'production' ? '/app/' : '/' }; ``` 此配置项对于生产环境下的路径管理尤为重要[^1]。 --- #### 5. **`pages`** - 配置多页面应用中的每个页面入口。 ```javascript module.exports = { pages: { index: { entry: 'src/index/main.js', template: 'public/index.html', filename: 'index.html' }, admin: { entry: 'src/admin/main.js', template: 'public/admin.html', filename: 'admin.html' } } }; ``` 通过 `pages`,可以轻松实现多页面应用的构建[^1]。 --- #### 6. **`parallel`** - 是否启用多线程加载器处理,加速构建过程。 ```javascript module.exports = { parallel: true }; ``` 此选项在大型项目中尤其有用,能够显著提升构建性能[^1]。 --- #### 7. **`css`** - 配置 CSS 相关选项,包括是否提取为单独文件、是否启用 source map 等。 ```javascript module.exports = { css: { extract: true, // 生产环境下将 CSS 提取为单独文件 sourceMap: false, // 不生成 source map 文件 loaderOptions: { sass: { additionalData: `@import "@/styles/_variables.scss";` } } } }; ``` `css.loaderOptions` 可用于向 CSS 预处理器传递额外选项。 --- #### 8. **`pluginOptions`** - 为插件提供自定义选项。 ```javascript module.exports = { pluginOptions: { i18n: { locale: 'en', fallbackLocale: 'en', localeDir: 'locales' } } }; ``` 此配置项通常用于与第三方插件集成。 --- #### 9. **`transpileDependencies`** - 指定需要被 Babel 转译的依赖。 ```javascript module.exports = { transpileDependencies: ['some-package'] }; ``` 某些依赖可能包含 ES6+ 语法,需要通过此选项显式转译[^1]。 --- ### 示例完整配置 以下是一个完整的 `vue.config.js` 配置示例: ```javascript const path = require('path'); module.exports = { outputDir: 'dist', assetsDir: 'static', publicPath: '/', devServer: { port: 8081, proxy: { '/api': { target: 'http://localhost:3000', changeOrigin: true } } }, configureWebpack: { resolve: { alias: { '@': path.resolve(__dirname, 'src') } } }, chainWebpack: config => { config.module .rule('graphql') .test(/\.graphql$/) .use('graphql-tag/loader') .loader('graphql-tag/loader'); }, css: { extract: true, sourceMap: false, loaderOptions: { sass: { additionalData: `@import "@/styles/_variables.scss";` } } }, pluginOptions: { i18n: { locale: 'en', fallbackLocale: 'en', localeDir: 'locales' } }, transpileDependencies: ['some-package'] }; ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值