123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 |
- "use strict";
- const common_vendor = require("../../../../common/vendor.js");
- const _sfc_main = {
- name: "u-popup",
- mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$9],
- data() {
- return {
- overlayDuration: this.duration + 50
- };
- },
- watch: {
- show(newValue, oldValue) {
- if (newValue === true) {
- const children = this.$children;
- this.retryComputedComponentRect(children);
- }
- }
- },
- computed: {
- transitionStyle() {
- const style = {
- zIndex: this.zIndex,
- position: "fixed",
- display: "flex"
- };
- style[this.mode] = 0;
- if (this.mode === "left") {
- return common_vendor.index.$u.deepMerge(style, {
- bottom: 0,
- top: 0
- });
- } else if (this.mode === "right") {
- return common_vendor.index.$u.deepMerge(style, {
- bottom: 0,
- top: 0
- });
- } else if (this.mode === "top") {
- return common_vendor.index.$u.deepMerge(style, {
- left: 0,
- right: 0
- });
- } else if (this.mode === "bottom") {
- return common_vendor.index.$u.deepMerge(style, {
- left: 0,
- right: 0
- });
- } else if (this.mode === "center") {
- return common_vendor.index.$u.deepMerge(style, {
- alignItems: "center",
- "justify-content": "center",
- top: 0,
- left: 0,
- right: 0,
- bottom: 0
- });
- }
- },
- contentStyle() {
- const style = {};
- common_vendor.index.$u.sys();
- if (this.mode !== "center") {
- style.flex = 1;
- }
- if (this.bgColor) {
- style.backgroundColor = this.bgColor;
- }
- if (this.round) {
- const value = common_vendor.index.$u.addUnit(this.round);
- if (this.mode === "top") {
- style.borderBottomLeftRadius = value;
- style.borderBottomRightRadius = value;
- } else if (this.mode === "bottom") {
- style.borderTopLeftRadius = value;
- style.borderTopRightRadius = value;
- } else if (this.mode === "center") {
- style.borderRadius = value;
- }
- }
- return common_vendor.index.$u.deepMerge(style, common_vendor.index.$u.addStyle(this.customStyle));
- },
- position() {
- if (this.mode === "center") {
- return this.zoom ? "fade-zoom" : "fade";
- }
- if (this.mode === "left") {
- return "slide-left";
- }
- if (this.mode === "right") {
- return "slide-right";
- }
- if (this.mode === "bottom") {
- return "slide-up";
- }
- if (this.mode === "top") {
- return "slide-down";
- }
- }
- },
- methods: {
- // 点击遮罩
- overlayClick() {
- if (this.closeOnClickOverlay) {
- this.$emit("close");
- }
- },
- close(e) {
- this.$emit("close");
- },
- afterEnter() {
- this.$emit("open");
- },
- clickHandler() {
- if (this.mode === "center") {
- this.overlayClick();
- }
- this.$emit("click");
- },
- retryComputedComponentRect(children) {
- const names = [
- "u-calendar-month",
- "u-album",
- "u-collapse-item",
- "u-dropdown",
- "u-index-item",
- "u-index-list",
- "u-line-progress",
- "u-list-item",
- "u-rate",
- "u-read-more",
- "u-row",
- "u-row-notice",
- "u-scroll-list",
- "u-skeleton",
- "u-slider",
- "u-steps-item",
- "u-sticky",
- "u-subsection",
- "u-swipe-action-item",
- "u-tabbar",
- "u-tabs",
- "u-tooltip"
- ];
- for (let i = 0; i < children.length; i++) {
- const child = children[i];
- const grandChild = child.$children;
- if (names.includes(child.$options.name) && typeof (child == null ? void 0 : child.init) === "function") {
- common_vendor.index.$u.sleep(50).then(() => {
- child.init();
- });
- }
- if (grandChild.length) {
- this.retryComputedComponentRect(grandChild);
- }
- }
- }
- }
- };
- if (!Array) {
- const _easycom_u_overlay2 = common_vendor.resolveComponent("u-overlay");
- const _easycom_u_status_bar2 = common_vendor.resolveComponent("u-status-bar");
- const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon");
- const _easycom_u_safe_bottom2 = common_vendor.resolveComponent("u-safe-bottom");
- const _easycom_u_transition2 = common_vendor.resolveComponent("u-transition");
- (_easycom_u_overlay2 + _easycom_u_status_bar2 + _easycom_u_icon2 + _easycom_u_safe_bottom2 + _easycom_u_transition2)();
- }
- const _easycom_u_overlay = () => "../u-overlay/u-overlay.js";
- const _easycom_u_status_bar = () => "../u-status-bar/u-status-bar.js";
- const _easycom_u_icon = () => "../u-icon/u-icon.js";
- const _easycom_u_safe_bottom = () => "../u-safe-bottom/u-safe-bottom.js";
- const _easycom_u_transition = () => "../u-transition/u-transition.js";
- if (!Math) {
- (_easycom_u_overlay + _easycom_u_status_bar + _easycom_u_icon + _easycom_u_safe_bottom + _easycom_u_transition)();
- }
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
- return common_vendor.e({
- a: _ctx.overlay
- }, _ctx.overlay ? {
- b: common_vendor.o($options.overlayClick),
- c: common_vendor.p({
- show: _ctx.show,
- duration: $data.overlayDuration,
- customStyle: _ctx.overlayStyle,
- opacity: _ctx.overlayOpacity
- })
- } : {}, {
- d: _ctx.safeAreaInsetTop
- }, _ctx.safeAreaInsetTop ? {} : {}, {
- e: _ctx.closeable
- }, _ctx.closeable ? {
- f: common_vendor.p({
- name: "close",
- color: "#909399",
- size: "18",
- bold: true
- }),
- g: common_vendor.o((...args) => $options.close && $options.close(...args)),
- h: common_vendor.n("u-popup__content__close--" + _ctx.closeIconPos)
- } : {}, {
- i: _ctx.safeAreaInsetBottom
- }, _ctx.safeAreaInsetBottom ? {} : {}, {
- j: common_vendor.s($options.contentStyle),
- k: common_vendor.o((...args) => _ctx.noop && _ctx.noop(...args)),
- l: common_vendor.o($options.afterEnter),
- m: common_vendor.o($options.clickHandler),
- n: common_vendor.p({
- show: _ctx.show,
- customStyle: $options.transitionStyle,
- mode: $options.position,
- duration: _ctx.duration
- })
- });
- }
- const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-74921bef"], ["__file", "F:/兴元/开门柜项目/平台端管理系统小程序/node_modules/uview-plus/components/u-popup/u-popup.vue"]]);
- wx.createComponent(Component);
|