您的位置:

v-haspermi详解

一、v-haspermi设置新增修改弹层vue选取

v-haspermi是一个Vue组件,提供了一个方便的操作界面,可以在Vue应用程序中集成。在使用v-haspermi之前,首先要安装它。

// 安装v-haspermi
npm install v-haspermi --save

安装完成后,我们需要在Vue项目的main.js文件中引入和注册组件。

// 引入v-haspermi
import vHaspermi from 'v-haspermi'

Vue.use(vHaspermi)

注册完组件后,就可以在Vue项目中使用v-haspermi组件了。下面,我们来看一下如何使用v-haspermi来定义一个弹层组件。

  

<script>
export default {
  data () {
    return {
      showLayer: false,
      columns: [
        {
          title: '姓名',
          field: 'name',
          type: 'text',
          rules: [
            { required: true, message: '姓名不能为空' }
          ]
        },
        {
          title: '年龄',
          field: 'age',
          type: 'number',
          rules: [
            { required: true, message: '年龄不能为空' },
            { type: 'number', message: '年龄必须为数字值' }
          ]
        }
      ]
    }
  },
  methods: {
    handleSubmit (data) {
      console.log(data)
    }
  }
}
</script>

代码中,我们使用了v-model属性来控制弹层的显示和隐藏。title属性用于定义弹层的标题。columns属性定义了弹层中需要输入的字段及其相关信息。submit事件会在用户点击弹层的确定按钮时触发,返回输入的数据。

二、数据表格列编辑控件

v-haspermi提供了一些列编辑控件,让用户方便地编辑数据表格中的数据。下面,我们来介绍几个常用的列编辑控件。

1、下拉框

下拉框用于定义一个输入框,并提供一个下拉列表供用户选择。其中,options为下拉列表中的选项,value和label分别表示选项的值和显示的文本。

{
  title: '性别',
  field: 'sex',
  type: 'select',
  options: [
    { value: 'male', label: '男' },
    { value: 'female', label: '女' }
  ]
}

2、多选框

多选框用于定义一个多选框,供用户选择多个选项。其中,options为可选的选项,value和label分别表示选项的值和显示的文本。

{
  title: '爱好',
  field: 'hobby',
  type: 'checkbox',
  options: [
    { value: 'yoga', label: '瑜伽' },
    { value: 'swimming', label: '游泳' },
    { value: 'reading', label: '读书' }
  ]
}

3、单选框

单选框用于定义一个单选框,供用户选择一个选项。其中,options为可选的选项,value和label分别表示选项的值和显示的文本。

{
  title: '特长',
  field: 'spe',
  type: 'radio',
  options: [
    { value: 'dance', label: '舞蹈' },
    { value: 'sing', label: '唱歌' },
    { value: 'instrument', label: '乐器' }
  ]
}

4、日期选择器

日期选择器用于定义一个日期选择框,供用户选择日期。其中,type为date。

{
  title: '生日',
  field: 'birthday',
  type: 'date'
}

三、数据表格行操作按钮

v-haspermi还提供了数据表格行操作按钮,可以方便地对数据表格中的数据进行操作。下面,我们来介绍几个常用的行操作按钮。

1、删除操作按钮

删除操作按钮用于在数据表格中删除一条数据。下面是一个删除操作按钮的代码实现。

  

<script>
export default {
  data () {
    return {
      tableData: [
        { name: '张三', age: 18 },
        { name: '李四', age: 20 },
        { name: '王五', age: 22 }
      ],
      columns: [
        { title: '姓名', field: 'name', type: 'text' },
        { title: '年龄', field: 'age', type: 'number' }
      ]
    }
  },
  methods: {
    handleDelete (index) {
      this.tableData.splice(index, 1)
    }
  }
}
</script>

代码中,我们使用了v-haspermi-table组件渲染了一个数据表格,并在数据表格中加入了一个删除操作按钮。当用户点击该按钮时,handleDelete方法会将该行数据从数据表格中删除。

2、编辑操作按钮

编辑操作按钮用于在数据表格中编辑一条数据。下面是一个编辑操作按钮的代码实现。

  

<script>
export default {
  data () {
    return {
      tableData: [
        { name: '张三', age: 18 },
        { name: '李四', age: 20 },
        { name: '王五', age: 22 }
      ],
      columns: [
        { title: '姓名', field: 'name', type: 'text' },
        { title: '年龄', field: 'age', type: 'number' }
      ],
      editData: {}
    }
  },
  methods: {
    handleEdit (index) {
      this.editData = { ...this.tableData[index] }
      this.$refs.form.show()
    },
    handleEditSubmit (data) {
      this.tableData.splice(data.$index, 1, data)
    }
  }
}
</script>

代码中,我们使用了v-haspermi-table组件渲染了一个数据表格,并在数据表格中加入了一个编辑操作按钮。当用户点击该按钮时,handleEdit方法会将该行数据复制到editData中,然后让编辑弹层显示。在编辑弹层中,用户编辑完毕后会触发submit事件,在handleEditSubmit方法中,我们将修改后的数据保存到tableData中。

3、查看操作按钮

查看操作按钮用于在数据表格中查看一条数据。下面是一个查看操作按钮的代码实现。

  

<script>
export default {
  data () {
    return {
      tableData: [
        { name: '张三', age: 18 },
        { name: '李四', age: 20 },
        { name: '王五', age: 22 }
      ],
      columns: [
        { title: '姓名', field: 'name', type: 'text' },
        { title: '年龄', field: 'age', type: 'number' }
      ],
      viewData: {}
    }
  },
  methods: {
    handleView (index) {
      this.viewData = { ...this.tableData[index] }
      this.$refs.form.show()
    }
  }
}
</script>

代码中,我们使用了v-haspermi-table组件渲染了一个数据表格,并在数据表格中加入了一个查看操作按钮。当用户点击该按钮时,handleView方法会将该行数据复制到viewData中,然后让编辑弹层显示,但当前弹层是被禁用的。这样用户就只能查看数据,而不能进行修改。