1.2.0 • Published 6 years ago

vstrap v1.2.0

Weekly downloads
1
License
ISC
Repository
-
Last release
6 years ago

vstrap

Project setup

npm install vstrap
import Vue from 'vue
import 'bootstrap/dist/css/bootstrap.css'
import 'vstrap/dist/vstrap.css'
import VStrap from 'vstrap'
Vue.use(VStrap)

组件

  • button

    属性:
    type: primary, secondary, success, danger, warning, info, light, dark, link;
    plain
    size: lg / sm
    block
    loading: true / false
    disabled: true / false
    <vs-button :loading="true" plain>默认按钮</vs-button>
    <vs-button type="secondary" plain>secondary</vs-button>
    <vs-button type="success" plain>success</vs-button>
    <vs-button-group>
        <vs-button :loading="true">默认按钮</vs-button>
        <vs-button :loading="true" plain>默认按钮</vs-button>
        <vs-button type="secondary" plain>secondary</vs-button>
        <vs-button type="success" plain>success</vs-button>
        <vs-button type="danger" plain>danger</vs-button>
        <vs-button type="warning" plain>warning</vs-button>
        <vs-button type="info" plain>info</vs-button>
        <vs-button type="light" plain>light</vs-button>
        <vs-button type="dark" plain>dark</vs-button>
        <vs-button type="link" plain>link</vs-button>
    </vs-button-group>
  • table

    data: 数据列表
    columns:表格列配置
    tree: 是否开启树形表格
    row-key: vue列表渲染的key默认为id
    tree-props: 接收对象{children: 'children1'}指定子数据属性,默认为children
    border: 开启表格边框
    
    <vs-table :data="list" 
          :columns="columns1" 
          :tree="true"
          row-key="id"
          :tree-props="{children: 'children1'}" 
          v-vs-loading="loading"> //表格加载图标,接收一个boolean或者配置对象
      </vs-table>
    columns配置
    title: 列标题
    key: 数据字段
    width:列宽,不指定则平均分配
    自定义列模板使用渲染函数,h为createElement函数返回vnode,具体查看vue官网render函数,data为该行数据;
    
      loading: {
          visible: false,
          boxMinHeight: '150px', 
          loadingText: 'aaaaaaaaaaaaa......', 
          background: '#000'
      },
      columns1: [
          {
              title: 'Name',
              key: 'name',
              width: '500px'
          },
          {
              title: 'Age',
              key: 'shortName'
          },
          {
              title: 'Address',
              key: 'value',
              render: (h, data) => {//注意this指向
                  return (
                      <vs-button onClick={ this.handlClick.bind(this, data) }>提交</vs-button>
                  )
              }
          }
      ],
      list: [
          {
              name: 'aaa',
              shortName: 'bbb',
              value: 'cccc',
              children1: [
                  {
                      name: 'aaa',
                      shortName: 'bbb',
                      value: 'cccc'
                  }
              ]
          },
          {
              name: 'aaa',
              shortName: 'bbb',
              value: 'cccc'
          },
          {
              name: 'aaa',
              shortName: 'bbb',
              value: 'cccc'
          }
      ]
  • form

    <vs-form :model="form" :rules="rules" ref="form">
        <vs-form-item label="姓名" prop="name" ref="nameItem">
            <vs-input type="textarea" v-model="form.name"></vs-input>
        </vs-form-item>
        <vs-form-item label="年龄" prop="age">
            <vs-input v-model="form.age"></vs-input>
        </vs-form-item>
        <vs-form-item label="sex" prop="sex">
            <vs-select v-model="form.arr" multiple> //multiple时model必须为数组
                <vs-option label="1">aaaa</vs-option>
                <vs-option label="2">bbbb</vs-option>
                <vs-option label="3">cccc</vs-option>
                <vs-option label="4">dddd</vs-option>
        	</vs-select>
        </vs-form-item>
        <vs-form-item label="sex" prop="sex">
            <vs-select v-model="select">
                <vs-option label="1">1</vs-option>
                <vs-option>2</vs-option>
                <vs-option label="3">34</vs-option>
                <vs-option label="5">5</vs-option>
        	</vs-select>
        </vs-form-item>
        <vs-button @click.prevent="submit">提交</vs-button>
    </vs-form>  
    
    <vs-checkbox-group v-model="checkboxgroup">//使用group时model是必须的且必须为数组,
        									//此时checkbox的v-model将失效
        <vs-checkbox value="1" v-model="select" name="aa" beauty block>测试</vs-checkbox>
        <vs-checkbox value="2" v-model="select" name="aa" beauty>测试</vs-checkbox>    
    </vs-checkbox-group>
    <vs-checkbox value="3" v-model="select" name="aa" beauty>测试</vs-checkbox>
    <vs-checkbox value="4" v-model="select" name="aa" beauty>测试</vs-checkbox>
    <vs-radio value="2" v-model="select" beauty>测试</vs-radio>
    <vs-radio value="1" v-model="select">测试</vs-radio>
    <vs-radio-group v-model="select">
        									//使用group时model是必须的类型为字符串或数字,
        									//此时radio的v-model将失效
        <vs-radio value="1" v-model="select" name="aa" beauty>测试</vs-radio>
    	<vs-radio value="2" v-model="select" name="aa" beauty>测试</vs-radio>    
    </vs-radio-group>
    
    <script> 
    	export default {
    		data() {
    			return { 
                    checkboxgroup: [1, 2],
                    select: '1',
                    form: {
                        name: '',
                        age: 0,
                        arr: ['1','2','3']
                    },
                    rules: {//rules的使用方式与element-ui一致,因为都依赖了async-validator
                        name: {
                            required: true,
                            message: 'aaaaaaaaaaa'
                        },
                        sex: { 
                            validator: (rule, value, callback) => {
                                if(true) {
                                    return callback();
                                }
                                callback(new Error('message'))
                            },
                            trigger: 'blur' 
                        }
                    }
    			}
            },
            created() {
    
            },
    		methods: {
                handlClick(data) {
    
                },
                all() {
                    this.$refs['form'].clearValidate()
                },
                singel() {
                    this.$refs['nameItem'].clearValidate()
                },
                submit() {
                    this.$refs['form'].isSuccess(r => {
                        console.log(r);
                        // setTimeout(() => {
                        //     this.$refs['form'].clearValidate()
                        // }, 1000)
                    });
                }
    		}
    	}
    </script>
1.2.0

6 years ago

1.1.9

6 years ago

1.1.8

6 years ago

1.1.7

6 years ago

1.1.6

6 years ago

1.1.5

6 years ago

1.1.4

6 years ago

1.1.3

6 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.9

6 years ago

1.0.8

6 years ago

1.0.7

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago