// 全局 mixin - 可以在 main.js 中全局注册
export default {
  data() {
    return {
      // 全局数据
      globalVersion: '1.0.0'
    }
  },
  
  methods: {
    // 模拟小程序setData方法
    setData: function(obj, callback) {
        let that = this;
        let keys = [];
        let val, data;
        
        obj && Object.keys(obj).forEach(function(key) {
            keys = key.split('.');
            val = obj[key];
            data = that.$data;
            
            keys.forEach(function(key2, index) {
                if (index + 1 == keys.length) {
                    that.$set(data, key2, val);
                } else {
                    if (!data[key2]) {
                        that.$set(data, key2, {});
                    }
                }
                data = data[key2];
            })
        });
        
        typeof callback == 'function' && callback()
    },
	
    // 全局方法：获取系统信息
    getSystemInfo() {
      return new Promise((resolve) => {
        uni.getSystemInfo({
          success: (res) => {
            resolve(res)
          }
        })
      })
    },
    
    // 全局方法：设置页面标题
    setPageTitle(title) {
      uni.setNavigationBarTitle({
        title
      })
    },
    
    // 全局方法：复制到剪贴板
    copyToClipboard(text) {
      return new Promise((resolve, reject) => {
        uni.setClipboardData({
          data: text,
          success: () => {
            uni.showToast({
              title: '复制成功',
              icon: 'success'
            })
            resolve()
          },
          fail: (error) => {
            uni.showToast({
              title: '复制失败',
              icon: 'none'
            })
            reject(error)
          }
        })
      })
    },
    
    // 全局方法：获取当前页面路径
    getCurrentPagePath() {
      const pages = getCurrentPages()
      const currentPage = pages[pages.length - 1]
      return currentPage ? currentPage.route : ''
    },
    
    // 全局方法：检查网络状态
    async checkNetworkStatus() {
      return new Promise((resolve) => {
        uni.getNetworkType({
          success: (res) => {
            resolve(res.networkType !== 'none')
          },
          fail: () => {
            resolve(false)
          }
        })
      })
    }
  },
  
  // 全局生命周期
  created() {
    // 可以在这里添加全局初始化逻辑
    // console.log('Global mixin created')
  }
}
