UNPKG

vxe-table-demonic

Version:

一个基于 vue 的 PC 端表单/表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、JSON 配置式...

126 lines (125 loc) 4.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.modal = exports.default = exports.VxeModal = exports.Modal = void 0; var _xeUtils = _interopRequireDefault(require("xe-utils")); var _modal = _interopRequireWildcard(require("./src/modal")); var _vXETable = require("../v-x-e-table"); var _dynamics = require("../dynamics"); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var __assign = void 0 && (void 0).__assign || function () { __assign = Object.assign || function (t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; function openModal(options) { // 使用动态组件渲染动态弹框 (0, _dynamics.checkDynamic)(); return new Promise(function (resolve) { if (options && options.id && _modal.allActivedModals.some(function (comp) { return comp.props.id === options.id; })) { resolve('exist'); } else { var _onHide_1 = options.onHide; var modalOpts_1 = Object.assign(options, { key: _xeUtils.default.uniqueId(), modelValue: true, onHide: function (params) { var modalList = _dynamics.dynamicStore.modals; if (_onHide_1) { _onHide_1(params); } _dynamics.dynamicStore.modals = modalList.filter(function (item) { return item.key !== modalOpts_1.key; }); resolve(params.type); } }); _dynamics.dynamicStore.modals.push(modalOpts_1); } }); } function getModal(id) { return _xeUtils.default.find(_modal.allActivedModals, function ($modal) { return $modal.props.id === id; }); } /** * 全局关闭动态的活动窗口(只能用于关闭动态的创建的活动窗口) * 如果传 id 则关闭指定的窗口 * 如果不传则关闭所有窗口 */ function closeModal(id) { var modals = id ? [getModal(id)] : _modal.allActivedModals; 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 openModal(__assign(__assign(__assign({}, defOpts), options), opts)); } function openAlert(content, title, options) { return handleOpen({ type: 'alert', showFooter: true }, content, title, options); } function openConfirm(content, title, options) { return handleOpen({ type: 'confirm', status: 'question', showFooter: true }, content, title, options); } function openMessage(content, options) { return handleOpen({ type: 'message', mask: false, lockView: false, showHeader: false }, content, '', options); } var ModalController = { get: getModal, close: closeModal, open: openModal, alert: openAlert, confirm: openConfirm, message: openMessage }; var modal = ModalController; exports.modal = modal; var VxeModal = Object.assign(_modal.default, { install: function (app) { app.component(_modal.default.name, _modal.default); _vXETable.VXETable.modal = ModalController; } }); exports.VxeModal = VxeModal; var Modal = VxeModal; exports.Modal = Modal; _dynamics.dynamicApp.component(_modal.default.name, _modal.default); var _default = VxeModal; exports.default = _default;