使用场景 ​
以 Promise 驱动提示、确认和文本输入流程。
提示、确认和输入验证 ​
每个 Promise 均处理取消;输入框通过 inputPattern 校验,成功展示返回值。
提示、确认和输入验证
<template>
<div class="actions">
<AsamButton type="default" :disabled="active" native-type="button" @click="alert"
>提示</AsamButton
>
<AsamButton type="default" :disabled="active" native-type="button" @click="confirm"
>确认归档</AsamButton
>
<AsamButton type="default" :disabled="active" native-type="button" @click="prompt"
>输入名称</AsamButton
>
</div>
<p class="example-paragraph" role="status">{{ result }}</p>
</template>
<script lang="ts" setup>
defineOptions({ name: 'AsamMessageBoxBasicDemo' });
import { ref, onBeforeUnmount } from 'vue';
import { AsamButton, AsamMessageBox } from '@asam-ui/ui';
const result = ref('等待操作');
const active = ref(false);
const alert = async () => {
active.value = true;
try {
await AsamMessageBox.alert('本地草稿已保存', '提示', { buttonSize: 'big' });
result.value = '已阅读';
} catch {
result.value = '提示关闭';
} finally {
active.value = false;
}
};
const confirm = async () => {
active.value = true;
try {
await AsamMessageBox.confirm('确认归档这条记录?', '归档确认', {
distinguishCancelAndClose: true,
buttonSize: 'small'
});
result.value = '已确认归档';
} catch (action) {
result.value = String(action);
} finally {
active.value = false;
}
};
const prompt = async () => {
active.value = true;
try {
const data = await AsamMessageBox.prompt('请输入至少两个字的名称', '命名', {
inputPattern: /^.{2,}$/,
inputErrorMessage: '名称至少两个字',
buttonSize: 'large'
});
result.value = data.value;
} catch {
result.value = '输入已取消';
} finally {
active.value = false;
}
};
onBeforeUnmount(() => {
if (active.value) AsamMessageBox.close();
});
</script>
<style scoped>
.actions {
display: flex;
flex-wrap: wrap;
gap: var(--asam-space-md);
align-items: center;
}
.panel {
padding: var(--asam-space-lg);
border: 1px solid var(--asam-color-border);
border-radius: var(--asam-radius-control);
}
</style>
<style scoped>
p:where(.example-paragraph) {
margin-block: 16px;
line-height: 1.8;
overflow-wrap: anywhere;
}
</style>
<template>
<div class="actions">
<AsamButton type="default" :disabled="active" native-type="button" @click="alert"
>提示</AsamButton
>
<AsamButton type="default" :disabled="active" native-type="button" @click="confirm"
>确认归档</AsamButton
>
<AsamButton type="default" :disabled="active" native-type="button" @click="prompt"
>输入名称</AsamButton
>
</div>
<p class="example-paragraph" role="status">{{ result }}</p>
</template>
<script setup>
defineOptions({ name: 'AsamMessageBoxBasicDemo' });
import { ref, onBeforeUnmount } from 'vue';
import { AsamButton, AsamMessageBox } from '@asam-ui/ui';
const result = ref('等待操作');
const active = ref(false);
const alert = async () => {
active.value = true;
try {
await AsamMessageBox.alert('本地草稿已保存', '提示', { buttonSize: 'big' });
result.value = '已阅读';
} catch {
result.value = '提示关闭';
} finally {
active.value = false;
}
};
const confirm = async () => {
active.value = true;
try {
await AsamMessageBox.confirm('确认归档这条记录?', '归档确认', {
distinguishCancelAndClose: true,
buttonSize: 'small'
});
result.value = '已确认归档';
} catch (action) {
result.value = String(action);
} finally {
active.value = false;
}
};
const prompt = async () => {
active.value = true;
try {
const data = await AsamMessageBox.prompt('请输入至少两个字的名称', '命名', {
inputPattern: /^.{2,}$/,
inputErrorMessage: '名称至少两个字',
buttonSize: 'large'
});
result.value = data.value;
} catch {
result.value = '输入已取消';
} finally {
active.value = false;
}
};
onBeforeUnmount(() => {
if (active.value) AsamMessageBox.close();
});
</script>
<style scoped>
.actions {
display: flex;
flex-wrap: wrap;
gap: var(--asam-space-md);
align-items: center;
}
.panel {
padding: var(--asam-space-lg);
border: 1px solid var(--asam-color-border);
border-radius: var(--asam-radius-control);
}
</style>
<style scoped>
p:where(.example-paragraph) {
margin-block: 16px;
line-height: 1.8;
overflow-wrap: anywhere;
}
</style>
使用约定 ​
消息框提供通用调用与 alert、confirm、prompt 快捷入口,并返回 Promise。 完整说明。
宿主 AppContext 与简写重载 ​
三个快捷方法均支持 (message, options?, appContext?) 和 (message, title, options?, appContext?)。 完整说明。
宿主应用可在挂载前完成配置:
import { createApp } from 'vue';
import { AsamMessageBox } from '@asam-ui/ui';
import App from './App.vue';
const app = createApp(App);
app.provide('asam-message-box-context', '当前应用提供的内容');
app.use(AsamMessageBox);
app.mount('#app');
以下完整 TS/JS 示例可切换 alert、confirm、prompt 与两种重载。取消和卸载只调用本例 message 动作的 cancel,使本例 Promise 结算;不全局关闭其他业务的弹层。
宿主 AppContext 与简写重载
<template>
<div class="actions">
<label>
<span>服务类型</span>
<AsamSelect v-model="method" :disabled="active">
<AsamOption value="alert" :label="'alert'">alert</AsamOption>
<AsamOption value="confirm" :label="'确认'">确认</AsamOption>
<AsamOption value="prompt" :label="'prompt'">prompt</AsamOption>
</AsamSelect>
</label>
<label>
<span>上下文</span>
<AsamSelect v-model="contextMode" :disabled="active">
<AsamOption value="explicit" :label="'显式当前 AppContext'"
>显式当前 AppContext</AsamOption
>
<AsamOption value="installed" :label="'安装服务的默认上下文'"
>安装服务的默认上下文</AsamOption
>
<AsamOption value="null" :label="'显式 null'">显式 null</AsamOption>
</AsamSelect>
</label>
<AsamButton native-type="submit" type="default" :disabled="active" @click="open(false)"
>使用 options 简写</AsamButton
>
<AsamButton native-type="submit" type="default" :disabled="active" @click="open(true)"
>使用 title 重载</AsamButton
>
</div>
<p class="example-paragraph" role="status">{{ result }}</p>
</template>
<script lang="ts" setup>
defineOptions({ name: 'AsamMessageBoxServiceContextDemo' });
import { defineComponent, getCurrentInstance, h, inject, onBeforeUnmount, ref } from 'vue';
import { AsamSelect, AsamOption, AsamButton, AsamMessageBox } from '@asam-ui/ui';
import type { AsamMessageBoxActionHandlers, AsamMessageBoxOptions } from '@asam-ui/ui';
const context = getCurrentInstance()?.appContext;
const method = ref<'alert' | 'confirm' | 'prompt'>('alert');
const contextMode = ref<'explicit' | 'installed' | 'null'>('explicit');
const active = ref(false);
const result = ref('等待操作');
let cancelOwned: (() => void) | undefined;
const Content = defineComponent({
setup() {
const label = inject<string>('asam-message-box-context', '未设置宿主 provide');
return () => h('span', { 'data-context-label': '' }, label);
}
});
const cancel = () => cancelOwned?.();
const open = async (withTitle: boolean) => {
if (active.value) return;
active.value = true;
result.value = '等待确认';
const message = ({ cancel }: AsamMessageBoxActionHandlers) => {
cancelOwned = cancel;
return h('div', [
h(Content),
h(
AsamButton,
{ type: 'default', nativeType: 'button', onClick: cancel },
'取消本例弹层'
)
]);
};
const options: AsamMessageBoxOptions = {
buttonSize: 'default',
inputPlaceholder: '输入本次确认值',
distinguishCancelAndClose: true
};
const appContext =
contextMode.value === 'installed'
? undefined
: contextMode.value === 'null'
? null
: context;
try {
const value = withTitle
? await AsamMessageBox[method.value](message, '宿主上下文', options, appContext)
: await AsamMessageBox[method.value](message, options, appContext);
result.value =
method.value === 'prompt' ? `confirmed: ${value.value}` : `resolved: ${value}`;
} catch (action) {
result.value = `rejected: ${String(action)}`;
} finally {
cancelOwned = undefined;
active.value = false;
}
};
onBeforeUnmount(cancel);
</script>
<style scoped>
.actions {
display: flex;
flex-wrap: wrap;
gap: var(--asam-space-md);
}
</style>
<style scoped>
p:where(.example-paragraph) {
margin-block: 16px;
line-height: 1.8;
overflow-wrap: anywhere;
}
</style>
<template>
<div class="actions">
<label>
<span>服务类型</span>
<AsamSelect v-model="method" :disabled="active">
<AsamOption value="alert" :label="'alert'">alert</AsamOption>
<AsamOption value="confirm" :label="'确认'">确认</AsamOption>
<AsamOption value="prompt" :label="'prompt'">prompt</AsamOption>
</AsamSelect>
</label>
<label>
<span>上下文</span>
<AsamSelect v-model="contextMode" :disabled="active">
<AsamOption value="explicit" :label="'显式当前 AppContext'"
>显式当前 AppContext</AsamOption
>
<AsamOption value="installed" :label="'安装服务的默认上下文'"
>安装服务的默认上下文</AsamOption
>
<AsamOption value="null" :label="'显式 null'">显式 null</AsamOption>
</AsamSelect>
</label>
<AsamButton native-type="submit" type="default" :disabled="active" @click="open(false)"
>使用 options 简写</AsamButton
>
<AsamButton native-type="submit" type="default" :disabled="active" @click="open(true)"
>使用 title 重载</AsamButton
>
</div>
<p class="example-paragraph" role="status">{{ result }}</p>
</template>
<script setup>
defineOptions({ name: 'AsamMessageBoxServiceContextDemo' });
import { defineComponent, getCurrentInstance, h, inject, onBeforeUnmount, ref } from 'vue';
import { AsamSelect, AsamOption, AsamButton, AsamMessageBox } from '@asam-ui/ui';
const context = getCurrentInstance()?.appContext;
const method = ref('alert');
const contextMode = ref('explicit');
const active = ref(false);
const result = ref('等待操作');
let cancelOwned;
const Content = defineComponent({
setup() {
const label = inject('asam-message-box-context', '未设置宿主 provide');
return () => h('span', { 'data-context-label': '' }, label);
}
});
const cancel = () => cancelOwned?.();
const open = async (withTitle) => {
if (active.value) return;
active.value = true;
result.value = '等待确认';
const message = ({ cancel }) => {
cancelOwned = cancel;
return h('div', [
h(Content),
h(
AsamButton,
{ type: 'default', nativeType: 'button', onClick: cancel },
'取消本例弹层'
)
]);
};
const options = {
buttonSize: 'default',
inputPlaceholder: '输入本次确认值',
distinguishCancelAndClose: true
};
const appContext =
contextMode.value === 'installed'
? undefined
: contextMode.value === 'null'
? null
: context;
try {
const value = withTitle
? await AsamMessageBox[method.value](message, '宿主上下文', options, appContext)
: await AsamMessageBox[method.value](message, options, appContext);
result.value =
method.value === 'prompt' ? `confirmed: ${value.value}` : `resolved: ${value}`;
} catch (action) {
result.value = `rejected: ${String(action)}`;
} finally {
cancelOwned = undefined;
active.value = false;
}
};
onBeforeUnmount(cancel);
</script>
<style scoped>
.actions {
display: flex;
flex-wrap: wrap;
gap: var(--asam-space-md);
}
</style>
<style scoped>
p:where(.example-paragraph) {
margin-block: 16px;
line-height: 1.8;
overflow-wrap: anywhere;
}
</style>
完整用法 ​
以下用法使用本库公开入口。每个示例提供完整 TS/JS SFC,参数、事件、插槽和实例类型见本页 API。服务实例由创建方负责关闭;HTML 内容仅用于调用方已知的可信字符串。
提示与确认结果 ​
提示与确认结果
<template>
<AsamButton type="default" @click="open">点击打开消息框</AsamButton>
</template>
<script lang="ts" setup>
import {
AsamButton,
AsamMessage,
AsamMessageBox,
type AsamMessageBoxAction as Action,
type AsamMessageHandler
} from '@asam-ui/ui';
import { onBeforeUnmount } from 'vue';
const open = () => {
AsamMessageBox.alert('这是一条消息。', '标题', {
// if you want to disable its autofocus
// autofocus: false,
confirmButtonText: '确认',
callback: (action: Action) => {
trackAsamMessage(
AsamMessage({
type: 'info',
message: `操作结果:${action}`
})
);
}
}).catch((action) => {
if (action !== 'cancel' && action !== 'close') throw action;
});
};
const ownedAsamMessage = new Set<AsamMessageHandler>();
let mountedAsamMessage = true;
const trackAsamMessage = (handle: AsamMessageHandler) => {
if (mountedAsamMessage) ownedAsamMessage.add(handle);
else handle.close();
return handle;
};
onBeforeUnmount(() => {
mountedAsamMessage = false;
for (const handle of ownedAsamMessage) handle.close();
ownedAsamMessage.clear();
});
</script>
<template>
<AsamButton type="default" @click="open">点击打开消息框</AsamButton>
</template>
<script setup>
import { AsamButton, AsamMessage, AsamMessageBox } from '@asam-ui/ui';
import { onBeforeUnmount } from 'vue';
const open = () => {
AsamMessageBox.alert('这是一条消息。', '标题', {
// if you want to disable its autofocus
// autofocus: false,
confirmButtonText: '确认',
callback: (action) => {
trackAsamMessage(
AsamMessage({
type: 'info',
message: `操作结果:${action}`
})
);
}
}).catch((action) => {
if (action !== 'cancel' && action !== 'close') throw action;
});
};
const ownedAsamMessage = new Set();
let mountedAsamMessage = true;
const trackAsamMessage = (handle) => {
if (mountedAsamMessage) ownedAsamMessage.add(handle);
else handle.close();
return handle;
};
onBeforeUnmount(() => {
mountedAsamMessage = false;
for (const handle of ownedAsamMessage) handle.close();
ownedAsamMessage.clear();
});
</script>
确认与取消 ​
确认与取消
<template>
<AsamButton type="default" @click="open">点击打开消息框</AsamButton>
</template>
<script lang="ts" setup>
import { AsamButton, AsamMessage, AsamMessageBox, type AsamMessageHandler } from '@asam-ui/ui';
import { onBeforeUnmount } from 'vue';
const open = () => {
AsamMessageBox.confirm('此操作将永久删除文件,确定继续吗?', '警告', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
trackAsamMessage(
AsamMessage({
type: 'success',
message: '删除成功'
})
);
})
.catch(() => {
trackAsamMessage(
AsamMessage({
type: 'info',
message: '已取消删除'
})
);
});
};
const ownedAsamMessage = new Set<AsamMessageHandler>();
let mountedAsamMessage = true;
const trackAsamMessage = (handle: AsamMessageHandler) => {
if (mountedAsamMessage) ownedAsamMessage.add(handle);
else handle.close();
return handle;
};
onBeforeUnmount(() => {
mountedAsamMessage = false;
for (const handle of ownedAsamMessage) handle.close();
ownedAsamMessage.clear();
});
</script>
<template>
<AsamButton type="default" @click="open">点击打开消息框</AsamButton>
</template>
<script setup>
import { AsamButton, AsamMessage, AsamMessageBox } from '@asam-ui/ui';
import { onBeforeUnmount } from 'vue';
const open = () => {
AsamMessageBox.confirm('此操作将永久删除文件,确定继续吗?', '警告', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
trackAsamMessage(
AsamMessage({
type: 'success',
message: '删除成功'
})
);
})
.catch(() => {
trackAsamMessage(
AsamMessage({
type: 'info',
message: '已取消删除'
})
);
});
};
const ownedAsamMessage = new Set();
let mountedAsamMessage = true;
const trackAsamMessage = (handle) => {
if (mountedAsamMessage) ownedAsamMessage.add(handle);
else handle.close();
return handle;
};
onBeforeUnmount(() => {
mountedAsamMessage = false;
for (const handle of ownedAsamMessage) handle.close();
ownedAsamMessage.clear();
});
</script>
输入验证 ​
输入验证
<template>
<AsamButton type="default" @click="open">点击打开消息框</AsamButton>
</template>
<script lang="ts" setup>
import { AsamButton, AsamMessage, AsamMessageBox, type AsamMessageHandler } from '@asam-ui/ui';
import { onBeforeUnmount } from 'vue';
const open = () => {
AsamMessageBox.prompt('请输入电子邮箱', '提示', {
confirmButtonText: '确认',
cancelButtonText: '取消',
inputPattern:
/[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/,
inputErrorMessage: '邮箱格式不正确'
})
.then(({ value }) => {
trackAsamMessage(
AsamMessage({
type: 'success',
message: `你的邮箱是:${value}`
})
);
})
.catch(() => {
trackAsamMessage(
AsamMessage({
type: 'info',
message: '已取消输入'
})
);
});
};
const ownedAsamMessage = new Set<AsamMessageHandler>();
let mountedAsamMessage = true;
const trackAsamMessage = (handle: AsamMessageHandler) => {
if (mountedAsamMessage) ownedAsamMessage.add(handle);
else handle.close();
return handle;
};
onBeforeUnmount(() => {
mountedAsamMessage = false;
for (const handle of ownedAsamMessage) handle.close();
ownedAsamMessage.clear();
});
</script>
<template>
<AsamButton type="default" @click="open">点击打开消息框</AsamButton>
</template>
<script setup>
import { AsamButton, AsamMessage, AsamMessageBox } from '@asam-ui/ui';
import { onBeforeUnmount } from 'vue';
const open = () => {
AsamMessageBox.prompt('请输入电子邮箱', '提示', {
confirmButtonText: '确认',
cancelButtonText: '取消',
inputPattern:
/[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/,
inputErrorMessage: '邮箱格式不正确'
})
.then(({ value }) => {
trackAsamMessage(
AsamMessage({
type: 'success',
message: `你的邮箱是:${value}`
})
);
})
.catch(() => {
trackAsamMessage(
AsamMessage({
type: 'info',
message: '已取消输入'
})
);
});
};
const ownedAsamMessage = new Set();
let mountedAsamMessage = true;
const trackAsamMessage = (handle) => {
if (mountedAsamMessage) ownedAsamMessage.add(handle);
else handle.close();
return handle;
};
onBeforeUnmount(() => {
mountedAsamMessage = false;
for (const handle of ownedAsamMessage) handle.close();
ownedAsamMessage.clear();
});
</script>
VNode 内容 ​
VNode 内容
<template>
<div class="flex flex-wrap demo-gap">
<AsamButton type="default" class="!ml-0" @click="open">普通 VNode</AsamButton>
<AsamButton type="default" class="!ml-0" @click="open1">动态属性</AsamButton>
</div>
</template>
<script lang="ts" setup>
import { AsamButton, AsamMessageBox, AsamSwitch } from '@asam-ui/ui';
import { h, ref } from 'vue';
const open = () => {
AsamMessageBox({
title: '消息',
message: h('p', null, [
h('span', null, '消息内容可以使用 '),
h('i', { style: 'color: teal' }, 'VNode')
])
}).catch((action) => {
if (action !== 'cancel' && action !== 'close') throw action;
});
};
const open1 = () => {
const checked = ref<boolean | string | number>(false);
AsamMessageBox({
title: '消息',
// Should pass a function if VNode contains dynamic props
message: () =>
h(AsamSwitch, {
modelValue: checked.value,
'onUpdate:modelValue': (val: boolean | string | number) => {
checked.value = val;
}
})
}).catch((action) => {
if (action !== 'cancel' && action !== 'close') throw action;
});
};
</script>
<style scoped>
/* Keep layout utilities local so the downloaded SFC needs no CSS preset. */
.flex {
display: flex;
}
.flex-wrap {
flex-wrap: wrap;
}
.demo-gap {
gap: var(--asam-space-sm);
}
</style>
<template>
<div class="flex flex-wrap demo-gap">
<AsamButton type="default" class="!ml-0" @click="open">普通 VNode</AsamButton>
<AsamButton type="default" class="!ml-0" @click="open1">动态属性</AsamButton>
</div>
</template>
<script setup>
import { AsamButton, AsamMessageBox, AsamSwitch } from '@asam-ui/ui';
import { h, ref } from 'vue';
const open = () => {
AsamMessageBox({
title: '消息',
message: h('p', null, [
h('span', null, '消息内容可以使用 '),
h('i', { style: 'color: teal' }, 'VNode')
])
}).catch((action) => {
if (action !== 'cancel' && action !== 'close') throw action;
});
};
const open1 = () => {
const checked = ref(false);
AsamMessageBox({
title: '消息',
// Should pass a function if VNode contains dynamic props
message: () =>
h(AsamSwitch, {
modelValue: checked.value,
'onUpdate:modelValue': (val) => {
checked.value = val;
}
})
}).catch((action) => {
if (action !== 'cancel' && action !== 'close') throw action;
});
};
</script>
<style scoped>
/* Keep layout utilities local so the downloaded SFC needs no CSS preset. */
.flex {
display: flex;
}
.flex-wrap {
flex-wrap: wrap;
}
.demo-gap {
gap: var(--asam-space-sm);
}
</style>
VNode 动作与 Promise ​
VNode 动作与 Promise
<template>
<AsamButton type="default" @click="open">点击打开消息框</AsamButton>
</template>
<script lang="ts" setup>
import { AsamButton, AsamMessage, AsamMessageBox, type AsamMessageHandler } from '@asam-ui/ui';
import { onBeforeUnmount } from 'vue';
import { h } from 'vue';
const open = () => {
AsamMessageBox.confirm(
({ confirm, cancel, close }) => {
return h('div', [
h('p', { style: 'margin-bottom: 8px' }, '自定义按钮使用消息框操作处理器'),
h(
AsamButton,
{
type: 'default',
onClick: () => {
confirm();
}
},
() => '完成(resolve)'
),
h(
AsamButton,
{
type: 'danger',
onClick: () => {
cancel();
}
},
() => '拒绝(reject)'
),
h(
AsamButton,
{
onClick: () => {
close();
}
},
() => '关闭(close)'
)
]);
},
{
title: '消息',
showConfirmButton: false,
showCancelButton: false,
distinguishCancelAndClose: true
}
)
.then((action) => {
trackAsamMessage(
AsamMessage({
type: 'success',
message: `resolved: ${action}`
})
);
})
.catch((reason) => {
trackAsamMessage(
AsamMessage({
type: 'error',
message: `rejected: ${reason}`
})
);
});
};
const ownedAsamMessage = new Set<AsamMessageHandler>();
let mountedAsamMessage = true;
const trackAsamMessage = (handle: AsamMessageHandler) => {
if (mountedAsamMessage) ownedAsamMessage.add(handle);
else handle.close();
return handle;
};
onBeforeUnmount(() => {
mountedAsamMessage = false;
for (const handle of ownedAsamMessage) handle.close();
ownedAsamMessage.clear();
});
</script>
<template>
<AsamButton type="default" @click="open">点击打开消息框</AsamButton>
</template>
<script setup>
import { AsamButton, AsamMessage, AsamMessageBox } from '@asam-ui/ui';
import { onBeforeUnmount } from 'vue';
import { h } from 'vue';
const open = () => {
AsamMessageBox.confirm(
({ confirm, cancel, close }) => {
return h('div', [
h('p', { style: 'margin-bottom: 8px' }, '自定义按钮使用消息框操作处理器'),
h(
AsamButton,
{
type: 'default',
onClick: () => {
confirm();
}
},
() => '完成(resolve)'
),
h(
AsamButton,
{
type: 'danger',
onClick: () => {
cancel();
}
},
() => '拒绝(reject)'
),
h(
AsamButton,
{
onClick: () => {
close();
}
},
() => '关闭(close)'
)
]);
},
{
title: '消息',
showConfirmButton: false,
showCancelButton: false,
distinguishCancelAndClose: true
}
)
.then((action) => {
trackAsamMessage(
AsamMessage({
type: 'success',
message: `resolved: ${action}`
})
);
})
.catch((reason) => {
trackAsamMessage(
AsamMessage({
type: 'error',
message: `rejected: ${reason}`
})
);
});
};
const ownedAsamMessage = new Set();
let mountedAsamMessage = true;
const trackAsamMessage = (handle) => {
if (mountedAsamMessage) ownedAsamMessage.add(handle);
else handle.close();
return handle;
};
onBeforeUnmount(() => {
mountedAsamMessage = false;
for (const handle of ownedAsamMessage) handle.close();
ownedAsamMessage.clear();
});
</script>
异步关闭守卫 ​
异步关闭守卫
<template>
<AsamButton type="default" @click="open">点击打开消息框</AsamButton>
</template>
<script lang="ts" setup>
import { AsamButton, AsamMessage, AsamMessageBox, type AsamMessageHandler } from '@asam-ui/ui';
import { onBeforeUnmount } from 'vue';
import { h } from 'vue';
const open = () => {
AsamMessageBox({
title: '消息',
message: h('p', null, [
h('span', null, '消息内容可以使用 '),
h('i', { style: 'color: teal' }, 'VNode')
]),
showCancelButton: true,
confirmButtonText: '确认',
cancelButtonText: '取消',
beforeClose: (action, instance, done) => {
if (action === 'confirm') {
instance.confirmButtonLoading = true;
instance.confirmButtonText = '加载中……';
setTimeout(() => {
done();
setTimeout(() => {
instance.confirmButtonLoading = false;
}, 300);
}, 3000);
} else {
done();
}
}
})
.then((action) => {
trackAsamMessage(
AsamMessage({
type: 'info',
message: `操作结果:${action}`
})
);
})
.catch((action) => {
if (action !== 'cancel' && action !== 'close') throw action;
});
};
const ownedAsamMessage = new Set<AsamMessageHandler>();
let mountedAsamMessage = true;
const trackAsamMessage = (handle: AsamMessageHandler) => {
if (mountedAsamMessage) ownedAsamMessage.add(handle);
else handle.close();
return handle;
};
onBeforeUnmount(() => {
mountedAsamMessage = false;
for (const handle of ownedAsamMessage) handle.close();
ownedAsamMessage.clear();
});
</script>
<template>
<AsamButton type="default" @click="open">点击打开消息框</AsamButton>
</template>
<script setup>
import { AsamButton, AsamMessage, AsamMessageBox } from '@asam-ui/ui';
import { onBeforeUnmount } from 'vue';
import { h } from 'vue';
const open = () => {
AsamMessageBox({
title: '消息',
message: h('p', null, [
h('span', null, '消息内容可以使用 '),
h('i', { style: 'color: teal' }, 'VNode')
]),
showCancelButton: true,
confirmButtonText: '确认',
cancelButtonText: '取消',
beforeClose: (action, instance, done) => {
if (action === 'confirm') {
instance.confirmButtonLoading = true;
instance.confirmButtonText = '加载中……';
setTimeout(() => {
done();
setTimeout(() => {
instance.confirmButtonLoading = false;
}, 300);
}, 3000);
} else {
done();
}
}
})
.then((action) => {
trackAsamMessage(
AsamMessage({
type: 'info',
message: `操作结果:${action}`
})
);
})
.catch((action) => {
if (action !== 'cancel' && action !== 'close') throw action;
});
};
const ownedAsamMessage = new Set();
let mountedAsamMessage = true;
const trackAsamMessage = (handle) => {
if (mountedAsamMessage) ownedAsamMessage.add(handle);
else handle.close();
return handle;
};
onBeforeUnmount(() => {
mountedAsamMessage = false;
for (const handle of ownedAsamMessage) handle.close();
ownedAsamMessage.clear();
});
</script>
可信 HTML 内容 ​
可信 HTML 内容
<template>
<AsamButton type="default" @click="open">点击打开消息框</AsamButton>
</template>
<script lang="ts" setup>
import { AsamButton, AsamMessageBox } from '@asam-ui/ui';
const open = () => {
AsamMessageBox.alert('<strong>这是一段 <i>HTML</i> 内容</strong>', 'HTML 内容', {
dangerouslyUseHTMLString: true
}).catch((action) => {
if (action !== 'cancel' && action !== 'close') throw action;
});
};
</script>
<template>
<AsamButton type="default" @click="open">点击打开消息框</AsamButton>
</template>
<script setup>
import { AsamButton, AsamMessageBox } from '@asam-ui/ui';
const open = () => {
AsamMessageBox.alert('<strong>这是一段 <i>HTML</i> 内容</strong>', 'HTML 内容', {
dangerouslyUseHTMLString: true
}).catch((action) => {
if (action !== 'cancel' && action !== 'close') throw action;
});
};
</script>
区分取消与关闭 ​
区分取消与关闭
<template>
<AsamButton type="default" @click="open">点击打开消息框</AsamButton>
</template>
<script lang="ts" setup>
import {
AsamButton,
AsamMessage,
AsamMessageBox,
type AsamMessageBoxAction as Action,
type AsamMessageHandler
} from '@asam-ui/ui';
import { onBeforeUnmount } from 'vue';
const open = () => {
AsamMessageBox.confirm('有未保存的修改,是否保存并继续?', '确认', {
distinguishCancelAndClose: true,
confirmButtonText: '保存',
cancelButtonText: '放弃修改'
})
.then(() => {
trackAsamMessage(
AsamMessage({
type: 'info',
message: '修改已保存,即将前往新页面。'
})
);
})
.catch((action: Action) => {
trackAsamMessage(
AsamMessage({
type: 'info',
message: action === 'cancel' ? '已放弃修改,即将前往新页面。' : '留在当前页面'
})
);
});
};
const ownedAsamMessage = new Set<AsamMessageHandler>();
let mountedAsamMessage = true;
const trackAsamMessage = (handle: AsamMessageHandler) => {
if (mountedAsamMessage) ownedAsamMessage.add(handle);
else handle.close();
return handle;
};
onBeforeUnmount(() => {
mountedAsamMessage = false;
for (const handle of ownedAsamMessage) handle.close();
ownedAsamMessage.clear();
});
</script>
<template>
<AsamButton type="default" @click="open">点击打开消息框</AsamButton>
</template>
<script setup>
import { AsamButton, AsamMessage, AsamMessageBox } from '@asam-ui/ui';
import { onBeforeUnmount } from 'vue';
const open = () => {
AsamMessageBox.confirm('有未保存的修改,是否保存并继续?', '确认', {
distinguishCancelAndClose: true,
confirmButtonText: '保存',
cancelButtonText: '放弃修改'
})
.then(() => {
trackAsamMessage(
AsamMessage({
type: 'info',
message: '修改已保存,即将前往新页面。'
})
);
})
.catch((action) => {
trackAsamMessage(
AsamMessage({
type: 'info',
message: action === 'cancel' ? '已放弃修改,即将前往新页面。' : '留在当前页面'
})
);
});
};
const ownedAsamMessage = new Set();
let mountedAsamMessage = true;
const trackAsamMessage = (handle) => {
if (mountedAsamMessage) ownedAsamMessage.add(handle);
else handle.close();
return handle;
};
onBeforeUnmount(() => {
mountedAsamMessage = false;
for (const handle of ownedAsamMessage) handle.close();
ownedAsamMessage.clear();
});
</script>
居中内容 ​
居中内容
<template>
<AsamButton type="default" @click="open">点击打开消息框</AsamButton>
</template>
<script lang="ts" setup>
import { AsamButton, AsamMessage, AsamMessageBox, type AsamMessageHandler } from '@asam-ui/ui';
import { onBeforeUnmount } from 'vue';
const open = () => {
AsamMessageBox.confirm('此操作将永久删除文件,确定继续吗?', '警告', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
center: true
})
.then(() => {
trackAsamMessage(
AsamMessage({
type: 'success',
message: '删除成功'
})
);
})
.catch(() => {
trackAsamMessage(
AsamMessage({
type: 'info',
message: '已取消删除'
})
);
});
};
const ownedAsamMessage = new Set<AsamMessageHandler>();
let mountedAsamMessage = true;
const trackAsamMessage = (handle: AsamMessageHandler) => {
if (mountedAsamMessage) ownedAsamMessage.add(handle);
else handle.close();
return handle;
};
onBeforeUnmount(() => {
mountedAsamMessage = false;
for (const handle of ownedAsamMessage) handle.close();
ownedAsamMessage.clear();
});
</script>
<template>
<AsamButton type="default" @click="open">点击打开消息框</AsamButton>
</template>
<script setup>
import { AsamButton, AsamMessage, AsamMessageBox } from '@asam-ui/ui';
import { onBeforeUnmount } from 'vue';
const open = () => {
AsamMessageBox.confirm('此操作将永久删除文件,确定继续吗?', '警告', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
center: true
})
.then(() => {
trackAsamMessage(
AsamMessage({
type: 'success',
message: '删除成功'
})
);
})
.catch(() => {
trackAsamMessage(
AsamMessage({
type: 'info',
message: '已取消删除'
})
);
});
};
const ownedAsamMessage = new Set();
let mountedAsamMessage = true;
const trackAsamMessage = (handle) => {
if (mountedAsamMessage) ownedAsamMessage.add(handle);
else handle.close();
return handle;
};
onBeforeUnmount(() => {
mountedAsamMessage = false;
for (const handle of ownedAsamMessage) handle.close();
ownedAsamMessage.clear();
});
</script>
自定义图标 ​
自定义图标
<!-- 此演示还使用 @asam-ui/icons-vue,请按官网对应指南配置这些公开依赖。 -->
<template>
<AsamButton type="default" @click="open">点击打开消息框</AsamButton>
</template>
<script lang="ts" setup>
import { AsamButton, AsamMessage, AsamMessageBox, type AsamMessageHandler } from '@asam-ui/ui';
import { onBeforeUnmount } from 'vue';
import { markRaw } from 'vue';
import { Delete } from '@asam-ui/icons-vue';
const open = () => {
AsamMessageBox.confirm('此操作将永久删除文件,确定继续吗?', '警告', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
icon: markRaw(Delete)
})
.then(() => {
trackAsamMessage(
AsamMessage({
type: 'success',
message: '删除成功'
})
);
})
.catch(() => {
trackAsamMessage(
AsamMessage({
type: 'info',
message: '已取消删除'
})
);
});
};
const ownedAsamMessage = new Set<AsamMessageHandler>();
let mountedAsamMessage = true;
const trackAsamMessage = (handle: AsamMessageHandler) => {
if (mountedAsamMessage) ownedAsamMessage.add(handle);
else handle.close();
return handle;
};
onBeforeUnmount(() => {
mountedAsamMessage = false;
for (const handle of ownedAsamMessage) handle.close();
ownedAsamMessage.clear();
});
</script>
<!-- 此演示还使用 @asam-ui/icons-vue,请按官网对应指南配置这些公开依赖。 -->
<template>
<AsamButton type="default" @click="open">点击打开消息框</AsamButton>
</template>
<script setup>
import { AsamButton, AsamMessage, AsamMessageBox } from '@asam-ui/ui';
import { onBeforeUnmount } from 'vue';
import { markRaw } from 'vue';
import { Delete } from '@asam-ui/icons-vue';
const open = () => {
AsamMessageBox.confirm('此操作将永久删除文件,确定继续吗?', '警告', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
icon: markRaw(Delete)
})
.then(() => {
trackAsamMessage(
AsamMessage({
type: 'success',
message: '删除成功'
})
);
})
.catch(() => {
trackAsamMessage(
AsamMessage({
type: 'info',
message: '已取消删除'
})
);
});
};
const ownedAsamMessage = new Set();
let mountedAsamMessage = true;
const trackAsamMessage = (handle) => {
if (mountedAsamMessage) ownedAsamMessage.add(handle);
else handle.close();
return handle;
};
onBeforeUnmount(() => {
mountedAsamMessage = false;
for (const handle of ownedAsamMessage) handle.close();
ownedAsamMessage.clear();
});
</script>
拖动 ​
拖动
<template>
<div class="flex flex-wrap demo-gap">
<AsamButton type="default" class="!ml-0" @click="open"> 打开可拖拽消息框 </AsamButton>
<AsamButton type="default" class="!ml-0" @click="open2">
打开允许越界拖拽的消息框
</AsamButton>
<AsamButton type="default" class="!ml-0" @click="open3">
打开自定义拖拽样式的消息框
</AsamButton>
</div>
</template>
<script lang="ts" setup>
import { AsamButton, AsamMessage, AsamMessageBox, type AsamMessageHandler } from '@asam-ui/ui';
import { onBeforeUnmount } from 'vue';
const open = () => {
AsamMessageBox.confirm('此操作将永久删除文件,确定继续吗?', '警告', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
draggable: true
})
.then(() => {
trackAsamMessage(
AsamMessage({
type: 'success',
message: '删除成功'
})
);
})
.catch(() => {
trackAsamMessage(
AsamMessage({
type: 'info',
message: '已取消删除'
})
);
});
};
const open2 = () => {
AsamMessageBox.confirm('此操作将永久删除文件,确定继续吗?', '警告', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
draggable: true,
overflow: true
})
.then(() => {
trackAsamMessage(
AsamMessage({
type: 'success',
message: '删除成功'
})
);
})
.catch(() => {
trackAsamMessage(
AsamMessage({
type: 'info',
message: '已取消删除'
})
);
});
};
const open3 = () => {
AsamMessageBox.confirm('此消息框使用自定义拖拽样式,拖动它即可查看效果。', '自定义拖拽样式', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'info',
draggable: true,
customClass: 'custom-dragging-message-box'
})
.then(() => {
trackAsamMessage(
AsamMessage({
type: 'success',
message: '操作完成'
})
);
})
.catch(() => {
trackAsamMessage(
AsamMessage({
type: 'info',
message: '已取消操作'
})
);
});
};
const ownedAsamMessage = new Set<AsamMessageHandler>();
let mountedAsamMessage = true;
const trackAsamMessage = (handle: AsamMessageHandler) => {
if (mountedAsamMessage) ownedAsamMessage.add(handle);
else handle.close();
return handle;
};
onBeforeUnmount(() => {
mountedAsamMessage = false;
for (const handle of ownedAsamMessage) handle.close();
ownedAsamMessage.clear();
});
</script>
<style>
.custom-dragging-message-box.is-dragging {
border: 2px dashed var(--el-color-primary);
opacity: 0.65;
}
</style>
<style scoped>
/* Keep layout utilities local so the downloaded SFC needs no CSS preset. */
.flex {
display: flex;
}
.flex-wrap {
flex-wrap: wrap;
}
.demo-gap {
gap: var(--asam-space-sm);
}
</style>
<template>
<div class="flex flex-wrap demo-gap">
<AsamButton type="default" class="!ml-0" @click="open"> 打开可拖拽消息框 </AsamButton>
<AsamButton type="default" class="!ml-0" @click="open2">
打开允许越界拖拽的消息框
</AsamButton>
<AsamButton type="default" class="!ml-0" @click="open3">
打开自定义拖拽样式的消息框
</AsamButton>
</div>
</template>
<script setup>
import { AsamButton, AsamMessage, AsamMessageBox } from '@asam-ui/ui';
import { onBeforeUnmount } from 'vue';
const open = () => {
AsamMessageBox.confirm('此操作将永久删除文件,确定继续吗?', '警告', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
draggable: true
})
.then(() => {
trackAsamMessage(
AsamMessage({
type: 'success',
message: '删除成功'
})
);
})
.catch(() => {
trackAsamMessage(
AsamMessage({
type: 'info',
message: '已取消删除'
})
);
});
};
const open2 = () => {
AsamMessageBox.confirm('此操作将永久删除文件,确定继续吗?', '警告', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
draggable: true,
overflow: true
})
.then(() => {
trackAsamMessage(
AsamMessage({
type: 'success',
message: '删除成功'
})
);
})
.catch(() => {
trackAsamMessage(
AsamMessage({
type: 'info',
message: '已取消删除'
})
);
});
};
const open3 = () => {
AsamMessageBox.confirm('此消息框使用自定义拖拽样式,拖动它即可查看效果。', '自定义拖拽样式', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'info',
draggable: true,
customClass: 'custom-dragging-message-box'
})
.then(() => {
trackAsamMessage(
AsamMessage({
type: 'success',
message: '操作完成'
})
);
})
.catch(() => {
trackAsamMessage(
AsamMessage({
type: 'info',
message: '已取消操作'
})
);
});
};
const ownedAsamMessage = new Set();
let mountedAsamMessage = true;
const trackAsamMessage = (handle) => {
if (mountedAsamMessage) ownedAsamMessage.add(handle);
else handle.close();
return handle;
};
onBeforeUnmount(() => {
mountedAsamMessage = false;
for (const handle of ownedAsamMessage) handle.close();
ownedAsamMessage.clear();
});
</script>
<style>
.custom-dragging-message-box.is-dragging {
border: 2px dashed var(--el-color-primary);
opacity: 0.65;
}
</style>
<style scoped>
/* Keep layout utilities local so the downloaded SFC needs no CSS preset. */
.flex {
display: flex;
}
.flex-wrap {
flex-wrap: wrap;
}
.demo-gap {
gap: var(--asam-space-sm);
}
</style>
组合职责与生命周期 ​
自定义消息按钮仍经过 beforeClose;关闭动作与取消动作可分别处理。 完整说明。
API
服务 AsamMessageBox
| 属性名 | 说明 | 类型 | 默认值 |
|---|---|---|---|
close | 关闭当前消息框。 | AsamMessageBoxActionHandlers["confirm"] | — |
_context | — | AppContext | null | — |
alert | — | AsamMessageBoxShortcut | — |
confirm | — | AsamMessageBoxShortcut | — |
prompt | — | AsamMessageBoxShortcut | — |
install | — | (app: App) => void | — |
(options: AsamMessageBoxOptions, appContext?: AppContext | null | undefined): Promise<AsamMessageBoxData>
类型 AsamMessageBoxOptions
| 属性名 | 说明 | 类型 | 默认值 |
|---|---|---|---|
appendTo | 消息框挂载的自定义目标元素。 | string | HTMLElement | undefined | — |
title | MessageBox 的标题 | (AsamMessageBoxOptions)["title"] | undefined |
center | 是否居中布局 | boolean | undefined | false |
type | 消息类型,用于图标显示 | enum"" | "primary" | "success" | "warning" | "info" | "error"完整类型:AsamMessageBoxState["type"] | undefined | "" |
icon | 自定义图标组件。 | string | Component | undefined | "" |
closeOnPressEscape | 是否可通过按下 ESC 键关闭 MessageBox | boolean | undefined | true |
draggable | 消息框是否可拖拽。 | boolean | undefined | false |
message | MessageBox 的正文内容 | 查看完整类型string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined | "" |
beforeClose | messageBox 关闭前的回调,会暂停消息弹出框的关闭过程。 | ((action: AsamMessageBoxAction, instance: AsamMessageBoxState, done: () => void) => void) | undefined | null |
closeOnClickModal | 是否可通过点击遮罩层关闭 MessageBox | boolean | undefined | true |
lockScroll | 是否在 MessageBox 出现时将 body 滚动锁定 | boolean | undefined | true |
modal | 是否需要遮罩层 | boolean | undefined | true |
modalClass | 消息框遮罩类名。 | string | undefined | "" |
closeIcon | 自定义关闭图标组件。 | string | Component | undefined | "" |
overflow | MessageBox 拖动范围可以超出可视区 | boolean | undefined | false |
showClose | 是否显示关闭按钮 | boolean | undefined | true |
customClass | MessageBox 的自定义类名 | string | undefined | "asam-message-box" |
dangerouslyUseHTMLString | 是否将 message 属性作为 HTML 片段处理 | boolean | undefined | false |
autofocus | 打开 MessageBox 时是否自动获得焦点 | boolean | undefined | true |
customStyle | MessageBox 的自定义内联样式 | AsamMessageBoxState["customStyle"] | undefined | {} |
callback | 若不使用 Promise,可以使用此参数指定 MessageBox 关闭后的回调 | AsamMessageBoxCallback | undefined | null |
cancelButtonText | 取消按钮的文本内容 | string | undefined | "" |
confirmButtonText | 确定按钮的文本内容 | string | undefined | "" |
cancelButtonType | 取消按钮的类型 | enum"" | "default" | "text" | "primary" | "success" | "danger" | "warning" | "info"完整类型:"" | "default" | "text" | "primary" | "success" | "danger" | "warning" | "info" | undefined | "" |
confirmButtonType | 确认按钮类型 | enum"" | "default" | "text" | "primary" | "success" | "danger" | "warning" | "info"完整类型:"" | "default" | "text" | "primary" | "success" | "danger" | "warning" | "info" | undefined | "primary" |
cancelButtonLoadingIcon | 取消按钮的加载图标内容 | string | Component | undefined | markRaw(Loading) |
confirmButtonLoadingIcon | 确认按钮的加载图标内容 | string | Component | undefined | markRaw(Loading) |
cancelButtonClass | 取消按钮的自定义类名 | string | undefined | "" |
confirmButtonClass | 确定按钮的自定义类名 | string | undefined | "" |
boxType | 消息框类型。 | enum"" | "alert" | "confirm" | "prompt"完整类型:AsamMessageBoxType | undefined | "" |
distinguishCancelAndClose | 是否区分取消与关闭。 | boolean | undefined | false |
showCancelButton | 是否显示取消按钮 | boolean | undefined | false |
showConfirmButton | 是否显示确定按钮 | boolean | undefined | true |
roundButton | 是否使用圆角按钮 | boolean | undefined | false |
closeOnHashChange | 是否在 hash 改变时关闭 MessageBox | boolean | undefined | true |
showInput | 是否显示输入框 | boolean | undefined | false |
inputPlaceholder | 输入框占位文本 | string | undefined | "" |
inputValue | 输入框的初始文本 | string | undefined | "" |
inputPattern | 输入框的校验表达式 | RegExp | undefined | null |
inputType | 输入类型,参阅 MDN 的原生 input 类型说明。 | enum"number" | "text" | "email" | "search" | "tel" | "url" | "textarea" | "password"完整类型:AsamMessageBoxState["inputType"] | undefined | "text" |
inputValidator | 输入框的校验函数。应该返回一个 boolean 或者 string,如果返回的是一个 string 类型,那么该返回值会被赋值给 inputErrorMessage 用于向用户展示错误消息。 | AsamMessageBoxInputValidator | undefined |
inputErrorMessage | 校验未通过时的提示文本 | string | undefined | "" |
buttonSize | — | enum"large" | "big" | "default" | "small"完整类型:AsamControlSize | undefined | — |
类型 AsamMessageBoxData
类型 AsamMessageBoxInputData
| 属性名 | 说明 | 类型 | 默认值 |
|---|---|---|---|
value | — | string | — |
action | — | enum"close" | "confirm" | "cancel"完整类型:AsamMessageBoxAction | — |
类型 AsamMessageBoxState
| 属性名 | 说明 | 类型 | 默认值 |
|---|---|---|---|
autofocus | — | boolean | — |
title | — | string | undefined | — |
message | — | string | — |
type | — | enum"" | "primary" | "success" | "warning" | "info" | "error"完整类型:AsamMessageBoxState["type"] | — |
icon | — | string | Component | — |
closeIcon | — | string | Component | — |
customClass | — | string | — |
customStyle | — | AsamMessageBoxState["customStyle"] | — |
showInput | — | boolean | — |
inputValue | — | string | — |
inputPlaceholder | — | string | — |
inputType | — | enum"number" | "text" | "email" | "search" | "tel" | "url" | "textarea" | "password"完整类型:AsamMessageBoxState["inputType"] | — |
inputPattern | — | RegExp | null | — |
inputValidator | — | AsamMessageBoxInputValidator | — |
inputErrorMessage | — | string | — |
showConfirmButton | — | boolean | — |
showCancelButton | — | boolean | — |
action | — | enum"close" | "confirm" | "cancel"完整类型:AsamMessageBoxAction | — |
dangerouslyUseHTMLString | — | boolean | — |
confirmButtonText | — | string | — |
cancelButtonText | — | string | — |
confirmButtonType | — | enum"" | "default" | "text" | "primary" | "success" | "danger" | "warning" | "info"完整类型:"" | "default" | "text" | "primary" | "success" | "danger" | "warning" | "info" | — |
cancelButtonType | — | enum"" | "default" | "text" | "primary" | "success" | "danger" | "warning" | "info"完整类型:"" | "default" | "text" | "primary" | "success" | "danger" | "warning" | "info" | — |
confirmButtonLoading | — | boolean | — |
cancelButtonLoading | — | boolean | — |
confirmButtonLoadingIcon | — | string | Component | — |
cancelButtonLoadingIcon | — | string | Component | — |
confirmButtonClass | — | string | — |
confirmButtonDisabled | — | boolean | — |
cancelButtonClass | — | string | — |
editorErrorMessage | — | string | — |
beforeClose | — | ((action: AsamMessageBoxAction, instance: AsamMessageBoxState, done: () => void) => void) | null | — |
callback | — | AsamMessageBoxCallback | null | — |
distinguishCancelAndClose | — | boolean | — |
modalFade | — | boolean | — |
modalClass | — | string | — |
validateError | — | boolean | — |
zIndex | — | number | — |
类型 AsamMessageBoxInputValidator
类型 AsamMessageBoxAction
类型 AsamMessageBoxCallback
(arg0: "close" | "confirm" | "cancel", action: AsamMessageBoxAction): any
类型 AsamMessageBoxType
类型 AsamMessageBoxService
| 属性名 | 说明 | 类型 | 默认值 |
|---|---|---|---|
close | 关闭当前消息框。 | AsamMessageBoxActionHandlers["confirm"] | — |
_context | — | AppContext | null | — |
alert | — | AsamMessageBoxShortcut | — |
confirm | — | AsamMessageBoxShortcut | — |
prompt | — | AsamMessageBoxShortcut | — |
install | — | (app: App) => void | — |
(options: AsamMessageBoxOptions, appContext?: AppContext | null | undefined): Promise<AsamMessageBoxData>
类型 AsamMessageBoxShortcut
查看完整调用签名
(message: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => import("vue").VNode) | undefined, options?: AsamMessageBoxOptions | undefined, appContext?: AppContext | null | undefined): Promise<AsamMessageBoxData>
查看完整调用签名
(message: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => import("vue").VNode) | undefined, title: string | AsamMessageBoxOptions | undefined, options?: AsamMessageBoxOptions | undefined, appContext?: AppContext | null | undefined): Promise<AsamMessageBoxData>
类型 AsamMessageBoxActionHandlers
| 属性名 | 说明 | 类型 | 默认值 |
|---|---|---|---|
confirm | — | AsamMessageBoxActionHandlers["confirm"] | — |
cancel | — | AsamMessageBoxActionHandlers["confirm"] | — |
close | — | AsamMessageBoxActionHandlers["confirm"] | — |
用法与契约补充说明 ​
宿主 AppContext 与简写重载 ​
三个快捷方法均支持 (message, options?, appContext?) 和 (message, title, options?, appContext?)。省略 options 时可用 (message, undefined, appContext);省略 title 而保留 options 时用 (message, undefined, options, appContext)。显式 AppContext 使 VNode 内容能读取对应应用的 provide;省略或传 undefined 使用 app.use(AsamMessageBox) 安装时记录的默认上下文。显式 null 直接交给底层服务,不使用 ASAM 安装默认值;宿主另行配置的底层服务默认回退仍保留。
更多参数与事件说明 ​
使用约定 ​
AsamMessageBox(options, appContext?) 或 alert/confirm/prompt(message, titleOrOptions?, optionsOrContext?, appContext?) 返回 Promise。确认 resolve;取消或关闭 reject,distinguishCancelAndClose 可区分 cancel/close。prompt 成功数据包含 value 与 action;必须处理取消分支。beforeClose(action, instance, done) 可异步拦截提交,callback 是回调模式。buttonSize 使用 ASAM large/big/default/small 控件密度,弹层本身不使用这组 size。close 是全局关闭 API,本例仅在自己发起的弹层存活时清理。
组合职责与生命周期 ​
message 函数可接收 AsamMessageBoxActionHandlers 的 confirm/cancel/close,在 VNode 内提供业务按钮,三种动作仍经过 beforeClose 并驱动同一个 Promise。distinguishCancelAndClose=true 时分别拒绝 cancel 和 close;confirm 解析确认结果,prompt 返回 action/value。beforeClose 使用 done 完成异步确认,不调用则保持打开;callback 是回调模式。inputValidator/inputPattern/inputErrorMessage 负责输入校验。close 为全局清理,原生语义不保证结算所有存活 Promise,因此不能用它替代业务 cancel,也不要在共存示例卸载时无条件调用。
关联组件
参数与事件补充说明
保留 Promise 操作、输入提示值、回调及 beforeClose 事务状态。
参数与事件说明
close
必填:是;声明来源:上游声明。
close 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(): void
_context
必填:是;声明来源:上游声明。
_context 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
_context.app:App<any>— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
_context.config:AppConfig— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
_context.mixins:ComponentOptions<{}, any, any, any, any, any, any, any, string, {}, {}, string, {}, {}, {}, string, ComponentProvideOptions>[]— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
_context.components:Record<string, Component<any, any, any, ComputedOptions, MethodOptions, {}, any>>— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
_context.directives:Record<string, Directive<any, any, string, any>>— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
_context.provides:Record<string | symbol, any>— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
alert
必填:是;声明来源:ASAM 声明。
alert 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(message: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => import("vue").VNode) | undefined, options?: AsamMessageBoxOptions | undefined, appContext?: AppContext | null | undefined): Promise<AsamMessageBoxData>
事件参数:(message: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => import("vue").VNode) | undefined, title: string | AsamMessageBoxOptions | undefined, options?: AsamMessageBoxOptions | undefined, appContext?: AppContext | null | undefined): Promise<AsamMessageBoxData>
confirm
必填:是;声明来源:ASAM 声明。
confirm 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(message: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => import("vue").VNode) | undefined, options?: AsamMessageBoxOptions | undefined, appContext?: AppContext | null | undefined): Promise<AsamMessageBoxData>
事件参数:(message: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => import("vue").VNode) | undefined, title: string | AsamMessageBoxOptions | undefined, options?: AsamMessageBoxOptions | undefined, appContext?: AppContext | null | undefined): Promise<AsamMessageBoxData>
prompt
必填:是;声明来源:ASAM 声明。
prompt 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(message: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => import("vue").VNode) | undefined, options?: AsamMessageBoxOptions | undefined, appContext?: AppContext | null | undefined): Promise<AsamMessageBoxData>
事件参数:(message: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => import("vue").VNode) | undefined, title: string | AsamMessageBoxOptions | undefined, options?: AsamMessageBoxOptions | undefined, appContext?: AppContext | null | undefined): Promise<AsamMessageBoxData>
install
必填:是;声明来源:ASAM 声明。
install 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(app: App<any>): void
AsamMessageBox 公开类型视图
import type { AppContext, App, AppConfig, ComponentOptions, ComponentProvideOptions, Component, ComputedOptions, MethodOptions, Directive } from 'vue';
import type { AsamMessageBoxActionHandlers, AsamMessageBoxService, AsamMessageBoxShortcut, AsamMessageBoxOptions, AsamMessageBoxData } from '@asam-ui/ui';
import { AsamMessageBox } from '@asam-ui/ui';
type PublicMember<T, K extends PropertyKey> = T extends unknown ? K extends keyof T ? T[K] : never : never;
// AsamMessageBox
type PublicContract = {
(options: AsamMessageBoxOptions, appContext?: AppContext | null | undefined): Promise<AsamMessageBoxData>;
"close": AsamMessageBoxActionHandlers["confirm"];
"_context": AppContext | null;
"alert": AsamMessageBoxShortcut;
"confirm": AsamMessageBoxShortcut;
"prompt": AsamMessageBoxShortcut;
"install": (app: App) => void;
};
参数与事件说明
appendTo
必填:否;声明来源:上游声明。
appendTo 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
嵌套展开边界:大型实例类型;完整类型见公开类型视图。
默认值与来源
未知 / 未声明固定上游文档默认:未声明(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
title
必填:否;声明来源:上游声明。
title 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
嵌套展开边界:大型实例类型;完整类型见公开类型视图。
默认值与来源
undefined(源码表达式;上游声明)固定上游文档默认:''(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
center
必填:否;声明来源:上游声明。
center 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
默认值与来源
false(源码表达式;上游声明)固定上游文档默认:false(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
type
必填:否;声明来源:上游声明。
type 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:"" / "primary" / "success" / "warning" / "info" / "error"
默认值与来源
""(源码表达式;上游声明)固定上游文档默认:''(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
icon
必填:否;声明来源:上游声明。
icon 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(props: any, ctx: Parameters<Extract<NonNullable<string | Component | undefined>, (...args: never[]) => unknown>>[1]): any
icon.__isFragment:undefined— 依赖声明icon.__isTeleport:undefined— 依赖声明icon.__isSuspense:undefined— 依赖声明
默认值与来源
""(源码表达式;上游声明)固定上游文档默认:''(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
closeOnPressEscape
必填:否;声明来源:上游声明。
closeOnPressEscape 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
默认值与来源
true(源码表达式;上游声明)固定上游文档默认:true (false when called with alert)(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
draggable
必填:否;声明来源:上游声明。
draggable 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
默认值与来源
false(源码表达式;上游声明)固定上游文档默认:false(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
message
必填:否;声明来源:上游声明。
message 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(params: AsamMessageBoxActionHandlers): VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>
message.type:VNodeTypes— 依赖声明事件参数:
(props: any, ctx: Parameters<Extract<NonNullable<PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "type">>, (...args: never[]) => unknown>>[1]): any嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.props:(VNodeProps & { [key: string]: any; }) | null— 依赖声明message.key:PropertyKey | null— 依赖声明message.ref:PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "ref">— 依赖声明message.ref.i:ComponentInternalInstance— 依赖声明组件实例。
嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.ref.r:VNodeRef— 依赖声明实际 ref。
事件参数:
(ref: Element | ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}, {}, {}, string, ComponentProvideOptions>, {}, {}, "", {}, any> | null, refs: Record<string, any>): void嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.ref.k:string | undefined— 依赖声明setup 中的 ref 键。
message.ref.f:boolean | undefined— 依赖声明refInFor 标记。
枚举:
false/true
message.scopeId:string | null— 依赖声明仅用于 SFC;创建 VNode 时由 currentScopeId 赋值,与 currentRenderingInstance 配合使用。
message.children:VNodeNormalizedChildren— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.component:ComponentInternalInstance | null— 依赖声明message.component.uid:number— 依赖声明message.component.type:ConcreteComponent<{}, any, any, ComputedOptions, MethodOptions, {}, any>— 依赖声明事件参数:
(props: {}, ctx: Parameters<Extract<NonNullable<PublicMember<NonNullable<PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "component">>, "type">>, (...args: never[]) => unknown>>[1]): any嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.component.parent:ComponentInternalInstance | null— 依赖声明嵌套展开边界:递归引用;完整类型见公开类型视图。
message.component.root:ComponentInternalInstance— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.component.appContext:AppContext— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.component.vnode:VNode<RendererNode, RendererElement, { [key: string]: any; }>— 依赖声明父虚拟 DOM 中代表当前组件的 VNode。
嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.component.subTree:VNode<RendererNode, RendererElement, { [key: string]: any; }>— 依赖声明当前组件自身虚拟 DOM 树的根 VNode。
嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.component.effect:ReactiveEffect<any>— 依赖声明渲染副作用实例。
嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.component.update:() => void— 依赖声明强制更新渲染副作用。
事件参数:
(): void嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.component.job:PublicMember<NonNullable<PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "component">>, "job">— 依赖声明交给调度器的渲染任务,会检查是否需要更新。
嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.component.proxy:ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}, {}, {}, string, ComponentProvideOptions>, {}, {}, "", {}, any> | null— 依赖声明message.component.exposed:Record<string, any> | null— 依赖声明message.component.exposeProxy:Record<string, any> | null— 依赖声明message.component.data:PublicMember<NonNullable<PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "component">>, "data">— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.component.props:PublicMember<NonNullable<PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "component">>, "props">— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.component.attrs:PublicMember<NonNullable<PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "component">>, "attrs">— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.component.slots:PublicMember<NonNullable<PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "component">>, "slots">— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.component.refs:PublicMember<NonNullable<PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "component">>, "refs">— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.component.emit:(event: string, ...args: any[]) => void— 依赖声明事件参数:
(event: string, ...args: any[]): void嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.component.isMounted:boolean— 依赖声明枚举:
false/truemessage.component.isUnmounted:boolean— 依赖声明枚举:
false/truemessage.component.isDeactivated:boolean— 依赖声明枚举:
false/true
message.dirs:DirectiveBinding<any, string, any>[] | null— 依赖声明message.transition:TransitionHooks<RendererElement> | null— 依赖声明message.transition.mode:"default" | "in-out" | "out-in" | undefined— 依赖声明枚举:
"default"/"in-out"/"out-in"message.transition.persisted:boolean— 依赖声明枚举:
false/truemessage.transition.beforeEnter:(el: RendererElement) => void— 依赖声明事件参数:
(el: RendererElement): void嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.transition.enter:(el: RendererElement) => void— 依赖声明事件参数:
(el: RendererElement): void嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.transition.leave:(el: RendererElement, remove: () => void) => void— 依赖声明事件参数:
(el: RendererElement, remove: () => void): void嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.transition.clone:(vnode: VNode) => TransitionHooks<RendererElement>— 依赖声明事件参数:
(vnode: VNode<RendererNode, RendererElement, { [key: string]: any; }>): TransitionHooks<RendererElement>嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.transition.afterLeave:(() => void) | undefined— 依赖声明事件参数:
(): voidmessage.transition.delayLeave:((el: RendererElement, earlyRemove: () => void, delayedLeave: () => void) => void) | undefined— 依赖声明事件参数:
(el: RendererElement, earlyRemove: () => void, delayedLeave: () => void): voidmessage.transition.delayedLeave:(() => void) | undefined— 依赖声明事件参数:
(): void
message.el:RendererNode | null— 依赖声明message.placeholder:RendererNode | null— 依赖声明message.anchor:RendererNode | null— 依赖声明message.target:RendererElement | null— 依赖声明message.targetStart:RendererNode | null— 依赖声明message.targetAnchor:RendererNode | null— 依赖声明message.suspense:SuspenseBoundary | null— 依赖声明message.suspense.vnode:VNode<RendererNode, RendererElement, SuspenseProps>— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.parent:SuspenseBoundary | null— 依赖声明嵌套展开边界:递归引用;完整类型见公开类型视图。
message.suspense.parentComponent:ComponentInternalInstance | null— 依赖声明message.suspense.parentComponent.uid:number— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.parentComponent.type:ConcreteComponent<{}, any, any, ComputedOptions, MethodOptions, {}, any>— 依赖声明事件参数:
(props: {}, ctx: Parameters<Extract<NonNullable<PublicMember<NonNullable<PublicMember<NonNullable<PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "suspense">>, "parentComponent">>, "type">>, (...args: never[]) => unknown>>[1]): any嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.parentComponent.parent:ComponentInternalInstance | null— 依赖声明嵌套展开边界:递归引用;完整类型见公开类型视图。
message.suspense.parentComponent.root:ComponentInternalInstance— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.parentComponent.appContext:AppContext— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.parentComponent.vnode:VNode<RendererNode, RendererElement, { [key: string]: any; }>— 依赖声明父虚拟 DOM 中代表当前组件的 VNode。
嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.parentComponent.subTree:VNode<RendererNode, RendererElement, { [key: string]: any; }>— 依赖声明当前组件自身虚拟 DOM 树的根 VNode。
嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.parentComponent.effect:ReactiveEffect<any>— 依赖声明渲染副作用实例。
嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.parentComponent.update:() => void— 依赖声明强制更新渲染副作用。
事件参数:
(): void嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.parentComponent.job:PublicMember<NonNullable<PublicMember<NonNullable<PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "suspense">>, "parentComponent">>, "job">— 依赖声明交给调度器的渲染任务,会检查是否需要更新。
嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.parentComponent.proxy:ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}, {}, {}, string, ComponentProvideOptions>, {}, {}, "", {}, any> | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.parentComponent.exposed:Record<string, any> | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.parentComponent.exposeProxy:Record<string, any> | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.parentComponent.data:PublicMember<NonNullable<PublicMember<NonNullable<PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "suspense">>, "parentComponent">>, "data">— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.parentComponent.props:PublicMember<NonNullable<PublicMember<NonNullable<PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "suspense">>, "parentComponent">>, "props">— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.parentComponent.attrs:PublicMember<NonNullable<PublicMember<NonNullable<PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "suspense">>, "parentComponent">>, "attrs">— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.parentComponent.slots:PublicMember<NonNullable<PublicMember<NonNullable<PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "suspense">>, "parentComponent">>, "slots">— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.parentComponent.refs:PublicMember<NonNullable<PublicMember<NonNullable<PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "suspense">>, "parentComponent">>, "refs">— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.parentComponent.emit:(event: string, ...args: any[]) => void— 依赖声明事件参数:
(event: string, ...args: any[]): void嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.parentComponent.isMounted:boolean— 依赖声明枚举:
false/true嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.parentComponent.isUnmounted:boolean— 依赖声明枚举:
false/true嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.parentComponent.isDeactivated:boolean— 依赖声明枚举:
false/true嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.namespace:ElementNamespace— 依赖声明枚举:
"svg"/"mathml"嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.container:RendererElement— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.hiddenContainer:RendererElement— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.activeBranch:VNode<RendererNode, RendererElement, { [key: string]: any; }> | null— 依赖声明message.suspense.activeBranch.type:VNodeTypes— 依赖声明事件参数:
(props: any, ctx: Parameters<Extract<NonNullable<PublicMember<NonNullable<PublicMember<NonNullable<PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "suspense">>, "activeBranch">>, "type">>, (...args: never[]) => unknown>>[1]): any嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.activeBranch.props:(VNodeProps & { [key: string]: any; }) | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.activeBranch.key:PropertyKey | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.activeBranch.ref:PublicMember<NonNullable<PublicMember<NonNullable<PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "suspense">>, "activeBranch">>, "ref">— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.activeBranch.scopeId:string | null— 依赖声明仅用于 SFC;创建 VNode 时由 currentScopeId 赋值,与 currentRenderingInstance 配合使用。
嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.activeBranch.children:VNodeNormalizedChildren— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.activeBranch.component:ComponentInternalInstance | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.activeBranch.dirs:DirectiveBinding<any, string, any>[] | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.activeBranch.transition:TransitionHooks<RendererElement> | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.activeBranch.el:RendererNode | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.activeBranch.placeholder:RendererNode | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.activeBranch.anchor:RendererNode | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.activeBranch.target:RendererElement | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.activeBranch.targetStart:RendererNode | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.activeBranch.targetAnchor:RendererNode | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.activeBranch.suspense:SuspenseBoundary | null— 依赖声明嵌套展开边界:递归引用;完整类型见公开类型视图。
message.suspense.activeBranch.shapeFlag:number— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.activeBranch.patchFlag:number— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.activeBranch.appContext:AppContext | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.isFallbackMountPending:boolean— 依赖声明枚举:
false/truemessage.suspense.pendingBranch:VNode<RendererNode, RendererElement, { [key: string]: any; }> | null— 依赖声明message.suspense.pendingBranch.type:VNodeTypes— 依赖声明事件参数:
(props: any, ctx: Parameters<Extract<NonNullable<PublicMember<NonNullable<PublicMember<NonNullable<PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "suspense">>, "pendingBranch">>, "type">>, (...args: never[]) => unknown>>[1]): any嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.pendingBranch.props:(VNodeProps & { [key: string]: any; }) | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.pendingBranch.key:PropertyKey | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.pendingBranch.ref:PublicMember<NonNullable<PublicMember<NonNullable<PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "suspense">>, "pendingBranch">>, "ref">— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.pendingBranch.scopeId:string | null— 依赖声明仅用于 SFC;创建 VNode 时由 currentScopeId 赋值,与 currentRenderingInstance 配合使用。
嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.pendingBranch.children:VNodeNormalizedChildren— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.pendingBranch.component:ComponentInternalInstance | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.pendingBranch.dirs:DirectiveBinding<any, string, any>[] | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.pendingBranch.transition:TransitionHooks<RendererElement> | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.pendingBranch.el:RendererNode | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.pendingBranch.placeholder:RendererNode | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.pendingBranch.anchor:RendererNode | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.pendingBranch.target:RendererElement | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.pendingBranch.targetStart:RendererNode | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.pendingBranch.targetAnchor:RendererNode | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.pendingBranch.suspense:SuspenseBoundary | null— 依赖声明嵌套展开边界:递归引用;完整类型见公开类型视图。
message.suspense.pendingBranch.shapeFlag:number— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.pendingBranch.patchFlag:number— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.pendingBranch.appContext:AppContext | null— 依赖声明嵌套展开边界:深度上限;完整类型见公开类型视图。
message.suspense.deps:number— 依赖声明message.suspense.pendingId:number— 依赖声明message.suspense.timeout:number— 依赖声明message.suspense.isInFallback:boolean— 依赖声明枚举:
false/truemessage.suspense.isHydrating:boolean— 依赖声明枚举:
false/truemessage.suspense.isUnmounted:boolean— 依赖声明枚举:
false/truemessage.suspense.effects:Function[]— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.resolve:(force?: boolean, sync?: boolean) => void— 依赖声明事件参数:
(force?: boolean | undefined, sync?: boolean | undefined): void嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.fallback:(fallbackVNode: VNode) => void— 依赖声明事件参数:
(fallbackVNode: VNode<RendererNode, RendererElement, { [key: string]: any; }>): void嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.move:PublicMember<NonNullable<PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "suspense">>, "move">— 依赖声明事件参数:
(container: RendererElement, anchor: RendererNode | null, type: Parameters<Extract<NonNullable<PublicMember<NonNullable<PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "suspense">>, "move">>, (...args: never[]) => unknown>>[2]): void嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.next:() => RendererNode | null— 依赖声明事件参数:
(): RendererNode | null嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.registerDep:PublicMember<NonNullable<PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "suspense">>, "registerDep">— 依赖声明事件参数:
(instance: ComponentInternalInstance, setupRenderEffect: Parameters<Extract<NonNullable<PublicMember<NonNullable<PublicMember<NonNullable<string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined>, "suspense">>, "registerDep">>, (...args: never[]) => unknown>>[1], optimized: boolean): void嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.suspense.unmount:(parentSuspense: SuspenseBoundary | null, doRemove?: boolean) => void— 依赖声明事件参数:
(parentSuspense: SuspenseBoundary | null, doRemove?: boolean | undefined): void嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.shapeFlag:number— 依赖声明message.patchFlag:number— 依赖声明message.appContext:AppContext | null— 依赖声明message.appContext.app:App<any>— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.appContext.config:AppConfig— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.appContext.mixins:ComponentOptions<{}, any, any, any, any, any, any, any, string, {}, {}, string, {}, {}, {}, string, ComponentProvideOptions>[]— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.appContext.components:Record<string, Component<any, any, any, ComputedOptions, MethodOptions, {}, any>>— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.appContext.directives:Record<string, Directive<any, any, string, any>>— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
message.appContext.provides:Record<string | symbol, any>— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
默认值与来源
""(源码表达式;上游声明)固定上游文档默认:未声明(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
beforeClose
必填:否;声明来源:上游声明。
beforeClose 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(action: AsamMessageBoxAction, instance: AsamMessageBoxState, done: () => void): void
默认值与来源
null(源码表达式;上游声明)固定上游文档默认:null(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
closeOnClickModal
必填:否;声明来源:上游声明。
closeOnClickModal 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
默认值与来源
true(源码表达式;上游声明)固定上游文档默认:true (false when called with alert)(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
lockScroll
必填:否;声明来源:上游声明。
lockScroll 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
默认值与来源
true(源码表达式;上游声明)固定上游文档默认:true(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
modal
必填:否;声明来源:上游声明。
modal 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
默认值与来源
true(源码表达式;上游声明)固定上游文档默认:true(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
modalClass
必填:否;声明来源:上游声明。
默认值与来源
""(源码表达式;上游声明)固定上游文档默认:未声明(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
closeIcon
必填:否;声明来源:上游声明。
closeIcon 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(props: any, ctx: Parameters<Extract<NonNullable<string | Component | undefined>, (...args: never[]) => unknown>>[1]): any
closeIcon.__isFragment:undefined— 依赖声明closeIcon.__isTeleport:undefined— 依赖声明closeIcon.__isSuspense:undefined— 依赖声明
默认值与来源
""(源码表达式;上游声明)固定上游文档默认:''(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
overflow
必填:否;声明来源:上游声明。
overflow 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
默认值与来源
false(源码表达式;上游声明)固定上游文档默认:false(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
showClose
必填:否;声明来源:上游声明。
showClose 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
默认值与来源
true(源码表达式;上游声明)固定上游文档默认:true(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
customClass
必填:否;声明来源:上游声明。
默认值与来源
"asam-message-box"(已安装运行时;ASAM 声明)固定上游文档默认:''(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
dangerouslyUseHTMLString
必填:否;声明来源:上游声明。
dangerouslyUseHTMLString 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
默认值与来源
false(源码表达式;上游声明)固定上游文档默认:false(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
autofocus
必填:否;声明来源:上游声明。
autofocus 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
默认值与来源
true(源码表达式;上游声明)固定上游文档默认:true(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
customStyle
必填:否;声明来源:上游声明。
customStyle 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
嵌套展开边界:大型实例类型;完整类型见公开类型视图。
默认值与来源
{}(源码表达式;上游声明)固定上游文档默认:{}(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
callback
必填:否;声明来源:上游声明。
callback 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(value: string, action: AsamMessageBoxAction): any
事件参数:(action: AsamMessageBoxAction): any
默认值与来源
null(源码表达式;上游声明)固定上游文档默认:null(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
cancelButtonText
必填:否;声明来源:上游声明。
默认值与来源
""(源码表达式;上游声明)固定上游文档默认:Cancel(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
confirmButtonText
必填:否;声明来源:上游声明。
默认值与来源
""(源码表达式;上游声明)固定上游文档默认:OK(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
cancelButtonType
必填:否;声明来源:上游声明。
cancelButtonType 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:"" / "default" / "text" / "primary" / "success" / "danger" / "warning" / "info"
默认值与来源
""(源码表达式;上游声明)固定上游文档默认:未声明(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
confirmButtonType
必填:否;声明来源:上游声明。
confirmButtonType 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:"" / "default" / "text" / "primary" / "success" / "danger" / "warning" / "info"
默认值与来源
"primary"(源码表达式;上游声明)固定上游文档默认:primary(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
cancelButtonLoadingIcon
必填:否;声明来源:上游声明。
cancelButtonLoadingIcon 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(props: any, ctx: Parameters<Extract<NonNullable<string | Component | undefined>, (...args: never[]) => unknown>>[1]): any
cancelButtonLoadingIcon.__isFragment:undefined— 依赖声明cancelButtonLoadingIcon.__isTeleport:undefined— 依赖声明cancelButtonLoadingIcon.__isSuspense:undefined— 依赖声明
默认值与来源
markRaw(Loading)(源码表达式;上游声明)固定上游文档默认:Loading(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
confirmButtonLoadingIcon
必填:否;声明来源:上游声明。
confirmButtonLoadingIcon 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(props: any, ctx: Parameters<Extract<NonNullable<string | Component | undefined>, (...args: never[]) => unknown>>[1]): any
confirmButtonLoadingIcon.__isFragment:undefined— 依赖声明confirmButtonLoadingIcon.__isTeleport:undefined— 依赖声明confirmButtonLoadingIcon.__isSuspense:undefined— 依赖声明
默认值与来源
markRaw(Loading)(源码表达式;上游声明)固定上游文档默认:Loading(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
cancelButtonClass
必填:否;声明来源:上游声明。
默认值与来源
""(源码表达式;上游声明)固定上游文档默认:''(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
confirmButtonClass
必填:否;声明来源:上游声明。
默认值与来源
""(源码表达式;上游声明)固定上游文档默认:''(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
boxType
必填:否;声明来源:上游声明。
boxType 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:"" / "alert" / "confirm" / "prompt"
默认值与来源
""(源码表达式;上游声明)distinguishCancelAndClose
必填:否;声明来源:上游声明。
distinguishCancelAndClose 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
默认值与来源
false(源码表达式;上游声明)固定上游文档默认:false(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
showCancelButton
必填:否;声明来源:上游声明。
showCancelButton 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
默认值与来源
false(源码表达式;上游声明)固定上游文档默认:false (true when called with confirm and prompt)(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
showConfirmButton
必填:否;声明来源:上游声明。
showConfirmButton 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
默认值与来源
true(源码表达式;上游声明)固定上游文档默认:true(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
roundButton
必填:否;声明来源:上游声明。
roundButton 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
默认值与来源
false(源码表达式;上游声明)固定上游文档默认:false(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
closeOnHashChange
必填:否;声明来源:上游声明。
closeOnHashChange 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
默认值与来源
true(源码表达式;上游声明)固定上游文档默认:true(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
showInput
必填:否;声明来源:上游声明。
showInput 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
默认值与来源
false(源码表达式;上游声明)固定上游文档默认:false (true when called with prompt)(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
inputPlaceholder
必填:否;声明来源:上游声明。
默认值与来源
""(源码表达式;上游声明)固定上游文档默认:''(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
inputValue
必填:否;声明来源:上游声明。
默认值与来源
""(源码表达式;上游声明)固定上游文档默认:''(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
inputPattern
必填:否;声明来源:上游声明。
inputPattern 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
inputPattern.exec:(string: string) => RegExpExecArray | null— 依赖声明使用正则表达式检索字符串,返回匹配结果数组。
事件参数:
(string: string): RegExpExecArray | null嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
inputPattern.test:(string: string) => boolean— 依赖声明返回布尔值,表示被检索字符串是否包含匹配模式。
事件参数:
(string: string): boolean嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
inputPattern.source:string— 依赖声明返回正则表达式模式文本的只读副本;regExp 参数为正则对象,可以使用变量或字面量。
inputPattern.global:boolean— 依赖声明返回正则表达式 global(g)标志的只读布尔状态,默认为 false。
枚举:
false/trueinputPattern.ignoreCase:boolean— 依赖声明返回正则表达式 ignoreCase(i)标志的只读布尔状态,默认为 false。
枚举:
false/trueinputPattern.multiline:boolean— 依赖声明返回正则表达式 multiline(m)标志的只读布尔状态,默认为 false。
枚举:
false/trueinputPattern.lastIndex:number— 依赖声明inputPattern.compile:(pattern: string, flags?: string) => RegExp— 依赖声明事件参数:
(pattern: string, flags?: string | undefined): RegExp嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
inputPattern.flags:string— 依赖声明返回正则表达式标志的只读字符串,按 g(全局)、i(忽略大小写)、m(多行)、u(Unicode)、y(粘连)顺序排列;未设置标志时为空字符串。
inputPattern.sticky:boolean— 依赖声明返回正则表达式 sticky(y)标志的只读布尔状态,默认为 false。
枚举:
false/trueinputPattern.unicode:boolean— 依赖声明返回正则表达式 Unicode(u)标志的只读布尔状态,默认为 false。
枚举:
false/trueinputPattern.dotAll:boolean— 依赖声明返回正则表达式 dotAll(s)标志的只读布尔状态,默认为 false。
枚举:
false/trueinputPattern.hasIndices:boolean— 依赖声明返回正则表达式 hasIndices(d)标志的只读布尔状态,默认为 false。
枚举:
false/trueinputPattern.__@match@8899:(string: string) => RegExpMatchArray | null— 依赖声明使用此正则表达式匹配字符串,并返回包含匹配结果的数组。
事件参数:
(string: string): RegExpMatchArray | null嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
inputPattern.__@replace@8901:{ (string: string, replaceValue: string): string; (string: string, replacer: (substring: string, ...args: any[]) => string): string; }— 依赖声明使用此正则表达式替换字符串中的文本。
事件参数:
(string: string, replaceValue: string): string事件参数:
(string: string, replacer: (substring: string, ...args: any[]) => string): string嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
inputPattern.__@search@8904:(string: string) => number— 依赖声明返回使用此正则表达式检索时,首个匹配子串的起始位置。
事件参数:
(string: string): number嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
inputPattern.__@split@8906:(string: string, limit?: number) => string[]— 依赖声明使用与此正则匹配的内容分隔原始字符串,返回子串数组;若含捕获组,每次匹配的捕获结果也会插入数组,包括 undefined 结果。
事件参数:
(string: string, limit?: number | undefined): string[]嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
inputPattern.__@matchAll@8908:(str: string) => RegExpStringIterator<RegExpExecArray>— 依赖声明使用此正则表达式匹配字符串,并返回包含匹配结果的可迭代对象。
事件参数:
(str: string): RegExpStringIterator<RegExpExecArray>嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
默认值与来源
null(源码表达式;上游声明)固定上游文档默认:null(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
inputType
必填:否;声明来源:上游声明。
inputType 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:"number" / "text" / "email" / "search" / "tel" / "url" / "textarea" / "password"
默认值与来源
"text"(源码表达式;上游声明)固定上游文档默认:text(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
inputValidator
必填:否;声明来源:上游声明。
inputValidator 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(value: string): string | boolean
默认值与来源
undefined(源码表达式;上游声明)固定上游文档默认:undefined(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
inputErrorMessage
必填:否;声明来源:上游声明。
默认值与来源
""(源码表达式;上游声明)固定上游文档默认:Illegal input(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)
buttonSize
必填:否;声明来源:ASAM 声明。
buttonSize 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:"large" / "big" / "default" / "small"
AsamMessageBoxOptions 公开类型视图
import type { Component, Attrs, VNode, VNodeTypes, VNodeProps, ComponentInternalInstance, VNodeRef, ComponentPublicInstance, ComponentOptionsBase, ComponentProvideOptions, VNodeNormalizedChildren, ConcreteComponent, ComputedOptions, MethodOptions, AppContext, RendererNode, RendererElement, ReactiveEffect, DirectiveBinding, TransitionHooks, SuspenseBoundary, SuspenseProps, ElementNamespace, App, AppConfig, ComponentOptions, Directive } from 'vue';
import type { AsamMessageBoxOptions, AsamMessageBoxState, AsamMessageBoxActionHandlers, AsamMessageBoxData, AsamMessageBoxService, AsamMessageBoxAction, AsamMessageBoxCallback, AsamMessageBoxType, AsamMessageBoxInputValidator, AsamControlSize } from '@asam-ui/ui';
type PublicMember<T, K extends PropertyKey> = T extends unknown ? K extends keyof T ? T[K] : never : never;
// AsamMessageBoxOptions
type PublicContract = {
"appendTo"?: string | HTMLElement | undefined;
"title"?: (AsamMessageBoxOptions)["title"];
"center"?: boolean | undefined;
"type"?: AsamMessageBoxState["type"] | undefined;
"icon"?: string | Component | undefined;
"closeOnPressEscape"?: boolean | undefined;
"draggable"?: boolean | undefined;
"message"?: string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => VNode) | undefined;
"beforeClose"?: ((action: AsamMessageBoxAction, instance: AsamMessageBoxState, done: () => void) => void) | undefined;
"closeOnClickModal"?: boolean | undefined;
"lockScroll"?: boolean | undefined;
"modal"?: boolean | undefined;
"modalClass"?: string | undefined;
"closeIcon"?: string | Component | undefined;
"overflow"?: boolean | undefined;
"showClose"?: boolean | undefined;
"customClass"?: string | undefined;
"dangerouslyUseHTMLString"?: boolean | undefined;
"autofocus"?: boolean | undefined;
"customStyle"?: AsamMessageBoxState["customStyle"] | undefined;
"callback"?: AsamMessageBoxCallback | undefined;
"cancelButtonText"?: string | undefined;
"confirmButtonText"?: string | undefined;
"cancelButtonType"?: "" | "default" | "text" | "primary" | "success" | "danger" | "warning" | "info" | undefined;
"confirmButtonType"?: "" | "default" | "text" | "primary" | "success" | "danger" | "warning" | "info" | undefined;
"cancelButtonLoadingIcon"?: string | Component | undefined;
"confirmButtonLoadingIcon"?: string | Component | undefined;
"cancelButtonClass"?: string | undefined;
"confirmButtonClass"?: string | undefined;
"boxType"?: AsamMessageBoxType | undefined;
"distinguishCancelAndClose"?: boolean | undefined;
"showCancelButton"?: boolean | undefined;
"showConfirmButton"?: boolean | undefined;
"roundButton"?: boolean | undefined;
"closeOnHashChange"?: boolean | undefined;
"showInput"?: boolean | undefined;
"inputPlaceholder"?: string | undefined;
"inputValue"?: string | undefined;
"inputPattern"?: RegExp | undefined;
"inputType"?: AsamMessageBoxState["inputType"] | undefined;
"inputValidator"?: AsamMessageBoxInputValidator;
"inputErrorMessage"?: string | undefined;
"buttonSize"?: AsamControlSize | undefined;
};
组合契约按分支生效;请同时查看公开类型。
AsamMessageBoxData 公开类型视图
import type { AsamMessageBoxData } from '@asam-ui/ui';
// AsamMessageBoxData
type PublicContract = AsamMessageBoxData;
参数与事件说明
value
必填:是;声明来源:上游声明。
action
必填:是;声明来源:上游声明。
action 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:"close" / "confirm" / "cancel"
AsamMessageBoxInputData 公开类型视图
import type { AsamMessageBoxInputData, AsamMessageBoxData, AsamMessageBoxAction } from '@asam-ui/ui';
// AsamMessageBoxInputData
type PublicContract = {
"value": string;
"action": AsamMessageBoxAction;
};
参数与事件说明
autofocus
必填:是;声明来源:上游声明。
autofocus 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
title
必填:是;声明来源:上游声明。
message
必填:是;声明来源:上游声明。
type
必填:是;声明来源:上游声明。
type 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:"" / "primary" / "success" / "warning" / "info" / "error"
icon
必填:是;声明来源:上游声明。
icon 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(props: any, ctx: Parameters<Extract<NonNullable<string | Component>, (...args: never[]) => unknown>>[1]): any
icon.__isFragment:undefined— 依赖声明icon.__isTeleport:undefined— 依赖声明icon.__isSuspense:undefined— 依赖声明
closeIcon
必填:是;声明来源:上游声明。
closeIcon 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(props: any, ctx: Parameters<Extract<NonNullable<string | Component>, (...args: never[]) => unknown>>[1]): any
closeIcon.__isFragment:undefined— 依赖声明closeIcon.__isTeleport:undefined— 依赖声明closeIcon.__isSuspense:undefined— 依赖声明
customClass
必填:是;声明来源:上游声明。
customStyle
必填:是;声明来源:上游声明。
customStyle 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
嵌套展开边界:大型实例类型;完整类型见公开类型视图。
showInput
必填:是;声明来源:上游声明。
showInput 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
inputValue
必填:是;声明来源:上游声明。
inputPlaceholder
必填:是;声明来源:上游声明。
inputType
必填:是;声明来源:上游声明。
inputType 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:"number" / "text" / "email" / "search" / "tel" / "url" / "textarea" / "password"
inputPattern
必填:是;声明来源:上游声明。
inputPattern 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
inputPattern.exec:(string: string) => RegExpExecArray | null— 依赖声明使用正则表达式检索字符串,返回匹配结果数组。
事件参数:
(string: string): RegExpExecArray | null嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
inputPattern.test:(string: string) => boolean— 依赖声明返回布尔值,表示被检索字符串是否包含匹配模式。
事件参数:
(string: string): boolean嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
inputPattern.source:string— 依赖声明返回正则表达式模式文本的只读副本;regExp 参数为正则对象,可以使用变量或字面量。
inputPattern.global:boolean— 依赖声明返回正则表达式 global(g)标志的只读布尔状态,默认为 false。
枚举:
false/trueinputPattern.ignoreCase:boolean— 依赖声明返回正则表达式 ignoreCase(i)标志的只读布尔状态,默认为 false。
枚举:
false/trueinputPattern.multiline:boolean— 依赖声明返回正则表达式 multiline(m)标志的只读布尔状态,默认为 false。
枚举:
false/trueinputPattern.lastIndex:number— 依赖声明inputPattern.compile:(pattern: string, flags?: string) => RegExp— 依赖声明事件参数:
(pattern: string, flags?: string | undefined): RegExp嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
inputPattern.flags:string— 依赖声明返回正则表达式标志的只读字符串,按 g(全局)、i(忽略大小写)、m(多行)、u(Unicode)、y(粘连)顺序排列;未设置标志时为空字符串。
inputPattern.sticky:boolean— 依赖声明返回正则表达式 sticky(y)标志的只读布尔状态,默认为 false。
枚举:
false/trueinputPattern.unicode:boolean— 依赖声明返回正则表达式 Unicode(u)标志的只读布尔状态,默认为 false。
枚举:
false/trueinputPattern.dotAll:boolean— 依赖声明返回正则表达式 dotAll(s)标志的只读布尔状态,默认为 false。
枚举:
false/trueinputPattern.hasIndices:boolean— 依赖声明返回正则表达式 hasIndices(d)标志的只读布尔状态,默认为 false。
枚举:
false/trueinputPattern.__@match@8899:(string: string) => RegExpMatchArray | null— 依赖声明使用此正则表达式匹配字符串,并返回包含匹配结果的数组。
事件参数:
(string: string): RegExpMatchArray | null嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
inputPattern.__@replace@8901:{ (string: string, replaceValue: string): string; (string: string, replacer: (substring: string, ...args: any[]) => string): string; }— 依赖声明使用此正则表达式替换字符串中的文本。
事件参数:
(string: string, replaceValue: string): string事件参数:
(string: string, replacer: (substring: string, ...args: any[]) => string): string嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
inputPattern.__@search@8904:(string: string) => number— 依赖声明返回使用此正则表达式检索时,首个匹配子串的起始位置。
事件参数:
(string: string): number嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
inputPattern.__@split@8906:(string: string, limit?: number) => string[]— 依赖声明使用与此正则匹配的内容分隔原始字符串,返回子串数组;若含捕获组,每次匹配的捕获结果也会插入数组,包括 undefined 结果。
事件参数:
(string: string, limit?: number | undefined): string[]嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
inputPattern.__@matchAll@8908:(str: string) => RegExpStringIterator<RegExpExecArray>— 依赖声明使用此正则表达式匹配字符串,并返回包含匹配结果的可迭代对象。
事件参数:
(str: string): RegExpStringIterator<RegExpExecArray>嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
inputValidator
必填:是;声明来源:上游声明。
inputValidator 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(value: string): string | boolean
inputErrorMessage
必填:是;声明来源:上游声明。
showConfirmButton
必填:是;声明来源:上游声明。
showConfirmButton 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
showCancelButton
必填:是;声明来源:上游声明。
showCancelButton 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
action
必填:是;声明来源:上游声明。
action 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:"close" / "confirm" / "cancel"
dangerouslyUseHTMLString
必填:是;声明来源:上游声明。
dangerouslyUseHTMLString 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
confirmButtonText
必填:是;声明来源:上游声明。
cancelButtonText
必填:是;声明来源:上游声明。
confirmButtonType
必填:是;声明来源:上游声明。
confirmButtonType 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:"" / "default" / "text" / "primary" / "success" / "danger" / "warning" / "info"
cancelButtonType
必填:是;声明来源:上游声明。
cancelButtonType 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:"" / "default" / "text" / "primary" / "success" / "danger" / "warning" / "info"
confirmButtonLoading
必填:是;声明来源:上游声明。
confirmButtonLoading 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
cancelButtonLoading
必填:是;声明来源:上游声明。
cancelButtonLoading 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
confirmButtonLoadingIcon
必填:是;声明来源:上游声明。
confirmButtonLoadingIcon 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(props: any, ctx: Parameters<Extract<NonNullable<string | Component>, (...args: never[]) => unknown>>[1]): any
confirmButtonLoadingIcon.__isFragment:undefined— 依赖声明confirmButtonLoadingIcon.__isTeleport:undefined— 依赖声明confirmButtonLoadingIcon.__isSuspense:undefined— 依赖声明
cancelButtonLoadingIcon
必填:是;声明来源:上游声明。
cancelButtonLoadingIcon 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(props: any, ctx: Parameters<Extract<NonNullable<string | Component>, (...args: never[]) => unknown>>[1]): any
cancelButtonLoadingIcon.__isFragment:undefined— 依赖声明cancelButtonLoadingIcon.__isTeleport:undefined— 依赖声明cancelButtonLoadingIcon.__isSuspense:undefined— 依赖声明
confirmButtonClass
必填:是;声明来源:上游声明。
confirmButtonDisabled
必填:是;声明来源:上游声明。
confirmButtonDisabled 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
cancelButtonClass
必填:是;声明来源:上游声明。
editorErrorMessage
必填:是;声明来源:上游声明。
beforeClose
必填:是;声明来源:上游声明。
beforeClose 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(action: AsamMessageBoxAction, instance: AsamMessageBoxState, done: () => void): void
callback
必填:是;声明来源:上游声明。
callback 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(value: string, action: AsamMessageBoxAction): any
事件参数:(action: AsamMessageBoxAction): any
distinguishCancelAndClose
必填:是;声明来源:上游声明。
distinguishCancelAndClose 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
modalFade
必填:是;声明来源:上游声明。
modalFade 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
modalClass
必填:是;声明来源:上游声明。
validateError
必填:是;声明来源:上游声明。
validateError 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
枚举:false / true
zIndex
必填:是;声明来源:上游声明。
AsamMessageBoxState 公开类型视图
import type { Component, Attrs } from 'vue';
import type { AsamMessageBoxState, AsamMessageBoxOptions, AsamMessageBoxData, AsamMessageBoxInputValidator, AsamMessageBoxAction, AsamMessageBoxCallback } from '@asam-ui/ui';
type PublicMember<T, K extends PropertyKey> = T extends unknown ? K extends keyof T ? T[K] : never : never;
// AsamMessageBoxState
type PublicContract = {
"autofocus": boolean;
"title": string | undefined;
"message": string;
"type": AsamMessageBoxState["type"];
"icon": string | Component;
"closeIcon": string | Component;
"customClass": string;
"customStyle": AsamMessageBoxState["customStyle"];
"showInput": boolean;
"inputValue": string;
"inputPlaceholder": string;
"inputType": AsamMessageBoxState["inputType"];
"inputPattern": RegExp | null;
"inputValidator": AsamMessageBoxInputValidator;
"inputErrorMessage": string;
"showConfirmButton": boolean;
"showCancelButton": boolean;
"action": AsamMessageBoxAction;
"dangerouslyUseHTMLString": boolean;
"confirmButtonText": string;
"cancelButtonText": string;
"confirmButtonType": "" | "default" | "text" | "primary" | "success" | "danger" | "warning" | "info";
"cancelButtonType": "" | "default" | "text" | "primary" | "success" | "danger" | "warning" | "info";
"confirmButtonLoading": boolean;
"cancelButtonLoading": boolean;
"confirmButtonLoadingIcon": string | Component;
"cancelButtonLoadingIcon": string | Component;
"confirmButtonClass": string;
"confirmButtonDisabled": boolean;
"cancelButtonClass": string;
"editorErrorMessage": string;
"beforeClose": ((action: AsamMessageBoxAction, instance: AsamMessageBoxState, done: () => void) => void) | null;
"callback": AsamMessageBoxCallback | null;
"distinguishCancelAndClose": boolean;
"modalFade": boolean;
"modalClass": string;
"validateError": boolean;
"zIndex": number;
};
组合契约按分支生效;请同时查看公开类型。
AsamMessageBoxInputValidator 公开类型视图
import type { AsamMessageBoxInputValidator } from '@asam-ui/ui';
// AsamMessageBoxInputValidator
type PublicContract = AsamMessageBoxInputValidator;
组合契约按分支生效;请同时查看公开类型。
AsamMessageBoxAction 公开类型视图
import type { AsamMessageBoxAction } from '@asam-ui/ui';
// AsamMessageBoxAction
type PublicContract = AsamMessageBoxAction;
组合契约按分支生效;请同时查看公开类型。
AsamMessageBoxCallback 公开类型视图
import type { AsamMessageBoxCallback, AsamMessageBoxData, AsamMessageBoxAction } from '@asam-ui/ui';
// AsamMessageBoxCallback
type PublicContract = AsamMessageBoxCallback;
组合契约按分支生效;请同时查看公开类型。
AsamMessageBoxType 公开类型视图
import type { AsamMessageBoxType } from '@asam-ui/ui';
// AsamMessageBoxType
type PublicContract = AsamMessageBoxType;
参数与事件说明
close
必填:是;声明来源:上游声明。
close 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(): void
_context
必填:是;声明来源:上游声明。
_context 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
_context.app:App<any>— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
_context.config:AppConfig— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
_context.mixins:ComponentOptions<{}, any, any, any, any, any, any, any, string, {}, {}, string, {}, {}, {}, string, ComponentProvideOptions>[]— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
_context.components:Record<string, Component<any, any, any, ComputedOptions, MethodOptions, {}, any>>— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
_context.directives:Record<string, Directive<any, any, string, any>>— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
_context.provides:Record<string | symbol, any>— 依赖声明嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。
alert
必填:是;声明来源:ASAM 声明。
alert 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(message: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => import("vue").VNode) | undefined, options?: AsamMessageBoxOptions | undefined, appContext?: AppContext | null | undefined): Promise<AsamMessageBoxData>
事件参数:(message: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => import("vue").VNode) | undefined, title: string | AsamMessageBoxOptions | undefined, options?: AsamMessageBoxOptions | undefined, appContext?: AppContext | null | undefined): Promise<AsamMessageBoxData>
confirm
必填:是;声明来源:ASAM 声明。
confirm 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(message: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => import("vue").VNode) | undefined, options?: AsamMessageBoxOptions | undefined, appContext?: AppContext | null | undefined): Promise<AsamMessageBoxData>
事件参数:(message: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => import("vue").VNode) | undefined, title: string | AsamMessageBoxOptions | undefined, options?: AsamMessageBoxOptions | undefined, appContext?: AppContext | null | undefined): Promise<AsamMessageBoxData>
prompt
必填:是;声明来源:ASAM 声明。
prompt 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(message: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => import("vue").VNode) | undefined, options?: AsamMessageBoxOptions | undefined, appContext?: AppContext | null | undefined): Promise<AsamMessageBoxData>
事件参数:(message: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => import("vue").VNode) | undefined, title: string | AsamMessageBoxOptions | undefined, options?: AsamMessageBoxOptions | undefined, appContext?: AppContext | null | undefined): Promise<AsamMessageBoxData>
install
必填:是;声明来源:ASAM 声明。
install 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(app: App<any>): void
AsamMessageBoxService 公开类型视图
import type { AppContext, App, AppConfig, ComponentOptions, ComponentProvideOptions, Component, ComputedOptions, MethodOptions, Directive } from 'vue';
import type { AsamMessageBoxService, AsamMessageBoxActionHandlers, AsamMessageBoxShortcut, AsamMessageBoxOptions, AsamMessageBoxData } from '@asam-ui/ui';
type PublicMember<T, K extends PropertyKey> = T extends unknown ? K extends keyof T ? T[K] : never : never;
// AsamMessageBoxService
type PublicContract = {
(options: AsamMessageBoxOptions, appContext?: AppContext | null | undefined): Promise<AsamMessageBoxData>;
"close": AsamMessageBoxActionHandlers["confirm"];
"_context": AppContext | null;
"alert": AsamMessageBoxShortcut;
"confirm": AsamMessageBoxShortcut;
"prompt": AsamMessageBoxShortcut;
"install": (app: App) => void;
};
AsamMessageBoxShortcut 公开类型视图
import type { AppContext } from 'vue';
import type { AsamMessageBoxShortcut, AsamMessageBoxOptions, AsamMessageBoxActionHandlers, AsamMessageBoxData } from '@asam-ui/ui';
// AsamMessageBoxShortcut
type PublicContract = {
(message: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => import("vue").VNode) | undefined, options?: AsamMessageBoxOptions | undefined, appContext?: AppContext | null | undefined): Promise<AsamMessageBoxData>;
(message: string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | ((params: AsamMessageBoxActionHandlers) => import("vue").VNode) | undefined, title: string | AsamMessageBoxOptions | undefined, options?: AsamMessageBoxOptions | undefined, appContext?: AppContext | null | undefined): Promise<AsamMessageBoxData>;
};
参数与事件说明
confirm
必填:是;声明来源:上游声明。
confirm 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(): void
cancel
必填:是;声明来源:上游声明。
cancel 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(): void
close
必填:是;声明来源:上游声明。
close 参数与事件数据
下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。
事件参数:(): void
AsamMessageBoxActionHandlers 公开类型视图
import type { AsamMessageBoxActionHandlers } from '@asam-ui/ui';
// AsamMessageBoxActionHandlers
type PublicContract = {
"confirm": AsamMessageBoxActionHandlers["confirm"];
"cancel": AsamMessageBoxActionHandlers["confirm"];
"close": AsamMessageBoxActionHandlers["confirm"];
};