edit
This commit is contained in:
parent
a708eb59b5
commit
d954c88ec5
|
@ -63,7 +63,7 @@
|
||||||
:speed="30"
|
:speed="30"
|
||||||
:charsPerFrame="10"
|
:charsPerFrame="10"
|
||||||
@scroll="handleScroll(index)"
|
@scroll="handleScroll(index)"
|
||||||
@done="handleDone"
|
@done="handleDone(index)"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -185,7 +185,10 @@ const getChildTemplate = () => {
|
||||||
modelList({ model: props.type, type: 2, parentId: curTemplate.id, ex1: curNode.edustage, ex2: curNode.edusubject }).then(res => {
|
modelList({ model: props.type, type: 2, parentId: curTemplate.id, ex1: curNode.edustage, ex2: curNode.edusubject }).then(res => {
|
||||||
childTempList.value = res.rows
|
childTempList.value = res.rows
|
||||||
if (childTempList.value.length) {
|
if (childTempList.value.length) {
|
||||||
childTempList.value.forEach(item => item.answer = '')
|
childTempList.value.forEach(item => {
|
||||||
|
item.answer = '';
|
||||||
|
item.showTypewriter = false
|
||||||
|
})
|
||||||
}
|
}
|
||||||
getTempResult()
|
getTempResult()
|
||||||
}).finally(() => {
|
}).finally(() => {
|
||||||
|
@ -257,7 +260,6 @@ const getModelResult = async (index, item) => {
|
||||||
childTempList.value.forEach(item => {
|
childTempList.value.forEach(item => {
|
||||||
if (item.answer) {
|
if (item.answer) {
|
||||||
item.answer = ''
|
item.answer = ''
|
||||||
item.showTypewriter = true
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
// 设置滚动到第一个位置
|
// 设置滚动到第一个位置
|
||||||
|
@ -265,25 +267,61 @@ const getModelResult = async (index, item) => {
|
||||||
behavior: 'smooth',
|
behavior: 'smooth',
|
||||||
block: 'start',
|
block: 'start',
|
||||||
})
|
})
|
||||||
for (let item of childTempList.value) {
|
|
||||||
try {
|
|
||||||
item.loading = true
|
|
||||||
|
|
||||||
str = str.replace('{模板标题}',item.name)
|
processNext(0)
|
||||||
str = str.replace('{模板内容}',item.prompt)
|
// for (let item of childTempList.value) {
|
||||||
params.prompt = str
|
// try {
|
||||||
params.template = item.prompt
|
// item.loading = true
|
||||||
// 请求数据
|
|
||||||
const data = await requestModelData()
|
|
||||||
|
|
||||||
item.answer = data.answer
|
// str = str.replace('{模板标题}',item.name)
|
||||||
await onSaveTemp(item)
|
// str = str.replace('{模板内容}',item.prompt)
|
||||||
} finally {
|
// params.prompt = str
|
||||||
item.loading = false
|
// params.template = item.prompt
|
||||||
}
|
// // 请求数据
|
||||||
}
|
// const data = await requestModelData()
|
||||||
|
|
||||||
|
// item.answer = data.answer
|
||||||
|
// await onSaveTemp(item)
|
||||||
|
// } finally {
|
||||||
|
// item.loading = false
|
||||||
|
// }
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 打字机效果完成 后继续研读下一个
|
||||||
|
const processNext = async (index) =>{
|
||||||
|
let str = prompt.value
|
||||||
|
// 当前项
|
||||||
|
const item = childTempList.value[index]
|
||||||
|
item.loading = true
|
||||||
|
str = str.replace('{模板标题}',item.name)
|
||||||
|
str = str.replace('{模板内容}',item.prompt)
|
||||||
|
params.prompt = str
|
||||||
|
params.template = item.prompt
|
||||||
|
// 请求数据
|
||||||
|
try {
|
||||||
|
const data = await requestModelData()
|
||||||
|
item.answer = data.answer
|
||||||
|
item.showTypewriter = true
|
||||||
|
childTempList.value[index].answer = data.answer
|
||||||
|
|
||||||
|
// 保存
|
||||||
|
await onSaveTemp(item)
|
||||||
|
} finally {
|
||||||
|
childTempList.value[index].loading = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 打字机完成后触发
|
||||||
|
const handleDone = (index) =>{
|
||||||
|
console.log(index)
|
||||||
|
if(isAgain.value){
|
||||||
|
isAgain.value = false
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
processNext(index + 1)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 设置一个延迟函数 ms: 毫秒
|
// 设置一个延迟函数 ms: 毫秒
|
||||||
|
@ -369,12 +407,7 @@ const scrollToTmp = (index) =>{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 打字机完成后触发
|
|
||||||
const handleDone = () =>{
|
|
||||||
if(isAgain.value){
|
|
||||||
isAgain.value = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 模板切换
|
// 模板切换
|
||||||
const changeTemplate = (val) => {
|
const changeTemplate = (val) => {
|
||||||
|
|
|
@ -32,12 +32,12 @@ const props = defineProps({
|
||||||
},
|
},
|
||||||
showTypewriter: {
|
showTypewriter: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true, // 是否展示打字机效果
|
default: false, // 是否展示打字机效果
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
// 定义 emits
|
// 定义 emits
|
||||||
const emit = defineEmits(['scroll']);
|
const emit = defineEmits(['scroll','done']);
|
||||||
|
|
||||||
// 数据
|
// 数据
|
||||||
const textContainer = ref(null); // 用于绑定 DOM 元素
|
const textContainer = ref(null); // 用于绑定 DOM 元素
|
||||||
|
@ -65,6 +65,7 @@ const typeText = () => {
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
isTyping.value = false;
|
isTyping.value = false;
|
||||||
|
emit('done')
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -85,7 +86,9 @@ const startTypeWriter = () => {
|
||||||
watch(
|
watch(
|
||||||
() => props.text,
|
() => props.text,
|
||||||
() => {
|
() => {
|
||||||
|
console.log(props.showTypewriter,3000)
|
||||||
if(props.showTypewriter){
|
if(props.showTypewriter){
|
||||||
|
|
||||||
startTypeWriter();
|
startTypeWriter();
|
||||||
} else {
|
} else {
|
||||||
showFullText();
|
showFullText();
|
||||||
|
|
Loading…
Reference in New Issue