<script>
export default {
  onLaunch: function () {
    let that = this;
	that.$queue.changeTabbar(that.$queue.getData('userType')||1)
    // #ifdef APP
    // 检查是否首次启动 - 引导页逻辑
    let firstUpload = uni.getStorageSync("firstUpload") || false;
    if (!firstUpload) {
      // 标记已经显示过引导页
      uni.setStorageSync("firstUpload", true);
      // 跳转到引导页
      uni.navigateTo({
        url: "/pages/my/jobApplicant/startPage",
        success: () => {
          // 跳转成功后，不再执行后面的逻辑
          return;
        },
      });
      // 这里需要return，避免执行后面的代码
      return;
    }
    // #endif

    // #ifdef APP || H5
    uni.setStorageSync("isDial", false);
    setInterval(() => {
      // #ifdef H5 || APP
      let userId = uni.getStorageSync("userId");
      if (uni.getStorageSync("token")) {
        that.$Request.get("/app/chat/selectUserChatVideo").then((res) => {
          if (res.code == 0 && res.data) {
            // videoStatus 状态  1是发起 2是通话中 3是已取消 4是已拒绝 5是已结束  不过他只会返回1和2
            if (res.data.videoStatus) {
              console.log(res.data);
              uni.setStorageSync("videoStatus", res.data.videoStatus);
              uni.setStorageSync("messageType", res.data.messageType); //4视频通话 5语音通话
              if (res.data.videoStatus == 1) {
                console.log(uni.getStorageSync("isDial"));
                if (!uni.getStorageSync("isDial")) {
                  uni.setStorageSync("isDial", true); //跳转通话页面  做标识  true 已跳转 false 未跳转
                  uni.navigateTo({
                    url:
                      "/my/videoVoice/videoVoice?byUserId=" +
                      res.data.userId +
                      "&chatContentId=" +
                      res.data.chatContentId +
                      "&isRol=2&messageType=" +
                      res.data.messageType +
                      "&chatConversationId=" +
                      res.data.chatConversationId +
                      "&postPushId=" +
                      res.data.postPushId +
                      "&resumesId=" +
                      res.data.resumesId +
                      "&userType=" +
                      res.data.userType,
                  });
                }
              }
            }
          } else {
            uni.setStorageSync("videoStatus", 4);
          }
        });
      }
      // #endif
    }, 5000);
    // #endif
    // #ifdef MP-WEIXIN
    if (!uni.getStorageSync("token")) {
      uni.login({
        provider: "weixin",
        success: function (loginRes) {
          console.log(loginRes, "************");
          let data = {
            code: loginRes.code,
          };
          that.$Request.get("/app/Login/wxLogin", data).then((res) => {
            if (res.code == 0) {
              uni.setStorageSync("openId", res.data.open_id);
              uni.setStorageSync("unionId", res.data.unionId);
              uni.setStorageSync("sessionkey", res.data.session_key);
              let inviterCode = "";
              if (uni.getStorageSync("inviterCode")) {
                inviterCode = uni.getStorageSync("inviterCode");
              }
              let sendData = {
                openId: uni.getStorageSync("openId"),
                unionId: uni.getStorageSync("unionId"),
                userName: "游客",
                avatar: "",
                sex: "1", //性别
                inviterCode: inviterCode, //别人登录进来携带你的邀请码
              };
              let phoneNum = false;
              uni.setStorageSync("sendDataList", sendData);
              that.$Request.getT("/app/common/type/188").then((ret) => {
                if (ret.code == 0) {
                  if (ret.data && ret.data.value && ret.data.value == "是") {
                    phoneNum = true;
                    let flag = res.data.flag;
                    if (flag == "2" && phoneNum) {
                      //需要授权手机号则走手机号授权
                      uni.setStorageSync("weixinPhone", true);
                    } else {
                      //不需要手机号则则直接走授权登录
                      uni.setStorageSync("weixinPhone", false);
                    }
                  } else {
                    uni.setStorageSync("weixinPhone", false);
                  }
                }
              });
            }
          });
        },
      });
    }
    // #endif

    setInterval((d) => {
      //定时器，定时去调取聊天未读消息
      let userId = uni.getStorageSync("userId");
      if (userId) {
        this.$Request.get("/app/chat/selectChatCount").then((res) => {
          if (res.code === 0) {
            let chatCount = res.data.chatCount;
            let messageCount = res.data.messageCount;

            uni.setStorageSync("messageCount", messageCount);

            let num = chatCount + messageCount;
            if (num == 0) {
              uni.removeTabBarBadge({
                index: 2,
              });
              return;
            }
            uni.setTabBarBadge({
              index: 2,
              text: num + "",
            });
          }
        });
      }
    }, 6000);

    //#ifdef APP-PLUS
    // APP检测更新 具体打包流程可以参考：https://ask.dcloud.net.cn/article/35667
    plus.screen.lockOrientation("portrait-primary"); //竖屏正方向锁定
    //获取是否热更新过
    const updated = uni.getStorageSync("updated"); // 尝试读取storage

    if (updated.completed === true) {
      // 如果上次刚更新过
      // 删除安装包及安装记录
      console.log("安装记录被删除，更新成功");
      uni.removeSavedFile({
        filePath: updated.packgePath,
        success: (res) => {
          uni.removeStorageSync("updated");
        },
      });
    } else if (updated.completed === false) {
      uni.removeStorageSync("updated");
      plus.runtime.install(updated.packgePath, {
        force: true,
      });
      uni.setStorage({
        key: "updated",
        data: {
          completed: true,
          packgePath: updated.packgePath,
        },
        success: (res) => {
          console.log("成功安装上次的更新，应用需要重启才能继续完成");
        },
      });
      uni.showModal({
        title: "温馨提示",
        content: "应用将重启以完成更新",
        showCancel: false,
        complete: () => {
          plus.runtime.restart();
        },
      });
    } else {
      //获取当前系统版本信息
      plus.runtime.getProperty(plus.runtime.appid, (widgetInfo) => {
        //请求后台接口 解析数据 对比版本
        that.$Request.getT("/app/user/selectNewApp").then((res) => {
          res = res.data[0];
          if (res.wgtUrl && widgetInfo.version < res.version) {
            let downloadLink = "";
            let androidLink = res.androidWgtUrl;
            let iosLink = res.iosWgtUrl;
            let ready = false;
            //校验是是不是热更新
            if (res.wgtUrl.match(RegExp(/.wgt/))) {
              // 判断系统类型
              if (plus.os.name.toLowerCase() === "android") {
                console.log("安卓系统");
                if (androidLink && androidLink !== "#") {
                  // 我这里默认#也是没有地址，请根据业务自行修改
                  console.log("发现下载地址");
                  // 安卓：创建下载任务
                  if (androidLink.match(RegExp(/.wgt/))) {
                    console.log("确认wgt热更新包");
                    downloadLink = androidLink;
                    ready = true;
                  } else {
                    console.log("安卓推荐.wgt强制更新，.apk的强制更新请您自行修改程序");
                  }
                } else {
                  console.log("下载地址是空的，无法继续");
                }
              } else {
                console.log("苹果系统");
                if (iosLink && iosLink !== "#") {
                  // 我这里默认#也是没有地址，请根据业务自行修改
                  console.log("发现下载地址");
                  // 苹果(A)：进行热更新（如果iosLink是wgt更新包的下载地址）判断文件名中是否含有.wgt
                  if (iosLink.match(RegExp(/.wgt/))) {
                    console.log("确认wgt热更新包");
                    downloadLink = iosLink;
                    ready = true;
                  } else {
                    console.log("苹果只支持.wgt强制更新");
                  }
                } else {
                  console.log("下载地址是空的，无法继续");
                }
              }
              if (ready) {
                console.log("任务开始");
                let downloadTask = uni.downloadFile({
                  url: downloadLink,
                  success: (res) => {
                    if (res.statusCode === 200) {
                      // 保存下载的安装包
                      console.log("保存安装包");
                      uni.saveFile({
                        tempFilePath: res.tempFilePath,
                        success: (res) => {
                          const packgePath = res.savedFilePath;
                          // 保存更新记录到stroage，下次启动app时安装更新
                          uni.setStorage({
                            key: "updated",
                            data: {
                              completed: false,
                              packgePath: packgePath,
                            },
                            success: () => {
                              console.log("成功保存记录");
                            },
                          });
                          // 任务完成，关闭下载任务
                          console.log(
                            "任务完成，关闭下载任务，下一次启动应用时将安装更新"
                          );
                          downloadTask.abort();
                          downloadTask = null;
                        },
                      });
                    }
                  },
                });
              } else {
                console.log("下载地址未准备，无法开启下载任务");
              }
            } else {
              //不是热更新是在线更新 校验是否强制升级
              if (res.method == "true") {
                uni.showModal({
                  showCancel: false,
                  confirmText: "立即更新",
                  title: "发现新版本",
                  content: res.des,
                  success: (res) => {
                    if (res.confirm) {
                      that.$queue.showLoading("下载中...");
                      if (uni.getSystemInfoSync().platform == "android") {
                        uni.downloadFile({
                          url: androidLink,
                          success: (downloadResult) => {
                            if (downloadResult.statusCode === 200) {
                              plus.runtime.install(
                                downloadResult.tempFilePath,
                                {
                                  force: false,
                                },
                                (d) => {
                                  console.log("install success...");
                                  plus.runtime.restart();
                                },
                                (e) => {
                                  console.error("install fail...");
                                }
                              );
                            }
                          },
                        });
                      }
                      if (uni.getSystemInfoSync().platform == "ios") {
                        plus.runtime.openURL(iosLink, function (res) {});
                      }
                    } else if (res.cancel) {
                      console.log("取消");
                    }
                  },
                });
              } else {
                uni.showModal({
                  title: "发现新版本",
                  confirmText: "立即更新",
                  cancelText: "下次更新",
                  content: res.des,
                  success: (res) => {
                    if (res.confirm) {
                      that.$queue.showLoading("下载中...");
                      if (uni.getSystemInfoSync().platform == "android") {
                        uni.downloadFile({
                          url: androidLink,
                          success: (downloadResult) => {
                            if (downloadResult.statusCode === 200) {
                              plus.runtime.install(
                                downloadResult.tempFilePath,
                                {
                                  force: false,
                                },
                                (d) => {
                                  console.log("install success...");
                                  plus.runtime.restart();
                                },
                                (e) => {
                                  console.error("install fail...");
                                }
                              );
                            }
                          },
                        });
                      }
                      if (uni.getSystemInfoSync().platform == "ios") {
                        plus.runtime.openURL(iosLink, function (res) {});
                      }
                    } else if (res.cancel) {
                      console.log("取消");
                    }
                  },
                });
              }
            }
          }
        });
      });
    }

    //#endif
  },
  onShow: function () {
    // uni.removeStorageSync('firstLogin');
    // uni.removeStorageSync('firstUpload');
    //关键词过滤  602
    this.$Request.getT("/app/common/type/602").then((res) => {
      if (res.code == 0) {
        if (res.data && res.data.value) {
          this.$queue.setData("chatSearchKeys", res.data.value);
        }
      }
    });
    // 小程序是否上线
    // this.$Request.get('/app/common/type/238').then(res => {
    // 	if (res.code == 0) {
    // 		// #ifdef MP-WEIXIN
    // 		this.$queue.setData('XCXIsSelect', res.data.value);
    // 		// #endif
    // 		// #ifndef MP-WEIXIN
    // 		this.$queue.setData('XCXIsSelect', '是');
    // 		// #endif
    // 	}
    // });
    this.$Request.get("/app/common/type/257").then((res) => {
      if (res.code == 0) {
        // #ifdef MP-WEIXIN
        this.$queue.setData("XCXIsSelect", res.data.value);
        // #endif
        // #ifndef MP-WEIXIN
        this.$queue.setData("XCXIsSelect", "是");
        // #endif
      }
    });
    //用户客服
    // 企业微信链接 274
    this.$Request.get("/app/common/type/322").then((res) => {
      if (res.code == 0) {
        this.$queue.setData("kefu", res.data.value);
      }
    });
    // 企业微信客服APPID 275
    this.$Request.get("/app/common/type/324").then((res) => {
      if (res.code == 0) {
        this.$queue.setData("kefuAppid", res.data.value);
      }
    });
    //企业端客服
    this.$Request.get("/app/common/type/321").then((res) => {
      if (res.code == 0) {
        this.$queue.setData("kefuq", res.data.value);
      }
    });
    // 企业微信客服APPID 275
    this.$Request.get("/app/common/type/323").then((res) => {
      if (res.code == 0) {
        this.$queue.setData("kefuAppidq", res.data.value);
      }
    });
    // 企业会员每天免费联系次数 421
    this.$Request.get("/app/common/type/421").then((res) => {
      if (res.code == 0) {
        this.$queue.setData("vipMsgNum", res.data.value);
      }
    });
    // 企业非会员每天免费联系次数 422
    this.$Request.get("/app/common/type/422").then((res) => {
      if (res.code == 0) {
        this.$queue.setData("msgNum", res.data.value);
      }
    });
    // 企业会员每次联系价格 419
    this.$Request.get("/app/common/type/419").then((res) => {
      if (res.code == 0) {
        this.$queue.setData("vipMsgPrice", res.data.value);
      }
    });
    // 企业非会员每次联系价格 420
    this.$Request.get("/app/common/type/420").then((res) => {
      if (res.code == 0) {
        this.$queue.setData("msgPrice", res.data.value);
      }
    });
    //腾讯云实时语音SDKAppID
    this.$Request.get("/app/common/type/814").then((res) => {
      if (res.code == 0) {
        uni.setStorageSync("sdkAppId", res.data.value);
      }
    });
    console.log("App Show");
    // #ifdef H5
    // let sysTem = uni.getSystemInfoSync()
    // if (sysTem.model == 'PC') { //如果是pc访问移动端域名
    // 	this.$Request.get('/app/common/type/432').then(res => {
    // 		if (res.code == 0) {
    // 			if (res.data.value == '是') {
    // 				this.$Request.get('/app/common/type/433').then(ree => {
    // 					if (ree.code == 0) {
    // 						if (ree.data.value) {
    // 							window.location.href = ree.data.value;
    // 						}
    // 					}
    // 				})
    // 			}
    // 		}
    // 	})
    // }
    // #endif
    // #ifdef APP-PLUS

    if (uni.getSystemInfoSync().platform == "android") {
      let clientid = plus.push.getClientInfo().clientid;

      let userId = this.$queue.getData("userId");
      if (userId) {
        this.$Request
          .postT("/app/user/updateClientId?clientId=" + clientid + "&userId=" + userId)
          .then((res) => {});
      }
    }

    //#endif
    //#ifdef H5
    let isopen = false;
    this.$Request.get("/app/common/type/237").then((res) => {
      if (res.data.value == "是") {
        isopen = true;
      }
    });
    if (isopen) {
      let ua = navigator.userAgent.toLowerCase();
      if (ua.indexOf("micromessenger") !== -1) {
        let openid = uni.getStorageSync("openid");
        let userId = uni.getStorageSync("userId");
        let that = this;
        if (!openid) {
          if (
            window.location.href.indexOf("?code=") !== -1 ||
            window.location.href.indexOf("&code=") !== -1
          ) {
            let code;
            if (window.location.href.indexOf("?code=") !== -1) {
              code = window.location.href.split("?code=")[1].split("&")[0];
            } else {
              code = window.location.href.split("&code=")[1].split("&")[0];
            }
            this.$Request.get("/app/Login/getOpenId?code=" + code).then((ret) => {
              uni.setStorageSync("openId", ret.data);

              this.$Request
                .get("/app/Login/openid/login?openId=" + ret.data)
                .then((res) => {
                  this.$queue.setData("userId", res.user.userId);
                  this.$queue.setData("token", res.token);
                  this.$queue.setData("phone", res.user.phone);
                  this.$queue.setData("userName", res.user.userName);
                  this.$queue.setData("avatar", res.user.avatar);
                  this.$queue.setData("invitationCode", res.user.invitationCode);
                  this.$queue.setData("inviterCode", res.user.inviterCode);
                });
            });
          } else {
            this.$Request.get("/app/common/type/108").then((res) => {
              if (res.data.value == "是") {
                window.location.href =
                  "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" +
                  that.$queue.getWxAppid() +
                  "&redirect_uri=" +
                  window.location.href.split("#")[0] +
                  "&response_type=code&scope=snsapi_userinfo#wechat_redirect";
              }
            });
          }
        }
        if (userId && openid) {
          this.$Request
            .get("/app/Login/bindOpenId?userId=" + userId + "&openId=" + openid)
            .then((res) => {
              // 省钱兄陪玩 https://pw.xianmxkj.com
            });
        }
      }
    }

    //#endif
  },
  onHide: function () {
    console.log("App Hide");
  },
};
</script>

<style lang="scss">
/*每个页面公共css */
@import "uview-ui/index.scss";
@import "components/colorui/main.css";
@import "components/colorui/icon.css";

page {
  background-color: #ffffff;
  color: #343546;
}

.bg {
  background-color: #f7f7f7;
}
/*文本省略*/
.m-ellipsis {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.m-ellipsis-l2,
.m-ellipsis-l3 {
  display: -webkit-box;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  word-break: break-all;
}

.m-ellipsis-l2 {
  -webkit-line-clamp: 2;
}
.m-ellipsis-l3 {
  -webkit-line-clamp: 3;
}
</style>
