257 lines
9.9 KiB
JavaScript
257 lines
9.9 KiB
JavaScript
"use strict";
|
|
var common_vendor = require("../../../../common/vendor.js");
|
|
var uni_modules_wotDesignUni_components_wdMessageBox_types = require("./types.js");
|
|
var uni_modules_wotDesignUni_components_wdMessageBox_index = require("./index.js");
|
|
var uni_modules_wotDesignUni_components_common_util = require("../common/util.js");
|
|
var uni_modules_wotDesignUni_components_composables_useTranslate = require("../composables/useTranslate.js");
|
|
require("../common/props.js");
|
|
require("../common/AbortablePromise.js");
|
|
require("../../locale/index.js");
|
|
require("../../locale/lang/zh-CN.js");
|
|
if (!Math) {
|
|
(wdInput + wdButton + wdPopup)();
|
|
}
|
|
const wdPopup = () => "../wd-popup/wd-popup.js";
|
|
const wdButton = () => "../wd-button/wd-button.js";
|
|
const wdInput = () => "../wd-input/wd-input.js";
|
|
const __default__ = {
|
|
name: "wd-message-box",
|
|
options: {
|
|
virtualHost: true,
|
|
addGlobalClass: true,
|
|
styleIsolation: "shared"
|
|
}
|
|
};
|
|
const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
|
|
...__default__,
|
|
props: uni_modules_wotDesignUni_components_wdMessageBox_types.messageBoxProps,
|
|
setup(__props) {
|
|
const props = __props;
|
|
const { translate } = uni_modules_wotDesignUni_components_composables_useTranslate.useTranslate("message-box");
|
|
const rootClass = common_vendor.computed$1(() => {
|
|
return `wd-message-box__container ${props.customClass}`;
|
|
});
|
|
const bodyClass = common_vendor.computed$1(() => {
|
|
return `wd-message-box__body ${!messageState.title ? "is-no-title" : ""} ${messageState.type === "prompt" ? "is-prompt" : ""}`;
|
|
});
|
|
const messageOptionKey = uni_modules_wotDesignUni_components_wdMessageBox_index.getMessageDefaultOptionKey(props.selector);
|
|
const messageOption = common_vendor.inject(messageOptionKey, common_vendor.ref(uni_modules_wotDesignUni_components_wdMessageBox_index.defaultOptions));
|
|
const messageState = common_vendor.reactive({
|
|
msg: "",
|
|
show: false,
|
|
title: "",
|
|
showCancelButton: false,
|
|
closeOnClickModal: true,
|
|
confirmButtonText: "",
|
|
cancelButtonText: "",
|
|
type: "alert",
|
|
inputType: "text",
|
|
inputValue: "",
|
|
inputPlaceholder: "",
|
|
inputError: "",
|
|
showErr: false,
|
|
zIndex: 99,
|
|
lazyRender: true
|
|
});
|
|
const customConfirmProps = common_vendor.computed$1(() => {
|
|
const buttonProps = uni_modules_wotDesignUni_components_common_util.deepAssign(
|
|
{
|
|
block: true
|
|
},
|
|
uni_modules_wotDesignUni_components_common_util.isDef(messageState.confirmButtonProps) ? uni_modules_wotDesignUni_components_common_util.omitBy(messageState.confirmButtonProps, uni_modules_wotDesignUni_components_common_util.isUndefined) : {}
|
|
);
|
|
buttonProps.customClass = `${buttonProps.customClass || ""} wd-message-box__actions-btn`;
|
|
return buttonProps;
|
|
});
|
|
const customCancelProps = common_vendor.computed$1(() => {
|
|
const buttonProps = uni_modules_wotDesignUni_components_common_util.deepAssign(
|
|
{
|
|
block: true,
|
|
type: "info"
|
|
},
|
|
uni_modules_wotDesignUni_components_common_util.isDef(messageState.cancelButtonProps) ? uni_modules_wotDesignUni_components_common_util.omitBy(messageState.cancelButtonProps, uni_modules_wotDesignUni_components_common_util.isUndefined) : {}
|
|
);
|
|
buttonProps.customClass = `${buttonProps.customClass || ""} wd-message-box__actions-btn`;
|
|
return buttonProps;
|
|
});
|
|
common_vendor.watch(
|
|
() => messageOption.value,
|
|
(newVal) => {
|
|
reset(newVal);
|
|
},
|
|
{
|
|
deep: true,
|
|
immediate: true
|
|
}
|
|
);
|
|
common_vendor.watch(
|
|
() => messageState.show,
|
|
(newValue) => {
|
|
resetErr(!!newValue);
|
|
},
|
|
{
|
|
deep: true,
|
|
immediate: true
|
|
}
|
|
);
|
|
function toggleModal(action) {
|
|
if (action === "modal" && !messageState.closeOnClickModal) {
|
|
return;
|
|
}
|
|
if (messageState.type === "prompt" && action === "confirm" && !validate()) {
|
|
return;
|
|
}
|
|
switch (action) {
|
|
case "confirm":
|
|
if (messageState.beforeConfirm) {
|
|
messageState.beforeConfirm({
|
|
resolve: (isPass) => {
|
|
if (isPass) {
|
|
handleConfirm({
|
|
action,
|
|
value: messageState.inputValue
|
|
});
|
|
}
|
|
}
|
|
});
|
|
} else {
|
|
handleConfirm({
|
|
action,
|
|
value: messageState.inputValue
|
|
});
|
|
}
|
|
break;
|
|
case "cancel":
|
|
handleCancel({
|
|
action
|
|
});
|
|
break;
|
|
default:
|
|
handleCancel({
|
|
action: "modal"
|
|
});
|
|
break;
|
|
}
|
|
}
|
|
function handleConfirm(result) {
|
|
messageState.show = false;
|
|
if (uni_modules_wotDesignUni_components_common_util.isFunction(messageState.success)) {
|
|
messageState.success(result);
|
|
}
|
|
}
|
|
function handleCancel(result) {
|
|
messageState.show = false;
|
|
if (uni_modules_wotDesignUni_components_common_util.isFunction(messageState.fail)) {
|
|
messageState.fail(result);
|
|
}
|
|
}
|
|
function validate() {
|
|
if (messageState.inputPattern && !messageState.inputPattern.test(String(messageState.inputValue))) {
|
|
messageState.showErr = true;
|
|
return false;
|
|
}
|
|
if (typeof messageState.inputValidate === "function") {
|
|
const validateResult = messageState.inputValidate(messageState.inputValue);
|
|
if (!validateResult) {
|
|
messageState.showErr = true;
|
|
return false;
|
|
}
|
|
}
|
|
messageState.showErr = false;
|
|
return true;
|
|
}
|
|
function resetErr(val) {
|
|
if (val === false) {
|
|
messageState.showErr = false;
|
|
}
|
|
}
|
|
function inputValChange({ value }) {
|
|
if (value === "") {
|
|
messageState.showErr = false;
|
|
return;
|
|
}
|
|
messageState.inputValue = value;
|
|
}
|
|
function reset(option) {
|
|
if (option) {
|
|
messageState.title = uni_modules_wotDesignUni_components_common_util.isDef(option.title) ? option.title : "";
|
|
messageState.showCancelButton = uni_modules_wotDesignUni_components_common_util.isDef(option.showCancelButton) ? option.showCancelButton : false;
|
|
messageState.show = option.show;
|
|
messageState.closeOnClickModal = option.closeOnClickModal;
|
|
messageState.confirmButtonText = option.confirmButtonText;
|
|
messageState.cancelButtonText = option.cancelButtonText;
|
|
messageState.msg = option.msg;
|
|
messageState.type = option.type;
|
|
messageState.inputType = option.inputType;
|
|
messageState.inputSize = option.inputSize;
|
|
messageState.inputValue = option.inputValue;
|
|
messageState.inputPlaceholder = option.inputPlaceholder;
|
|
messageState.inputPattern = option.inputPattern;
|
|
messageState.inputValidate = option.inputValidate;
|
|
messageState.success = option.success;
|
|
messageState.fail = option.fail;
|
|
messageState.beforeConfirm = option.beforeConfirm;
|
|
messageState.inputError = option.inputError;
|
|
messageState.showErr = option.showErr;
|
|
messageState.zIndex = option.zIndex;
|
|
messageState.lazyRender = option.lazyRender;
|
|
messageState.confirmButtonProps = option.confirmButtonProps;
|
|
messageState.cancelButtonProps = option.cancelButtonProps;
|
|
}
|
|
}
|
|
return (_ctx, _cache) => {
|
|
return common_vendor.e({
|
|
a: messageState.title
|
|
}, messageState.title ? {
|
|
b: common_vendor.t(messageState.title)
|
|
} : {}, {
|
|
c: messageState.type === "prompt"
|
|
}, messageState.type === "prompt" ? common_vendor.e({
|
|
d: common_vendor.o(inputValChange),
|
|
e: common_vendor.o(($event) => messageState.inputValue = $event),
|
|
f: common_vendor.p({
|
|
type: messageState.inputType,
|
|
size: messageState.inputSize,
|
|
placeholder: messageState.inputPlaceholder,
|
|
modelValue: messageState.inputValue
|
|
}),
|
|
g: messageState.showErr
|
|
}, messageState.showErr ? {
|
|
h: common_vendor.t(messageState.inputError || common_vendor.unref(translate)("inputNoValidate"))
|
|
} : {}) : {}, {
|
|
i: common_vendor.t(messageState.msg),
|
|
j: common_vendor.n(common_vendor.unref(bodyClass)),
|
|
k: messageState.showCancelButton
|
|
}, messageState.showCancelButton ? {
|
|
l: common_vendor.t(messageState.cancelButtonText || common_vendor.unref(translate)("cancel")),
|
|
m: common_vendor.o(($event) => toggleModal("cancel")),
|
|
n: common_vendor.p({
|
|
...common_vendor.unref(customCancelProps)
|
|
})
|
|
} : {}, {
|
|
o: common_vendor.t(messageState.confirmButtonText || common_vendor.unref(translate)("confirm")),
|
|
p: common_vendor.o(($event) => toggleModal("confirm")),
|
|
q: common_vendor.p({
|
|
...common_vendor.unref(customConfirmProps)
|
|
}),
|
|
r: common_vendor.n(`wd-message-box__actions ${messageState.showCancelButton ? "wd-message-box__flex" : "wd-message-box__block"}`),
|
|
s: common_vendor.n(common_vendor.unref(rootClass)),
|
|
t: common_vendor.o(($event) => toggleModal("modal")),
|
|
v: common_vendor.o(($event) => messageState.show = $event),
|
|
w: common_vendor.p({
|
|
transition: "zoom-in",
|
|
["close-on-click-modal"]: messageState.closeOnClickModal,
|
|
["lazy-render"]: messageState.lazyRender,
|
|
["custom-class"]: "wd-message-box",
|
|
["z-index"]: messageState.zIndex,
|
|
duration: 200,
|
|
["root-portal"]: _ctx.rootPortal,
|
|
modelValue: messageState.show
|
|
})
|
|
});
|
|
};
|
|
}
|
|
});
|
|
var Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-12024933"], ["__file", "D:/\u7F51\u6291\u4E91Time/\u79C1\u6D3B/2000\u7B97\u5366/src/uni_modules/wot-design-uni/components/wd-message-box/wd-message-box.vue"]]);
|
|
wx.createComponent(Component);
|