当前位置: 首页 > news >正文

公司网站seo外包塘厦网站建设公司

公司网站seo外包,塘厦网站建设公司,广州做网站的网络公司排名,工作人员否认陈道明演庆余年2使用antdv 后发现只有button支持loaidng属性&#xff0c;而其他元素不能使用loading来显示是否加载中&#xff0c;需要套一层 a-spin 才能支持&#xff0c;非常不方便。 所以写了个自定义的指令来进行处理 新建loading.vue文件用来页面显示 <template><div class&q…

使用antdv 后发现只有button支持loaidng属性,而其他元素不能使用loading来显示是否加载中,需要套一层 a-spin 才能支持,非常不方便。

所以写了个自定义的指令来进行处理

新建loading.vue文件用来页面显示

<template><div class="loading-container"><LoadingOutlined /><p>{{ state.loading.text }}</p></div>
</template>
<script lang="ts" setup>
import { LoadingOutlined } from '@ant-design/icons-vue';
import { reactive } from 'vue';
const FONT_SIZE = {samll: {icon: '16px',p: '12px'},default: {icon: '20px',p: '16px'},large: {icon: '24px',p: '20px'}
}
const state = reactive({loading: {text: '正在加载中',fontSize: {icon: '20px',p: '16px'}} as { text?: string; fontSize?: { icon: string; p: string } }
})function updateInfo(params: { text: string; size: 'samll' | 'default' | 'large' }) {state.loading = {text: params.text,fontSize: FONT_SIZE[params.size]}
}defineExpose({ updateInfo })</script>
<style lang="scss" scoped>
.loading-container {position: absolute;left: 0;top: 0;height: 100%;width: 100%;overflow: hidden;background: rgba($color: #ffffff, $alpha: 0.7);display: flex;flex-direction: column;justify-content: center;align-items: center;font-size: 16px;color: #335dfd;z-index: 999999;:deep(.anticon-loading) {font-size: 20px;}p {margin-top: 10px;font-size: 16px;}
}
</style>

在新建个loading.ts 用来注册v-loading 相关操作

import { createApp, Directive } from 'vue';
import Loading from './index.vue';
/*** @description 判断是否为空对象* **/
export const isEmptyObj = (obj: object): boolean => {return JSON.stringify(obj) === "{}";
};/** v-eLoading:[loadingConfig]="state.l||state.a */
const loading: Directive = {mounted(el, binding) {const app = createApp(Loading);const instance = app.mount(document.createElement('div')) as any;el.instance = instance;el.style.position = 'relative';const arg:any = binding.argif (!isEmptyObj(arg as any)){const params = {text:arg?.text||'正在加载中',size:'default'}instance.updateInfo(params)}if (binding.value) {appendEl(el);}},updated(el, binding) {console.log(binding.value !== binding.oldValue)if (binding.value !== binding.oldValue) {binding.value ? appendEl(el) : removeEl(el);}},
};const appendEl = (el: { appendChild: (arg0: any) => void; instance: { $el: any; }; }) => {el.appendChild(el.instance.$el);
};const removeEl = (el: { removeChild: (arg0: any) => void; instance: { $el: any; }; }) => {el.removeChild(el.instance.$el);
};export default loading;

最后在main.ts 进行注册

import loadingDirective from 'packages\Loading\index.ts'
createApp(App).directive('loading', loadingDirective).mount('#app')

在页面中就可以直接进行v-loading 进行使用了

<div v-loading="true"></div>
http://www.yayakq.cn/news/146557/

相关文章:

  • 怎么增加网站首页权重虚拟主机比较
  • 网站建设零金手指花总东莞百度快速排名优化
  • 网站建设公司怎么找业务中国在菲律宾做网站
  • 怎么申请建立一个公司网站活动网站推广
  • 自己网站做短链接软件开发培训视频
  • 老房装修深圳seo优化电话
  • 实验室网站建设重要性凡科网站免费注册
  • 又拍云wordpress全站cdn自动生成logo的网站
  • 石景山网站建设公司网站注册可以免费吗
  • 企业营销型网站建设哪家好微信分享链接转换wordpress
  • 屏蔽ip网站吗cpa怎么做网站
  • 厦门网站建设方案维护两学一做网站是多少
  • 专业网站公司百度快照不更新
  • 免费的网站开发工具惠州网站建设找哪个公司
  • 建站模板招募设计师百度秒收录软件工具
  • 经营网站的备案wordpress怎么登录界面
  • 网站开发优惠活动方案电脑网页制作软件有哪些
  • 学网站开发的培训学校36优化大师下载安装
  • 建设企业网站的人员组成网站域名登录
  • 建设网站的方案获客平台有哪些
  • 有二维码怎样做网站正规男科医院
  • 仅仅建设银行网站打不开做网站要先做商标吗
  • 江阴安泰物流有限公司网站谁做的电商wordpress和thinkphp
  • 成都有哪些比较做网站比较好的自助建站系统哪个好用
  • 货物运输东莞网站建设网站建设费计入 科目
  • 网站建设方案书网络部署方案线上渠道推广有哪些方式
  • 九江市房管局建设官方网站wordpress模板可以添加注册会员
  • 威海建设集团官方网站女生读电子商务好就业吗
  • 使用的电脑做网站的服务器网站管理助手怎么使用
  • 广州专门做网站深圳建站模板公司