diff --git a/backend/src/api/oaDocument.js b/backend/src/api/oaDocument.js new file mode 100644 index 0000000..e3affe0 --- /dev/null +++ b/backend/src/api/oaDocument.js @@ -0,0 +1,188 @@ +import request from "@/utils/request"; + +// OA 文档管理(文档库 / 文档图谱) +// 后端统一返回 { code, msg, data },响应拦截器只剥离外层,调用方需自行取 res.data + +// ---------------- 分类 ---------------- + +// 分类树(每个节点带 doc_count) +export function getDocCategories() { + return request({ + url: "/backend/oa/document/categories", + method: "get" + }); +} + +export function createDocCategory(data) { + return request({ + url: "/backend/oa/document/categories", + method: "post", + data + }); +} + +export function updateDocCategory(id, data) { + return request({ + url: `/backend/oa/document/categories/${id}`, + method: "post", + data + }); +} + +export function deleteDocCategory(id) { + return request({ + url: `/backend/oa/document/categories/${id}`, + method: "delete" + }); +} + +// ---------------- 文档 ---------------- + +export function getDocList(params) { + return request({ + url: "/backend/oa/document/list", + method: "get", + params + }); +} + +export function getDocStats() { + return request({ + url: "/backend/oa/document/stats", + method: "get" + }); +} + +// 详情(后端会累加查看次数) +export function getDocDetail(id) { + return request({ + url: `/backend/oa/document/detail/${id}`, + method: "get" + }); +} + +export function createDoc(data) { + return request({ + url: "/backend/oa/document/create", + method: "post", + data + }); +} + +export function updateDoc(id, data) { + return request({ + url: `/backend/oa/document/update/${id}`, + method: "post", + data + }); +} + +export function deleteDoc(id) { + return request({ + url: `/backend/oa/document/delete/${id}`, + method: "delete" + }); +} + +export function batchDeleteDocs(ids) { + return request({ + url: "/backend/oa/document/delete-batch", + method: "post", + data: { ids } + }); +} + +export function moveDocs(ids, categoryId) { + return request({ + url: "/backend/oa/document/move", + method: "post", + data: { ids, category_id: categoryId } + }); +} + +// 收藏 / 取消收藏 +export function toggleDocStar(id) { + return request({ + url: `/backend/oa/document/star/${id}`, + method: "post" + }); +} + +// 记录下载次数并取回下载地址 +export function recordDocDownload(id) { + return request({ + url: `/backend/oa/document/download/${id}`, + method: "post" + }); +} + +// ---------------- 文档关联 ---------------- + +export function getDocLinks(params) { + return request({ + url: "/backend/oa/document/links", + method: "get", + params + }); +} + +export function createDocLink(data) { + return request({ + url: "/backend/oa/document/links", + method: "post", + data + }); +} + +export function deleteDocLink(id) { + return request({ + url: `/backend/oa/document/links/${id}`, + method: "delete" + }); +} + +// ---------------- 文档私密共享 ---------------- + +// 租户用户列表(私密文档共享选人) +export function getDocMembers(params) { + return request({ + url: "/backend/oa/document/members", + method: "get", + params + }); +} + +// 读取文档共享清单 +export function getDocShares(id) { + return request({ + url: `/backend/oa/document/shares/${id}`, + method: "get" + }); +} + +// 全量设置文档共享(shares: [{ share_type, target_id }]) +export function setDocShares(id, shares) { + return request({ + url: `/backend/oa/document/shares/${id}`, + method: "post", + data: { shares } + }); +} + +// 删除单条共享 +export function removeDocShare(sid) { + return request({ + url: `/backend/oa/document/share/${sid}`, + method: "delete" + }); +} + +// ---------------- 文档图谱 ---------------- + +export function getDocGraph(params) { + return request({ + url: "/backend/oa/document/graph", + method: "get", + params + }); +} diff --git a/backend/src/views/apps/oa/document/documentgraph/index.vue b/backend/src/views/apps/oa/document/documentgraph/index.vue index e69de29..c4b422c 100644 --- a/backend/src/views/apps/oa/document/documentgraph/index.vue +++ b/backend/src/views/apps/oa/document/documentgraph/index.vue @@ -0,0 +1,666 @@ + + + + + diff --git a/backend/src/views/apps/oa/document/documentlibrary/components/docDetailDrawer.vue b/backend/src/views/apps/oa/document/documentlibrary/components/docDetailDrawer.vue new file mode 100644 index 0000000..b0beb68 --- /dev/null +++ b/backend/src/views/apps/oa/document/documentlibrary/components/docDetailDrawer.vue @@ -0,0 +1,563 @@ + + + + + diff --git a/backend/src/views/apps/oa/document/documentlibrary/components/editDialog.vue b/backend/src/views/apps/oa/document/documentlibrary/components/editDialog.vue new file mode 100644 index 0000000..146ec45 --- /dev/null +++ b/backend/src/views/apps/oa/document/documentlibrary/components/editDialog.vue @@ -0,0 +1,162 @@ + + + diff --git a/backend/src/views/apps/oa/document/documentlibrary/components/index.vue b/backend/src/views/apps/oa/document/documentlibrary/components/index.vue deleted file mode 100644 index e69de29..0000000 diff --git a/backend/src/views/apps/oa/document/documentlibrary/components/uploadDialog.vue b/backend/src/views/apps/oa/document/documentlibrary/components/uploadDialog.vue new file mode 100644 index 0000000..bb6c680 --- /dev/null +++ b/backend/src/views/apps/oa/document/documentlibrary/components/uploadDialog.vue @@ -0,0 +1,285 @@ + + + + + diff --git a/backend/src/views/apps/oa/document/documentlibrary/index.vue b/backend/src/views/apps/oa/document/documentlibrary/index.vue new file mode 100644 index 0000000..882b9a0 --- /dev/null +++ b/backend/src/views/apps/oa/document/documentlibrary/index.vue @@ -0,0 +1,1062 @@ +