index-controller.js 4.82 KB
/**
 * 校验控制器
 */
define(
    "check/index-controller",
    [
        'mk7/controller',
        'mk7/url',
        'mk7/utils',
        'mk7/modals',
        'mk7/jweixin'
    ],
    function (ctrl, url, utils, modals, jweixin) {
        var ctrl = new ctrl();
        var $$ = Dom7;
        var t7 = Template7;
        var HAS_ACTIVED = 1;
        var NO_ACTIVED = 0;
        var ERROR_URL = 2;
        var SCAN_COUNT = 0;

        ctrl.run = function () {
            var me = this;
            me.setPageTitle("验证标签");
            jweixin.config({
                debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
                appId: window.$site.appid, // 必填,公众号的唯一标识
                timestamp: window.$site.timestamp, // 必填,生成签名的时间戳
                nonceStr: window.$site.noncestr, // 必填,生成签名的随机串
                signature: window.$site.signature,// 必填,签名,见附录1
                jsApiList: ['openLocation','getLocation','scanQRCode']
            });
            me.scanQrcode();
            me.render();
            $$(".scan-button").attr("disabled", "disabled");
            $$(".scan-button").text("正在调起扫码……");
        };

        ctrl.bindEvents = function () {
            var me = this;
            $$(".scan-button").click(function () {
                me.scanQrcode();
            });
        };

        // 调用扫码功能
        ctrl.scanQrcode = function () {
            var me = this;
            jweixin.ready(function(){
                jweixin.scanQRCode({
                    needResult: 1,
                    desc: 'scanQRCode desc',
                    success: function (res) {
                        var result = res.resultStr;
                        var resultArr = $$.parseUrlQuery(result);
                        //这个二维码必须传到后台去做验证才对,
                        if(resultArr != null && resultArr!==undefined && resultArr['uuid']!=null && resultArr['uuid']!==undefined) {
                            if (resultArr['uuid'].indexOf("@") == -1) {
                                utils.toast({content:'该智能防伪二维码无效'});
                                return false;
                            }
                            //可以用字符或字符串分割
                            var resultArr=resultArr['uuid'].split('@');
                            var redirectNoActivedUrl =  url.to('smart#enter/' + resultArr[0]);
                            var redirectHasActivedUrl =  url.to('check#scan-count/' + resultArr[0] + '/' + SCAN_COUNT);
                            var redirectErrorUrl =  url.to('check#warning/' + resultArr[0]);
                            $$.ajax({
                                 method : "POST",
                                 url: url.to('check/default/check-active'),
                                 data : {uuid: resultArr[0]},
                                 dataType : "json",
                                 beforeSend : function(){
                                     me.showIndicator();
                                 },
                                 success : function(res){
                                     SCAN_COUNT = res.scan_count;
                                     redirectHasActivedUrl =  url.to('check#scan-count/' + resultArr[0] + '/' + SCAN_COUNT);
                                     if (res.success == HAS_ACTIVED) {
                                         window.location.href = redirectHasActivedUrl;
                                     } else if (res.success == NO_ACTIVED) {
                                         window.location.href = redirectNoActivedUrl;
                                     } else if (res.success == ERROR_URL) {
                                         window.location.href = redirectErrorUrl;
                                     } else {
                                         window.location.href = redirectErrorUrl;
                                     }
                                 },
                                 error : function(e){},
                                 complete : function(e){
                                     me.hideIndicator();
                                 },
                             });

                        }else{
                            utils.toast({content:'请扫描智能防伪二维码'});
                        }
                    }
                });
                setTimeout(function () {
                    $$(".scan-button").removeAttr("disabled");
                    $$(".scan-button").text("点击扫描标签");
                },1000);
            });
        }
        return ctrl;
    }
);