位置: IT常识 - 正文

vue 模拟 chatgpt 聊天效果:js 实现逐字显示、延时函数模拟对话(vue 模拟遥控按钮)

编辑:rootadmin
vue 模拟 chatgpt 聊天效果:js 实现逐字显示、延时函数模拟对话 vue 模拟 chatgpt 聊天效果:js 实现逐字显示、延时函数模拟对话

推荐整理分享vue 模拟 chatgpt 聊天效果:js 实现逐字显示、延时函数模拟对话(vue 模拟遥控按钮),希望有所帮助,仅作参考,欢迎阅读内容。

vue 模拟 chatgpt 聊天效果:js 实现逐字显示、延时函数模拟对话(vue 模拟遥控按钮)

文章相关热门搜索词:vue 模拟设备操作界面,vue 模拟excel 撤回恢复,vue 模拟数据,vue 模拟接口数据,vue 模拟短视频平台,vue 模拟excel 撤回恢复,vue 模拟控制台界面,vue 模拟数据,内容如对您有帮助,希望把文章链接给更多的朋友!

模拟 chatgpt 聊天功能,展示对话效果。其中比较有意义的技术点是:js 实现逐字显示、延时函数,同步遍历。

<template> <div class="chat-gpt"> <div id="chat-dialog" class="chat-dialog" ref="chatDialogRef"> <div id="chat-list" class="chat-list" ref="chatListRef"> <div v-for="(item, index) in chatList" :key="index"> <img v-if="item.status && index % 2 == 0" src="../../public/img/speak1.gif" alt="" /> <div :class="index % 2 == 0 ? 'odd' : 'even'">{{ item.content }}</div> </div> </div> </div> </div></template><script>export default { data() { return { textCount: 0, timer: null, chatBaseList: [ "以今日5辆满电无人车,运输5小时能运完50吨货物的标准,已知每辆无人车运输1小时耗电10%,运输效率是多少,每辆无人车耗电多少?花费多长时间?", "运输效率:50吨/5小时=10顿/小时,每辆无人车耗电:10%×5小时=50%,需花费5小时。", "以现有运输效率前提下,再增加5辆无人运输车,完成共计150吨物资的运输任务,整体效率会提高到多少?每辆无人车耗电又是多少?共花费多长时间?", "增加到10辆无人车,完成共计150吨物资运输任务,整体效率会提高到15顿/小时,每辆无人车耗电百分比是15%。运完150吨的话,总共要耗用1.5小时。", "我来想想是否确认执行此调配操作?", "您好,请您慎重考虑。我们将根据您的确认来决定是否执行此调配操作。", "是" ], chatList: [] }; }, mounted() { this.initGPT(); }, methods: { // 延时函数 sleep(delaytime = 10000) { return new Promise(resolve => setTimeout(resolve, delaytime)); }, // 同步遍历,自定义延时时间 async delayDo( iterList, callback = data => console.log(`数据:${data}`), delaytimeList ) { let len = iterList.length; for (let i = 0; i < len; i++) { callback(iterList[i], i); await this.sleep(delaytimeList[i]); } }, // 逐字显示内容 getChatContent(text, index) { this.timer = setInterval(() => { this.textCount++; if (this.textCount == text.length + 1) { this.textCount = 0; this.chatList.splice(index, 1, { content: text, status: false }); clearInterval(this.timer); return; } // 取字符串子串 let nowStr = text.substring(0, this.textCount); this.chatList.splice(index, 1, { content: nowStr, status: true }); }, 200); }, // 点击开始聊天 initGPT() { // const delaytimeList = [11000, 8000, 6000, 15000, 4000]; const delaytimeList = [16000, 11000, 16000, 16000, 5000, 7000]; this.delayDo( this.chatBaseList, (item, i) => { this.getChatContent(item, i); }, delaytimeList ); } }};</script><style lang="scss" scoped>.chat-gpt { width: 33rem; height: 43rem; .chat-dialog { position: relative; height: 43rem; background: 0/33rem url("../../public/img/chat-bg.png") no-repeat; overflow: hidden; .close-icon { position: absolute; top: 1rem; right: 1rem; width: 3.4rem; height: 3.4rem; img { width: 100%; height: 100%; } } .chat-list { display: flex; flex-direction: column; width: 90%; margin: 0 auto; margin-top: 2rem; overflow: auto; >div { display: flex; margin-top: 1rem; >div { max-width: 19rem; padding: 0.6rem; opacity: 0.8; font-size: 0.9rem; font-family: FZLanTingHei-L-GBK; font-weight: 400; color: #c5e7ff; text-align: start; } .odd { align-self: flex-start; background: #435e6f; border-radius: 0px 16px 16px 16px; } .even { align-self: flex-end; background: #31b8c8; border-radius: 16px 0px 16px 16px; } img { width: 2rem; height: 2rem; margin-right: 1rem; } } >div:nth-of-type(odd) { align-self: flex-start; } >div:nth-of-type(even) { align-self: flex-end; } } } .chat-tips { display: flex; height: 5.82rem; margin-top: 1rem; .gpt-icon { height: 100%; img { height: 100%; } } }}</style>

chatgpt 聊天效果

本文链接地址:https://www.jiuchutong.com/zhishi/281433.html 转载请保留说明!

上一篇:Mac 键盘快捷键大全(mac键盘快捷键设置)

下一篇:Javascript Object和Map之间的转换

  • 长租公寓 税费
  • 固定资产一次性扣除账务处理
  • 牛奶 税率
  • 外商独资企业资本金的使用
  • 同一控制下企业合并取得的长期股权投资
  • 外购商品对外捐赠分录
  • 财务报税表格
  • 企业贷款发生的利息、手续费
  • 增值税转售行为怎么做会计处理?
  • 增值税普通发票跨月冲红
  • 计提水利建设基金的依据
  • 凭证可以部分冲销吗
  • 工人保险一个月多少钱
  • 税收优惠包括哪三个方面的内容
  • 非居民企业减免的利息是否交增值税
  • 年报填写中,认缴出资时间怎么填?
  • 固定资产折旧计入成本还是费用
  • 公司商品质量问题导致员工与公司一起被起诉了怎么办
  • 会计费用涉及哪些科目?
  • 购货方收到代垫运费的发票怎么做会计分录?
  • 企业关闭时国税、地税注销需要哪些手续,时间是多长?
  • 企业控股情况是指
  • 物流公司运费账务处理
  • 该设备正在使用中怎么关闭u盘
  • 企业减免税款的会计分录
  • 从劳务市场雇人受伤了怎么办?
  • uniapp自定义下拉刷新上拉加载
  • PHP:oci_bind_by_name()的用法_Oracle函数
  • 公益慈善事业捐赠个人所得税
  • 绿萝怎么扦插?
  • php text
  • yii2框架从入门到精通
  • thinkphp整合layui
  • 环境检测费计入什么费用
  • 大数据热点话题
  • 强制缓存与协商缓存的区别
  • 浅谈php中静态方法的应用
  • 汇算清缴补交所得税怎么做凭证
  • 用现金报销差旅费及增值税怎么做账
  • 网上抄税报税操作流程
  • 收到劳务派遣发票可以抵扣吗
  • 施工单位代建收费合法吗
  • php运行乱码怎么办
  • 长期待摊费用属于调整账户吗
  • java变量初始化的两种方式
  • MySQL数据库存储引擎
  • 不入库存商品直接走成本会怎样
  • mysql相关
  • 生产成本怎么结账
  • 合伙企业的合伙人有下列情形中的当然退伙
  • 旅行社开具的发票抵扣
  • 委托代理出口如何缴纳增值税
  • 个人咨询费发票怎么开
  • 红字冲销发票流程
  • 奖金偶然所得税起征点
  • 所得税暂缓缴纳本来是不缴纳
  • 小规模纳税人交通运输服务税率
  • 如何调整以前年度错账
  • 生产成本和主营业务收入的关系
  • 数据库分页存储方法
  • Navicat for MySQL导出表结构脚本的简单方法
  • 怎么操作win10系统
  • Ubuntu10.10 Zend FrameWork配置方法及helloworld显示
  • mac苹果电脑如何开4个微信号
  • win7安装无法将windows配置为在此计算机上运行
  • 苹果Mac系统怎么装
  • windows升级10
  • 微软反盗xp黑屏怎么办
  • win8磁盘分区
  • 在布局中使用选定的比例
  • sed删除文件中的目录
  • 搭建nodejs环境
  • Android ListViewitem滑动出现删除按钮
  • jquery mobile开发工具
  • jquery插件怎么写
  • js-cookie vue
  • javascript设置字体
  • javascript playground
  • python语言例子
  • 厦门税务地区编号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设