<template>
    <lj-win-common :hideAppBar="true" :show-back="false">
        <div slot="body" style="background-color: #fff;">
            <keep-alive>
                <!-- <component :is="currentTabComponent" :enabledFuncids="enabledFuncids" ref="tabComponent"></component> -->
                <tab-home v-if="currentTab == 'home'" :enabledFuncids="enabledFuncids" ref="tabHome"></tab-home>
                <!-- <tab-todo v-if="currentTab == 'todo'" :enabledFuncids="enabledFuncids" ref="tabTodo"></tab-todo> -->
                <!-- <tab-function v-if="currentTab == 'function'" :enabledFuncids="enabledFuncids" :badgeFnList="badgeFnList" :badgeList="badgeList" ref="tabFunction"></tab-function> -->
                <!-- <tab-mail v-if="currentTab == 'mail'" :enabledFuncids="enabledFuncids" ref="tabMail"></tab-mail> -->
                <tab-mine :enabledFuncids="enabledFuncids" ref="tabMine"></tab-mine>
            </keep-alive>
            
            <lj-check-app
                v-model="hasNewApp"
                ref="CheckApp" 
                :version="download.version" 
                :startDownload="startDownload" 
                :change-log="download.changeLog" 
                :installStatus="installStatus" 
                :progress="download.progress"
                :if-download-again="isShowDlAgain"
                @fnDownloadAgain="handleDownloadAgain"
                @confirm="handleToUpdateApp" 
                @close="handleToCloseCheckApp" 
            ></lj-check-app>
                <!-- :isForceUpdate="forceUpdate" -->
            <lj-smartupdate-app
                v-model="hasSmartUpdateApp"
                ref="SmartUpdateApp" 
                :version="appVersion" 
                :change-log="smartUpdateChangeLog"
                @confirm="handleToSmartUpdateApp"
                @close="handleToCloseSmartUpdateApp"
            ></lj-smartupdate-app>
        </div>
        <div style="padding-bottom: 5px;" slot="footer">
        <!-- <div slot="footer"> -->
            <mu-bottom-nav :value.sync="currentTab">
                <mu-bottom-nav-item title="首页" value="home" icon=":iconfont icon-home" style="min-width: 0;"></mu-bottom-nav-item>
                <!-- <van-badge :dot="docBadge > 0" class="mu-bottom-item">
                    <mu-bottom-nav-item title="待办" value="todo" icon=":iconfont icon-format-list-bulleted" style="min-width: 0;"></mu-bottom-nav-item>
                </van-badge> -->
                <!-- <van-badge :dot="isFnBadgeVal" class="mu-bottom-item">
                    <mu-bottom-nav-item title="功能" value="function" icon=":iconfont icon-google-drive" style="min-width: 0;"></mu-bottom-nav-item>
                </van-badge> -->
                <!-- <mu-bottom-nav-item title="消息" value="mail" icon=":iconfont icon-email-outline" style="min-width: 0;"></mu-bottom-nav-item> -->
                <mu-bottom-nav-item title="我的" value="mine" icon=":iconfont icon-account" style="min-width: 0;"></mu-bottom-nav-item>
            </mu-bottom-nav>
        </div>
    </lj-win-common>
</template>

