提交 ff3ea7ef 编写于 作者: D DebugIsFalse

feature: 添加分享接口功能

上级 d4a6f414
......@@ -65,8 +65,13 @@
</template>
<script setup>
const toast = useToast()
const route = useRoute()
const props = defineProps({
query: String
query: String,
isPublic: {
type: Boolean,
default: false
}
})
const emits = defineEmits(['update-query'])
const isEditTitle = ref(false)
......@@ -77,7 +82,9 @@ const isOpen = ref(false)
watch(()=> props.query, () => {
editTitle.value = props.query
}, { immediate: true })
watch(() => props.isPublic, () => {
isOpen.value = props.isPublic
})
function handleFocusTitle () {
isEditTitle.value = true
}
......@@ -85,13 +92,17 @@ function handleBlurTitle () {
isEditTitle.value = false
emits('update-query', editTitle.value)
}
function handleShare () {
useCopyToClipboard().copy(window.location.href)
toast.add({
icon: 'i-heroicons-information-circle-20-solid',
timeout: 2000,
title: '链接已复制到剪贴板'
})
async function handleShare () {
const shareType = String(isOpen.value)
const { error } = await useRequest(`/v1/chat/${route.params.id}/public/${shareType}`, { method: 'post' })
if (!error.value && isOpen.value) {
useCopyToClipboard().copy(window.location.href)
toast.add({
icon: 'i-heroicons-information-circle-20-solid',
timeout: 2000,
title: '链接已复制到剪贴板'
})
}
}
function handleUpdateOpenState (state) {
isOpen.value = state
......
<template>
<div class="w-full items-center flex flex-col">
<iSearchHeader :query="state.query" @update-query="handleUpdateQuery" />
<iSearchHeader :query="state.query" :is-public="state.isPublic" @update-query="handleUpdateQuery" />
<div class="container min-h-svh max-w-screen-lg flex flex-col space-y-6 p-6 mb-6 pb-0" id="scrollElement">
<div class="grid">
<h1 class="text-3xl">{{ state.query }}</h1>
......@@ -53,7 +53,8 @@ const state = reactive({
repo: '',
id: route.params.id,
branch: '',
gitPath: ''
gitPath: '',
isPublic: false
})
const data = ref([])
const askingData = ref({ question: state.query, desLoading: true })
......@@ -66,8 +67,8 @@ let aiChatController = null // 用户取消操作方法
const markedEnd = '[DONE]'
function initSearchItemInfo (info) {
const { title, repo_name, repo_path, repo_branch } = info
Object.assign(state, { query: title, repo: repo_name, gitPath: repo_path, branch: repo_branch })
const { title, repo_name, repo_path, repo_branch, is_public } = info
Object.assign(state, { query: title, repo: repo_name, gitPath: repo_path, branch: repo_branch, isPublic: is_public })
}
function initSearchRecords (records) {
data.value = records.map(item => {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册