Commit da4bf505 by haojie

添加互动弹窗关闭时初始化对应的数据

parent d80f3fa7
import { defineComponent, nextTick, onMounted, reactive, ref, provide, useSlots } from 'vue';
import { defineComponent, nextTick, onMounted, reactive, ref, provide, useSlots, watch } from 'vue';
import './index.less';
export default defineComponent({
......@@ -23,12 +23,13 @@ export default defineComponent({
provide('currentTab', currentTab);
// 获取tab_panel的props
const getTitles = () => {
const c_titles = use_slots.default!().map(({ props }) => {
const c_titles = use_slots.default!().map(({ props }, index) => {
if (props) {
const { label, name } = props;
return {
label,
name,
index,
};
}
});
......@@ -88,6 +89,18 @@ export default defineComponent({
});
};
watch(
() => props.modelValue,
(v) => {
// 找到对应的下标
let index = titles.value.findIndex((item: any) => item.name == v);
if (index !== -1) {
// 更新tab_bar的位置
onChange(titles.value[index].name, titles.value[index].index);
}
},
);
// 切换tab
const onChange = (name: string, index: number) => {
currentTab.value = name;
......
......@@ -6,6 +6,7 @@
class="c-dialog-default"
:destroyOnClose="destroyOnClose"
:placement="placement"
@close="onClose"
>
<slot></slot>
<div class="header-default">
......@@ -44,7 +45,7 @@ const props = withDefaults(
className: '',
},
);
const emit = defineEmits(['update:modelValue', 'confirm']);
const emit = defineEmits(['update:modelValue', 'confirm', 'close']);
const visible = ref(props.modelValue);
watch(
......@@ -64,6 +65,10 @@ watch(
const onConfirm = () => {
emit('confirm');
};
const onClose = () => {
emit('close');
};
</script>
<style lang="less">
......
<template>
<Dialog v-model="visible" className="reset-interact-dialog" :footer="true" :destroyOnClose="false">
<Dialog v-model="visible" className="reset-interact-dialog" :footer="true" :destroyOnClose="false" @close="onClose">
<template #header>
<template v-if="type == 'add'"> 新增互动内容 </template>
<template v-else> 修改互动内容 </template>
......@@ -249,6 +249,11 @@ const openSoundColor = () => {
}
};
// 弹窗关闭
const onClose = () => {
clearData();
};
// 已选择的内容
const tonesItemChange = (item: any) => {
tonesInfo.value = item;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment