首页 > 其他分享 >可拖拽弹框组件

可拖拽弹框组件

时间:2023-12-29 11:57:51浏览次数:51  
标签:false default 弹框 item Boolean 组件 close type 拖拽

可拖拽组件 <BaseDialog             v-if="totalDialogVisible"             title="合计"             :visible.sync="totalDialogVisible"             width="30%"             @close="handleCloseTotal"             @submit="handleCloseTotal"             >             <!-- <p v-for="(item,index) in currencyData" :key="index" style="color:#DD1931;font-size: 18px; font-weight: bold;">                 <span>应付 {{item.currency}} : </span>                 <span>{{item.totalAmount}}</span>             </p> -->               <!-- 应收 -->               <div v-for="(item,index) in arList" :key="index" style="color:rgb(102, 163, 9); font-size:16px; font-weight:bold">                    <p>应收 {{item.currency}} : {{item.totalAmount}} </p>               </div>                 <!-- 应付 -->                 <div v-for="(item,index) in apList"  :key="'flag'+ index" style="color:rgb(221, 25, 49); font-size:16px; font-weight:bold">                   <p>应付  {{item.currency}} :  {{item.totalAmount}}</p>                 </div>                         </BaseDialog>   ================================================================================================= main.js中引用:   import BaseDialog from "@/components/BaseDialog"; 在全局挂在一次 Vue.component('BaseDialog', BaseDialog)   baseDigLog文件夹 index.vue: <template>   <el-dialog     :title="title"     :visible.sync="visible"     :width="width"     :before-close="handleClose"     :append-to-body="true"     :close-on-click-modal="false"     :destroy-on-close="destroyOnClose"     :modal="modal"     :show-close="showClose"     v-dialogDrag="drag"     ref="dialogRef"   >     <div class="center-box">       <slot></slot>     </div>
    <template v-if="slotFooter">       <slot slot="footer" name="slotFooter"></slot>     </template>     <template v-else>       <span slot="footer" class="dialog-footer" v-if="!hiddenFooter">         <el-button @click="handleClose" v-if="showCancel">{{ cancelText }}</el-button>         <el-button type="primary" @click="submit" :loading="loading" v-if="showConfirm" :disabled="confirmDisabled">{{ confirmText }}</el-button>       </span>     </template>   </el-dialog> </template> <script>
