Coder Social home page Coder Social logo

vue-dialog-yy's Introduction

安装:

npm i vue-dialog-yy

引入

import Vue from 'vue'
import Dialog from 'vue-dialog-yy'

Vue.use(Dialog, {
  // 务必传入store和router,否则Dialog内组件用到时会报错,因为不共享同一个Vue实例
  store,
  router,
  // 如果需要注册为组件,声明registerComponent并定义组件名
  registerComponent: 'CustomDialog'
})

使用示例:

1. 模板中使用

可直接复制文件 /node_modules/vue-dialog-yy/src/Dialog.vue 作为组件使用

2. script中使用

this.$dialog(
  // Dialog标题
  'title',
  // 引入的组件模块、显示的内容
  import('components/dialog/testValidate'),
  // Dialog的配置项
  {
    // minimizable为true时需要指定唯一id
    id: 'testValidate', 
    // 最小化时如果有设置id,不会执行then和beforeClose的方法,只会执行onMinimized()
    minimizable: true,
    maximizable: true,
    // 使用方法调用Dialog时必须设置appendToBody为true,(默认为true),否则不会弹出
    appendToBody: true, 
    // 使用方法调用Dialog时必须设置inline为false,(默认为false),否则不会弹出
    inline: false,
    // 是否显示默认取消按钮
    showCancelButton: false,
    // 默认取消按钮文字
    cancelButtonText: '取消',
    // 是否显示默认确认按钮
    showConfirmButton: false,
    // 默认确认按钮文字
    confirmButtonText: '确认',
    // 自定义Dialogclass
    customClass: 'custom',
    // 自定义按钮
    customButtons: [
      {
        text: '立即创建',
        type: 'primary',
        loading: false,
        click: (child, done, button) => {
          button.loading = true
          // 调用子组件的方法
          child.resetForm()
          button.loading = false
          button.text = '完成'
        }
      }, {
        text: '充值',
        click: (child, done, button ) => {
          // 传入父组件的参数
          child.resetForm(this.data1)
        }
      }
    ],
    // Dialog打开时的钩子
    onOpen: child => {
      child.search()
    },
    // Dialog关闭前的钩子,可以控制Dialog是否要关闭
    onBeforeClose: (child, done, action) => {
      console.log(action)
      // 需要显示调用done()方法才会关闭Dialog, 方法可以传入任意参数,会做为then的action
      done()
    }
  },
  // 传入子组件的props,用on+小驼峰命名来区分事件和props
  {
    type: 'edit',
    // 子组件$emit('onSearch')触发
    onSearch: (data) => {
      console.log(data)
    }
  }
).then(action => {
  // Dialog关闭后的钩子
  console.log(action)
})

Attributes

参数 说明 类型 可选值 默认值
id 是否永久保存该Dialog实例,若有id则保存,默认不保存,需要整个项目唯一id string、number - -
showCancelButton 是否显示默认取消按钮 boolean - true
cancelButtonText 默认取消按钮文字 string、number - '取消'
cancelButtonSize 默认取消按钮大小 string medium / small / mini 'small'
showConfirmButton 是否显示默认确认按钮 boolean - true
confirmButtonText 默认确认按钮文字 string、number - '确认'
confirmButtonSize 默认确认按钮大小 string medium / small / mini 'small'
customClass 自定义Dialog类名,样式可以直接写在style/index.scss里 string - -
customButtons 自定义按钮,配置见使用示例 Array - -
title 标题文字, 不传即不显示头部 string - ''
headerBackground header背景, 可设置渐变 string - '#e8f4ff'
footerBackground footer背景, 可设置渐变 string - '#fff'
icon 标题旁边的图标样式名称 string element-ui的图标 -
width Dialog宽度 string - auto
height Dialog高度 string - auto
headerHeight 头部高度 string - '40px'
footerHeight 底部高度 string - '40px'
closable 是否显示关闭按钮 boolean - true
maximizable 是否显示最小化按钮 boolean - false
maximizable 是否显示最大化按钮 boolean - false
closeOnClickModal 是否可以通过点击 modal 关闭Dialog boolean - true
closeOnPressEscape 是否可以通过按下 ESC 关闭Dialog boolean - true
modal 是否显示遮罩层,inline为true是无效 boolean - true
draggable 是否支持Dialog拖拽 boolean - true
resizable 是否支持Dialog改变尺寸 boolean - true
zIndex Dialog层级 number - 1000
shadow 是否显示Dialog阴影 boolean - true
inline 是否以内联方式显示 boolean - false
left Dialog左位置,inline为true时无效,left、top同时为null时,自动居中 string - null
top Dialog顶位置,inline为true时无效,left、top同时为null时,自动居中 string - null

Hooks

钩子名称 说明 回调参数
onOpen Dialog打开时的钩子 子组件实例
onBeforeClose Dialog关闭前的钩子,可以控制Dialog是否要关闭 (子组件实例,关闭Dialog方法,关闭行为名称)
onStartDrag Dialog开始拖拽时的钩子 (子组件实例,关闭Dialog方法,事件event)
onStopDrag Dialog结束拖拽时的钩子 (子组件实例,关闭Dialog方法,事件event)
onDrag Dialog正在拖拽时的钩子 (子组件实例,关闭Dialog方法,事件event)
onStartResize Dialog开始改变尺寸时的钩子 (子组件实例,关闭Dialog方法,事件event)
onStopResize Dialog结束改变尺寸时的钩子 (子组件实例,关闭Dialog方法,事件event)
onResize Dialog正在改变尺寸时的钩子 (子组件实例,关闭Dialog方法,事件event)
onMinimized Dialog切换最小化时的钩子 (子组件实例,关闭Dialog方法)
onMaximized Dialog切换最大化时的钩子 (子组件实例,关闭Dialog方法,当前放大状态)
onClick Dialog被点击时的钩子 (子组件实例,关闭Dialog方法,事件event)

Slots(模板语法)

name 说明
title 定义标题内容,设置了改插槽,参数title将无效
tools 定义操作按钮
default Dialog内容
footer 定义底部内容

vue-dialog-yy's People

Contributors

yinaor avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.