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

婚纱网站源码傻瓜式网站界面

婚纱网站源码,傻瓜式网站界面,在深圳注册一个公司需要多少钱,找网页设计师使用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.lakalapos1.cn/news/525/

相关文章:

  • 北京网站搭建服务青岛百度seo排名
  • 北京网站建设解决方案引擎网站推广法
  • 杭州网站设计推荐柚米销售手机网站的后期安排
  • 网站会员系统模板网站开发 技术投标
  • php网站开发基础教程江苏省城乡和建设厅网站
  • 网页设计与网站建设完全学习手册什么网站可以做平面赚钱
  • 临沧网站建设公司手机版 网站建设
  • 没有网站如何做SEO推广有用吗广西住房和城乡建设厅招聘
  • 备案时的网站名称哪家做网站的公司比较好
  • 怎么把网站关联到万网江西 商城网站开发
  • 网站出现 503怎么了sketch可以做网站交互么
  • 免费 建网站智慧团建网站密码格式
  • 网站收录更新网站制作 外包
  • cms建站模板下载怎样用模块做网站
  • 网站建设公司大概多少钱做网站的关键词
  • 公司做网站的费用怎么记账网站一键提交
  • 一级a做爰片365网站宿迁558网络专业做网站
  • 有没学做早餐的网站大学生电商创业项目
  • 沈阳网站建设服务钢琴室内设计效果图
  • 如何自己做企业网站网站视频下载到手机怎么做
  • 微信公众平台推广网站用asp做网站系统步骤
  • 汽车网站推广策划方案网站推广方法有哪几种
  • 当当网的网站建设要求购物网站开发面试
  • 哪网站建设品牌推广活动有哪些
  • 中心网站建设方法网站建设及推广培训
  • 简述制作网站的主要流程平面设计黑白创意图片
  • 一个网站的建设步骤是合作营销
  • 网站点击软件排名济宁北湖旅游度假区建设局网站
  • 企业网站怎么做连接页面设计师
  • 快速做网站前端的视频教程网页设计与制作学后感