<script>
    import ljWinCommon from 'components/lj-win-common'
    import {BottomNav, BottomNavItem} from "muse-ui/src/BottomNav/index"
    import TabHome from "./tab-home"
    import TabFunction from "./tab-function"
    import TabMine from "./tab-mine";
    import TabMail from "./tab-mail";
    import TabTodo from "./tab-todo";
    import ljCheckApp from "components/lj-check-app";
    import ljSmartupdateApp from "components/lj-smartupdate-app";
    import {productInfo,storageKeySet} from "components/project-set"

    export default {
        components: {
            TabTodo,
            TabHome,
            TabFunction,
            TabMine,
            TabMail,
            ljWinCommon,
            "mu-bottom-nav": BottomNav,
            "mu-bottom-nav-item": BottomNavItem,
            ljCheckApp,
            ljSmartupdateApp
        },
        data() {
            return {
                download: {
                    version: "",
                    url: "",
                    apkdata: "",
                    fileName: "",
                    progress: 0,
                    savePath: "",
                    changeLog: ""
                },
                startDownload: false,
                installStatus: false,
                hasNewApp: false,
                ifrelogin: false,
                currentTab: "home",
                // 需要校验的权限列表
                funcids: [
                    5219,// 采购送检单
                    5220,// 采购送检单建单
                    5221,// 采购质检单
                    5222,// 采购质检单修改
                    5223,// 采购质检单审核
                    5224,// 发料通知单
                    5225,// 发料单
                    5226,// 发料单建单
                    5227,// 发料单修改
                    5228,// 发料单审核
                    5229,// 销售订单
                    5230,// 销售发货单
                    5231,// 库存表
                    5232,// 首页-产销情况
                    5233,// 首页-订单情况
                    5234,// 首页-财务状况
                    5235,// 首页-库存情况
                    5243,// 工序完工
                    5285,// 采购审核
                    5259,// 特采审核
                    5260,// 采购收货仓审
                    5300,// 其他收入支出单
                    5349,// 采购收货仓审 确认收货数
                    5350,// 采购收货仓审 确认并仓审
                    5365,// 外协工序完工
                    5420,// 采购收货仓审 确认并仓审
                    5421,// 外协工序完工
                    460,//产品列表（报价）
                    5427,//物料查询
                    5428,//生产质检单
                    5459,//销售报表
                    5460,//销售订单统计表
                    5461,//业务员销售排名统计表
                    5462,//客户销售排名统计表
                    5463,//产品销售排名统计表
                    5464,//财务报表
                    5465,//销售订单收款统计表
                    5466,//仓库周转率统计表
                    5467,//产值统计表
                    5468,//销售订单利润统计表
                    5469,//生产报表
                    5470,//在进行出口订单异常统计表
                    5471,//销售准交统计表
                    5472,//车间指令单
                    5489,//考核单
                    5490,//考核单新建
                    5491,//考核单编辑
                    5492,//采购订单
                    5493,//销售预测单
                    5593,//车间产能分析
                    5594,//销售订单粗产能分析
                    5600,//在进行销售订单统计表
                    122,//限制显示销售订单金额
                    123,//隐藏库存成本价
                    1210,//隐藏客户名称(库存表,生产计划,生产进仓单) 
                    5609,//采购报表
                    5610,//采购收货统计表
                    5611,//供应商采购统计表
                    5612,//物料采购统计表
                    5613,//考核单只能查看自己
                    5614,//生产质检单-工人自检
                    5615,//生产质检单-质检员质检
                    5616,//设备档案
                    5617,//设备报修
                    5618,//设备维修
                    5626,//品质异常反馈单
                    5627,//品质异常反馈单-新建
                    5635,//销售订单统计表(实时数据)
                    5669,//采购收货单
                    5671,//采购收货单新建
                    5672,//采购收货单仓审
                    5866,//采购收货单删除
                    5670,//采购退货单
                    5673,//采购退货单新建
                    5674,//采购退货单仓审
                    5867,//采购退货单删除
                    325,//供应商价格管理
                    5700,//质检统计表
                    5741,//发公告
                    5743,//应收帐
                    5744,//应付帐
                    5751,//产品系列对比销售统计
                    5752,//物料积压查询
                    5753,//销售发货单确认
                    5769,//费用报销申请单
                    5770,//费用报销申请单新建
                    5771,//费用报销申请单修改
                    5772,//费用报销申请单审核
                    5773,//费用报销申请单撤审
                    5775,//部门费用报销统计表
                    5785,//供应商现场质检单
                    5786,//供应商现场质检单开始质检
                    5787,//供应商现场质检单录入质检结果
                    5802,//供应商异常统计表
                    5803,//内部质量异常统计表
                    5804,//客诉统计表
                    5817,//外协收货单
                    5868,//外协收货单新建
                    5869,//外协收货单删除
                    5818,//外协发出单
                    5870,//外协发出单新建
                    5871,//外协发出单删除
                    5819,//外协退回单
                    5872,//外协退回单新建
                    5873,//外协退回单删除
                    5820,//外协返工单
                    5821,//外协返工单新建
                    5874,//外协返工单删除
                    2315,//外协订单待发出清单
                    5862,//外协订单
                    5863,//外协订单新建
                    5864,//外协订单删除
                    715,//外协商库存表
                    5847,//自制送检单
                    5848,//自制送检单新建
                    5849,//自制质检单
                    5850,//自制质检单修改
                    5897,//自制质检单-录入多个质检结果
                    5902,//销售价格表
                    5903,//产品价格对比
                    5904,//物料价格对比
                    5940,//设备报表
                    5941,//设备预防维护计划完成率
                    5942,//重要设备故障累计时间
                    5943,//重要设备故障累计时间-车间占比
                    5916,//品质统计表
                    5952,//车间生产入库计划达成表
                    5961,//其他领料单
                    5962,//其他领料单新建
                    5968,//已报工待质检完工
					69,//其他出仓单新建
                    4769,//PDA-生产进仓
                    4770,//PDA-销售发货
                    4771,//PDA-采购进仓
                    4772,//PDA-其他出仓
                    4774,//PDA-仓库调拨
                    4775,//PDA-其他进仓
                    4776,//PDA-仓库盘点
                    4777,//PDA-采购退货
                    4785,//PDA-销售退货
                    4800,//PDA-仓位调拨
                    4801,//PDA-仓位盘点
                    4786,//PDA-产品盘点
                    4780,//PDA-客户调货
                    4789,//PDA-派工单完工扫描
                    4779,//PDA-最后工段完工扫描
                    4778,//PDA-工段交接
                    4929,//PDA-板件分包
                    4788,//PDA-工序派工确认扫描,
					5252,//PDA-条码打包
					4790,//PDA-下载发货单已扫条码
                    4802,//PDA-生产领料单
                    4803,//PDA-生产退料单
                    4792,//PDA-GPR出仓
                    4830,//PDA-条码变更单
                    6023,//完工单编辑工价
					6228,//PDA-仓库外协发出单
                    6229,//PDA-仓库外协退回单
                    6239,//PDA-仓库外协返工
                    6243,//欠款
                    6244,//利润
                    6255,//人员列表
					6262,//仓位调拨单
					6263,//仓位调拨单新建
                    6264,//仓位调拨单修改
                    6265,//仓位调拨单审核
                    6266,//产品盘点单
                    6267,//产品盘点单新建
                    6268,//产品盘点单修改
                    6245,//外协工序派工单
                    6246,//外协工序派工单新建
                    6247,//外协工序派工单删除
					4783,//PDA-条码查询
                    6284,//预算利润统计分析报表
                    6367,//采购收货单批量保存权限
                    6368,//生产领料单
                    6369,//生产领料单-建单
                    6370,//生产领料单-审核
                    6378,//出口销售出仓单
                    6415,//行政/事件单
                    6416,//行政/事件单-新建
                    6425,//事件单-只显示自己相关单据
                    6464,// 行政报表
                    6465,// 行政报表-事件单统计报表
                    6488,// 财务报表-应付帐龄计报表
                    6463,// 其他领料单权限
                    6514,// 超额发料单
                    6563,// PDA-生产补料单
                    6547,// 生产报表-完工单明细统计表
                    6569,// 财务报表-应收账龄统计表
                    6565,// 销售-销售报价单
                    6566,// 销售-销售报价记录单
                    6567,// 采购-材料申购单
                    6735,// 财务-供应商收支单
                    6736,// 生产-销售订单配置及相关计划配置变更单
                    6752,// 销售-销售报价单-修改生产回复日期
                    6746,// 委外委外指令单
                    6747,// 委外发出单
                    6748,// 委外退回单
                    6749,// 委外收货单
                    6744,// 指令派工完工统计表
                    6750,// 委外返工单
                    6751,// 委外商库存
                    6768,// 委外申请待订货清单
                    6769,// 委外订单待发出清单
                    6770,// 委外订单待退回清单
                    6771,// 委外订单待收货清单
                    6772,// 委外订单允许返工清单
                    6784,// 批量工序完工
                    6800,// 经营看板
                    6801,// 考勤日报表
                    6802,// 考勤月报表
                    6837,// 物料监控
                    6840,// 生产报表-派工任务
                    6841,// 委外质检单
                    6842,// 客户应收结余表
                    122,//隐藏销售价
                    6859,//出口销售出仓单
                    6860,// 出运单
                    6861,// 客户档案
                    6862,// 商机管理
                    6878,// 物料清单
                    6996,// 供应商质检批次统计表
                    7016,// 生产质检单-审核
                    7017,// 供应商应付结余表
                    7033,// 客户收款单
                    7034,// 客户收款单-新建
                    7035,// 车间工序待质检任务
                    121,// 隐藏采购价/加工价
                    7051,//销售发货单-审核
                    7052,// 委外收货明细待质检列表
                    7053,// 委外收货明细待质检-保存
                    7054,// 委外收货明细待质检-审核
                    7055,// 委外收货明细待质检-撤审
                    7057,// 采购收货明细待质检列表
                    7058,// 采购收货明细待质检-保存
                    7059,// 采购收货明细待质检-审核
                    7060,// 采购收货明细待质检-撤审
                    7061,// 供应商询价单
                    7076,// 销售发货单-反确认
                    7077,// 出口销售出仓单-确认
                    7078,// 出口销售出仓单-反确认
                    7079,// 出口销售出仓单-审核
                    7080,// 委外收货质检单
                    7081,// 采购收货质检单
                    7109,// 工序完工单
                    7112,// 销售订单-新建
                    7113,// 销售订单-审核
                    7114,// 销售订单-撤审
                    7115,// 派工单完工扫描(部件)
                    7125,// 采购代收-不质检
                    7181,// PDA-委外发出单
                    7182,// PDA-委外退回单
                    6535,// 隐藏供应商名称
                    7203,// 采购确认收货不质检
                    7220,// 客户&业务员销售排名统计表
                    7252,// 限制必须使用定位功能定位
					7267,// 质检码完工
					7268,// 工序派工质检单
                    7271,// 发表意见必须指认责任人
                    7270,// 工序完工单仓审
                    7276,// 工序完工单确认
                    7277,// 工序完工单反确认
                    7278,// 工序完工单仓撤
                    7279,// 工序完工单删除 
                    7288,// 自制质检单-审核
                    7289,// 指令单工序进度统计表
                    7290,// 计划生产进度表
                    7306,// 采购订单-审核
                    7307,// 采购订单-撤审
                    7308,// 生产进仓单
                    7309,// 其他进仓单
                    7310,// 其他出仓单
                    7311,// 生产进仓单-建单
                    7312,// 生产进仓单-确认
                    7313,// 生产进仓单-修改
                    7314,// 其他进仓单-建单
                    7315,// 其他进仓单-确认
                    7316,// 其他进仓单-修改
                    7317,// 其他出仓单-建单
                    7318,// 其他出仓单-确认
                    7319, // 其他出仓单-修改
                    7328, // 采购待送检
                    7329, // 物料附件下载限制
                    7332,// 库存明细是否允许查询进出明细
                    7364,// 工序派工
                    7365,// 已派工待完工
                ],
                enabledFuncids: [],
                forceUpdate: false,
                lastCheck: {},
                checkingApp: false, // 是否已发送检测app版本
                checkAppTime: '', // 上次检测时间
                skipApkdata: 1, // 使用TCP(type=0)时，是否跳过获取.apk
                dlProgressTimer: null, // 下载进度计时器
                timerGetBadge: null,
                lastTimeGetBadge: 0, // 上一次获取微标的时间
                forceWaitBadge: 10, // 获取微标间隔，强制等待时间，s
                timeBadge: 5, // 获取微标间隔5分钟,min
                badgeFnList: [], // 功能列表中的有微标的功能值
                badgeList: [], // 功能列表中的微标
                docBadge: 0, // 任务微标
                hasSmartUpdateApp: false, // 是否有云修复
                smartUpdateChangeLog: '', // 云修复日志
            }
        },
        created() {
            let self = this;
            // 监听当前连接模式变化
            $lj.watchConnectChanged();
            // $lj.ajpushInit();
            if(api.systemType === "ios") {
                $lj.addEventListener("noticeclicked",function(ret){
                    //DONE:界面跳转（消息类型），通过ret.value进行界面跳转，约定消息传参格式为QueryString
                    console.log('通知被点击，收到数据：\n' + JSON.stringify(ret));//监听通知被点击后收到的数据
                    let params = $lj.queryString2Json(ret.value);
                    let extra = params.extra;
                    if (extra.classification){
                        switch (extra.classification) {
                            case 2:
                                $lj.openWin("cpcheck-buyer");
                                break;
                            case 3:
                                $lj.openWin("cpcheck-special");
                                break;
                            case 4:
                                $lj.openWin("inware-buy-sptcheck");
                                break;
                            case 5:
                                $lj.openWin("equipment-repair-info", {mainObject: extra});
                                break;
                            case 6:
                                $lj.openWin("equipment-repair-info");
                            default:
                                return;
                        }
                    }
                });
            } else {
                $lj.addEventListener('appintent', function(ret) { //根据标题来跳转页面，参数通过extra传递
                    console.log('通知被点击，收到数据：\n' + JSON.stringify(ret));//监听通知被点击后收到的数据
                    if (ret && ret.appParam.ajpush) {
                        var ajpush = ret.appParam.ajpush;
                        var extra = ajpush.extra;
                        switch (extra.classification) {
                            case 2:
                                $lj.openWin("cpcheck-buyer");
                                break;
                            case 3:
                                $lj.openWin("cpcheck-special");
                                break;
                            case 4:
                                $lj.openWin("inware-buy-sptcheck");
                                break;
                            case 5:
                                $lj.openWin("equipment-repair-info", {mainObject: extra});
                                break;
                            case 6:
                                $lj.openWin("equipment-repair-info");
                            default:
                                return;
                        }
                    }
                });

            }
            
            $lj.addEventListener("login_success", function (ret, err) {
                // $lj.toast("登录成功");
                self.ifrelogin = true;
                ret.value.reload && window.location.reload();
                setTimeout(function () {
                    self.refresh && self.refresh();
                }, 200);
            });
            $lj.addEventListener("token_overdue", function (ret, err) {
                $lj.setStorage("token","");
                self.gotoLogin(false);
            });

            if (!$lj.getStorage("token")) {
                this.gotoLogin(false);
                return;
            }

            this.refresh();

            // $lj.addEventListener("check_app", function (arg, err) {
            //     self.checkingApp = true;
            //     $lj.checkAppUpdate_new(function (req) {
            //         if (req.type == 0) {
            //             req.skipApkdata = self.skipApkdata
            //         }
            //         return req
            //     }, function (num, ret) {
            //         switch (num) {
            //             case 202:
            //                 let msg = "";
            //                 if (arg.value.msg) {
            //                     msg = arg.value.msg;
            //                 }
            //                 msg && $lj.toast(msg, 1000, 'bottom');
            //                 break;
            //             case 404:
            //                 if (ret.ErrMsg) {
            //                     $lj.toast(ret.ErrMsg, 1000, 'bottom');
            //                 } else {
            //                     $lj.toast('版本检测接口连接失败', 1000, 'bottom');
            //                 }
            //                 break;
            //             default:
            //                 break;
            //         }
            //     }, function (ret) {
            //         // 版本检测
            //         let localVersion = $lj.getVersion();
            //         let checkUpdateApp = $lj.getStorage('checkUpdateApp') || {
            //             version: localVersion
            //         }
            //         self.checkingApp = false;
            //         self.download.fileName = productInfo.productCode + "_" + ret.newmd5.replace(/\./g, "_") + ".apk";
            //         self.download.version = ret.newmd5 || "";
            //         self.download.changeLog = ret.changelog_new || "";

            //         console.log(' arg.value :>>>>>>>>>>>>>>>>>>>>>', JSON.stringify(arg.value));
            //         self.forceUpdate = ret.hasOwnProperty('ifForceUpdate') && ret.ifForceUpdate == 1;

            //         if (!arg.value.msg) {
            //             // 刷新记录检测时间
            //             if ($lj.transClientVerToInt(localVersion) < $lj.transClientVerToInt(self.download.version) && self.forceUpdate) {
            //                 // 当获取信息高于当前版本，且必装
            //             } else if ($lj.transClientVerToInt(localVersion) >= $lj.transClientVerToInt(self.download.version)) {
            //                 // 当前版本等于或高于系统版本，终止弹窗
            //                 console.log("当前版本等于或高于系统版本，终止弹窗");
            //                 return;
            //             } else if ($lj.transClientVerToInt(checkUpdateApp.version) <= $lj.transClientVerToInt(self.download.version)) {
            //                 let nowTime = new Date().getTime();
            //                 if (nowTime < checkUpdateApp.time) {
            //                     console.log("首页被动检测app，超时弹起");
            //                     if (self.forceUpdate) {
            //                         // 有新的版，不终止
            //                         console.log("有新的版，不终止");
            //                     } else {
            //                         // 时间未到，且没有新的版本，终止弹窗
            //                         console.log("时间未到，且没有新的版本，终止弹窗");
            //                         return;
            //                     }
            //                 }
            //             }
            //         }
            //         if (ret.apkdata) {
            //             // 更新
            //             self.hasNewApp = true
            //             self.installStatus = true;
            //             self.download.apkdata = ret.apkdata;

            //             if (self.dlProgressTimer) {
            //                 clearInterval(self.dlProgressTimer)
            //                 self.dlProgressTimer = null;
            //                 self.download.progress = 100;
            //             }
            //             setTimeout(() => {
            //                 self.startDownload = false;
            //                 self.$refs.CheckApp.clearState();
            //             }, 200);
            //         } else if (ret.url) {
            //             // 可下载更新
            //             self.hasNewApp = true
            //             self.installStatus = false;
                        
            //             $lj.getCacheDir((cacheDir) => {
            //                 let newpath = cacheDir + "/" + self.download.fileName;
            //                 self.download.url = ret.url;
            //                 self.download.local_url = ret.hasOwnProperty("local_url") ? ret.local_url : "";
            //                 self.download.apkdata = self.download.fileName;
            //                 self.download.savePath = newpath;

            //                 let fs = $lj.getFileHelperModule();
            //                 let existRet = fs.existSync({
            //                     path: newpath
            //                 });

            //                 if (existRet.exist) {
            //                     self.installStatus = true;
            //                     self.startDownload = false;
            //                 }
            //             });
            //         } else {
            //             /** 使用IP连接时，先获取版本号，跳过获取升级文件，然后再获取升级文件*/
            //             self.hasNewApp = true
            //             self.installStatus = false;
            //             self.skipApkdata = 0;
            //         }
            //     })
            // });
            // 打开检测切换后台
            // this.timingToCheckUpdateAPP();
            // $lj.removeEventListener("refresh_dailyBadge");
            // $lj.addEventListener("refresh_dailyBadge", function (ret, err) {
            //     self.fnGetDailyBusinessBadge(); // 更新微标数值
            // });

            // 云修复使用静默修复时，更新完毕事件
            api.addEventListener({
                name:'smartupdatefinish'
            }, function(ret, err){
                self.$nextTick(() => {
                    self.hasSmartUpdateApp = true;
                    if (ret.value.length > 0) {
                        self.smartUpdateChangeLog = ret.value[0].extra
                    }
                })
            });
        },
        updated(){
            // if (!this.checkingApp) {
            //     // 防止频密发起检测版本
            //     // 终止重复检测
            //     let nowTime = new Date().getTime();
            //     if (!this.checkAppTime || nowTime - this.checkAppTime > 3600000) {
            //         // 超过一个小时才发起第二次检测
            //         this.checkAppTime = nowTime;
            //         $lj.sendEvent('check_app', {msg: ""});
            //     }
            //     // this._fnCheckUpdateTime();
            // }
        },
        methods: {
            getAllStorage() {
                console.log("开始获取xgi包缓存 :>>>>");
                let storage = {}
                let ignoreKey = ["userInfo","storageInfo","deviceId"]
                for(let key of storageKeySet) {
                    if(ignoreKey.includes(key)) continue;
                    storage[key] = $lj.getStorage(key);
                }

                return storage;
            },
            setAllStorage(storage) {
                console.log("开始同步xgi包缓存 :>>>>");
                let ignoreKey = ["userInfo","storageInfo","deviceId"]
                for(let key of storageKeySet) {
                    if(ignoreKey.includes(key)) continue;
                    $lj.setStorage(key,storage[key]);
                }
            },
            syncListenFromXgiPackage() {
                let self = this;
                api.addEventListener({
                    name:'appintent'
                },function(ret,err){
                    if(ret.sourceAppId === "com.yuxilee.xgi") {
                        let flag = api.getPrefs({
                            sync: true,
                            key: 'transferCacheNumber'
                        });
                        flag = Number(flag);
                        if(flag <= 0) {
                            let oldStorage = JSON.parse(ret.appParam.param);
                            self.setAllStorage(oldStorage)
                            api.setPrefs({
                                key: 'transferCacheNumber',
                                value: flag++
                            });
                        }
                    }
                    console.log('同步返回结果：openApp 打开成功 appintent api.appParam: ret>> ', JSON.stringify(ret));
                });
            },
            handleToSmartUpdateApp() {
                api.rebootApp();
            },
            handleToCloseSmartUpdateApp(){
                // 关闭弹窗
                this.hasSmartUpdateApp = false;
            },
            // timingToCheckUpdateAPP(){
            //     let self = this;
            //     let start,end,s;
            //     document.addEventListener('visibilitychange',function(){
            //         if(document.visibilityState == 'hidden'){
            //             start = new Date().getTime();
            //             console.log("切换到后台>>>>>>>>>");
            //         } else if(document.visibilityState == 'visible'){
            //             console.log("切换到应用>>>>>>>>>>")
            //             end = new Date().getTime();
            //             // 在后台停留的时间
            //             s = Math.floor((parseInt(end) - parseInt(self.firstCheckTime)) / 1000);
            //             if(s >= 60*60*24){
            //                 // 如果时间差为24小时，直接执行检测
            //                 $lj.sendEvent('check_app', {msg: ""});
            //             }
            //         }
            //     })
            // },
            handleToCloseCheckApp(){
                // 关闭弹窗
                this.hasNewApp = false;
                this._fnSetNewTime();
            },
            // _fnCheckUpdateTime() {
            //     // 刷新记录检测时间
            //     let checkUpdateApp = $lj.getStorage('checkUpdateApp') || {};
            //     if (JSON.stringify(checkUpdateApp) != '{}') {
            //         let nowTime = new Date().getTime();
            //         if(nowTime > checkUpdateApp.time){
            //             console.log("首页被动检测app，超时弹起");
            //             $lj.sendEvent('check_app', {msg: ""});
            //         }
            //     }
            // },
            _fnSetNewTime() {
                // 刷新记录检测时间
                let checkUpdateApp = {
                    version: this.download.version,
                    time: new Date(new Date().toLocaleDateString()).getTime() + 24*60*60*1000 // 明天0点
                }
                console.log('checkUpdateApp.time :>> ', $lj.dateformat(new Date(checkUpdateApp.time)));
                $lj.setStorage('checkUpdateApp', checkUpdateApp);
            },
            handleToUpdateApp() {
                // // 是否ios端
                if (api.systemType == "ios") {
                    api.openApp({
                        iosUrl: this.download.url
                    });
                    return;
                }
                // Android
                let _url = this.download.url;
                if (this.download.local_url) {
			        let requestWay = $lj.getPrefs('serverCurrentRequestWay');
                    if (requestWay == 'DIRECT') {
                        // IP连接中
                        _url = this.download.local_url;
                    }
                }
                // androidPkg: 'android.intent.action.VIEW',
                // mimeType: 'text/html',
                api.openApp({
                    uri: _url
                }, function(ret, err) {
                });

                // let self = this;
                // if (!this.installStatus) {
                //     this.startDownload = true;
                //     // 使用TCP(type=0)时，开始下载.apk，模拟进度条读数
                //     if (this.skipApkdata == 0) {
                //         // 仅使用ip连接时，获取本地升级包
                //         $lj.sendEvent('check_app', {msg: "获取成功！！"});
                //         if (this.dlProgressTimer) {
                //             clearInterval(this.dlProgressTimer)
                //         }
                //         this.download.progress = 0;
                //         this.dlProgressTimer = setInterval(() => {
                //             console.log(' this.download.progress :>>>>>>>>>>>>>>>>>>>>>', JSON.stringify(this.download.progress));
                //             let progress = this.download.progress + 0.13;
                //             if (progress > 99.99) {
                //                 progress = 99.99
                //             }
                //             this.download.progress = progress;
                //             if (progress == 99.99) {
                //                 clearInterval(this.dlProgressTimer)
                //                 this.dlProgressTimer = null;
                //             }
                //         }, 100);
                //         return;
                //     }
                //     // 下载APP
                //     $lj.download(this.download.url, this.download.savePath, function(ret) {
                //         // 下载成功
                //         self.installStatus = true;
                //         self.startDownload = false;
                //         self.$refs.CheckApp.clearState();
                //     }, function(ret) {
                //         // 下载中。。。
                //         self.download.progress = parseInt(ret.percent);
                //     }, function(err) {
                //         // 下载失败
                //         self.$refs.CheckApp.clearState();
                //         self.download.progress = 0;
                //         self.startDownload = false;
                //     });
                // } else {
                //     // 安装App
                //     self.$refs.CheckApp.clearState();
                //     $lj.updateApp(this.download.apkdata, this.download.fileName, function(ret) {
                //         api.installApp({
                //             appUri: ret.appUri
                //         });
                //     })
                // }
            },
            handleDownloadAgain() {
                $lj.confirm("新版本安装包", "是否清除并重新下载", () => {
                    let self = this;
                    var fs = api.require('fs');
                    fs.remove({
                        path: this.download.savePath
                    }, function(ret, err) {
                        if (ret.status) {
                            self.installStatus = false;
                            self.download.percent = 0
                            self.handleToUpdateApp();
                        } else {
                            alert("删除失败：获取文件路径失败" + err.msg);
                        }
                    });                
                })
            },
            // handleUpdate(){
            //     if (this.ifrelogin){
            //         this.refresh();
            //         this.ifrelogin = false;
            //     }
            // },
            refresh() {
                
                let _token = $lj.getStorage("token");
                if (!_token) {
                    return;
                }
                let self = this;
                // $lj.postLJRequest("GetL1APPUserInfo", {
                //     token: _token,
                //     funids: this.funcids
                // }, function (ret) {
                //     if (ret) {

                //         self.enabledFuncids = ret.rsltFunids;
                //         $lj.setStorage("userInfo", ret);
                //         // if (self.$refs.tabComponent.refresh) {
                //         //     self.$refs.tabComponent.refresh();
                //         // }
                //         self.$refs.tabHome && self.$refs.tabHome.refresh();
                //         if (ret.postList.length > 0) {
                //             self.$refs.tabHome.openboard = true;
                //             self.$refs.tabHome.postList = ret.postList
                //         }
                //         // self.$refs.tabComponent.forEach((tab) => {
                //         //     if (tab.refresh) {
                //         //         self.$refs.tabComponent.refresh();
                //         //     }
                //         // })
                //         $lj.ajpusGetRegistrationId(function (rsp) {
                //             if (ret.ajpushid == null || ret.ajpushid === "" || ret.ajpushid !== rsp.id){
                //                 $lj.postLJRequest("UploadAjpushID", {
                //                     token: _token,
                //                     ajpushid: rsp.id
                //                 }, function (response) {

                //                 }, function (err) {

                //                 }, true);
                //             }
                //         });
                //         self.$refs.tabHome && self.$refs.tabHome.refreshJuece();

                //         // 新财务系统独立核算分账套检测
                //         if ($lj.getOptionValue(639) == "1" && ret.companyList.length == 0) {
                //             self.$toast.fail({
                //                 message: '分部未设置独立核算分账套，或其资料未完善',
                //                 duration: 6000
                //             });
                //         }

                //         // 获取微标数值
                //         self.fnGetDailyBusinessBadge();

                //         //用户绑定推送手机
                //         // $lj.apiPushBind(ret.username, ret.uuid);

                //         let requestBody = {
                //             token: _token,
                //             userid: ret.empid,
                //         };
                //         $lj.postLJRequest('PDA_GetStorageInfo', requestBody, function (rets) {
                //             $lj.setStorage("storageInfo", rets);
                //         }, function() {}, true);
                //     }

                // }, function() {
                    
                // }, true)
            },
            gotoLogin(isRelogin) {
                $lj.openWin("login", {isRelogin: isRelogin,sureLogin:false});
            },
            handleSearchBar(keyword) {
                $lj.openWin("index-search", {keyword: keyword})
            },
            // 获取功能微标
            fnGetDailyBusinessBadge() {
                let _waitTime = this.timeBadge * 60 * 1000;
                if (!this.enabledFuncids.length) {
                    return false;
                }
                // 节流
                if (Math.ceil((new Date().getTime() - this.lastTimeGetBadge)/1000) < this.forceWaitBadge) {
                    return false;
                }
                let self = this;
                this.lastTimeGetBadge = new Date().getTime();
                $lj.postLJRequest("GetL1AppDailyBadge", {
                    token: $lj.getStorage("token"),
                    funids: this.enabledFuncids
                }, function (ret) {
                    if (ret.hasOwnProperty('docBadge')) {
                        $lj.setAppIconBadge(ret.docBadge);
                        self.docBadge = ret.docBadge
                    }

                    if (ret.funids.length > 0) {
                        self.badgeFnList = ret.funids;
                        self.badgeList = ret.badge
                    }
                    if (self.timerGetBadge) {
                        clearTimeout(self.timerGetBadge);
                        self.timerGetBadge = null;
                    }
                    self.timerGetBadge = setTimeout(() => {
                        self.fnGetDailyBusinessBadge();
                    }, _waitTime);
                }, function (ret) {
                    self.timerGetBadge = setTimeout(() => {
                        self.fnGetDailyBusinessBadge();
                    }, _waitTime);
                }, true);
            },
        },
        computed: {
            // title() {
            //     switch (this.currentTab) {
            //         case "home":
            //             return "首页";
            //         case "todo":
            //             return "待办";
            //         case "function":
            //             return "功能";
            //         case "mine":
            //             return "我的";
            //         default:
            //             return "";
            //     }
            // },
            currentTabComponent() {
                return "tab-" + this.currentTab;
            },
            isShowDlAgain() {
                if (this.ifIOS) return false;
                if (!this.download.url) return false;
                return !this.startDownload && this.installStatus;
            },
            isFnBadgeVal() {
                let val = 0;
                for (var i = 0; i < this.badgeList.length; i++) {
                    val += this.badgeList[i];
                }
                return val > 0;
            },
            appVersion() {
                return $lj.getVersion()
            }
        }
    }
</script>

<style lang="less">
.mu-bottom-nav {
    .van-badge__wrapper {
        padding: 0!important;
    }
    .van-badge--fixed {
        top: 12px;
        right: 18px;
    }
}
</style>