UNPKG

vue-ant-patterns

Version:

vue-ant-patterns

174 lines (151 loc) 4.86 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray'); var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); var _antDesignVue = require('ant-design-vue'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var Option = _antDesignVue.Select.Option; var Group = _antDesignVue.Checkbox.Group; var RadioGroup = _antDesignVue.Radio.Group; exports['default'] = { methods: { change: function change(v, o) { var _$props = this.$props, multiple = _$props.multiple, keys = _$props.keys; var vType = this.vType; if (vType === 'radio') { v = v.target.value; } var options = this.options; var _keys = (0, _slicedToArray3['default'])(keys, 2), k = _keys[0], n = _keys[1]; var opt = null; if (vType === 'radio') { opt = options.find(function (it) { return it[k] === v ? it : null; }); if (opt) { opt = [(0, _extends3['default'])({}, opt)]; } else { opt = []; } } else { opt = options.map(function (it) { return (v || []).includes(it[k]) ? (0, _extends3['default'])({}, it) : null; }).filter(function (T) { return T; }); } this.sValue = v; this.$emit('change', v); this.$emit('changeValue', { value: v, options: (0, _extends3['default'])([], opt) }); }, getOptions: function getOptions() { var options = this.options, sValue = this.sValue, $listeners = this.$listeners; var _$props2 = this.$props, prefixCls = _$props2.prefixCls, keys = _$props2.keys, disabled = _$props2.disabled, readonly = _$props2.readonly, allowClear = _$props2.allowClear, placeholder = _$props2.placeholder, type = _$props2.type; var _keys2 = (0, _slicedToArray3['default'])(keys, 2), k = _keys2[0], n = _keys2[1]; var transData = options.map(function (it) { var value = it[k], label = it[n]; return { label: label, value: value }; }); var propsObject = { props: { options: transData, value: sValue, disabled: disabled, readonly: readonly, allowClear: allowClear, placeholder: placeholder, optionLabelProp: n }, 'class': prefixCls + '-biz-table-collection', on: (0, _extends3['default'])({}, $listeners, { change: this.change }) }; return propsObject; }, render$select: function render$select() { var h = this.$createElement; var _$props3 = this.$props, keys = _$props3.keys, multiple = _$props3.multiple; var options = this.options, sMultiple = this.sMultiple, vType = this.vType, sValue = this.sValue; var _keys3 = (0, _slicedToArray3['default'])(keys, 2), k = _keys3[0], n = _keys3[1]; var propsObject = this.getOptions(); var isSelectBox = vType === 'selectCheckbox'; delete propsObject.props.options; propsObject.props.mode = sMultiple; // propsObject.on = { // ...propsObject.on, // // deselect: (value) => { // // opt = options // // .map(it => { // // return (v || []).includes(it[k]) ? Object.assign({}, it) : null; // // }) // // .filter(T => T); // // }, // }; return h( _antDesignVue.Select, propsObject, [options.map(function (it) { var key = it[k], name = it[n]; var isCk = multiple ? (sValue || []).includes(key) : sValue === key; var optProps = { key: key, attrs: { name: name } }; var ckProps = { props: { checked: isCk } }; return h( Option, optProps, [isSelectBox ? h(_antDesignVue.Checkbox, ckProps) : null, ' ', name] ); })] ); }, render$checkbox: function render$checkbox() { var h = this.$createElement; var propsObject = this.getOptions(); return h(Group, propsObject); }, render$radio: function render$radio() { var h = this.$createElement; var propsObject = this.getOptions(); return h(RadioGroup, propsObject); }, render$selectCheckbox: function render$selectCheckbox() { return this.render$select(); } } };