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

用照片做视频的模板下载网站网站运营总结

用照片做视频的模板下载网站,网站运营总结,南昌网站建设公司行情,企业新网站seo推广需求&#xff1a;封装一个表单弹框组件&#xff0c;弹框和表单是两个组件&#xff0c;表单以插槽的形式动态传入弹框组件中。 使用的方式如下&#xff1a; 直接上代码&#xff1a; MyDialog.vue 弹框组件 <template><el-dialog:titletitle:visible.sync"dialo…

需求:封装一个表单弹框组件,弹框和表单是两个组件,表单以插槽的形式动态传入弹框组件中。

使用的方式如下:

直接上代码:

MyDialog.vue 弹框组件

<template><el-dialog:title=title:visible.sync="dialogVisible":close-on-click-modal="false"width="40%"><slot name="content"></slot><span slot="footer" class="dialog-footer"><el-button size="mini" @click="handleCancelClick">取 消</el-button><el-button size="mini" type="primary" @click="handleOkClick">确 定</el-button></span></el-dialog>
</template><script>
export default {name: "MyDialog",props: {title: {type: String},message: {type: String},icon: {type: String,default: "info"},handleCancel: {type: Function},handleOk: {type: Function}},data() {return {dialogVisible: true,}},methods: {handleCancelClick() {this.dialogVisible = false;this.handleCancel();},handleOkClick() {this.dialogVisible = false;this.handleOk();},handleTestClick() {this.$emit('test-click')},}
}
</script><style scoped>/deep/.el-dialog__body {padding: 15px 20px;}/deep/ .el-dialog__header {padding: 2px 10px 2px;background-color: #1E2C3D;color: white;}/deep/ .el-dialog__title {color: white;font-size: 13px;font-family: 微软雅黑,serif;}/deep/ .el-dialog__headerbtn {top: 6px;}/deep/ .el-dialog__headerbtn .el-dialog__close {color: #fff;}</style>

 MyDialog.js 文件

import Vue from 'vue';
import MyDialog from "@/components/dialog4/MyDialog.vue";
import EventBus from "@/lib/event-bus";/*** 弹框组件的构造器* @param ctxCpm* @param dlgProps* @param onOkClick* @param onCancelClick* @returns {ExtendedVue<Vue, unknown, unknown, unknown, Record<never, any>, {}, ComponentOptionsMixin, ComponentOptionsMixin>|VNode}*/
function getDialogConstructor(ctxCpm, dlgProps, onOkClick, onCancelClick) {return Vue.extend({render(h) {return h(MyDialog, {props: {...dlgProps,handleOk: onOkClick,handleCancel: onCancelClick}},[h(ctxCpm, {slot: 'content',ref: 'myform',},)])}})
}// 暴露此函数供外部组件调用
/*** * @param ctxCpm     表单组件 * @param dlgProps   弹框组件的配置项props* @param onOkClick  确认按钮点击事件回调函数* @param onCancelClick 取消按钮点击事件回调函数* @returns {(function(): void)|*}  弹窗关闭后的回调函数*/
export const useDialog = (ctxCpm, dlgProps, onOkClick, onCancelClick) => {let DialogConstructor = getDialogConstructor(ctxCpm, dlgProps, () => {EventBus.$emit('form-submit', {callback: (formData) => {onOkClick(formData);}});}, onCancelClick);const dlg = new DialogConstructor();const dlgInstance = dlg.$mount();document.body.appendChild(dlgInstance.$el);return () => {dlgInstance.$el.remove();dlgInstance.$destroy();EventBus.$off("form-submit");		// 移除表单提交事件监听}
}

UserForm.vue 表单组件

<template><el-form><el-form-item label="用户名"><el-input v-model="form.name"></el-input></el-form-item><el-form-item label="年龄"><el-input v-model="form.age"></el-input></el-form-item><el-form-item label="住址"><el-input v-model="form.address"></el-input></el-form-item></el-form>
</template><script>
import EventBus from "@/lib/event-bus";export default {name: "UserForm",props: {dlgProps: Object},data() {return {form: {name: '',age: 0,address: ''}}},methods: {takeFormData() {return {...this.form}}},created() {// 监听表单提交(确认按钮点击)EventBus.$on('form-submit', (p) => {p.callback(this.takeFormData());});}
}
</script><style scoped></style>

MyDialogTest.vue 组件中调用

<template><div><el-button @click="handleClick">点我弹出用户组件弹框</el-button></div>
</template><script>
import {useDialog} from "@/components/dialog4/MyDialog";
import UserForm from "@/components/dialog4/UserForm";export default {name: "MyDialogTest",methods: {handleClick() {const close = useDialog(UserForm, {title: "新增用户表单", message: "是否确定?", icon: "warn"}, (params) => {console.log("Test.....", params);close();}, () => {console.log("取消按钮被点击");close();})}}
}
</script><style scoped></style>

效果如下:

http://www.dtcms.com/wzjs/801345.html

相关文章:

  • 六安网站怎么做seo网页设计字体代码
  • 洛江区建设局网站浙江省甲级设计院加盟
  • seo网站推广的主要目的是什么台州网站外包
  • 你做网站群好朋友的作文广东官网网站建设怎么样
  • 我想做一个小网站搞页游该怎么做asp iis设置网站路径
  • 晋江网站建设报价动易会提示模版文件"默认网站首页问答模板.html"找不到
  • 网站建设建议书轮播网站
  • 宜昌市做网站的公司网站建设120
  • 昌邑网站制作个人淘宝开店流程步骤
  • 衡水网站制作公司哪家专业seo站群优化技术
  • wordpress站点 HTML三门峡网站制作公司
  • 商业网站大全深圳视频网站开发
  • 谷歌代运营赣州网站seo
  • 苏州专业做网站公司电话十大社交电商平台排名
  • 在线设计logo免费网站移动网站建站系统
  • 成品网站软件宁波seo推荐优化
  • 江苏省数字文化馆网站建设loft办公室装修设计方案
  • 自己做的网页怎么连接到网站asp.net 网站开发 实战
  • 做一个网站开发要多少钱wordpress主题还原
  • 做网站要那些设备关于网站的ppt怎么做
  • 静安集团网站建设兰州移动官网网站建设
  • 做百度线上推广北京网站关键词优化推荐
  • 做网站多少费用建设工程发布公告的网站
  • 阿里云备案网站建设方案书范文网站源码下载 用户注册
  • 网站被恶意刷流量wordpress支付文件在哪
  • 莆田网站制作公司网页版微信登不上去怎么回事
  • 简单网站建设教程找人帮忙注册app推广
  • 对比色的网站wordpress加会员中心
  • 西安摩高网站建设网站排名按天付费
  • 网站托管维护方案在线网站建设工程标准