| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- "use strict";
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = exports.VxeModal = exports.ModalController = exports.Modal = void 0;
- var _vue = _interopRequireDefault(require("vue"));
- var _core = require("@vxe-ui/core");
- var _xeUtils = _interopRequireDefault(require("xe-utils"));
- var _modal = _interopRequireWildcard(require("./src/modal"));
- var _dynamics = require("../dynamics");
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
- function handleModal(options) {
- // 使用动态组件渲染动态弹框
- (0, _dynamics.checkDynamic)();
- return new Promise(function (resolve) {
- var opts = Object.assign({}, options);
- if (opts.id && _modal.allActiveModals.some(function (comp) {
- return comp.id === opts.id;
- })) {
- resolve('exist');
- } else {
- var events = Object.assign({}, opts.events);
- var modalOpts = {
- key: _xeUtils.default.uniqueId(),
- props: Object.assign(opts, {
- value: true
- }),
- on: Object.assign(Object.assign({}, events), {
- hide: function hide(params) {
- var modalList = _dynamics.dynamicStore.modals;
- if (events.hide) {
- events.hide.call(this, params);
- }
- _dynamics.dynamicStore.modals = modalList.filter(function (item) {
- return item.key !== modalOpts.key;
- });
- resolve(params.type);
- }
- })
- };
- _dynamics.dynamicStore.modals.push(modalOpts);
- }
- });
- }
- function getModal(id) {
- return _xeUtils.default.find(_modal.allActiveModals, function ($modal) {
- return $modal.id === id;
- });
- }
- /**
- * 全局关闭动态的活动窗口(只能用于关闭动态的创建的活动窗口)
- * 如果传 id 则关闭指定的窗口
- * 如果不传则关闭所有窗口
- */
- function closeModal(id) {
- var modals = id ? [getModal(id)] : _modal.allActiveModals;
- var restPromises = [];
- modals.forEach(function ($modal) {
- if ($modal) {
- restPromises.push($modal.close());
- }
- });
- return Promise.all(restPromises);
- }
- function handleOpen(defOpts, content, title, options) {
- var opts;
- if (_xeUtils.default.isObject(content)) {
- opts = content;
- } else {
- opts = {
- content: _xeUtils.default.toValueString(content),
- title: title
- };
- }
- return handleModal(Object.assign(Object.assign(Object.assign({}, defOpts), options), opts));
- }
- function openModal(options) {
- return handleOpen({
- type: 'modal'
- }, options);
- }
- function openAlert(content, title, options) {
- return handleOpen({
- type: 'alert',
- lockScroll: true,
- showHeader: true,
- showFooter: true
- }, content, title, options);
- }
- function openConfirm(content, title, options) {
- return handleOpen({
- type: 'confirm',
- status: 'question',
- lockScroll: true,
- showHeader: true,
- showFooter: true
- }, content, title, options);
- }
- function openMessage(content, options) {
- return handleOpen({
- type: 'message',
- mask: false,
- lockView: false,
- lockScroll: false,
- showHeader: false
- }, content, '', options);
- }
- function openNotification(content, title, options) {
- return handleOpen({
- type: 'notification',
- mask: false,
- lockView: false,
- lockScroll: false,
- showHeader: true,
- draggable: false,
- position: 'top-right',
- width: 320
- }, content, title, options);
- }
- var ModalController = exports.ModalController = {
- get: getModal,
- close: closeModal,
- open: openModal,
- alert: openAlert,
- confirm: openConfirm,
- message: openMessage,
- notification: openNotification
- };
- var VxeModal = exports.VxeModal = Object.assign(_modal.default, {
- install: function install(app) {
- app.component(_modal.default.name, _modal.default);
- // 兼容老版本
- if (!_vue.default.prototype.$vxe) {
- _vue.default.prototype.$vxe = {
- modal: ModalController
- };
- } else {
- _vue.default.prototype.$vxe.modal = ModalController;
- }
- }
- });
- _core.VxeUI.modal = ModalController;
- _dynamics.dynamicApp.use(VxeModal);
- _core.VxeUI.component(_modal.default);
- var Modal = exports.Modal = VxeModal;
- var _default = exports.default = VxeModal;
|