import { mapGetters } from 'vuex';

export const myMixin = {
  computed: {
    ...mapGetters(['userinfo']),
    roleUser(){
      return Object.keys(this.userinfo).length != 0 ? this.userinfo : this.userJson
    }
  },
  data() {
    return {
        userJson: {},
        prefixL: window.location.href.includes("/liyuan") ? "liyuan_" : "admin_"
    };
  },
  methods: {
    detectBrowser() {
      const ua = navigator.userAgent;

      // 按优先级顺序检测
      if (ua.includes("Edg/") || ua.includes("Edge/")) {
        return "Microsoft Edge";
      } else if (ua.includes("Firefox")) {
        return "Mozilla Firefox";
      } else if (ua.includes("Trident") || ua.includes("MSIE")) {
        return "Internet Explorer";
      } else if (ua.includes("360EE")) {
        return "360 Browser (极速模式)";
      } else if (ua.includes("360SE")) {
        return "360 Browser (安全模式)";
      } else if (ua.includes("SLBrowser")) {
        return "QQ Browser";
      } else if (ua.includes("UCBrowser")) {
        return "UC Browser";
      } else if (ua.includes("Opera") || ua.includes("OPR/")) {
        return "Opera";
      } else if (ua.includes("Chrome") && !ua.includes("Edg/")) {
        return "Google Chrome";
      } else if (ua.includes("Safari/") && !ua.includes("Chrome")) {
        return "Safari";
      } else {
        return "Other Browser";
      }
    },
    async addOp3(userTime, loadTime, object, status,account) {
      if (!this.roleUser.userid) return

      try {
        if(!this.roleUser || !this.roleUser.accountNumber){
            let res = await this.$ajax.get('https://pbl.cocorobo.cn/api/pbl/selectUser', {
              userid: account
            });

            this.userJson = res.data[0][0]
            console.log('this.userJson',this.userJson);
        }
      } catch (e) {
        console.log(e);
        return this.addOp3(userTime, loadTime, object, status);
      }  

      let _time = new Date()
        .toLocaleString("zh-CN", { hour12: false, timeZone: "Asia/Shanghai" })
        .replace(/\//g, "-");
      let browser = this.detectBrowser();

      let params = {
        userid: this.roleUser.userid,
        username: this.roleUser.username,
        accountNumber: this.roleUser.accountNumber,
        org: this.roleUser.orgName,
        school: this.roleUser.schoolName,
        role: this.roleUser.type =='1'?'老师':'学生',
        browser: browser,
        userTime: userTime == "1" ? _time : userTime, // 使用时间 1次的就1 其次传秒
        loadTime: loadTime, //load的时间没有就“”
        object: JSON.stringify(object), //执行信息传json
        status: status //成功返回success。失败返回error的信息
      };
      console.log('...',params);
      

      this.$ajax
        .post('https://pbl.cocorobo.cn/api/mongo/' + "updateUserData2", [params])
        .then(res => {
          if (res.data.status == 1) {
            console.log("保存成功");
          } else {
            console.log("保存失败");
          }
        })
        .catch(e => {
          console.log("保存失败");
          console.log(e);
        });
    }
  }
};
