mint-ui checklist
QAQ:在加入checklist的时候如果有一条横线,那不是border属性,background 背景图片,去掉即可
JavaScript Code复制内容到剪贴板
- import { Checklist } from 'mint-ui'
示例:
init方法,ajax获取数据:
XML/HTML Code复制内容到剪贴板
- <template>
- <mt-checklist title="选择课时" v-model="value" :options="options"></mt-checklist>
- </template>
- <script>
- export default {
- name: 'teachPlanChooseLesson',
- data: function() {
- return {
- value: [],
- options: [], //预选项,为对象
- }
- },
- mounted() {
- this.init()
- },
- methods: {
- init() {
- // 初始化 ,获取课时库列表
- let params = {
- pageNo: 1,
- pageSize: 10,
- user_id: this.$store.state.common.userId
- };
- this.request.post("远程url", params).then(response => {
- let res = response.data;
- if(res.code == 0) {
- if(!res.data) {
- return false;
- };
- let data = JSON.parse(res.data);
- let options = []; //自定义一个预选项用来拼接对象赋值给选择项中
- data.forEach(function(item, index) {
- options.push({
- "label": item.lessonName,
- "value": item.lessonId
- });
- });
- this.options = options; //给checklist赋值
- } else {
- this.$toast("获取课时列表失败");
- }
- // success callback
- })
- }
- }
- }
- </script>
checklist赋值以后,目标:点击选择框给父层页面传输已选择的label 和 value,然后参考子父传值 ,将已选择的传给父层即可
XML/HTML Code复制内容到剪贴板
- <!--加一个change事件-->
- <mt-checklist title="选择课时" v-model="value" :options="options" @change="renderParent($event)"></mt-checklist>
- renderParent(val) {
- //console.log(val);
- //return false;
- let selected = [];
- let that = this;
- // 渲染父页面的已选择项
- this.options.forEach(function(item) {
- if(val.indexOf(item.value) != -1) {
- selected.push(item);
- } else {
- // 如果不存在,删除已选择中的数组
- that.removeByValue(selected,item.value);
- }
- });
- console.log(selected);
- },
- removeByValue(arr, val) {
- // 查询value中是否有这个值,如果有就去除这个数组
- for(var i = 0; i < arr.length; i++) {
- if(arr[i].value == val) {
- arr.splice(i, 1);
- break;
- }
- }
- }
这里的this.value就是预勾选的值,可以在父层传一个数组过来,watch方法 如果有变法,就即时赋值
XML/HTML Code复制内容到剪贴板
- <input type="checkbox" class="mint-checkbox-input" :value="item.id" v-model="value">
JavaScript Code复制内容到剪贴板
- import {Checklist} from 'mint-ui'
- export default {
- data: function () {
- return {
- value: []
- }
- },
- }
基础用法:
XML/HTML Code复制内容到剪贴板
- <mt-checklist
- title="复选框列表"
- v-model="value"
- :options="['选项A', '选项B', '选项C']">
- </mt-checklist>
设置禁用选项
XML/HTML Code复制内容到剪贴板
- <mt-checklist
- v-model="value"
- :options="options">
- </mt-checklist>
- <script>
- this.options = [
- {
- label: '被禁用',
- value: '值F',
- disabled: true
- },
- {
- label: '选中禁用',
- value: '选中禁用的值',
- disabled: true
- },
- {
- label: '选项A',
- value: '值A'
- },
- {
- label: '选项B',
- value: '值B'
- }
- ];
- </script>
设置最大可选数
XML/HTML Code复制内容到剪贴板
- <mt-checklist
- :max="2"
- v-model="value"
- :options="options">
- </mt-checklist>
选择框右对齐
XML/HTML Code复制内容到剪贴板
- <mt-checklist
- align="right"
- title="右对齐"
- v-model="value"
- :options="options">
- </mt-checklist>
API
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
options | 选择项,可直接传字符串数组或者对象数组 | Array | ||
value | 绑定值 | Array | ||
title | 标题,显示在列表上方 | string | ||
max | 最多可选个数,超过后其他未选择的选项变成禁用状态 | Number | ||
align | 复选框对其位置 | String | left, right | left |