vue-ant-patterns
Version:
vue-ant-patterns
138 lines (114 loc) • 3.55 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _vueTypes = require('ant-design-vue/lib/_util/vue-types');
var _vueTypes2 = _interopRequireDefault(_vueTypes);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _antDesignVue = require('ant-design-vue');
var _drawerProps = require('./drawerProps');
var _drawerProps2 = _interopRequireDefault(_drawerProps);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var DDrawer = {
name: 'DDrawer',
props: (0, _extends3['default'])({}, (0, _drawerProps2['default'])()),
data: function data() {
var visible = this.visible;
return {
sVisible: visible || false
};
},
model: {
prop: 'visible',
event: 'close'
},
watch: {
visible: function visible(v) {
this.sVisible = v;
}
},
mounted: function mounted() {
// setTimeout(() => {
// this.$refs.cnft.style = "100%";
// }, 0);
},
methods: {
submitBarNode: function submitBarNode() {
var h = this.$createElement;
var $slots = this.$slots;
var submitBar = $slots.submitBar;
return submitBar ? h(
'div',
{ 'class': 'drawer-submit-bar' },
[submitBar]
) : null;
},
close: function close() {
this.sVisible = false;
this.$emit('close', false);
},
renderContainer: function renderContainer() {
var h = this.$createElement;
return h(
'div',
{ 'class': 'drawer-scroll-container', ref: 'cnft' },
[this.$slots['default']]
);
}
},
render: function render() {
var _cx;
var h = arguments[0];
var prefixCls = this.prefixCls,
$slots = this.$slots,
$listeners = this.$listeners,
width = this.width,
sVisible = this.sVisible,
title = this.title,
closable = this.closable,
wrapStyle = this.wrapStyle,
maskClosable = this.maskClosable,
wrapClassName = this.wrapClassName;
var wpCls = (0, _classnames2['default'])((_cx = {}, (0, _defineProperty3['default'])(_cx, prefixCls, 1), (0, _defineProperty3['default'])(_cx, wrapClassName, 1), (0, _defineProperty3['default'])(_cx, 'drawer-submit-bar', $slots.submitBar), (0, _defineProperty3['default'])(_cx, prefixCls + '-no-title', !title && !$slots.title), _cx));
var drawerProps = {
'class': prefixCls,
props: {
visible: sVisible,
width: width,
maskClosable: maskClosable,
closable: closable,
wrapStyle: wrapStyle,
wrapClassName: wpCls,
destroyOnClose: true
},
on: (0, _extends3['default'])({}, $listeners, {
close: this.close
})
};
return h(
_antDesignVue.Drawer,
drawerProps,
[h(
'template',
{ slot: 'title' },
[title || $slots.title]
), h(
'transition',
{
attrs: { name: 'fade', mode: 'out-in', appear: true }
},
[this.renderContainer()]
), this.submitBarNode()]
);
}
};
DDrawer.drawerProps = _drawerProps2['default'];
DDrawer.install = function (Vue) {
Vue.component(DDrawer.name, DDrawer);
};
exports['default'] = DDrawer;