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

网站做cpa赚钱北排建设公司官网

网站做cpa赚钱,北排建设公司官网,网站导航界面,平台推广的方法有哪些最初可运行代码 弹窗组件代码&#xff1a; &#xff08;后来发现以下代码可运行&#xff0c;但打包 typescript 类型检查出错&#xff0c;可打包的代码在文末&#xff09; <template><div v-if"isVisible" class"dialog"><div class&quo…

最初可运行代码

弹窗组件代码:

(后来发现以下代码可运行,但打包 typescript 类型检查出错,可打包的代码在文末)

<template><div v-if="isVisible" class="dialog"><div class="dialog-content"><div style="padding: 40px 40px; text-align: center">{{message}}</div><div style="display: flex; border-top: 1px solid #d2d0d0"><div @click="cancel" class="dialog-button">取消</div><div style="border-right: 1px solid #d2d0d0"></div><div @click="handleConfirm" class="dialog-button" style="color: #4e8fd3">确定</div></div></div></div>
</template><script setup lang="ts">
import { ref } from 'vue';const isVisible = ref(false);
const message = ref('');
const confirmCallback = ref(null)
const cancelCallback = ref(null);const showDialog = (params = {} ) => {isVisible.value = true;message.value = params.message || '提示内容';confirmCallback.value = params.confirmCallback || null;cancelCallback.value = params.cancelCallback || null;
};const handleConfirm = () => {if (confirmCallback.value) {confirmCallback.value();}isVisible.value = false;
};const cancel = () => {if (cancelCallback.value) {cancelCallback.value();}isVisible.value = false;
};defineExpose({showDialog
});
</script><style scoped>
.dialog {position: fixed;top: 0;left: 0;width: 100%;height: 100%;background-color: rgba(0, 0, 0, 0.5);display: flex;justify-content: center;align-items: center;font-size: 16px;
}.dialog-content {background-color: #fff;border-radius: 10px;width: 80%;
}.dialog-button {flex-grow: 1;text-align: center;padding: 20px 0;
}
</style>

效果:更适用于移动端

弹窗显示:

<template><div><button @click="openDialog">打开弹窗</button><ChildDialg ref="dialogRef" /></div>
</template><script setup lang="ts">
import { ref } from 'vue';// 1. 引入子组件
import ChildDialg from "@/views/components/ChildDialg.vue";// 2. 定义子组件 ref 参数
const dialogRef = ref(null);const openDialog = () => {// 3. 弹窗显示dialogRef.value.showDialog({message: '内容',confirCallback: () => {}});
};
</script>

打包 typescript 检查错误修复

######## 项目打包,typescript 类型检查报错 ###########

1. 函数接收类没有属性定义

2. 调用弹窗时未作 组件 非空判断

3. 接收的回调函数参数,定义的初始值为 null ,无法以函数方式调用

4. 定义的组件 ref 参数默认值为 null ,无法调用子组件暴露的函数

5. 子组件定义的参数 与 父组件传递的参数不一致(定义了取消回调,但没有传入)

可以选择传入“取消”操作的回调函数,但考虑到此组件在我实际运用时取消没有其它操作,便选择不定义其回调函数

最终可打包的代码

<template><div v-if="isVisible" class="dialog"><div class="dialog-content"><div style="padding: 40px 40px; text-align: center">{{message}}</div><div style="display: flex; border-top: 1px solid #d2d0d0"><div @click="cancel" class="dialog-button">取消</div><div style="border-right: 1px solid #d2d0d0"></div><div @click="handleConfirm" class="dialog-button" style="color: #4e8fd3">确定</div></div></div></div>
</template><script setup lang="ts">
import { ref } from 'vue';const isVisible = ref(false);
const message = ref('');
const confirmCallback = ref(() => {})
const cancelCallback = ref(() => {});const showDialog = (params = {message: '提示内容',confirmCallback: () => {}
} ) => {isVisible.value = true;message.value = params.message;confirmCallback.value = params.confirmCallback;
};const handleConfirm = () => {if (confirmCallback.value) {confirmCallback.value();}isVisible.value = false;
};const cancel = () => {if (cancelCallback.value) {cancelCallback.value();}isVisible.value = false;
};defineExpose({showDialog
});
</script><style scoped>
.dialog {position: fixed;top: 0;left: 0;width: 100%;height: 100%;background-color: rgba(0, 0, 0, 0.5);display: flex;justify-content: center;align-items: center;font-size: 16px;
}.dialog-content {background-color: #fff;border-radius: 10px;width: 80%;
}.dialog-button {flex-grow: 1;text-align: center;padding: 20px 0;
}
</style>
<template><div><button @click="openDialog">打开弹窗</button><ChildDialg ref="dialogRef" /></div>
</template><script setup lang="ts">
import { ref } from 'vue';// 1. 引入子组件
import ChildDialg from "@/views/components/ChildDialg.vue";// 2. 定义子组件 ref 参数
const dialogRef = ref<InstanceType<typeof  DialogView> | null>(null)const openDialog = () => {// 3. 弹窗显示if(dialogRef.value) {dialogRef.value.showDialog({message: '内容',confirCallback: () => {}});}
};
</script>

http://www.yayakq.cn/news/976542/

相关文章:

  • 网站显示备案号安卓软件下载用什么好
  • 网站关键词更新seo人才
  • 网站建设必须经历的过程源码下载论坛
  • 网站制作成功案例公司企业网站建设注意事项
  • 外贸网站都有那些网页设计流程25
  • js 网站校验免费域名申请教程
  • 中卫网站推广优化公司徐州网站制作报价
  • 单页面网站如何优化引流网站免费建站ppa
  • 太原站扩建后的规模网站备案主体 被拉黑
  • 海南省零售户电商网站园林绿化
  • 安徽省建设厅网站资料下载东莞网站优化怎样
  • 济南网站建设网站东莞seo外包公司
  • 网站建设财务上做什么费用天津手工活外发加工网
  • 网站编译成dll网页版梦幻西游奔波儿灞
  • 暖通设计网站推荐邢台手机网站建设报价
  • 政务服务网站建设性建议centos搭建wordpress
  • 建设部网站官网考试jsp网站开发详解书籍
  • 怎么才能提高网站点击量 免费wordpress hls
  • 赣州制作网站企业中国建筑装饰网注册用户名
  • 定制软件的网站百度网盘怎样做网站
  • 怎么写网站建设推广wordpress 首页添加链接地址
  • js模板网站大型门户网站建设哪专业
  • 非常赚又一个wordpress站点网站开发编程工程师招聘
  • 网站流量怎么挣钱优质的中小型网站建设
  • 平台网站开发公司网络整合营销4i原则是指
  • 网站头部ps网站长尾关键词优化
  • 番禺网站建设多少钱360关键词排名百度
  • 做网站快还是开发app快舞曲网站建设
  • 建设企业网站的流程辽宁网站建设推广哪家便宜
  • 苏州网站建设最佳方案微信app官方下载