export default {   props: {     visible: false,     title: '',     width: '',     // 是否隐藏footer     hiddenFooter: {       type: Boolean,       default: false     },     destroyOnClose: {       type: Boolean,       default: true     },     // 确定后的loading状态     loading: false,     // 插槽footer,为true得自己配置footer, name为slotFooter     slotFooter: false,     // 是否显示确认     showConfirm: {       type: Boolean,       default: true     },     // 是否显示取消     showCancel: {       type: Boolean,       default: true     },     // 是否显示遮罩层     modal: {       type: Boolean,       default: false     },     // 是否显示右上角x     showClose: {       type: Boolean,       default: true     },     // 默认的取消按钮文本     cancelText: {       type: String,       default: '取 消'     },     // 默认的确定按钮文本     confirmText: {       type: String,       default: '确 定'     },     // 是否拖拽     drag: {       type: Boolean,       default: true     },     // 确定按钮是否禁用     confirmDisabled: {       type: Boolean,       default: false     }   },   data() {     return {     };   },   created(){   },   beforeDestroy() {     this.destory()   },   deactivated() {     this.destory()   },   methods: {     handleClose() {       this.$emit("close");     },     submit() {       this.$emit("submit");     },     destory() {       // 没有no-close类名,才执行关闭事件       if (!this.$refs.dialogRef.$el.classList.contains('no-close')) this.handleClose()     }   }, }; </script>
<style lang="scss" scoped> ::v-deep .el-dialog__footer {   text-align: center;   clear: both; } </style> =================================================================== example.vue: <template>   <BaseDialog     v-if="visible2"     :title="title"     :visible="visible2"     width="1200px"     @close="close"     @submit="submit"   >     <div class="content">       <!-- 这里放业务代码 -->     </div>   </BaseDialog> </template>
<script> // 这是使用BaseDialog组件的例子,可直接复制使用
export default {   props: {     visible: false,     title: {       type: String,       default: () => 'Title'     },   },   data() {     return {       visible2: this.visible,     };   },   created() {   },   methods: {     close() {       this.visible2 = false       this.$emit('close')     },     submit() {       this.close()     }   }, }; </script> <style scoped lang="scss"> .content {   padding: 0 5px 10px;   text-align: left; } </style>   totalDialogVisible  是用来判断此组件是否需要显示和隐藏的   handleCloseTotal(){         this.totalDialogVisible = false;     }, 用来关闭弹框

标签:false,default,弹框,item,Boolean,组件,close,type,拖拽
From: https://www.cnblogs.com/rockyjs/p/17934555.html

相关文章

  • table表格 组件
     <template> <div>  <BaseTable   :searchConfig="searchConfig"   :operateBtnConfig="operateBtn"   :tableData="tableData"   :tableConfig="tableConfig"   :pagination="pagin......
  • 下拉分页组件 select-page
    组件使用文档:https://terryz.gitee.io/vue/#/selectpage/demo实例:需要使用的下拉分页的页面: <el-form-itemlabel="公司"prop="carrierId">     <base-selectPagev-model="ruleForm.carrierId"keyField="crmCorporationId"@ch......
  • vue 将百度地图或者高德地图组件化
    一、前言百度地图已经有了react相关的组件库,本人用的百度地图v3.0和vue3我仅仅是抛砖引玉,百度地图webgl、高德地图都是一样的,因为底层都是通过js控制地图如果用组件的方式开发,比如我将BMap.Marker作为一个组件,我暴露一个参数position,其目的是控制BMap.Marker位置......
  • 【泰裤辣 の Unity百宝箱】Canvas组件四件套讲解
    【泰裤辣のUnity百宝箱】Canvas组件四件套讲解原创 打工人小棋 打工人小棋 2023-05-1613:24 发表于广东1.介绍在上一期内容中,我分享了一套简单易用的UI框架。没想到大家的学习热情这么高,讨论度是目前所有内容最高的。由此可见,天下苦UI(秦)久已!!!接下去,我们继续......
  • C++ Qt开发:SqlTableModel映射组件应用
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍SqlTableModule组件的常用方法及灵活运用。在多数情况下我们需要使用SQL的方法来维护数据库,但此......
  • 封装一个表情包组件(支持自定义表情图片)(基于vue3语法)
    效果图文件图直接贴代码emotion.vue<template><divclass="emotion-containerbeauty-scroll-livechat"><divclass="emotion-btn"@click="toggleEmotionShow"><spanclass="iconfonticon-biaoqing1&quo......
  • 分页组件
    分页组件的使用有三种分页方式需要新建一个py文件,以pagination.py为例 方式一:基本分页第一步:导入分页类fromrest_framework.paginationimportPageNumberPagination 第二步:书写分页类,继承PageNumberPagination并定义属性classCommonPageNumberPagination(PageN......
  • 过滤组件
    过滤组件的使用有两种使用方式 方式一:使用drf内置过滤类第一步:保证视图类继承GenericAPIView及其子类#以图书类为例classBookView(ViewSetMixin,ListAPIView):queryset=Book.objects.all()serializer_class=BookSerializer 第二步:导入过滤类的相关......
  • 排序组件
    排序组件快速使用第一步:视图类需继承GenericAPIView或其子类#以图书类为例classBookView(ViewSetMixin,ListAPIView):queryset=Book.objects.all()serializer_class=BookSerializer 第二步:导入排序类相关组件#drf内置了排序类fromrest_framework.f......
  • layui 树组件tree 通过API获取数据
    一、简单vartreedata=[]; tree.render({ elem:'#addLeftType', id:'demoId', data:treedata, showCheckbox:true, oncheck:function(obj){ console.log(obj.data);//得到当前点击的节点数据 console.log(obj.checked);//节点是否被选中 console.l......