[全量] 初始化项目代码、配置、文档及Agent协同harness
46
chat_web_front/src/App.vue
Normal file
@@ -0,0 +1,46 @@
|
||||
<template>
|
||||
<div class="content">
|
||||
<Operates v-show="url != '/login' && url != '/writing/edit'&& url != '/knowledgeBase/fileDetail'" />
|
||||
<RouterView />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { watch, ref } from "vue";
|
||||
import { useRouter } from "vue-router";
|
||||
import Operates from "@/components/Operates.vue";
|
||||
const route = useRouter();
|
||||
const url = ref("");
|
||||
watch(
|
||||
() => route.currentRoute.value, // 监听路由的 fullPath 属性
|
||||
(newVal, oldVal) => {
|
||||
url.value = newVal.path;
|
||||
},
|
||||
{ immediate: true } // 设置 immediate: true 以在组件挂载时立即触发一次
|
||||
);
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
// background: linear-gradient(180deg, #edf2ff 0%, #f7f9ff 100%),
|
||||
// url("./assets/images/chat/chatLogo.png") no-repeat;
|
||||
background-color: #edf2ffcc;
|
||||
background-image: url("./assets/images/chat/chatLogo.png");
|
||||
background-size: 45%;
|
||||
background-position: right bottom;
|
||||
background-blend-mode: unset;
|
||||
background-repeat: no-repeat;
|
||||
// background-size: 45%;
|
||||
// background-position: right bottom;
|
||||
display: flex;
|
||||
.chatLogo {
|
||||
width: 764px;
|
||||
height: 700px;
|
||||
position: absolute;
|
||||
right: 0px;
|
||||
bottom: 0px;
|
||||
z-index: 0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
999
chat_web_front/src/api/index.ts
Normal file
@@ -0,0 +1,999 @@
|
||||
import type { AxiosProgressEvent, GenericAbortSignal } from 'axios'
|
||||
import { del, get, post, put } from '@/utils/request'
|
||||
|
||||
// 获取配置信息
|
||||
export function fetchChatConfig<T>() {
|
||||
return get<T>({
|
||||
url: '/app/api/config',
|
||||
})
|
||||
}
|
||||
|
||||
// 登录
|
||||
export function fetchVerify<T>(data: object) {
|
||||
return get<T>({
|
||||
url: '/app/api/oauth/token',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 获取用户信息
|
||||
export function fetchSession<T>() {
|
||||
return get<T>({
|
||||
url: '/app/user',
|
||||
})
|
||||
}
|
||||
|
||||
// 获取用户可用模型信息
|
||||
export function fetchModel<T>() {
|
||||
return get<T>({
|
||||
url: '/app/user/model',
|
||||
})
|
||||
}
|
||||
|
||||
// 修改个人信息
|
||||
export function updateUser<T>(data: object) {
|
||||
return put<T>({
|
||||
url: '/app/user',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 开启上下文
|
||||
export function updateContext<T>(data: object) {
|
||||
return put<T>({
|
||||
url: '/app/user/context',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 修改密码
|
||||
export function updatePassword<T>(data: object) {
|
||||
return put<T>({
|
||||
url: '/app/user/password/update',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 获取会话列表
|
||||
export function listChat<T>(keyword: string = '') {
|
||||
return get<T>({
|
||||
url: '/app/chat',
|
||||
data: {
|
||||
keyword: keyword
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 获取知识库历史会话列表
|
||||
export function listFileChatHistory<T=any>(fileId: number) {
|
||||
return get<T>({
|
||||
url: '/app/chat/fileChatMessage',
|
||||
data: {
|
||||
fileId: fileId,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 修改历史记录的title
|
||||
export function editHistoryChatTitleById<T = any>(data: object) {
|
||||
return post<T>({
|
||||
url: `/gpt/chat/updateChat`,
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 根据对话id删除历史对话
|
||||
export function delHistoryChatById<T = any>(id: string) {
|
||||
return post<T>({
|
||||
url: `/app/chat/delMessage/${id}`,
|
||||
})
|
||||
}
|
||||
|
||||
// 清空历史对话
|
||||
export function clearHistoryChat<T>() {
|
||||
return post<T>({
|
||||
url: '/app/chat/delMessageAll',
|
||||
})
|
||||
}
|
||||
|
||||
// 获取知识工具
|
||||
export function queryknowledgetools<T>() {
|
||||
return get<T>({
|
||||
url: '/gpt/chat/prompt?chatType=agent_chat',
|
||||
})
|
||||
}
|
||||
|
||||
// 获取会话内容
|
||||
export function listChatMessage<T=any>(data: object) {
|
||||
return get<T>({
|
||||
url: '/app/chat/message',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 修改绘画内容
|
||||
export function updatelistcontent<T>(data: object) {
|
||||
return put<T>({
|
||||
url: '/gpt/chat/',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 删除会话
|
||||
export function removeChat<T>(chatNumber: any) {
|
||||
return post<T>({
|
||||
url: `/gpt/chat/${chatNumber}`,
|
||||
})
|
||||
}
|
||||
|
||||
// 获取助手分类
|
||||
export function listAssistantType<T>() {
|
||||
return get<T>({
|
||||
url: '/app/api/assistant/type',
|
||||
})
|
||||
}
|
||||
|
||||
// 根据分类获取助手
|
||||
export function listAssistantByType<T>(data: {
|
||||
current: number
|
||||
size: number
|
||||
typeId: number
|
||||
}) {
|
||||
return get<T>({
|
||||
url: '/app/api/assistant',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 随机获取助手
|
||||
export function listAssistantRandom<T>() {
|
||||
return get<T>({
|
||||
url: '/app/api/assistant/random',
|
||||
})
|
||||
}
|
||||
|
||||
// ****************************主页对话 - 开始********************************
|
||||
// 创建对话,获取chatId,chatNumber
|
||||
export function fetchChatAPI<T = any>(data: Chat.ChatRequest) {
|
||||
return post<T>({
|
||||
url: '/app/chat',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 普通对话-发送消息以获取conversationId
|
||||
export function fetchConversationId<T = any>(data: Chat.MessageRequest) {
|
||||
return post<T>({
|
||||
url: '/app/chat/message',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
export function interrupt<T = any>(data: any) {
|
||||
return post<T>({
|
||||
url: '/gpt/chat-message/interrupt',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 普通对话-流式响应聊天
|
||||
export function fetchChatAPIProcess<T = any>(params: {
|
||||
conversationId: string
|
||||
promptName: string
|
||||
signal?: GenericAbortSignal
|
||||
onDownloadProgress: (progressEvent: AxiosProgressEvent) => void
|
||||
}) {
|
||||
const data: Record<string, any> = {
|
||||
conversationId: params.conversationId,
|
||||
promptName: params.promptName,
|
||||
}
|
||||
|
||||
return get<T>({
|
||||
url: '/app/chat/stream',
|
||||
data,
|
||||
signal: params.signal,
|
||||
onDownloadProgress: params.onDownloadProgress,
|
||||
})
|
||||
}
|
||||
|
||||
// 普通对话-获取对话名称
|
||||
export function getTitle<T = any>(data: any) {
|
||||
return post<T>({
|
||||
url: '/app/chat/getTitle',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取历史文件会话的信息
|
||||
export function fetchFileInfo<T = any>(data: { chatNumber: string }) {
|
||||
return get<T>({
|
||||
url: '/gpt/file/list',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 文件对话-流式响应聊天
|
||||
export function fetchFileChatAPIProcess<T = any>(params: {
|
||||
conversationId: string
|
||||
signal?: GenericAbortSignal
|
||||
knowledgeId?: string
|
||||
fileName?: string
|
||||
context?: string
|
||||
onDownloadProgress?: (progressEvent: AxiosProgressEvent) => void
|
||||
}) {
|
||||
const data: Record<string, any> = {
|
||||
conversationId: params.conversationId,
|
||||
knowledgeId: params.knowledgeId,
|
||||
fileName: params.fileName,
|
||||
context: params.context,
|
||||
}
|
||||
|
||||
return post<T>({
|
||||
url: '/gpt/file/fileTalk',
|
||||
data,
|
||||
signal: params.signal,
|
||||
onDownloadProgress: params.onDownloadProgress,
|
||||
})
|
||||
}
|
||||
|
||||
// 根据消息id获取当前内容
|
||||
export function fetchChatMessageById<T = any>(messageId: string) {
|
||||
return get<T>({
|
||||
url: `/app/chat/message/${messageId}`,
|
||||
})
|
||||
}
|
||||
|
||||
// 根据消息id删除当前内容
|
||||
export function deleteChatMessageById<T = any>(messageId: string) {
|
||||
return post<T>({
|
||||
url: `/app/chat/message/${messageId}`,
|
||||
})
|
||||
}
|
||||
|
||||
// KGO插件对话
|
||||
export function KGOPlugin<T = any>(params: {
|
||||
conversationId: string
|
||||
onDownloadProgress?: (progressEvent: AxiosProgressEvent) => void
|
||||
}) {
|
||||
const data: Record<string, any> = {
|
||||
conversationId: params.conversationId,
|
||||
}
|
||||
|
||||
return get<T>({
|
||||
url: '/gpt/agentTalk',
|
||||
data,
|
||||
onDownloadProgress: params.onDownloadProgress,
|
||||
})
|
||||
}
|
||||
export function metaPlugin<T = any>(params: {
|
||||
conversationId: string
|
||||
onDownloadProgress?: (progressEvent: AxiosProgressEvent) => void
|
||||
}) {
|
||||
const data: Record<string, any> = {
|
||||
conversationId: params.conversationId,
|
||||
}
|
||||
|
||||
return get<T>({
|
||||
url: '/metallurgy/searchTalk',
|
||||
data,
|
||||
onDownloadProgress: params.onDownloadProgress,
|
||||
})
|
||||
}
|
||||
|
||||
// 获取知领文献列表
|
||||
export function fetchLiteratureList<T>() {
|
||||
return get<T>({
|
||||
url: '/knowledgeChat/knowledgeBaseList',
|
||||
})
|
||||
}
|
||||
|
||||
// 知领文献对话
|
||||
export function LiteratureChat<T = any>(params: {
|
||||
conversationId: string
|
||||
promptName: string
|
||||
knowledgeBaseNamelist: any
|
||||
onDownloadProgress: (progressEvent: AxiosProgressEvent) => void
|
||||
}) {
|
||||
const data: Record<string, any> = {
|
||||
conversationId: params.conversationId,
|
||||
promptName: params.promptName,
|
||||
knowledgeBaseNameList: params.knowledgeBaseNamelist,
|
||||
}
|
||||
|
||||
return post<T>({
|
||||
url: '/knowledgeChat/chat',
|
||||
data,
|
||||
onDownloadProgress: params.onDownloadProgress,
|
||||
})
|
||||
}
|
||||
// ****************************对话 - 结束********************************
|
||||
|
||||
// ****************************文档撰写 - 开始********************************
|
||||
// 获取会话返回流--文档撰写(生成大纲)
|
||||
export function createOutLine<T = any>(params: {
|
||||
conversationId: string
|
||||
signal?: GenericAbortSignal
|
||||
promptName?: string | 'default'
|
||||
knowledgeBaseIdList?: any
|
||||
knowledgeBaseNameList?: any
|
||||
typeDoc?: number
|
||||
onDownloadProgress?: (progressEvent: AxiosProgressEvent) => void
|
||||
}) {
|
||||
const data: Record<string, any> = {
|
||||
conversationId: params.conversationId,
|
||||
promptName: params.promptName,
|
||||
knowledgeBaseIdList: params.knowledgeBaseIdList,
|
||||
knowledgeBaseNameList: params.knowledgeBaseNameList,
|
||||
typeDoc: params.typeDoc,
|
||||
}
|
||||
|
||||
return post<T>({
|
||||
url: '/knowledgeChat/chat',
|
||||
data,
|
||||
signal: params.signal,
|
||||
onDownloadProgress: params.onDownloadProgress,
|
||||
})
|
||||
}
|
||||
|
||||
// 获取会话返回流--文档撰写(问答内容)
|
||||
export function sessionFlow<T = any>(params: {
|
||||
conversationId: string
|
||||
signal?: GenericAbortSignal
|
||||
knowledgeBaseId?: any
|
||||
knowledgeBaseNameList?: any
|
||||
typeDoc?: number
|
||||
onDownloadProgress?: (progressEvent: AxiosProgressEvent) => void
|
||||
}) {
|
||||
const data: Record<string, any> = {
|
||||
conversationId: params.conversationId,
|
||||
knowledgeBaseIdList: params.knowledgeBaseId,
|
||||
knowledgeBaseNameList: params.knowledgeBaseNameList,
|
||||
typeDoc: params.typeDoc,
|
||||
}
|
||||
|
||||
return post<T>({
|
||||
url: '/knowledgeChat/chat',
|
||||
data,
|
||||
signal: params.signal,
|
||||
onDownloadProgress: params.onDownloadProgress,
|
||||
})
|
||||
}
|
||||
|
||||
// 获取知识库列表
|
||||
export function knowledgeBaseList<T = any>(folderType: string) {
|
||||
const data: Record<string, any> = {
|
||||
folderType,
|
||||
}
|
||||
|
||||
return post<T>({
|
||||
url: '/gpt/knowledgeBase/getListFolder',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 改写、润色、扩写等接口请求参数
|
||||
export interface WriteEditorParam {
|
||||
query: string | null
|
||||
type: string | null
|
||||
}
|
||||
|
||||
export interface WriteEditorParamEx {
|
||||
query: string | null
|
||||
type: string | null
|
||||
context: string | null
|
||||
paragraphContent: string | null
|
||||
conDirection: string | null
|
||||
knowledgeBaseIdList: any | null
|
||||
knowledgeBaseNameList: any | null
|
||||
}
|
||||
|
||||
export interface FileGuidInfoParam{
|
||||
fileId: string | null
|
||||
type: string | null
|
||||
context: string | null
|
||||
}
|
||||
|
||||
|
||||
export function fileGuidInfo(params:FileGuidInfoParam){
|
||||
const data: Record<string, any> = {
|
||||
type: params.type,
|
||||
context: params.context,
|
||||
}
|
||||
return post<any>({
|
||||
url: '/writer/answer?id='+params.fileId,
|
||||
data,
|
||||
})
|
||||
}
|
||||
export function expandKnowEx<T = WriteEditorParamEx>(
|
||||
params: WriteEditorParamEx,
|
||||
) {
|
||||
const data: Record<string, any> = {
|
||||
query: params.query,
|
||||
type: params.type,
|
||||
context: params.context,
|
||||
paragraphContent: params.paragraphContent,
|
||||
conDirection: params.conDirection,
|
||||
knowledgeBaseIdList: params.knowledgeBaseIdList,
|
||||
knowledgeBaseNameList: params.knowledgeBaseNameList,
|
||||
}
|
||||
return post<any>({
|
||||
url: '/writer/answer',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 扩写
|
||||
export function expandKnow<T = WriteEditorParam>(params: WriteEditorParam) {
|
||||
const data: Record<string, any> = {
|
||||
query: params.query,
|
||||
type: params.type,
|
||||
}
|
||||
|
||||
return post<any>({
|
||||
url: '/writer/answer',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 文档撰写 - 文档列表查询
|
||||
export function fileList<T>(searchWord: string) {
|
||||
return post<T>({
|
||||
url: '/docs/list?keyword='+searchWord,
|
||||
})
|
||||
}
|
||||
|
||||
// 文档撰写 - 保存文档
|
||||
export function docSave<T>(data: any) {
|
||||
return post<T>({
|
||||
url: '/docs/save',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 文档撰写 - 下载文档(列表页)
|
||||
export function downloadDoc<T>(docId: any) {
|
||||
return get<T>({
|
||||
url: `/docs/download?docId=${docId}`,
|
||||
responseType: 'blob',
|
||||
headers: {
|
||||
'Content-Type': 'application/octet-stream',
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
// 文档撰写 - 文档预览
|
||||
export function getFile<T>(docId: any) {
|
||||
return get<T>({
|
||||
url: `/docs/edit?docId=${docId}`,
|
||||
})
|
||||
}
|
||||
|
||||
// 文档撰写 - 文档删除
|
||||
export function fileDel<T>(docId: any) {
|
||||
return get<T>({
|
||||
url: `/docs/delete?docId=${docId}`,
|
||||
})
|
||||
}
|
||||
|
||||
// 文档撰写 - 文件下载
|
||||
export function downloadFile4Editor<T>(filedata: string) {
|
||||
return get<T>({
|
||||
url: '/docs/download',
|
||||
data: filedata,
|
||||
responseType: 'blob',
|
||||
headers: {
|
||||
'Content-Type': 'application/octet-stream',
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
// 文档撰写新建对话
|
||||
export function newConversation<T = any>(data: any) {
|
||||
return post<T>({
|
||||
url: '/app/chat',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 推荐段落
|
||||
export function fetchRelativeArticle<T = any>(data: any) {
|
||||
return post<T>({
|
||||
url: '/knowledgeChat/abstractSearch',
|
||||
data,
|
||||
})
|
||||
}
|
||||
// ****************************文档撰写 - 结束********************************
|
||||
|
||||
// ****************************智慧场景 - 开始********************************
|
||||
// 获取智慧场景列表(全部)
|
||||
export function fetchSmartPrompt<T>() {
|
||||
return get<T>({
|
||||
url: '/gpt/chat/getSortPrompt',
|
||||
})
|
||||
}
|
||||
|
||||
// 获取智慧场景列表(已收藏的)
|
||||
export function fetchSelectedPrompt<T>() {
|
||||
return get<T>({
|
||||
url: '/gpt/chat/getPromptColl',
|
||||
})
|
||||
}
|
||||
|
||||
// 收藏、取消收藏
|
||||
export function savePromptColl<T = any>(data: Chat.PromptColl) {
|
||||
return post<T>({
|
||||
url: '/gpt/chat/savePromptColl',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 搜索
|
||||
export function searchPrompt<T>(data: { searchWord: string }) {
|
||||
return post<T>({
|
||||
url: '/gpt/assistant/searchAssistant',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// ****************************智慧场景 - 结束********************************
|
||||
|
||||
// ****************************个人知识库 - 开始********************************
|
||||
// 查询知识库列表
|
||||
export function getKnowledgeBaseList<T>(data: object) {
|
||||
return post<T>({
|
||||
url: '/gpt/knowledgeBase/getListFolder',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 新建知识库
|
||||
export function addKnowledgeBase<T>(data: object) {
|
||||
return post<T>({
|
||||
url: '/gpt/knowledgeBase/saveKnowledge',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 修改知识库的名字和简介
|
||||
export function editKnowledgeBase<T>(data: object) {
|
||||
return post<T>({
|
||||
url: '/gpt/knowledgeBase/updateFolderInfo',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 删除知识库
|
||||
export function delKnowledgeBase<T>(data: object) {
|
||||
return post<T>({
|
||||
url: '/gpt/knowledgeBase/removeFolder',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 查询知识库的内容
|
||||
export function getKnowledgeBaseContent<T>(data: object) {
|
||||
return post<T>({
|
||||
url: '/gpt/knowledgeBase/getListFolder',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 新建文件夹
|
||||
export function addDir<T>(data: object) {
|
||||
return post<T>({
|
||||
url: '/gpt/knowledgeBase/saveFolder',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 修改文件夹
|
||||
export function editDir<T>(data: object) {
|
||||
return put<T>({
|
||||
url: '/gpt/knowledgeBase/updateFolderInfo',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 删除单个文件夹
|
||||
export function delDir<T>(data: object) {
|
||||
return post<T>({
|
||||
url: '/gpt/knowledgeBase/removeFolder',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 上传文件
|
||||
export function uploadFile<T>(data: object) {
|
||||
return post<T>({
|
||||
url: '/gpt/file/upload/knowledgeBase',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//获取文件导读内容
|
||||
export function getFileGuide<T>(fileId:string) {
|
||||
return get<T>({
|
||||
url: '/gpt/file/info?id='+fileId,
|
||||
})
|
||||
}
|
||||
|
||||
export function hasFileContent<T>(fileId:number) {
|
||||
return get<T>({
|
||||
url: '/gpt/file/hasFileContent?fileId='+fileId,
|
||||
})
|
||||
}
|
||||
|
||||
// 修改文件
|
||||
export function editFile<T>(data: object) {
|
||||
return post<T>({
|
||||
url: '/gpt/file/updateFile',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 获取已上传文件大小
|
||||
export function getSize<T>() {
|
||||
return get<T>({
|
||||
url: '/gpt/file/getSize',
|
||||
})
|
||||
}
|
||||
|
||||
// 批量删除
|
||||
export function delFiles<T = any>(data: object) {
|
||||
return post<T>({
|
||||
url: '/gpt/knowledgeBase/removeFoldersAndFiles',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 删除单个文件
|
||||
export function delFile<T = any>(fileId: string) {
|
||||
return post<T>({
|
||||
url: `/gpt/file/deleteFiles/${fileId}`,
|
||||
})
|
||||
}
|
||||
|
||||
// 下载文件
|
||||
export function downloadFile<T>(data: object) {
|
||||
return get<T>({
|
||||
url: '/gpt/file/downloadFile',
|
||||
data,
|
||||
responseType: 'blob',
|
||||
headers: {
|
||||
'Content-Type': 'application/octet-stream',
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取文件内容
|
||||
* html格式
|
||||
* @param data
|
||||
*/
|
||||
export function getFileContent<T>(data: object) {
|
||||
return get<T>({
|
||||
url: '/gpt/file/getFileContent',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加笔记
|
||||
* @param data
|
||||
*/
|
||||
export function addFileNote<T>(data: object) {
|
||||
return post<T>({
|
||||
url: '/gpt/file/addFileNote',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除笔记
|
||||
* @param data
|
||||
*/
|
||||
export function delFileNote1<T>(noteId: number) {
|
||||
return get<T>({
|
||||
url: '/gpt/file/delNote?noteId='
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除笔记
|
||||
* @param data
|
||||
*/
|
||||
export function delFileNote<T>(data: object) {
|
||||
return get<T>({
|
||||
url: '/gpt/file/delNote',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 只查询文件夹
|
||||
export function fetchFolders<T>(data: object) {
|
||||
return post<T>({
|
||||
url: '/gpt/knowledgeBase/getFolderOnly',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 判断文章综述、章节速览是否已经被获取过,如果已经请求过一次就从数据库拿(非流式)
|
||||
export function alreadyOverviewed<T>(data: object) {
|
||||
return get<T>({
|
||||
url: '/gpt/knowledgeBase/getChOvIsStream',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 文章综述——普通
|
||||
export function normalDocumentOverview<T = any>(data: object) {
|
||||
return get<T>({
|
||||
url: '/gpt/knowledgeBase/articleOverview',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 文章综述——流式
|
||||
export function streamDocumentOverview<T = any>(params: {
|
||||
knowledgeBaseId: number
|
||||
fileId: any
|
||||
onDownloadProgress?: (progressEvent: AxiosProgressEvent) => void
|
||||
}) {
|
||||
const data: Record<string, any> = {
|
||||
knowledgeBaseId: params.knowledgeBaseId,
|
||||
fileId: params.fileId,
|
||||
}
|
||||
return get<T>({
|
||||
url: '/gpt/knowledgeBase/articleOverview',
|
||||
data,
|
||||
onDownloadProgress: params.onDownloadProgress,
|
||||
})
|
||||
}
|
||||
|
||||
// 章节速览——普通
|
||||
export function normalChapterOverview<T>(data: object) {
|
||||
return get<T>({
|
||||
url: '/gpt/knowledgeBase/chatChapterOverview',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 章节速览——流式
|
||||
export function streamChapterOverview<T = any>(params: {
|
||||
knowledgeBaseId: number
|
||||
fileId: any
|
||||
conversationId: string
|
||||
onDownloadProgress?: (progressEvent: AxiosProgressEvent) => void
|
||||
}) {
|
||||
const data: Record<string, any> = {
|
||||
knowledgeBaseId: params.knowledgeBaseId,
|
||||
fileId: params.fileId,
|
||||
conversationId: params.conversationId,
|
||||
}
|
||||
return get<T>({
|
||||
url: '/gpt/knowledgeBase/chatChapterOverview',
|
||||
data,
|
||||
onDownloadProgress: params.onDownloadProgress,
|
||||
})
|
||||
}
|
||||
|
||||
// 推荐问题
|
||||
export function getQuestions<T = any>(params: {
|
||||
knowledgeBaseId: number
|
||||
conversationId: string
|
||||
fileIds: any
|
||||
promptName: string
|
||||
onDownloadProgress?: (progressEvent: AxiosProgressEvent) => void
|
||||
}) {
|
||||
const data: Record<string, any> = {
|
||||
knowledgeBaseId: params.knowledgeBaseId,
|
||||
conversationId: params.conversationId,
|
||||
fileIds: params.fileIds,
|
||||
promptName: params.promptName,
|
||||
}
|
||||
return get<T>({
|
||||
url: '/gpt/file/knowledgeTalk',
|
||||
data,
|
||||
onDownloadProgress: params.onDownloadProgress,
|
||||
})
|
||||
}
|
||||
|
||||
// 文档翻译
|
||||
export function fileTranslate<T = any>(params: {
|
||||
knowledgeBaseId: any
|
||||
fileId: any
|
||||
type: any
|
||||
onDownloadProgress?: (progressEvent: AxiosProgressEvent) => void
|
||||
}) {
|
||||
const data: Record<string, any> = {
|
||||
knowledgeBaseId: params.knowledgeBaseId,
|
||||
fileId: params.fileId,
|
||||
type: params.type,
|
||||
}
|
||||
return get<T>({
|
||||
url: '/gpt/knowledgeBase/paperTranslation',
|
||||
data,
|
||||
onDownloadProgress: params.onDownloadProgress,
|
||||
})
|
||||
}
|
||||
|
||||
// 重新翻译
|
||||
export function reTransFile<T = any>(params: {
|
||||
knowledgeBaseId: any
|
||||
fileId: any
|
||||
type: any
|
||||
onDownloadProgress?: (progressEvent: AxiosProgressEvent) => void
|
||||
}) {
|
||||
const data: Record<string, any> = {
|
||||
knowledgeBaseId: params.knowledgeBaseId,
|
||||
fileId: params.fileId,
|
||||
type: params.type,
|
||||
}
|
||||
return get<T>({
|
||||
url: '/gpt/knowledgeBase/paperReTranslation',
|
||||
data,
|
||||
onDownloadProgress: params.onDownloadProgress,
|
||||
})
|
||||
}
|
||||
|
||||
//获取支持语言类型
|
||||
export function checkTextLanguage<T>(query:string) {
|
||||
return post<T>({
|
||||
url: '/gpt/file/translate/checkLanguage',
|
||||
data: {
|
||||
query:query
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
//获取自动翻译的类型
|
||||
export function getToLangList<T>() {
|
||||
return get<T>({
|
||||
url: '/gpt/file/translate/langList',
|
||||
})
|
||||
}
|
||||
|
||||
//翻译接口
|
||||
export function translateString<T>(query:string,type:string) {
|
||||
return post<T>({
|
||||
url: '/gpt/file/translate/translate',
|
||||
data: {
|
||||
query:query,
|
||||
type:type
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// ****************************个人知识库 - 结束********************************
|
||||
|
||||
// 文件保存
|
||||
export function filesave<T>(filedata: string) {
|
||||
return post<T>({
|
||||
url: '/docs/save',
|
||||
data: filedata,
|
||||
})
|
||||
}
|
||||
|
||||
// 文件重命名
|
||||
export function renameFile<T>(data: JSON) {
|
||||
return post<T>({
|
||||
url: '/docs/rename',
|
||||
data: data,
|
||||
})
|
||||
}
|
||||
|
||||
// 文件下载
|
||||
export function downloadfile<T>(filedata: string) {
|
||||
return get<T>({
|
||||
url: '/docs/download',
|
||||
data: filedata,
|
||||
responseType: 'blob',
|
||||
headers: {
|
||||
'Content-Type': 'application/octet-stream',
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
// 获取最后一次未生成过正文的大纲
|
||||
export function fetchLastOutlines<T>(modelType: number) {
|
||||
return get<T>({
|
||||
url: '/outlines/getLastOutlines',
|
||||
data: {
|
||||
type: modelType
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 删除最后一次未生成过正文的大纲
|
||||
export function delLastOutlines<T>(id: number) {
|
||||
return get<T>({
|
||||
url: '/outlines/lastOutlinesRemove',
|
||||
data: {
|
||||
id: id
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 获取配置信息
|
||||
export function getConfig<T>(data: any) {
|
||||
return get<T>({
|
||||
url: '/config/getConfig',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取配置信息
|
||||
export function getTagConfig<T>(data: any) {
|
||||
return get<T>({
|
||||
url: '/config/getTagConfig',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 生成正文
|
||||
export function getDoc<T>(id: number, outline: string) {
|
||||
return post<T>({
|
||||
url: '/outlines/getContent',
|
||||
data: {
|
||||
id: id,
|
||||
outline: outline
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
// 中断正文
|
||||
export function interruptDoc<T>(messageId: string) {
|
||||
return post<T>({
|
||||
url: '/gpt/chat-message/interrupt',
|
||||
data: {
|
||||
messageId: messageId
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
// 获取正在生成正文的大纲
|
||||
export function getGenerating<T>(modelType: number) {
|
||||
return get<T>({
|
||||
url: '/outlines/getGenerating',
|
||||
data: {
|
||||
type: modelType
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取相关文献
|
||||
* @param data
|
||||
*/
|
||||
export function getPaper<T>(data: any) {
|
||||
return post<T>({
|
||||
url: '/writer/paper',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 工具广场中工具的查看
|
||||
* @param data
|
||||
*/
|
||||
export function viewUrl<T>(urlId: number) {
|
||||
return post<T>({
|
||||
url: '/config/viewUrl?urlId=' + urlId,
|
||||
})
|
||||
}
|
||||
|
||||
// 单点登录请求接口
|
||||
export function fetchCASLogin<T>(data: {account: string, password: string, service: string, app_key: string} ) {
|
||||
return post<T>({
|
||||
url: '/app/api/auth_web/login',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取登录状态
|
||||
export function fetchLoginStatus<T>() {
|
||||
return get<T>({
|
||||
url: '/app/api/auth/loginStatus'
|
||||
})
|
||||
}
|
||||
92
chat_web_front/src/assets/MessageStyle.less
Normal file
@@ -0,0 +1,92 @@
|
||||
.markdown-body {
|
||||
background-color: transparent;
|
||||
font-size: 16px;
|
||||
line-height: 28px;
|
||||
color: black;
|
||||
word-wrap: break-word;
|
||||
*{
|
||||
line-height: 1.5rem;
|
||||
}
|
||||
strong{
|
||||
font-family: "PingFangSC-Bold";
|
||||
}
|
||||
p {
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
ol {
|
||||
list-style-type: decimal;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-type: disc;
|
||||
}
|
||||
|
||||
pre code,
|
||||
pre tt {
|
||||
line-height: 1.65;
|
||||
}
|
||||
|
||||
.highlight pre,
|
||||
pre {
|
||||
background-color: #f9fafd;
|
||||
}
|
||||
|
||||
code.hljs {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.code-block {
|
||||
&-wrapper {
|
||||
position: relative;
|
||||
padding-top: 24px;
|
||||
}
|
||||
|
||||
&-header {
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
right: 0;
|
||||
width: 100%;
|
||||
padding: 0 1rem;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
color: #b3b3b3;
|
||||
|
||||
&__copy {
|
||||
cursor: pointer;
|
||||
margin-left: 0.5rem;
|
||||
user-select: none;
|
||||
|
||||
&:hover {
|
||||
color: #65a665;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
html.dark {
|
||||
|
||||
.message-reply {
|
||||
.whitespace-pre-wrap {
|
||||
white-space: pre-wrap;
|
||||
color: var(--n-text-color);
|
||||
}
|
||||
}
|
||||
|
||||
.highlight pre,
|
||||
pre {
|
||||
background-color: #282c34;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 533px) {
|
||||
.markdown-body .code-block-wrapper {
|
||||
padding: unset;
|
||||
code {
|
||||
padding: 24px 16px 16px 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
chat_web_front/src/assets/font/PingFang Bold.ttf
Normal file
BIN
chat_web_front/src/assets/font/PingFang Medium.ttf
Normal file
BIN
chat_web_front/src/assets/font/PingFang Regular.ttf
Normal file
18
chat_web_front/src/assets/font/font.css
Normal file
@@ -0,0 +1,18 @@
|
||||
@font-face {
|
||||
font-family: "PingFangSC-Bold";
|
||||
src: url('PingFang Bold.ttf');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "PingFangSC-Medium";
|
||||
src: url('PingFang Medium.ttf');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "PingFangSC-Regular";
|
||||
src: url('PingFang Regular.ttf');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
1102
chat_web_front/src/assets/github-markdown.less
Normal file
206
chat_web_front/src/assets/highlight.less
Normal file
@@ -0,0 +1,206 @@
|
||||
html.dark {
|
||||
pre code.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 1em
|
||||
}
|
||||
|
||||
code.hljs {
|
||||
padding: 3px 5px
|
||||
}
|
||||
|
||||
.hljs {
|
||||
color: #abb2bf;
|
||||
background: #282c34
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-operator,
|
||||
.hljs-pattern-match {
|
||||
color: #f92672
|
||||
}
|
||||
|
||||
.hljs-function,
|
||||
.hljs-pattern-match .hljs-constructor {
|
||||
color: #61aeee
|
||||
}
|
||||
|
||||
.hljs-function .hljs-params {
|
||||
color: #a6e22e
|
||||
}
|
||||
|
||||
.hljs-function .hljs-params .hljs-typing {
|
||||
color: #fd971f
|
||||
}
|
||||
|
||||
.hljs-module-access .hljs-module {
|
||||
color: #7e57c2
|
||||
}
|
||||
|
||||
.hljs-constructor {
|
||||
color: #e2b93d
|
||||
}
|
||||
|
||||
.hljs-constructor .hljs-string {
|
||||
color: #9ccc65
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #b18eb1;
|
||||
font-style: italic
|
||||
}
|
||||
|
||||
.hljs-doctag,
|
||||
.hljs-formula {
|
||||
color: #c678dd
|
||||
}
|
||||
|
||||
.hljs-deletion,
|
||||
.hljs-name,
|
||||
.hljs-section,
|
||||
.hljs-selector-tag,
|
||||
.hljs-subst {
|
||||
color: #e06c75
|
||||
}
|
||||
|
||||
.hljs-literal {
|
||||
color: #56b6c2
|
||||
}
|
||||
|
||||
.hljs-addition,
|
||||
.hljs-attribute,
|
||||
.hljs-meta .hljs-string,
|
||||
.hljs-regexp,
|
||||
.hljs-string {
|
||||
color: #98c379
|
||||
}
|
||||
|
||||
.hljs-built_in,
|
||||
.hljs-class .hljs-title,
|
||||
.hljs-title.class_ {
|
||||
color: #e6c07b
|
||||
}
|
||||
|
||||
.hljs-attr,
|
||||
.hljs-number,
|
||||
.hljs-selector-attr,
|
||||
.hljs-selector-class,
|
||||
.hljs-selector-pseudo,
|
||||
.hljs-template-variable,
|
||||
.hljs-type,
|
||||
.hljs-variable {
|
||||
color: #d19a66
|
||||
}
|
||||
|
||||
.hljs-bullet,
|
||||
.hljs-link,
|
||||
.hljs-meta,
|
||||
.hljs-selector-id,
|
||||
.hljs-symbol,
|
||||
.hljs-title {
|
||||
color: #61aeee
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: 700
|
||||
}
|
||||
|
||||
.hljs-link {
|
||||
text-decoration: underline
|
||||
}
|
||||
}
|
||||
|
||||
html {
|
||||
pre code.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 1em
|
||||
}
|
||||
|
||||
code.hljs {
|
||||
padding: 3px 5px;
|
||||
&::-webkit-scrollbar {
|
||||
height: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
.hljs {
|
||||
color: #383a42;
|
||||
background: #fafafa
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #a0a1a7;
|
||||
font-style: italic
|
||||
}
|
||||
|
||||
.hljs-doctag,
|
||||
.hljs-formula,
|
||||
.hljs-keyword {
|
||||
color: #a626a4
|
||||
}
|
||||
|
||||
.hljs-deletion,
|
||||
.hljs-name,
|
||||
.hljs-section,
|
||||
.hljs-selector-tag,
|
||||
.hljs-subst {
|
||||
color: #e45649
|
||||
}
|
||||
|
||||
.hljs-literal {
|
||||
color: #0184bb
|
||||
}
|
||||
|
||||
.hljs-addition,
|
||||
.hljs-attribute,
|
||||
.hljs-meta .hljs-string,
|
||||
.hljs-regexp,
|
||||
.hljs-string {
|
||||
color: #50a14f
|
||||
}
|
||||
|
||||
.hljs-attr,
|
||||
.hljs-number,
|
||||
.hljs-selector-attr,
|
||||
.hljs-selector-class,
|
||||
.hljs-selector-pseudo,
|
||||
.hljs-template-variable,
|
||||
.hljs-type,
|
||||
.hljs-variable {
|
||||
color: #986801
|
||||
}
|
||||
|
||||
.hljs-bullet,
|
||||
.hljs-link,
|
||||
.hljs-meta,
|
||||
.hljs-selector-id,
|
||||
.hljs-symbol,
|
||||
.hljs-title {
|
||||
color: #4078f2
|
||||
}
|
||||
|
||||
.hljs-built_in,
|
||||
.hljs-class .hljs-title,
|
||||
.hljs-title.class_ {
|
||||
color: #c18401
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: 700
|
||||
}
|
||||
|
||||
.hljs-link {
|
||||
text-decoration: underline
|
||||
}
|
||||
}
|
||||
BIN
chat_web_front/src/assets/images/applications/right.png
Normal file
|
After Width: | Height: | Size: 384 B |
BIN
chat_web_front/src/assets/images/chat/ai.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
chat_web_front/src/assets/images/chat/application.png
Normal file
|
After Width: | Height: | Size: 108 KiB |
BIN
chat_web_front/src/assets/images/chat/carouselStudy.png
Normal file
|
After Width: | Height: | Size: 86 KiB |
BIN
chat_web_front/src/assets/images/chat/carouselTranslation.png
Normal file
|
After Width: | Height: | Size: 509 KiB |
BIN
chat_web_front/src/assets/images/chat/carouselWriting.png
Normal file
|
After Width: | Height: | Size: 74 KiB |
BIN
chat_web_front/src/assets/images/chat/chatLogo.png
Normal file
|
After Width: | Height: | Size: 255 KiB |
BIN
chat_web_front/src/assets/images/chat/close.png
Normal file
|
After Width: | Height: | Size: 375 B |
BIN
chat_web_front/src/assets/images/chat/collect.png
Normal file
|
After Width: | Height: | Size: 893 B |
BIN
chat_web_front/src/assets/images/chat/collected.png
Normal file
|
After Width: | Height: | Size: 579 B |
BIN
chat_web_front/src/assets/images/chat/copy.png
Normal file
|
After Width: | Height: | Size: 595 B |
BIN
chat_web_front/src/assets/images/chat/deepThink.png
Normal file
|
After Width: | Height: | Size: 785 B |
BIN
chat_web_front/src/assets/images/chat/deepThinkActive.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
chat_web_front/src/assets/images/chat/del.png
Normal file
|
After Width: | Height: | Size: 556 B |
BIN
chat_web_front/src/assets/images/chat/file.png
Normal file
|
After Width: | Height: | Size: 588 B |
BIN
chat_web_front/src/assets/images/chat/history.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
chat_web_front/src/assets/images/chat/history/addChat.png
Normal file
|
After Width: | Height: | Size: 587 B |
BIN
chat_web_front/src/assets/images/chat/history/clear-input.png
Normal file
|
After Width: | Height: | Size: 730 B |
BIN
chat_web_front/src/assets/images/chat/history/clear.png
Normal file
|
After Width: | Height: | Size: 433 B |
BIN
chat_web_front/src/assets/images/chat/history/close.png
Normal file
|
After Width: | Height: | Size: 199 B |
BIN
chat_web_front/src/assets/images/chat/history/del.png
Normal file
|
After Width: | Height: | Size: 270 B |
BIN
chat_web_front/src/assets/images/chat/history/delActive.png
Normal file
|
After Width: | Height: | Size: 262 B |
BIN
chat_web_front/src/assets/images/chat/history/edit.png
Normal file
|
After Width: | Height: | Size: 548 B |
BIN
chat_web_front/src/assets/images/chat/history/editActive.png
Normal file
|
After Width: | Height: | Size: 498 B |
BIN
chat_web_front/src/assets/images/chat/history/fold.png
Normal file
|
After Width: | Height: | Size: 268 B |
BIN
chat_web_front/src/assets/images/chat/history/searchHis.png
Normal file
|
After Width: | Height: | Size: 536 B |
BIN
chat_web_front/src/assets/images/chat/history/unfold.png
Normal file
|
After Width: | Height: | Size: 252 B |
BIN
chat_web_front/src/assets/images/chat/historyed.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
chat_web_front/src/assets/images/chat/jump.png
Normal file
|
After Width: | Height: | Size: 301 B |
BIN
chat_web_front/src/assets/images/chat/logo.png
Normal file
|
After Width: | Height: | Size: 255 KiB |
BIN
chat_web_front/src/assets/images/chat/newChat.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
chat_web_front/src/assets/images/chat/newChated.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
chat_web_front/src/assets/images/chat/refresh.png
Normal file
|
After Width: | Height: | Size: 864 B |
BIN
chat_web_front/src/assets/images/chat/scenaried.png
Normal file
|
After Width: | Height: | Size: 815 B |
BIN
chat_web_front/src/assets/images/chat/scenarioImg.png
Normal file
|
After Width: | Height: | Size: 728 B |
BIN
chat_web_front/src/assets/images/chat/select.png
Normal file
|
After Width: | Height: | Size: 213 B |
BIN
chat_web_front/src/assets/images/chat/send.png
Normal file
|
After Width: | Height: | Size: 982 B |
BIN
chat_web_front/src/assets/images/chat/sendWhite.png
Normal file
|
After Width: | Height: | Size: 916 B |
BIN
chat_web_front/src/assets/images/chat/stopChat.png
Normal file
|
After Width: | Height: | Size: 819 B |
BIN
chat_web_front/src/assets/images/chat/user.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
chat_web_front/src/assets/images/chat/workspace.png
Normal file
|
After Width: | Height: | Size: 100 KiB |
BIN
chat_web_front/src/assets/images/close.png
Normal file
|
After Width: | Height: | Size: 375 B |
BIN
chat_web_front/src/assets/images/left.png
Normal file
|
After Width: | Height: | Size: 385 B |
BIN
chat_web_front/src/assets/images/login/loginBg.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
chat_web_front/src/assets/images/login/project-logo.png
Normal file
|
After Width: | Height: | Size: 74 KiB |
BIN
chat_web_front/src/assets/images/login/project-logo2.png
Normal file
|
After Width: | Height: | Size: 93 KiB |
BIN
chat_web_front/src/assets/images/login/projectLogo.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
chat_web_front/src/assets/images/login/projectLogo2.png
Normal file
|
After Width: | Height: | Size: 78 KiB |
BIN
chat_web_front/src/assets/images/message/copy.png
Normal file
|
After Width: | Height: | Size: 549 B |
BIN
chat_web_front/src/assets/images/message/doc.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
chat_web_front/src/assets/images/message/docx.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
chat_web_front/src/assets/images/message/jpg.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
chat_web_front/src/assets/images/message/md.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
chat_web_front/src/assets/images/message/messageLoad.gif
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
chat_web_front/src/assets/images/message/pdf.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
chat_web_front/src/assets/images/message/png.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
chat_web_front/src/assets/images/message/xls.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
chat_web_front/src/assets/images/message/xlsx.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
chat_web_front/src/assets/images/operates/application-active.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
chat_web_front/src/assets/images/operates/application.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
chat_web_front/src/assets/images/operates/interlocution.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
chat_web_front/src/assets/images/operates/interlocutioned.png
Normal file
|
After Width: | Height: | Size: 1018 B |
BIN
chat_web_front/src/assets/images/operates/material-active.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
chat_web_front/src/assets/images/operates/material.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
chat_web_front/src/assets/images/operates/quit.png
Normal file
|
After Width: | Height: | Size: 499 B |
BIN
chat_web_front/src/assets/images/operates/study.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
chat_web_front/src/assets/images/operates/studyed.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
chat_web_front/src/assets/images/operates/title.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
chat_web_front/src/assets/images/operates/to_lang.png
Normal file
|
After Width: | Height: | Size: 154 B |
BIN
chat_web_front/src/assets/images/operates/translation.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
chat_web_front/src/assets/images/operates/translationed.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
chat_web_front/src/assets/images/operates/user.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
chat_web_front/src/assets/images/operates/writing.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
chat_web_front/src/assets/images/operates/writinged.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
chat_web_front/src/assets/images/reading/create.png
Normal file
|
After Width: | Height: | Size: 347 B |
BIN
chat_web_front/src/assets/images/reading/del.png
Normal file
|
After Width: | Height: | Size: 369 B |
BIN
chat_web_front/src/assets/images/reading/empty.png
Normal file
|
After Width: | Height: | Size: 63 KiB |
BIN
chat_web_front/src/assets/images/reading/empty_literatures.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
chat_web_front/src/assets/images/reading/folder.png
Normal file
|
After Width: | Height: | Size: 1000 B |
BIN
chat_web_front/src/assets/images/reading/note.png
Normal file
|
After Width: | Height: | Size: 786 B |
BIN
chat_web_front/src/assets/images/reading/note_active.png
Normal file
|
After Width: | Height: | Size: 828 B |
BIN
chat_web_front/src/assets/images/reading/note_del.png
Normal file
|
After Width: | Height: | Size: 549 B |
BIN
chat_web_front/src/assets/images/reading/note_update.png
Normal file
|
After Width: | Height: | Size: 511 B |
BIN
chat_web_front/src/assets/images/reading/operates.png
Normal file
|
After Width: | Height: | Size: 215 B |
BIN
chat_web_front/src/assets/images/reading/remove.png
Normal file
|
After Width: | Height: | Size: 544 B |
BIN
chat_web_front/src/assets/images/reading/tips.png
Normal file
|
After Width: | Height: | Size: 670 B |
BIN
chat_web_front/src/assets/images/reading/upload_fail.png
Normal file
|
After Width: | Height: | Size: 560 B |
BIN
chat_web_front/src/assets/images/reading/upload_remove.png
Normal file
|
After Width: | Height: | Size: 544 B |
BIN
chat_web_front/src/assets/images/reading/upload_success.png
Normal file
|
After Width: | Height: | Size: 577 B |
BIN
chat_web_front/src/assets/images/right.png
Normal file
|
After Width: | Height: | Size: 384 B |
BIN
chat_web_front/src/assets/images/search.png
Normal file
|
After Width: | Height: | Size: 826 B |