123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- 'use strict';
- Object.defineProperty(exports, '__esModule', { value: true });
- var relation_1 = require('../common/relation');
- var component_1 = require('../common/component');
- component_1.VantComponent({
- field: true,
- relation: relation_1.useParent('dropdown-menu', function () {
- this.updateDataFromParent();
- }),
- props: {
- value: {
- type: null,
- observer: 'rerender',
- },
- title: {
- type: String,
- observer: 'rerender',
- },
- disabled: Boolean,
- titleClass: {
- type: String,
- observer: 'rerender',
- },
- options: {
- type: Array,
- value: [],
- observer: 'rerender',
- },
- popupStyle: String,
- },
- data: {
- transition: true,
- showPopup: false,
- showWrapper: false,
- displayTitle: '',
- },
- methods: {
- rerender: function () {
- var _this = this;
- wx.nextTick(function () {
- var _a;
- (_a = _this.parent) === null || _a === void 0
- ? void 0
- : _a.updateItemListData();
- });
- },
- updateDataFromParent: function () {
- if (this.parent) {
- var _a = this.parent.data,
- overlay = _a.overlay,
- duration = _a.duration,
- activeColor = _a.activeColor,
- closeOnClickOverlay = _a.closeOnClickOverlay,
- direction = _a.direction;
- this.setData({
- overlay: overlay,
- duration: duration,
- activeColor: activeColor,
- closeOnClickOverlay: closeOnClickOverlay,
- direction: direction,
- });
- }
- },
- onOpen: function () {
- this.$emit('open');
- },
- onOpened: function () {
- this.$emit('opened');
- },
- onClose: function () {
- this.$emit('close');
- },
- onClosed: function () {
- this.$emit('closed');
- this.setData({ showWrapper: false });
- },
- onOptionTap: function (event) {
- var option = event.currentTarget.dataset.option;
- var value = option.value;
- var shouldEmitChange = this.data.value !== value;
- this.setData({ showPopup: false, value: value });
- this.$emit('close');
- this.rerender();
- if (shouldEmitChange) {
- this.$emit('change', value);
- }
- },
- toggle: function (show, options) {
- var _this = this;
- var _a;
- if (options === void 0) {
- options = {};
- }
- var showPopup = this.data.showPopup;
- if (typeof show !== 'boolean') {
- show = !showPopup;
- }
- if (show === showPopup) {
- return;
- }
- this.setData({
- transition: !options.immediate,
- showPopup: show,
- });
- if (show) {
- (_a = this.parent) === null || _a === void 0
- ? void 0
- : _a.getChildWrapperStyle().then(function (wrapperStyle) {
- _this.setData({ wrapperStyle: wrapperStyle, showWrapper: true });
- _this.rerender();
- });
- } else {
- this.rerender();
- }
- },
- },
- });
|