Files
amb_rag/frontend/src/views/KbDetail.vue.js
T
2026-09-02 18:04:41 +08:00

1651 lines
63 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { ref, onMounted, computed } from 'vue';
import { useRoute } from 'vue-router';
import { ElMessage, ElMessageBox } from 'element-plus';
import apiClient from '@/api/client';
import { copyToClipboard } from '@/utils/clipboard';
const route = useRoute();
const kbId = route.params.id;
const isMobile = ref(window.innerWidth <= 768);
const showMobileSidebar = ref(false);
window.addEventListener('resize', () => {
isMobile.value = window.innerWidth <= 768;
if (!isMobile.value)
showMobileSidebar.value = false;
});
const kb = ref(null);
const docs = ref([]);
const categories = ref([]);
const allCategoriesFlat = ref([]);
const loading = ref(false);
const uploading = ref(false);
const aiUrl = ref('');
const selectedCategoryId = ref(null);
const selectedCategoryPath = ref(null);
// 文本内容对话框
const showTextDialog = ref(false);
const textForm = ref({
title: '',
content: '',
content_format: 'markdown',
category_id: null,
});
const textLoading = ref(false);
// 目录管理
const showCatDialog = ref(false);
const catForm = ref({ name: '', parent_id: null, is_folder: true });
const catLoading = ref(false);
const editingCatId = ref(null);
// 编辑文档分类
const editingDocId = ref(null);
onMounted(async () => {
await loadKb();
await loadCategories();
await loadDocs();
await loadLink();
});
async function loadKb() {
try {
const { data } = await apiClient.get(`/knowledge-bases/${kbId}`);
kb.value = data;
}
catch { /* ignore */ }
}
async function loadCategories() {
try {
const { data } = await apiClient.get(`/knowledge-bases/${kbId}/categories/tree`);
categories.value = data;
// 同时加载平铺列表
const { data: flat } = await apiClient.get(`/knowledge-bases/${kbId}/categories`);
allCategoriesFlat.value = flat;
}
catch { /* ignore */ }
}
async function loadDocs() {
loading.value = true;
try {
let url = `/documents?kb_id=${kbId}`;
if (selectedCategoryId.value) {
url += `&category_id=${selectedCategoryId.value}`;
}
const { data } = await apiClient.get(url);
docs.value = data.items;
}
catch { /* ignore */ }
loading.value = false;
}
// 链接有效期
const expiryOptions = [
{ label: '10 分钟', value: 10 },
{ label: '30 分钟', value: 30 },
{ label: '1 小时', value: 60 },
{ label: '3 小时', value: 180 },
{ label: '24 小时', value: 1440 },
{ label: '长期有效', value: 0 },
];
const linkExpiry = ref({
expires_at: null,
is_expired: false,
});
const expiryText = computed(() => {
if (linkExpiry.value.is_expired)
return '⛔ 已失效';
if (!linkExpiry.value.expires_at)
return '♾️ 长期有效';
return `⏱️ 有效期至 ${linkExpiry.value.expires_at}`;
});
async function loadLink() {
try {
const { data } = await apiClient.get(`/knowledge-bases/${kbId}/link`);
aiUrl.value = `${window.location.origin}/k/${data.token}`;
linkExpiry.value = {
expires_at: data.expires_at,
is_expired: data.is_expired,
};
}
catch { /* ignore */ }
}
// 设置链接有效期(0 = 长期有效,需二次确认)
async function handleExpiryChange(val) {
if (val === 0) {
try {
await ElMessageBox.confirm('长期有效的链接一旦泄露,任何持有该链接的人都可永久访问此知识库,存在泄露风险。确定设为长期有效?', '⚠️ 泄露风险提示', { type: 'warning', confirmButtonText: '仍要设为长期有效', cancelButtonText: '取消' });
}
catch {
return; // 用户取消
}
}
try {
await apiClient.post(`/knowledge-bases/${kbId}/set-expiry`, {
expires_in_minutes: val === 0 ? null : val,
});
ElMessage.success('链接有效期已更新。');
loadLink();
}
catch { /* ignore */ }
}
function selectCategory(cat) {
selectedCategoryId.value = cat.id;
selectedCategoryPath.value = cat.path;
loadDocs();
}
function clearCategoryFilter() {
selectedCategoryId.value = null;
selectedCategoryPath.value = null;
loadDocs();
}
// 上传文档
async function handleUpload(options) {
uploading.value = true;
try {
const formData = new FormData();
formData.append('kb_id', kbId);
formData.append('file', options.file);
if (selectedCategoryId.value) {
formData.append('category_id', selectedCategoryId.value);
}
await apiClient.post('/documents/upload', formData, {
headers: { 'Content-Type': 'multipart/form-data' },
});
ElMessage.success('文档上传成功!');
loadDocs();
loadCategories();
}
catch { /* ignore */ }
uploading.value = false;
}
// 打开添加文本对话框(预填左侧选中的目录,对话框内的选择优先)
function openTextDialog() {
textForm.value.category_id = selectedCategoryId.value;
showTextDialog.value = true;
}
// 创建文本内容
async function handleCreateText() {
if (!textForm.value.title.trim() || !textForm.value.content.trim()) {
ElMessage.warning('请输入标题和内容。');
return;
}
textLoading.value = true;
try {
await apiClient.post('/documents/create-text', {
kb_id: kbId,
title: textForm.value.title,
content: textForm.value.content,
content_format: textForm.value.content_format,
category_id: textForm.value.category_id,
});
ElMessage.success('文本内容已创建!');
showTextDialog.value = false;
textForm.value = { title: '', content: '', content_format: 'markdown', category_id: null };
loadDocs();
loadCategories();
}
catch { /* ignore */ }
textLoading.value = false;
}
// 修改文档分类
async function handleChangeDocCategory(doc, newCategoryId) {
try {
await apiClient.put(`/documents/${doc.id}`, { category_id: newCategoryId });
ElMessage.success('目录已更新。');
loadDocs();
loadCategories();
}
catch { /* ignore */ }
}
async function handleDeleteDoc(doc) {
try {
await ElMessageBox.confirm(`确定删除「${doc.original_filename}」?`, '确认删除', { type: 'warning' });
await apiClient.delete(`/documents/${doc.id}`);
ElMessage.success('已删除。');
loadDocs();
loadCategories();
}
catch { /* ignore */ }
}
async function handleReprocess(doc) {
try {
await apiClient.post(`/documents/${doc.id}/reprocess`);
ElMessage.success('重新解析已提交。');
loadDocs();
}
catch { /* ignore */ }
}
async function handleCopyLink() {
const success = await copyToClipboard(aiUrl.value);
if (success) {
ElMessage.success('AI 链接已复制!');
}
else {
ElMessage.error('复制失败,请手动长按复制。');
}
}
// 重新生成 AI 链接
async function handleRegenerateLink() {
try {
await ElMessageBox.confirm('重新生成链接后,旧链接将立即失效。确定继续?', '确认', { type: 'warning' });
const { data } = await apiClient.post(`/knowledge-bases/${kbId}/regenerate-token`);
aiUrl.value = `${window.location.origin}/k/${data.token}`;
ElMessage.success('链接已重新生成!');
}
catch { /* ignore */ }
}
// 目录管理
function openAddCategory(parentId = null) {
editingCatId.value = null;
catForm.value = { name: '', parent_id: parentId, is_folder: true };
showCatDialog.value = true;
}
function openEditCategory(cat) {
editingCatId.value = cat.id;
catForm.value = { name: cat.name, parent_id: cat.parent_id || null, is_folder: cat.is_folder };
showCatDialog.value = true;
}
async function handleSaveCategory() {
if (!catForm.value.name.trim()) {
ElMessage.warning('请输入目录名称。');
return;
}
catLoading.value = true;
try {
if (editingCatId.value) {
await apiClient.put(`/knowledge-bases/${kbId}/categories/${editingCatId.value}`, catForm.value);
ElMessage.success('目录已更新。');
}
else {
await apiClient.post(`/knowledge-bases/${kbId}/categories`, catForm.value);
ElMessage.success('目录已创建。');
}
showCatDialog.value = false;
loadCategories();
}
catch { /* ignore */ }
catLoading.value = false;
}
async function handleDeleteCategory(cat) {
try {
await ElMessageBox.confirm(`确定删除目录「${cat.name}」及其所有子目录?`, '确认删除', { type: 'warning' });
await apiClient.delete(`/knowledge-bases/${kbId}/categories/${cat.id}`);
ElMessage.success('已删除。');
if (selectedCategoryId.value === cat.id) {
clearCategoryFilter();
}
loadCategories();
loadDocs();
}
catch { /* ignore */ }
}
function formatSize(bytes) {
if (bytes < 1024)
return bytes + ' B';
if (bytes < 1024 * 1024)
return (bytes / 1024).toFixed(1) + ' KB';
return (bytes / (1024 * 1024)).toFixed(1) + ' MB';
}
function statusType(status) {
if (status === 'READY')
return 'success';
if (status === 'FAILED')
return 'danger';
return 'warning';
}
// 获取分类名称
function getCategoryName(catId) {
const cat = allCategoriesFlat.value.find((c) => c.id === catId);
return cat ? cat.name : '未分类';
}
// AI 链接打码:显示域名,token 部分用 • 代替
const maskedAiUrl = computed(() => {
if (!aiUrl.value)
return '尚未生成';
const idx = aiUrl.value.indexOf('/k/');
if (idx === -1)
return '••••••••';
const prefix = aiUrl.value.slice(0, idx + 3);
const tokenLen = aiUrl.value.length - idx - 3;
return prefix + '•'.repeat(tokenLen);
});
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
const __VLS_ctx = {};
let __VLS_components;
let __VLS_directives;
/** @type {__VLS_StyleScopedClasses['cat-item']} */ ;
/** @type {__VLS_StyleScopedClasses['cat-item']} */ ;
/** @type {__VLS_StyleScopedClasses['tree-label']} */ ;
/** @type {__VLS_StyleScopedClasses['main-layout']} */ ;
/** @type {__VLS_StyleScopedClasses['sidebar']} */ ;
/** @type {__VLS_StyleScopedClasses['sidebar']} */ ;
/** @type {__VLS_StyleScopedClasses['mobile-overlay']} */ ;
/** @type {__VLS_StyleScopedClasses['content']} */ ;
/** @type {__VLS_StyleScopedClasses['mobile-header']} */ ;
/** @type {__VLS_StyleScopedClasses['desktop-header']} */ ;
/** @type {__VLS_StyleScopedClasses['mobile-actions']} */ ;
/** @type {__VLS_StyleScopedClasses['desktop-actions']} */ ;
/** @type {__VLS_StyleScopedClasses['mobile-cards']} */ ;
// CSS variable injection
// CSS variable injection end
if (__VLS_ctx.kb) {
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({});
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
...{ class: "mobile-header" },
});
__VLS_asFunctionalElement(__VLS_intrinsicElements.h1, __VLS_intrinsicElements.h1)({
...{ style: {} },
});
(__VLS_ctx.kb.name);
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
...{ style: {} },
});
const __VLS_0 = {}.ElButton;
/** @type {[typeof __VLS_components.ElButton, typeof __VLS_components.elButton, typeof __VLS_components.ElButton, typeof __VLS_components.elButton, ]} */ ;
// @ts-ignore
const __VLS_1 = __VLS_asFunctionalComponent(__VLS_0, new __VLS_0({
...{ 'onClick': {} },
size: "small",
...{ style: {} },
}));
const __VLS_2 = __VLS_1({
...{ 'onClick': {} },
size: "small",
...{ style: {} },
}, ...__VLS_functionalComponentArgsRest(__VLS_1));
let __VLS_4;
let __VLS_5;
let __VLS_6;
const __VLS_7 = {
onClick: (__VLS_ctx.handleCopyLink)
};
__VLS_3.slots.default;
var __VLS_3;
const __VLS_8 = {}.ElButton;
/** @type {[typeof __VLS_components.ElButton, typeof __VLS_components.elButton, typeof __VLS_components.ElButton, typeof __VLS_components.elButton, ]} */ ;
// @ts-ignore
const __VLS_9 = __VLS_asFunctionalComponent(__VLS_8, new __VLS_8({
...{ 'onClick': {} },
type: "warning",
size: "small",
...{ style: {} },
}));
const __VLS_10 = __VLS_9({
...{ 'onClick': {} },
type: "warning",
size: "small",
...{ style: {} },
}, ...__VLS_functionalComponentArgsRest(__VLS_9));
let __VLS_12;
let __VLS_13;
let __VLS_14;
const __VLS_15 = {
onClick: (__VLS_ctx.handleRegenerateLink)
};
__VLS_11.slots.default;
var __VLS_11;
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
...{ class: "main-layout" },
});
__VLS_asFunctionalElement(__VLS_intrinsicElements.aside, __VLS_intrinsicElements.aside)({
...{ class: "sidebar" },
...{ class: ({ 'mobile-show': __VLS_ctx.showMobileSidebar }) },
});
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
...{ style: {} },
});
__VLS_asFunctionalElement(__VLS_intrinsicElements.h3, __VLS_intrinsicElements.h3)({
...{ style: {} },
});
const __VLS_16 = {}.ElButton;
/** @type {[typeof __VLS_components.ElButton, typeof __VLS_components.elButton, typeof __VLS_components.ElButton, typeof __VLS_components.elButton, ]} */ ;
// @ts-ignore
const __VLS_17 = __VLS_asFunctionalComponent(__VLS_16, new __VLS_16({
...{ 'onClick': {} },
size: "small",
type: "primary",
}));
const __VLS_18 = __VLS_17({
...{ 'onClick': {} },
size: "small",
type: "primary",
}, ...__VLS_functionalComponentArgsRest(__VLS_17));
let __VLS_20;
let __VLS_21;
let __VLS_22;
const __VLS_23 = {
onClick: (...[$event]) => {
if (!(__VLS_ctx.kb))
return;
__VLS_ctx.openAddCategory(null);
}
};
__VLS_19.slots.default;
var __VLS_19;
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
...{ onClick: (__VLS_ctx.clearCategoryFilter) },
...{ class: "cat-item" },
...{ class: ({ active: !__VLS_ctx.selectedCategoryId }) },
});
const __VLS_24 = {}.ElTree;
/** @type {[typeof __VLS_components.ElTree, typeof __VLS_components.elTree, typeof __VLS_components.ElTree, typeof __VLS_components.elTree, ]} */ ;
// @ts-ignore
const __VLS_25 = __VLS_asFunctionalComponent(__VLS_24, new __VLS_24({
data: (__VLS_ctx.categories),
nodeKey: "id",
defaultExpandAll: true,
expandOnClickNode: (false),
}));
const __VLS_26 = __VLS_25({
data: (__VLS_ctx.categories),
nodeKey: "id",
defaultExpandAll: true,
expandOnClickNode: (false),
}, ...__VLS_functionalComponentArgsRest(__VLS_25));
__VLS_27.slots.default;
{
const { default: __VLS_thisSlot } = __VLS_27.slots;
const [{ data }] = __VLS_getSlotParams(__VLS_thisSlot);
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
...{ class: "tree-node" },
});
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
...{ onClick: (...[$event]) => {
if (!(__VLS_ctx.kb))
return;
__VLS_ctx.selectCategory(data);
} },
...{ class: "tree-label" },
...{ class: ({ selected: __VLS_ctx.selectedCategoryId === data.id }) },
});
(data.is_folder ? '📁' : '📄');
(data.name);
if (data.doc_count > 0) {
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
...{ style: {} },
});
(data.doc_count);
}
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
...{ class: "tree-actions" },
});
const __VLS_28 = {}.ElButton;
/** @type {[typeof __VLS_components.ElButton, typeof __VLS_components.elButton, typeof __VLS_components.ElButton, typeof __VLS_components.elButton, ]} */ ;
// @ts-ignore
const __VLS_29 = __VLS_asFunctionalComponent(__VLS_28, new __VLS_28({
...{ 'onClick': {} },
size: "small",
text: true,
}));
const __VLS_30 = __VLS_29({
...{ 'onClick': {} },
size: "small",
text: true,
}, ...__VLS_functionalComponentArgsRest(__VLS_29));
let __VLS_32;
let __VLS_33;
let __VLS_34;
const __VLS_35 = {
onClick: (...[$event]) => {
if (!(__VLS_ctx.kb))
return;
__VLS_ctx.openAddCategory(data.id);
}
};
__VLS_31.slots.default;
var __VLS_31;
const __VLS_36 = {}.ElButton;
/** @type {[typeof __VLS_components.ElButton, typeof __VLS_components.elButton, typeof __VLS_components.ElButton, typeof __VLS_components.elButton, ]} */ ;
// @ts-ignore
const __VLS_37 = __VLS_asFunctionalComponent(__VLS_36, new __VLS_36({
...{ 'onClick': {} },
size: "small",
text: true,
}));
const __VLS_38 = __VLS_37({
...{ 'onClick': {} },
size: "small",
text: true,
}, ...__VLS_functionalComponentArgsRest(__VLS_37));
let __VLS_40;
let __VLS_41;
let __VLS_42;
const __VLS_43 = {
onClick: (...[$event]) => {
if (!(__VLS_ctx.kb))
return;
__VLS_ctx.openEditCategory(data);
}
};
__VLS_39.slots.default;
var __VLS_39;
const __VLS_44 = {}.ElButton;
/** @type {[typeof __VLS_components.ElButton, typeof __VLS_components.elButton, typeof __VLS_components.ElButton, typeof __VLS_components.elButton, ]} */ ;
// @ts-ignore
const __VLS_45 = __VLS_asFunctionalComponent(__VLS_44, new __VLS_44({
...{ 'onClick': {} },
size: "small",
text: true,
type: "danger",
}));
const __VLS_46 = __VLS_45({
...{ 'onClick': {} },
size: "small",
text: true,
type: "danger",
}, ...__VLS_functionalComponentArgsRest(__VLS_45));
let __VLS_48;
let __VLS_49;
let __VLS_50;
const __VLS_51 = {
onClick: (...[$event]) => {
if (!(__VLS_ctx.kb))
return;
__VLS_ctx.handleDeleteCategory(data);
}
};
__VLS_47.slots.default;
var __VLS_47;
}
var __VLS_27;
if (__VLS_ctx.showMobileSidebar) {
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
...{ onClick: (...[$event]) => {
if (!(__VLS_ctx.kb))
return;
if (!(__VLS_ctx.showMobileSidebar))
return;
__VLS_ctx.showMobileSidebar = false;
} },
...{ class: "mobile-overlay" },
});
}
__VLS_asFunctionalElement(__VLS_intrinsicElements.main, __VLS_intrinsicElements.main)({
...{ class: "content" },
});
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
...{ class: "desktop-header" },
});
__VLS_asFunctionalElement(__VLS_intrinsicElements.h1, __VLS_intrinsicElements.h1)({
...{ style: {} },
});
(__VLS_ctx.kb.name);
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
...{ style: {} },
});
const __VLS_52 = {}.ElButton;
/** @type {[typeof __VLS_components.ElButton, typeof __VLS_components.elButton, typeof __VLS_components.ElButton, typeof __VLS_components.elButton, ]} */ ;
// @ts-ignore
const __VLS_53 = __VLS_asFunctionalComponent(__VLS_52, new __VLS_52({
...{ 'onClick': {} },
size: "large",
}));
const __VLS_54 = __VLS_53({
...{ 'onClick': {} },
size: "large",
}, ...__VLS_functionalComponentArgsRest(__VLS_53));
let __VLS_56;
let __VLS_57;
let __VLS_58;
const __VLS_59 = {
onClick: (__VLS_ctx.handleCopyLink)
};
__VLS_55.slots.default;
var __VLS_55;
const __VLS_60 = {}.ElButton;
/** @type {[typeof __VLS_components.ElButton, typeof __VLS_components.elButton, typeof __VLS_components.ElButton, typeof __VLS_components.elButton, ]} */ ;
// @ts-ignore
const __VLS_61 = __VLS_asFunctionalComponent(__VLS_60, new __VLS_60({
...{ 'onClick': {} },
type: "warning",
size: "large",
}));
const __VLS_62 = __VLS_61({
...{ 'onClick': {} },
type: "warning",
size: "large",
}, ...__VLS_functionalComponentArgsRest(__VLS_61));
let __VLS_64;
let __VLS_65;
let __VLS_66;
const __VLS_67 = {
onClick: (__VLS_ctx.handleRegenerateLink)
};
__VLS_63.slots.default;
var __VLS_63;
const __VLS_68 = {}.ElCard;
/** @type {[typeof __VLS_components.ElCard, typeof __VLS_components.elCard, typeof __VLS_components.ElCard, typeof __VLS_components.elCard, ]} */ ;
// @ts-ignore
const __VLS_69 = __VLS_asFunctionalComponent(__VLS_68, new __VLS_68({
...{ style: {} },
shadow: "hover",
}));
const __VLS_70 = __VLS_69({
...{ style: {} },
shadow: "hover",
}, ...__VLS_functionalComponentArgsRest(__VLS_69));
__VLS_71.slots.default;
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
...{ style: {} },
});
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
...{ style: {} },
});
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
...{ style: {} },
});
(__VLS_ctx.maskedAiUrl);
const __VLS_72 = {}.ElSelect;
/** @type {[typeof __VLS_components.ElSelect, typeof __VLS_components.elSelect, typeof __VLS_components.ElSelect, typeof __VLS_components.elSelect, ]} */ ;
// @ts-ignore
const __VLS_73 = __VLS_asFunctionalComponent(__VLS_72, new __VLS_72({
...{ 'onChange': {} },
modelValue: (null),
placeholder: "⏱️ 设置有效期",
...{ style: {} },
}));
const __VLS_74 = __VLS_73({
...{ 'onChange': {} },
modelValue: (null),
placeholder: "⏱️ 设置有效期",
...{ style: {} },
}, ...__VLS_functionalComponentArgsRest(__VLS_73));
let __VLS_76;
let __VLS_77;
let __VLS_78;
const __VLS_79 = {
onChange: ((val) => __VLS_ctx.handleExpiryChange(val))
};
__VLS_75.slots.default;
for (const [opt] of __VLS_getVForSourceType((__VLS_ctx.expiryOptions))) {
const __VLS_80 = {}.ElOption;
/** @type {[typeof __VLS_components.ElOption, typeof __VLS_components.elOption, ]} */ ;
// @ts-ignore
const __VLS_81 = __VLS_asFunctionalComponent(__VLS_80, new __VLS_80({
key: (opt.value),
label: (opt.label),
value: (opt.value),
}));
const __VLS_82 = __VLS_81({
key: (opt.value),
label: (opt.label),
value: (opt.value),
}, ...__VLS_functionalComponentArgsRest(__VLS_81));
}
var __VLS_75;
const __VLS_84 = {}.ElButton;
/** @type {[typeof __VLS_components.ElButton, typeof __VLS_components.elButton, typeof __VLS_components.ElButton, typeof __VLS_components.elButton, ]} */ ;
// @ts-ignore
const __VLS_85 = __VLS_asFunctionalComponent(__VLS_84, new __VLS_84({
...{ 'onClick': {} },
type: "primary",
size: "large",
}));
const __VLS_86 = __VLS_85({
...{ 'onClick': {} },
type: "primary",
size: "large",
}, ...__VLS_functionalComponentArgsRest(__VLS_85));
let __VLS_88;
let __VLS_89;
let __VLS_90;
const __VLS_91 = {
onClick: (__VLS_ctx.handleCopyLink)
};
__VLS_87.slots.default;
var __VLS_87;
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
...{ style: {} },
});
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
...{ style: ({ color: __VLS_ctx.linkExpiry.is_expired ? '#f56c6c' : '#67c23a', fontWeight: __VLS_ctx.linkExpiry.is_expired ? 'bold' : 'normal' }) },
});
(__VLS_ctx.expiryText);
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
...{ style: {} },
});
var __VLS_71;
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
...{ class: "mobile-actions" },
});
const __VLS_92 = {}.ElButton;
/** @type {[typeof __VLS_components.ElButton, typeof __VLS_components.elButton, typeof __VLS_components.ElButton, typeof __VLS_components.elButton, ]} */ ;
// @ts-ignore
const __VLS_93 = __VLS_asFunctionalComponent(__VLS_92, new __VLS_92({
...{ 'onClick': {} },
...{ style: {} },
}));
const __VLS_94 = __VLS_93({
...{ 'onClick': {} },
...{ style: {} },
}, ...__VLS_functionalComponentArgsRest(__VLS_93));
let __VLS_96;
let __VLS_97;
let __VLS_98;
const __VLS_99 = {
onClick: (...[$event]) => {
if (!(__VLS_ctx.kb))
return;
__VLS_ctx.showMobileSidebar = true;
}
};
__VLS_95.slots.default;
var __VLS_95;
const __VLS_100 = {}.ElButton;
/** @type {[typeof __VLS_components.ElButton, typeof __VLS_components.elButton, typeof __VLS_components.ElButton, typeof __VLS_components.elButton, ]} */ ;
// @ts-ignore
const __VLS_101 = __VLS_asFunctionalComponent(__VLS_100, new __VLS_100({
...{ 'onClick': {} },
...{ style: {} },
}));
const __VLS_102 = __VLS_101({
...{ 'onClick': {} },
...{ style: {} },
}, ...__VLS_functionalComponentArgsRest(__VLS_101));
let __VLS_104;
let __VLS_105;
let __VLS_106;
const __VLS_107 = {
onClick: (__VLS_ctx.openTextDialog)
};
__VLS_103.slots.default;
var __VLS_103;
const __VLS_108 = {}.ElUpload;
/** @type {[typeof __VLS_components.ElUpload, typeof __VLS_components.elUpload, typeof __VLS_components.ElUpload, typeof __VLS_components.elUpload, ]} */ ;
// @ts-ignore
const __VLS_109 = __VLS_asFunctionalComponent(__VLS_108, new __VLS_108({
showFileList: (false),
httpRequest: (__VLS_ctx.handleUpload),
accept: ".docx,.pdf",
...{ style: {} },
}));
const __VLS_110 = __VLS_109({
showFileList: (false),
httpRequest: (__VLS_ctx.handleUpload),
accept: ".docx,.pdf",
...{ style: {} },
}, ...__VLS_functionalComponentArgsRest(__VLS_109));
__VLS_111.slots.default;
const __VLS_112 = {}.ElButton;
/** @type {[typeof __VLS_components.ElButton, typeof __VLS_components.elButton, typeof __VLS_components.ElButton, typeof __VLS_components.elButton, ]} */ ;
// @ts-ignore
const __VLS_113 = __VLS_asFunctionalComponent(__VLS_112, new __VLS_112({
type: "primary",
loading: (__VLS_ctx.uploading),
...{ style: {} },
}));
const __VLS_114 = __VLS_113({
type: "primary",
loading: (__VLS_ctx.uploading),
...{ style: {} },
}, ...__VLS_functionalComponentArgsRest(__VLS_113));
__VLS_115.slots.default;
var __VLS_115;
var __VLS_111;
const __VLS_116 = {}.ElCard;
/** @type {[typeof __VLS_components.ElCard, typeof __VLS_components.elCard, typeof __VLS_components.ElCard, typeof __VLS_components.elCard, ]} */ ;
// @ts-ignore
const __VLS_117 = __VLS_asFunctionalComponent(__VLS_116, new __VLS_116({
shadow: "hover",
}));
const __VLS_118 = __VLS_117({
shadow: "hover",
}, ...__VLS_functionalComponentArgsRest(__VLS_117));
__VLS_119.slots.default;
{
const { header: __VLS_thisSlot } = __VLS_119.slots;
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
...{ style: {} },
});
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
...{ style: {} },
});
if (__VLS_ctx.selectedCategoryPath) {
const __VLS_120 = {}.ElTag;
/** @type {[typeof __VLS_components.ElTag, typeof __VLS_components.elTag, typeof __VLS_components.ElTag, typeof __VLS_components.elTag, ]} */ ;
// @ts-ignore
const __VLS_121 = __VLS_asFunctionalComponent(__VLS_120, new __VLS_120({
...{ 'onClose': {} },
closable: true,
...{ style: {} },
}));
const __VLS_122 = __VLS_121({
...{ 'onClose': {} },
closable: true,
...{ style: {} },
}, ...__VLS_functionalComponentArgsRest(__VLS_121));
let __VLS_124;
let __VLS_125;
let __VLS_126;
const __VLS_127 = {
onClose: (__VLS_ctx.clearCategoryFilter)
};
__VLS_123.slots.default;
(__VLS_ctx.selectedCategoryPath);
var __VLS_123;
}
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
...{ class: "desktop-actions" },
});
const __VLS_128 = {}.ElButton;
/** @type {[typeof __VLS_components.ElButton, typeof __VLS_components.elButton, typeof __VLS_components.ElButton, typeof __VLS_components.elButton, ]} */ ;
// @ts-ignore
const __VLS_129 = __VLS_asFunctionalComponent(__VLS_128, new __VLS_128({
...{ 'onClick': {} },
}));
const __VLS_130 = __VLS_129({
...{ 'onClick': {} },
}, ...__VLS_functionalComponentArgsRest(__VLS_129));
let __VLS_132;
let __VLS_133;
let __VLS_134;
const __VLS_135 = {
onClick: (__VLS_ctx.openTextDialog)
};
__VLS_131.slots.default;
var __VLS_131;
const __VLS_136 = {}.ElUpload;
/** @type {[typeof __VLS_components.ElUpload, typeof __VLS_components.elUpload, typeof __VLS_components.ElUpload, typeof __VLS_components.elUpload, ]} */ ;
// @ts-ignore
const __VLS_137 = __VLS_asFunctionalComponent(__VLS_136, new __VLS_136({
showFileList: (false),
httpRequest: (__VLS_ctx.handleUpload),
accept: ".docx,.pdf",
}));
const __VLS_138 = __VLS_137({
showFileList: (false),
httpRequest: (__VLS_ctx.handleUpload),
accept: ".docx,.pdf",
}, ...__VLS_functionalComponentArgsRest(__VLS_137));
__VLS_139.slots.default;
const __VLS_140 = {}.ElButton;
/** @type {[typeof __VLS_components.ElButton, typeof __VLS_components.elButton, typeof __VLS_components.ElButton, typeof __VLS_components.elButton, ]} */ ;
// @ts-ignore
const __VLS_141 = __VLS_asFunctionalComponent(__VLS_140, new __VLS_140({
type: "primary",
loading: (__VLS_ctx.uploading),
}));
const __VLS_142 = __VLS_141({
type: "primary",
loading: (__VLS_ctx.uploading),
}, ...__VLS_functionalComponentArgsRest(__VLS_141));
__VLS_143.slots.default;
var __VLS_143;
var __VLS_139;
}
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
...{ class: "desktop-table" },
});
const __VLS_144 = {}.ElTable;
/** @type {[typeof __VLS_components.ElTable, typeof __VLS_components.elTable, typeof __VLS_components.ElTable, typeof __VLS_components.elTable, ]} */ ;
// @ts-ignore
const __VLS_145 = __VLS_asFunctionalComponent(__VLS_144, new __VLS_144({
data: (__VLS_ctx.docs),
...{ style: {} },
}));
const __VLS_146 = __VLS_145({
data: (__VLS_ctx.docs),
...{ style: {} },
}, ...__VLS_functionalComponentArgsRest(__VLS_145));
__VLS_asFunctionalDirective(__VLS_directives.vLoading)(null, { ...__VLS_directiveBindingRestFields, value: (__VLS_ctx.loading) }, null, null);
__VLS_147.slots.default;
const __VLS_148 = {}.ElTableColumn;
/** @type {[typeof __VLS_components.ElTableColumn, typeof __VLS_components.elTableColumn, ]} */ ;
// @ts-ignore
const __VLS_149 = __VLS_asFunctionalComponent(__VLS_148, new __VLS_148({
prop: "original_filename",
label: "标题",
minWidth: "180",
showOverflowTooltip: true,
}));
const __VLS_150 = __VLS_149({
prop: "original_filename",
label: "标题",
minWidth: "180",
showOverflowTooltip: true,
}, ...__VLS_functionalComponentArgsRest(__VLS_149));
const __VLS_152 = {}.ElTableColumn;
/** @type {[typeof __VLS_components.ElTableColumn, typeof __VLS_components.elTableColumn, typeof __VLS_components.ElTableColumn, typeof __VLS_components.elTableColumn, ]} */ ;
// @ts-ignore
const __VLS_153 = __VLS_asFunctionalComponent(__VLS_152, new __VLS_152({
label: "目录",
width: "180",
}));
const __VLS_154 = __VLS_153({
label: "目录",
width: "180",
}, ...__VLS_functionalComponentArgsRest(__VLS_153));
__VLS_155.slots.default;
{
const { default: __VLS_thisSlot } = __VLS_155.slots;
const [{ row }] = __VLS_getSlotParams(__VLS_thisSlot);
const __VLS_156 = {}.ElSelect;
/** @type {[typeof __VLS_components.ElSelect, typeof __VLS_components.elSelect, typeof __VLS_components.ElSelect, typeof __VLS_components.elSelect, ]} */ ;
// @ts-ignore
const __VLS_157 = __VLS_asFunctionalComponent(__VLS_156, new __VLS_156({
...{ 'onChange': {} },
modelValue: (row.category_id),
placeholder: "选择目录",
size: "small",
...{ style: {} },
}));
const __VLS_158 = __VLS_157({
...{ 'onChange': {} },
modelValue: (row.category_id),
placeholder: "选择目录",
size: "small",
...{ style: {} },
}, ...__VLS_functionalComponentArgsRest(__VLS_157));
let __VLS_160;
let __VLS_161;
let __VLS_162;
const __VLS_163 = {
onChange: ((val) => __VLS_ctx.handleChangeDocCategory(row, val))
};
__VLS_159.slots.default;
for (const [cat] of __VLS_getVForSourceType((__VLS_ctx.allCategoriesFlat))) {
const __VLS_164 = {}.ElOption;
/** @type {[typeof __VLS_components.ElOption, typeof __VLS_components.elOption, ]} */ ;
// @ts-ignore
const __VLS_165 = __VLS_asFunctionalComponent(__VLS_164, new __VLS_164({
key: (cat.id),
label: (cat.name),
value: (cat.id),
}));
const __VLS_166 = __VLS_165({
key: (cat.id),
label: (cat.name),
value: (cat.id),
}, ...__VLS_functionalComponentArgsRest(__VLS_165));
}
var __VLS_159;
}
var __VLS_155;
const __VLS_168 = {}.ElTableColumn;
/** @type {[typeof __VLS_components.ElTableColumn, typeof __VLS_components.elTableColumn, typeof __VLS_components.ElTableColumn, typeof __VLS_components.elTableColumn, ]} */ ;
// @ts-ignore
const __VLS_169 = __VLS_asFunctionalComponent(__VLS_168, new __VLS_168({
label: "状态",
width: "90",
align: "center",
}));
const __VLS_170 = __VLS_169({
label: "状态",
width: "90",
align: "center",
}, ...__VLS_functionalComponentArgsRest(__VLS_169));
__VLS_171.slots.default;
{
const { default: __VLS_thisSlot } = __VLS_171.slots;
const [{ row }] = __VLS_getSlotParams(__VLS_thisSlot);
const __VLS_172 = {}.ElTag;
/** @type {[typeof __VLS_components.ElTag, typeof __VLS_components.elTag, typeof __VLS_components.ElTag, typeof __VLS_components.elTag, ]} */ ;
// @ts-ignore
const __VLS_173 = __VLS_asFunctionalComponent(__VLS_172, new __VLS_172({
type: (__VLS_ctx.statusType(row.status)),
size: "small",
}));
const __VLS_174 = __VLS_173({
type: (__VLS_ctx.statusType(row.status)),
size: "small",
}, ...__VLS_functionalComponentArgsRest(__VLS_173));
__VLS_175.slots.default;
(row.status);
var __VLS_175;
}
var __VLS_171;
const __VLS_176 = {}.ElTableColumn;
/** @type {[typeof __VLS_components.ElTableColumn, typeof __VLS_components.elTableColumn, typeof __VLS_components.ElTableColumn, typeof __VLS_components.elTableColumn, ]} */ ;
// @ts-ignore
const __VLS_177 = __VLS_asFunctionalComponent(__VLS_176, new __VLS_176({
label: "大小",
width: "80",
align: "center",
}));
const __VLS_178 = __VLS_177({
label: "大小",
width: "80",
align: "center",
}, ...__VLS_functionalComponentArgsRest(__VLS_177));
__VLS_179.slots.default;
{
const { default: __VLS_thisSlot } = __VLS_179.slots;
const [{ row }] = __VLS_getSlotParams(__VLS_thisSlot);
(__VLS_ctx.formatSize(row.file_size));
}
var __VLS_179;
const __VLS_180 = {}.ElTableColumn;
/** @type {[typeof __VLS_components.ElTableColumn, typeof __VLS_components.elTableColumn, typeof __VLS_components.ElTableColumn, typeof __VLS_components.elTableColumn, ]} */ ;
// @ts-ignore
const __VLS_181 = __VLS_asFunctionalComponent(__VLS_180, new __VLS_180({
label: "操作",
width: "180",
align: "center",
}));
const __VLS_182 = __VLS_181({
label: "操作",
width: "180",
align: "center",
}, ...__VLS_functionalComponentArgsRest(__VLS_181));
__VLS_183.slots.default;
{
const { default: __VLS_thisSlot } = __VLS_183.slots;
const [{ row }] = __VLS_getSlotParams(__VLS_thisSlot);
const __VLS_184 = {}.ElButton;
/** @type {[typeof __VLS_components.ElButton, typeof __VLS_components.elButton, typeof __VLS_components.ElButton, typeof __VLS_components.elButton, ]} */ ;
// @ts-ignore
const __VLS_185 = __VLS_asFunctionalComponent(__VLS_184, new __VLS_184({
...{ 'onClick': {} },
size: "small",
}));
const __VLS_186 = __VLS_185({
...{ 'onClick': {} },
size: "small",
}, ...__VLS_functionalComponentArgsRest(__VLS_185));
let __VLS_188;
let __VLS_189;
let __VLS_190;
const __VLS_191 = {
onClick: (...[$event]) => {
if (!(__VLS_ctx.kb))
return;
__VLS_ctx.handleReprocess(row);
}
};
__VLS_187.slots.default;
var __VLS_187;
const __VLS_192 = {}.ElButton;
/** @type {[typeof __VLS_components.ElButton, typeof __VLS_components.elButton, typeof __VLS_components.ElButton, typeof __VLS_components.elButton, ]} */ ;
// @ts-ignore
const __VLS_193 = __VLS_asFunctionalComponent(__VLS_192, new __VLS_192({
...{ 'onClick': {} },
size: "small",
type: "danger",
}));
const __VLS_194 = __VLS_193({
...{ 'onClick': {} },
size: "small",
type: "danger",
}, ...__VLS_functionalComponentArgsRest(__VLS_193));
let __VLS_196;
let __VLS_197;
let __VLS_198;
const __VLS_199 = {
onClick: (...[$event]) => {
if (!(__VLS_ctx.kb))
return;
__VLS_ctx.handleDeleteDoc(row);
}
};
__VLS_195.slots.default;
var __VLS_195;
}
var __VLS_183;
var __VLS_147;
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
...{ class: "mobile-cards" },
});
for (const [doc] of __VLS_getVForSourceType((__VLS_ctx.docs))) {
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
key: (doc.id),
...{ class: "doc-card" },
});
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
...{ style: {} },
});
(doc.original_filename);
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
...{ style: {} },
});
const __VLS_200 = {}.ElTag;
/** @type {[typeof __VLS_components.ElTag, typeof __VLS_components.elTag, typeof __VLS_components.ElTag, typeof __VLS_components.elTag, ]} */ ;
// @ts-ignore
const __VLS_201 = __VLS_asFunctionalComponent(__VLS_200, new __VLS_200({
type: (__VLS_ctx.statusType(doc.status)),
size: "small",
}));
const __VLS_202 = __VLS_201({
type: (__VLS_ctx.statusType(doc.status)),
size: "small",
}, ...__VLS_functionalComponentArgsRest(__VLS_201));
__VLS_203.slots.default;
(doc.status);
var __VLS_203;
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
...{ style: {} },
});
(__VLS_ctx.formatSize(doc.file_size));
const __VLS_204 = {}.ElSelect;
/** @type {[typeof __VLS_components.ElSelect, typeof __VLS_components.elSelect, typeof __VLS_components.ElSelect, typeof __VLS_components.elSelect, ]} */ ;
// @ts-ignore
const __VLS_205 = __VLS_asFunctionalComponent(__VLS_204, new __VLS_204({
...{ 'onChange': {} },
modelValue: (doc.category_id),
placeholder: "选择目录",
size: "small",
...{ style: {} },
}));
const __VLS_206 = __VLS_205({
...{ 'onChange': {} },
modelValue: (doc.category_id),
placeholder: "选择目录",
size: "small",
...{ style: {} },
}, ...__VLS_functionalComponentArgsRest(__VLS_205));
let __VLS_208;
let __VLS_209;
let __VLS_210;
const __VLS_211 = {
onChange: ((val) => __VLS_ctx.handleChangeDocCategory(doc, val))
};
__VLS_207.slots.default;
for (const [cat] of __VLS_getVForSourceType((__VLS_ctx.allCategoriesFlat))) {
const __VLS_212 = {}.ElOption;
/** @type {[typeof __VLS_components.ElOption, typeof __VLS_components.elOption, ]} */ ;
// @ts-ignore
const __VLS_213 = __VLS_asFunctionalComponent(__VLS_212, new __VLS_212({
key: (cat.id),
label: (cat.name),
value: (cat.id),
}));
const __VLS_214 = __VLS_213({
key: (cat.id),
label: (cat.name),
value: (cat.id),
}, ...__VLS_functionalComponentArgsRest(__VLS_213));
}
var __VLS_207;
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
...{ style: {} },
});
const __VLS_216 = {}.ElButton;
/** @type {[typeof __VLS_components.ElButton, typeof __VLS_components.elButton, typeof __VLS_components.ElButton, typeof __VLS_components.elButton, ]} */ ;
// @ts-ignore
const __VLS_217 = __VLS_asFunctionalComponent(__VLS_216, new __VLS_216({
...{ 'onClick': {} },
size: "small",
...{ style: {} },
}));
const __VLS_218 = __VLS_217({
...{ 'onClick': {} },
size: "small",
...{ style: {} },
}, ...__VLS_functionalComponentArgsRest(__VLS_217));
let __VLS_220;
let __VLS_221;
let __VLS_222;
const __VLS_223 = {
onClick: (...[$event]) => {
if (!(__VLS_ctx.kb))
return;
__VLS_ctx.handleReprocess(doc);
}
};
__VLS_219.slots.default;
var __VLS_219;
const __VLS_224 = {}.ElButton;
/** @type {[typeof __VLS_components.ElButton, typeof __VLS_components.elButton, typeof __VLS_components.ElButton, typeof __VLS_components.elButton, ]} */ ;
// @ts-ignore
const __VLS_225 = __VLS_asFunctionalComponent(__VLS_224, new __VLS_224({
...{ 'onClick': {} },
size: "small",
type: "danger",
...{ style: {} },
}));
const __VLS_226 = __VLS_225({
...{ 'onClick': {} },
size: "small",
type: "danger",
...{ style: {} },
}, ...__VLS_functionalComponentArgsRest(__VLS_225));
let __VLS_228;
let __VLS_229;
let __VLS_230;
const __VLS_231 = {
onClick: (...[$event]) => {
if (!(__VLS_ctx.kb))
return;
__VLS_ctx.handleDeleteDoc(doc);
}
};
__VLS_227.slots.default;
var __VLS_227;
}
var __VLS_119;
const __VLS_232 = {}.ElDialog;
/** @type {[typeof __VLS_components.ElDialog, typeof __VLS_components.elDialog, typeof __VLS_components.ElDialog, typeof __VLS_components.elDialog, ]} */ ;
// @ts-ignore
const __VLS_233 = __VLS_asFunctionalComponent(__VLS_232, new __VLS_232({
modelValue: (__VLS_ctx.showTextDialog),
title: "✏️ 添加文本内容",
width: (__VLS_ctx.isMobile ? '95%' : '700px'),
}));
const __VLS_234 = __VLS_233({
modelValue: (__VLS_ctx.showTextDialog),
title: "✏️ 添加文本内容",
width: (__VLS_ctx.isMobile ? '95%' : '700px'),
}, ...__VLS_functionalComponentArgsRest(__VLS_233));
__VLS_235.slots.default;
const __VLS_236 = {}.ElForm;
/** @type {[typeof __VLS_components.ElForm, typeof __VLS_components.elForm, typeof __VLS_components.ElForm, typeof __VLS_components.elForm, ]} */ ;
// @ts-ignore
const __VLS_237 = __VLS_asFunctionalComponent(__VLS_236, new __VLS_236({
model: (__VLS_ctx.textForm),
labelPosition: "top",
}));
const __VLS_238 = __VLS_237({
model: (__VLS_ctx.textForm),
labelPosition: "top",
}, ...__VLS_functionalComponentArgsRest(__VLS_237));
__VLS_239.slots.default;
const __VLS_240 = {}.ElFormItem;
/** @type {[typeof __VLS_components.ElFormItem, typeof __VLS_components.elFormItem, typeof __VLS_components.ElFormItem, typeof __VLS_components.elFormItem, ]} */ ;
// @ts-ignore
const __VLS_241 = __VLS_asFunctionalComponent(__VLS_240, new __VLS_240({
label: "标题",
required: true,
}));
const __VLS_242 = __VLS_241({
label: "标题",
required: true,
}, ...__VLS_functionalComponentArgsRest(__VLS_241));
__VLS_243.slots.default;
const __VLS_244 = {}.ElInput;
/** @type {[typeof __VLS_components.ElInput, typeof __VLS_components.elInput, ]} */ ;
// @ts-ignore
const __VLS_245 = __VLS_asFunctionalComponent(__VLS_244, new __VLS_244({
modelValue: (__VLS_ctx.textForm.title),
placeholder: "文档标题",
size: "large",
}));
const __VLS_246 = __VLS_245({
modelValue: (__VLS_ctx.textForm.title),
placeholder: "文档标题",
size: "large",
}, ...__VLS_functionalComponentArgsRest(__VLS_245));
var __VLS_243;
const __VLS_248 = {}.ElFormItem;
/** @type {[typeof __VLS_components.ElFormItem, typeof __VLS_components.elFormItem, typeof __VLS_components.ElFormItem, typeof __VLS_components.elFormItem, ]} */ ;
// @ts-ignore
const __VLS_249 = __VLS_asFunctionalComponent(__VLS_248, new __VLS_248({
label: "所属目录",
}));
const __VLS_250 = __VLS_249({
label: "所属目录",
}, ...__VLS_functionalComponentArgsRest(__VLS_249));
__VLS_251.slots.default;
const __VLS_252 = {}.ElSelect;
/** @type {[typeof __VLS_components.ElSelect, typeof __VLS_components.elSelect, typeof __VLS_components.ElSelect, typeof __VLS_components.elSelect, ]} */ ;
// @ts-ignore
const __VLS_253 = __VLS_asFunctionalComponent(__VLS_252, new __VLS_252({
modelValue: (__VLS_ctx.textForm.category_id),
placeholder: "选择目录",
clearable: true,
...{ style: {} },
size: "large",
}));
const __VLS_254 = __VLS_253({
modelValue: (__VLS_ctx.textForm.category_id),
placeholder: "选择目录",
clearable: true,
...{ style: {} },
size: "large",
}, ...__VLS_functionalComponentArgsRest(__VLS_253));
__VLS_255.slots.default;
for (const [cat] of __VLS_getVForSourceType((__VLS_ctx.allCategoriesFlat))) {
const __VLS_256 = {}.ElOption;
/** @type {[typeof __VLS_components.ElOption, typeof __VLS_components.elOption, ]} */ ;
// @ts-ignore
const __VLS_257 = __VLS_asFunctionalComponent(__VLS_256, new __VLS_256({
key: (cat.id),
label: (cat.name),
value: (cat.id),
}));
const __VLS_258 = __VLS_257({
key: (cat.id),
label: (cat.name),
value: (cat.id),
}, ...__VLS_functionalComponentArgsRest(__VLS_257));
}
var __VLS_255;
var __VLS_251;
const __VLS_260 = {}.ElFormItem;
/** @type {[typeof __VLS_components.ElFormItem, typeof __VLS_components.elFormItem, typeof __VLS_components.ElFormItem, typeof __VLS_components.elFormItem, ]} */ ;
// @ts-ignore
const __VLS_261 = __VLS_asFunctionalComponent(__VLS_260, new __VLS_260({
label: "格式",
}));
const __VLS_262 = __VLS_261({
label: "格式",
}, ...__VLS_functionalComponentArgsRest(__VLS_261));
__VLS_263.slots.default;
const __VLS_264 = {}.ElRadioGroup;
/** @type {[typeof __VLS_components.ElRadioGroup, typeof __VLS_components.elRadioGroup, typeof __VLS_components.ElRadioGroup, typeof __VLS_components.elRadioGroup, ]} */ ;
// @ts-ignore
const __VLS_265 = __VLS_asFunctionalComponent(__VLS_264, new __VLS_264({
modelValue: (__VLS_ctx.textForm.content_format),
size: "large",
}));
const __VLS_266 = __VLS_265({
modelValue: (__VLS_ctx.textForm.content_format),
size: "large",
}, ...__VLS_functionalComponentArgsRest(__VLS_265));
__VLS_267.slots.default;
const __VLS_268 = {}.ElRadio;
/** @type {[typeof __VLS_components.ElRadio, typeof __VLS_components.elRadio, typeof __VLS_components.ElRadio, typeof __VLS_components.elRadio, ]} */ ;
// @ts-ignore
const __VLS_269 = __VLS_asFunctionalComponent(__VLS_268, new __VLS_268({
value: "markdown",
}));
const __VLS_270 = __VLS_269({
value: "markdown",
}, ...__VLS_functionalComponentArgsRest(__VLS_269));
__VLS_271.slots.default;
var __VLS_271;
const __VLS_272 = {}.ElRadio;
/** @type {[typeof __VLS_components.ElRadio, typeof __VLS_components.elRadio, typeof __VLS_components.ElRadio, typeof __VLS_components.elRadio, ]} */ ;
// @ts-ignore
const __VLS_273 = __VLS_asFunctionalComponent(__VLS_272, new __VLS_272({
value: "text",
}));
const __VLS_274 = __VLS_273({
value: "text",
}, ...__VLS_functionalComponentArgsRest(__VLS_273));
__VLS_275.slots.default;
var __VLS_275;
var __VLS_267;
var __VLS_263;
const __VLS_276 = {}.ElFormItem;
/** @type {[typeof __VLS_components.ElFormItem, typeof __VLS_components.elFormItem, typeof __VLS_components.ElFormItem, typeof __VLS_components.elFormItem, ]} */ ;
// @ts-ignore
const __VLS_277 = __VLS_asFunctionalComponent(__VLS_276, new __VLS_276({
label: "内容",
required: true,
}));
const __VLS_278 = __VLS_277({
label: "内容",
required: true,
}, ...__VLS_functionalComponentArgsRest(__VLS_277));
__VLS_279.slots.default;
const __VLS_280 = {}.ElInput;
/** @type {[typeof __VLS_components.ElInput, typeof __VLS_components.elInput, ]} */ ;
// @ts-ignore
const __VLS_281 = __VLS_asFunctionalComponent(__VLS_280, new __VLS_280({
modelValue: (__VLS_ctx.textForm.content),
type: "textarea",
rows: (12),
placeholder: "输入文本内容(支持 Markdown",
size: "large",
}));
const __VLS_282 = __VLS_281({
modelValue: (__VLS_ctx.textForm.content),
type: "textarea",
rows: (12),
placeholder: "输入文本内容(支持 Markdown",
size: "large",
}, ...__VLS_functionalComponentArgsRest(__VLS_281));
var __VLS_279;
var __VLS_239;
{
const { footer: __VLS_thisSlot } = __VLS_235.slots;
const __VLS_284 = {}.ElButton;
/** @type {[typeof __VLS_components.ElButton, typeof __VLS_components.elButton, typeof __VLS_components.ElButton, typeof __VLS_components.elButton, ]} */ ;
// @ts-ignore
const __VLS_285 = __VLS_asFunctionalComponent(__VLS_284, new __VLS_284({
...{ 'onClick': {} },
size: "large",
}));
const __VLS_286 = __VLS_285({
...{ 'onClick': {} },
size: "large",
}, ...__VLS_functionalComponentArgsRest(__VLS_285));
let __VLS_288;
let __VLS_289;
let __VLS_290;
const __VLS_291 = {
onClick: (...[$event]) => {
if (!(__VLS_ctx.kb))
return;
__VLS_ctx.showTextDialog = false;
}
};
__VLS_287.slots.default;
var __VLS_287;
const __VLS_292 = {}.ElButton;
/** @type {[typeof __VLS_components.ElButton, typeof __VLS_components.elButton, typeof __VLS_components.ElButton, typeof __VLS_components.elButton, ]} */ ;
// @ts-ignore
const __VLS_293 = __VLS_asFunctionalComponent(__VLS_292, new __VLS_292({
...{ 'onClick': {} },
type: "primary",
loading: (__VLS_ctx.textLoading),
size: "large",
}));
const __VLS_294 = __VLS_293({
...{ 'onClick': {} },
type: "primary",
loading: (__VLS_ctx.textLoading),
size: "large",
}, ...__VLS_functionalComponentArgsRest(__VLS_293));
let __VLS_296;
let __VLS_297;
let __VLS_298;
const __VLS_299 = {
onClick: (__VLS_ctx.handleCreateText)
};
__VLS_295.slots.default;
var __VLS_295;
}
var __VLS_235;
const __VLS_300 = {}.ElDialog;
/** @type {[typeof __VLS_components.ElDialog, typeof __VLS_components.elDialog, typeof __VLS_components.ElDialog, typeof __VLS_components.elDialog, ]} */ ;
// @ts-ignore
const __VLS_301 = __VLS_asFunctionalComponent(__VLS_300, new __VLS_300({
modelValue: (__VLS_ctx.showCatDialog),
title: (__VLS_ctx.editingCatId ? '✏️ 编辑目录' : '📁 新建目录'),
width: (__VLS_ctx.isMobile ? '95%' : '450px'),
}));
const __VLS_302 = __VLS_301({
modelValue: (__VLS_ctx.showCatDialog),
title: (__VLS_ctx.editingCatId ? '✏️ 编辑目录' : '📁 新建目录'),
width: (__VLS_ctx.isMobile ? '95%' : '450px'),
}, ...__VLS_functionalComponentArgsRest(__VLS_301));
__VLS_303.slots.default;
const __VLS_304 = {}.ElForm;
/** @type {[typeof __VLS_components.ElForm, typeof __VLS_components.elForm, typeof __VLS_components.ElForm, typeof __VLS_components.elForm, ]} */ ;
// @ts-ignore
const __VLS_305 = __VLS_asFunctionalComponent(__VLS_304, new __VLS_304({
model: (__VLS_ctx.catForm),
labelPosition: "top",
}));
const __VLS_306 = __VLS_305({
model: (__VLS_ctx.catForm),
labelPosition: "top",
}, ...__VLS_functionalComponentArgsRest(__VLS_305));
__VLS_307.slots.default;
const __VLS_308 = {}.ElFormItem;
/** @type {[typeof __VLS_components.ElFormItem, typeof __VLS_components.elFormItem, typeof __VLS_components.ElFormItem, typeof __VLS_components.elFormItem, ]} */ ;
// @ts-ignore
const __VLS_309 = __VLS_asFunctionalComponent(__VLS_308, new __VLS_308({
label: "目录名称",
required: true,
}));
const __VLS_310 = __VLS_309({
label: "目录名称",
required: true,
}, ...__VLS_functionalComponentArgsRest(__VLS_309));
__VLS_311.slots.default;
const __VLS_312 = {}.ElInput;
/** @type {[typeof __VLS_components.ElInput, typeof __VLS_components.elInput, ]} */ ;
// @ts-ignore
const __VLS_313 = __VLS_asFunctionalComponent(__VLS_312, new __VLS_312({
modelValue: (__VLS_ctx.catForm.name),
placeholder: "如:公司基本信息",
size: "large",
}));
const __VLS_314 = __VLS_313({
modelValue: (__VLS_ctx.catForm.name),
placeholder: "如:公司基本信息",
size: "large",
}, ...__VLS_functionalComponentArgsRest(__VLS_313));
var __VLS_311;
const __VLS_316 = {}.ElFormItem;
/** @type {[typeof __VLS_components.ElFormItem, typeof __VLS_components.elFormItem, typeof __VLS_components.ElFormItem, typeof __VLS_components.elFormItem, ]} */ ;
// @ts-ignore
const __VLS_317 = __VLS_asFunctionalComponent(__VLS_316, new __VLS_316({
label: "类型",
}));
const __VLS_318 = __VLS_317({
label: "类型",
}, ...__VLS_functionalComponentArgsRest(__VLS_317));
__VLS_319.slots.default;
const __VLS_320 = {}.ElRadioGroup;
/** @type {[typeof __VLS_components.ElRadioGroup, typeof __VLS_components.elRadioGroup, typeof __VLS_components.ElRadioGroup, typeof __VLS_components.elRadioGroup, ]} */ ;
// @ts-ignore
const __VLS_321 = __VLS_asFunctionalComponent(__VLS_320, new __VLS_320({
modelValue: (__VLS_ctx.catForm.is_folder),
size: "large",
}));
const __VLS_322 = __VLS_321({
modelValue: (__VLS_ctx.catForm.is_folder),
size: "large",
}, ...__VLS_functionalComponentArgsRest(__VLS_321));
__VLS_323.slots.default;
const __VLS_324 = {}.ElRadio;
/** @type {[typeof __VLS_components.ElRadio, typeof __VLS_components.elRadio, typeof __VLS_components.ElRadio, typeof __VLS_components.elRadio, ]} */ ;
// @ts-ignore
const __VLS_325 = __VLS_asFunctionalComponent(__VLS_324, new __VLS_324({
value: (true),
}));
const __VLS_326 = __VLS_325({
value: (true),
}, ...__VLS_functionalComponentArgsRest(__VLS_325));
__VLS_327.slots.default;
var __VLS_327;
const __VLS_328 = {}.ElRadio;
/** @type {[typeof __VLS_components.ElRadio, typeof __VLS_components.elRadio, typeof __VLS_components.ElRadio, typeof __VLS_components.elRadio, ]} */ ;
// @ts-ignore
const __VLS_329 = __VLS_asFunctionalComponent(__VLS_328, new __VLS_328({
value: (false),
}));
const __VLS_330 = __VLS_329({
value: (false),
}, ...__VLS_functionalComponentArgsRest(__VLS_329));
__VLS_331.slots.default;
var __VLS_331;
var __VLS_323;
var __VLS_319;
var __VLS_307;
{
const { footer: __VLS_thisSlot } = __VLS_303.slots;
const __VLS_332 = {}.ElButton;
/** @type {[typeof __VLS_components.ElButton, typeof __VLS_components.elButton, typeof __VLS_components.ElButton, typeof __VLS_components.elButton, ]} */ ;
// @ts-ignore
const __VLS_333 = __VLS_asFunctionalComponent(__VLS_332, new __VLS_332({
...{ 'onClick': {} },
size: "large",
}));
const __VLS_334 = __VLS_333({
...{ 'onClick': {} },
size: "large",
}, ...__VLS_functionalComponentArgsRest(__VLS_333));
let __VLS_336;
let __VLS_337;
let __VLS_338;
const __VLS_339 = {
onClick: (...[$event]) => {
if (!(__VLS_ctx.kb))
return;
__VLS_ctx.showCatDialog = false;
}
};
__VLS_335.slots.default;
var __VLS_335;
const __VLS_340 = {}.ElButton;
/** @type {[typeof __VLS_components.ElButton, typeof __VLS_components.elButton, typeof __VLS_components.ElButton, typeof __VLS_components.elButton, ]} */ ;
// @ts-ignore
const __VLS_341 = __VLS_asFunctionalComponent(__VLS_340, new __VLS_340({
...{ 'onClick': {} },
type: "primary",
loading: (__VLS_ctx.catLoading),
size: "large",
}));
const __VLS_342 = __VLS_341({
...{ 'onClick': {} },
type: "primary",
loading: (__VLS_ctx.catLoading),
size: "large",
}, ...__VLS_functionalComponentArgsRest(__VLS_341));
let __VLS_344;
let __VLS_345;
let __VLS_346;
const __VLS_347 = {
onClick: (__VLS_ctx.handleSaveCategory)
};
__VLS_343.slots.default;
(__VLS_ctx.editingCatId ? '保存' : '创建');
var __VLS_343;
}
var __VLS_303;
}
/** @type {__VLS_StyleScopedClasses['mobile-header']} */ ;
/** @type {__VLS_StyleScopedClasses['main-layout']} */ ;
/** @type {__VLS_StyleScopedClasses['sidebar']} */ ;
/** @type {__VLS_StyleScopedClasses['cat-item']} */ ;
/** @type {__VLS_StyleScopedClasses['tree-node']} */ ;
/** @type {__VLS_StyleScopedClasses['tree-label']} */ ;
/** @type {__VLS_StyleScopedClasses['tree-actions']} */ ;
/** @type {__VLS_StyleScopedClasses['mobile-overlay']} */ ;
/** @type {__VLS_StyleScopedClasses['content']} */ ;
/** @type {__VLS_StyleScopedClasses['desktop-header']} */ ;
/** @type {__VLS_StyleScopedClasses['mobile-actions']} */ ;
/** @type {__VLS_StyleScopedClasses['desktop-actions']} */ ;
/** @type {__VLS_StyleScopedClasses['desktop-table']} */ ;
/** @type {__VLS_StyleScopedClasses['mobile-cards']} */ ;
/** @type {__VLS_StyleScopedClasses['doc-card']} */ ;
var __VLS_dollars;
const __VLS_self = (await import('vue')).defineComponent({
setup() {
return {
isMobile: isMobile,
showMobileSidebar: showMobileSidebar,
kb: kb,
docs: docs,
categories: categories,
allCategoriesFlat: allCategoriesFlat,
loading: loading,
uploading: uploading,
selectedCategoryId: selectedCategoryId,
selectedCategoryPath: selectedCategoryPath,
showTextDialog: showTextDialog,
textForm: textForm,
textLoading: textLoading,
showCatDialog: showCatDialog,
catForm: catForm,
catLoading: catLoading,
editingCatId: editingCatId,
expiryOptions: expiryOptions,
linkExpiry: linkExpiry,
expiryText: expiryText,
handleExpiryChange: handleExpiryChange,
selectCategory: selectCategory,
clearCategoryFilter: clearCategoryFilter,
handleUpload: handleUpload,
openTextDialog: openTextDialog,
handleCreateText: handleCreateText,
handleChangeDocCategory: handleChangeDocCategory,
handleDeleteDoc: handleDeleteDoc,
handleReprocess: handleReprocess,
handleCopyLink: handleCopyLink,
handleRegenerateLink: handleRegenerateLink,
openAddCategory: openAddCategory,
openEditCategory: openEditCategory,
handleSaveCategory: handleSaveCategory,
handleDeleteCategory: handleDeleteCategory,
formatSize: formatSize,
statusType: statusType,
maskedAiUrl: maskedAiUrl,
};
},
});
export default (await import('vue')).defineComponent({
setup() {
return {};
},
});
; /* PartiallyEnd: #4569/main.vue */