tailwind+vue实现带代码高亮显示与打字动画本地存储及一键复制的模仿chatgpt聊天对话窗口代码
代码语言:html
所属分类:其他
代码描述:tailwind+vue实现带代码高亮显示与打字动画本地存储及一键复制的模仿chatgpt聊天对话窗口代码,直接输入后端的api接口url就能使用。
代码标签: tailwind vue 代码 高亮 显示 打字 动画 本地 存储 复制 模仿 chatgpt
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum=1.0,minimum=1.0,user-scalable=0" /> <link type="text/css" rel="stylesheet" href="//repo.bfw.wiki/bfwrepo/css/tailwind.2.2.7.css"> <style> body{ color: #d1d5db; } pre{ background: rgba(0,0,0,.5); padding: 10px; margin: 10px 0; } #chatbody{ height: 90vh; overflow-y: scroll; } .controlbar{ font-size: 12px; float: right; padding-right: 10px; line-height: 50px; margin-left: auto; cursor: pointer; } </style> </head> <body> <div id="app"> <div class="bg-gray-900 flex flex-col h-full"> <main class="flex-grow-1 h-full"> <div class="h-full w-full"> <div class="relative w-full h-full flex flex-col "> <div class=" h-full" id="chatbody"> <bubble v-for="content in contents" v-bind:bubbtext="content.text" v-bind:oldtext="content.oldtext" v-bind:ifnew="content.isnew" v-bind:isuser="content.isUser ? 'bg-gray-800' : ''" > </bubble> <div v-show="thinking" class=""> AI思考中…… </div> </div> <div class="p-3"> <form class="w-full flex items-center gap-3" onsubmit="return false;"> <div class="w-full"> <div class="relative rounded-md shadow-sm"> <input id="chatText" type="text" class="block w-full sm:text-sm rounded-md bg-gray-800 border-gray-500 focus:ring-brand-primary focus:border-brand-primary text-white" v-on:keyup.enter="addToChat" v-model="newMessage" name="chatText" placeholder="Type a message" aria-invalid="false" aria-describedby="message-error" style="height:40px;"> </div> </div><button v-on:click="addToChat" type="button" class="relative flex items-center font-medium px-3 py-2 text-sm rounded-md border border-transparent shadow-sm text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"><span class="flex items-center"><!--[-->Send<!--]--></span></button></form> </div> </div> </div> </main> </div> </div> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/highlight.js"></script> <link type="text/css" rel="stylesheet" href="//repo.bfw.wiki/bfwrepo/css/highlight.9.9.css"> <script type="text/javascript" src="https://repo.bfw.wiki/bfwrepo/js/vue@2.6.1-dev.js"></script> <script type="text/javascript" src="https://repo.bfw.wiki/bfwrepo/js/axios-0.18.js"></script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/vue-typed-js.browser.js"></script> <link type="text/css" rel="stylesheet" href="//repo.bfw.wiki/bfwrepo/css/vue-typed-js.css"> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/marked.umd.min.js"></script> <script > marked.setOptions({ highlight: function(code) { return hljs.highlightAuto(code).value } }) marked.setOptions({ sanitize: true }) const data = [ { text: 'Hello! 我是AI小助手' }, ]; let counter = 1; Vue.component('bubble', { props: ['bubbtext','ifnew',"oldtext","isuser"], template: `<div :class="'flex w-full '+isuser "> <div c.........完整代码请登录后点击上方下载按钮下载查看
网友评论0