import ULoadingPage from 'uview-ui/components/u-loading-page/u-loading-page'; // 确保正确引入组件

export default {
  install(Vue) {
    // 注册 u-loading-page 组件为全局组件
    Vue.component('u-loading-page', ULoadingPage);

    // 用于存储全局的 loading 组件实例
    let loadingInstance = null;

    // 创建一个全局的显示 loading 的方法
    Vue.prototype.$showLoading = function () {
      // 如果没有创建过实例，则创建一个
      if (!loadingInstance) {
        const LoadingConstructor = Vue.extend({
          data() {
            return {
              loading: true, // 控制 loading 显示的状态
            };
          },
          render(h) {
            return h('u-loading-page', {
              props: {
                loading: this.loading,
                loadingText: '',
                loadingColor: "#000",
                iconSize: '58rpx',
              },
              style: {
                zIndex: '200',
                opacity: 0.7
              }
            });
          }
        });
        loadingInstance = new LoadingConstructor();
        loadingInstance.$mount(); // 手动挂载实例
        document.body.appendChild(loadingInstance.$el); // 将组件挂载到 body
      }
      loadingInstance.loading = true; // 显示 loading
    };

    // 创建一个全局的隐藏 loading 的方法
    Vue.prototype.$hideLoading = function () {
      if (loadingInstance) {
        loadingInstance.loading = false; // 隐藏 loading
      }
    };
  },
};
