修改文档管理表格字段
This commit is contained in:
@@ -81,4 +81,18 @@ export async function getAiCloudFile(id: number) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改AI云文件表
|
||||
*/
|
||||
export async function updateAiCloudFile(data: AiCloudFile) {
|
||||
const res = await request.put<ApiResult<unknown>>(
|
||||
MODULES_API_URL + '/ai/file',
|
||||
data
|
||||
);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
@@ -22,6 +22,26 @@ export interface AiCloudFile {
|
||||
fileUrl?: string;
|
||||
// 文件扩展名
|
||||
fileExt?: string;
|
||||
// 制度标题
|
||||
title?: string;
|
||||
// 发文字号
|
||||
issueNumber?: string;
|
||||
// 版本号
|
||||
version?: string;
|
||||
// 成文日期
|
||||
documentDate?: string;
|
||||
// 生效日期
|
||||
effectiveDate?: string;
|
||||
// 废止日期
|
||||
abolishDate?: string;
|
||||
// 适用业务范围
|
||||
businessScope?: string;
|
||||
// 关联制度
|
||||
relatedDocuments?: string;
|
||||
// 适用区域
|
||||
region?: string;
|
||||
// 备注
|
||||
comments?: string;
|
||||
// 上传时间
|
||||
uploadTime?: string;
|
||||
// 排序(数字越小越靠前)
|
||||
|
||||
@@ -174,6 +174,8 @@
|
||||
</template>
|
||||
<template v-if="column.key === 'action'">
|
||||
<a-space>
|
||||
<a @click="openDocEdit(record)">编辑</a>
|
||||
<a-divider type="vertical" />
|
||||
<a-popconfirm
|
||||
title="确定要删除此文档吗?"
|
||||
@confirm="deleteDoc(record)"
|
||||
@@ -197,6 +199,30 @@
|
||||
:doc="selectedDoc"
|
||||
/>
|
||||
|
||||
<a-modal
|
||||
v-model:visible="showDocEdit"
|
||||
title="编辑文档"
|
||||
width="700px"
|
||||
@ok="handleSaveDoc"
|
||||
@cancel="closeDocEdit"
|
||||
>
|
||||
<a-form :model="docForm" layout="vertical">
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12"><a-form-item label="文件名称"><a-input v-model:value="docForm.fileName" /></a-form-item></a-col>
|
||||
<a-col :span="12"><a-form-item label="制度标题"><a-input v-model:value="docForm.title" /></a-form-item></a-col>
|
||||
<a-col :span="12"><a-form-item label="发文字号"><a-input v-model:value="docForm.issueNumber" /></a-form-item></a-col>
|
||||
<a-col :span="12"><a-form-item label="版本号"><a-input v-model:value="docForm.version" /></a-form-item></a-col>
|
||||
<a-col :span="12"><a-form-item label="成文日期"><a-date-picker v-model:value="docForm.documentDate" value-format="YYYY-MM-DD" style="width: 100%" /></a-form-item></a-col>
|
||||
<a-col :span="12"><a-form-item label="生效日期"><a-date-picker v-model:value="docForm.effectiveDate" value-format="YYYY-MM-DD" style="width: 100%" /></a-form-item></a-col>
|
||||
<a-col :span="12"><a-form-item label="废止日期"><a-date-picker v-model:value="docForm.abolishDate" value-format="YYYY-MM-DD" style="width: 100%" /></a-form-item></a-col>
|
||||
<a-col :span="12"><a-form-item label="适用业务范围"><a-input v-model:value="docForm.businessScope" /></a-form-item></a-col>
|
||||
<a-col :span="12"><a-form-item label="适用区域"><a-input v-model:value="docForm.region" /></a-form-item></a-col>
|
||||
<a-col :span="24"><a-form-item label="关联制度"><a-input v-model:value="docForm.relatedDocuments" /></a-form-item></a-col>
|
||||
<a-col :span="24"><a-form-item label="备注"><a-textarea v-model:value="docForm.comments" :rows="3" /></a-form-item></a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</a-modal>
|
||||
|
||||
<!-- 新增/编辑目录弹窗 -->
|
||||
<a-modal
|
||||
v-model:visible="showDirModal"
|
||||
@@ -258,7 +284,7 @@
|
||||
} from '@/api/ai/aiCloudDoc';
|
||||
import type { AiCloudDoc } from '@/api/ai/aiCloudDoc/model';
|
||||
// 导入AiCloudFile API
|
||||
import { pageAiCloudFile, removeAiCloudFile } from '@/api/ai/aiCloudFile';
|
||||
import { pageAiCloudFile, removeAiCloudFile, updateAiCloudFile } from '@/api/ai/aiCloudFile';
|
||||
import type { AiCloudFile } from '@/api/ai/aiCloudFile/model';
|
||||
|
||||
// 表格实例
|
||||
@@ -276,6 +302,7 @@
|
||||
const showDocManage = ref(false); // 是否显示文档管理弹窗
|
||||
const showImport = ref(false); // 是否显示导入弹窗
|
||||
const showDirModal = ref(false); // 是否显示目录弹窗(新增/编辑)
|
||||
const showDocEdit = ref(false);
|
||||
// 加载状态
|
||||
const loading = ref(true);
|
||||
|
||||
@@ -305,6 +332,31 @@
|
||||
sortNumber: 0
|
||||
});
|
||||
|
||||
const docForm = ref<AiCloudFile>({
|
||||
id: undefined,
|
||||
docId: undefined,
|
||||
fileName: undefined,
|
||||
fileSize: undefined,
|
||||
fileType: undefined,
|
||||
workspaceId: undefined,
|
||||
fileId: undefined,
|
||||
fileUrl: undefined,
|
||||
fileExt: undefined,
|
||||
title: undefined,
|
||||
issueNumber: undefined,
|
||||
version: undefined,
|
||||
documentDate: undefined,
|
||||
effectiveDate: undefined,
|
||||
abolishDate: undefined,
|
||||
businessScope: undefined,
|
||||
relatedDocuments: undefined,
|
||||
region: undefined,
|
||||
comments: undefined,
|
||||
uploadTime: undefined,
|
||||
sortNumber: 0,
|
||||
status: 0
|
||||
});
|
||||
|
||||
// 计算目录弹窗标题
|
||||
const dirModalTitle = computed(() => {
|
||||
const mode = isEditingDir.value ? '编辑' : '新增';
|
||||
@@ -738,6 +790,26 @@
|
||||
}
|
||||
};
|
||||
|
||||
const openDocEdit = (record: AiCloudFile) => {
|
||||
docForm.value = { ...record };
|
||||
showDocEdit.value = true;
|
||||
};
|
||||
|
||||
const closeDocEdit = () => {
|
||||
showDocEdit.value = false;
|
||||
};
|
||||
|
||||
const handleSaveDoc = async () => {
|
||||
try {
|
||||
await updateAiCloudFile(docForm.value);
|
||||
message.success('修改成功');
|
||||
closeDocEdit();
|
||||
await loadCloudFiles();
|
||||
} catch (error: any) {
|
||||
message.error(error.message || '修改失败');
|
||||
}
|
||||
};
|
||||
|
||||
// 打开导入弹窗
|
||||
const openImport = () => {
|
||||
if (selectedKeys.value.length === 0) {
|
||||
|
||||
@@ -33,26 +33,25 @@
|
||||
<a-tag v-if="record.status === 0" color="green">显示</a-tag>
|
||||
<a-tag v-if="record.status === 1" color="red">隐藏</a-tag>
|
||||
</template>
|
||||
<template v-if="column.key === 'action'">
|
||||
<a-space>
|
||||
<a @click="openEdit(record)">修改</a>
|
||||
<a-divider type="vertical" />
|
||||
<!-- 文档管理按钮 -->
|
||||
<a
|
||||
:class="{ 'disabled-text': !record.kbId }"
|
||||
:style="!record.kbId ? 'cursor: not-allowed; color: #999' : ''"
|
||||
@click="record.kbId && openDocManage(record)"
|
||||
>文档管理</a>
|
||||
<a-divider type="vertical"/>
|
||||
<a-popconfirm
|
||||
title="确定要删除此记录吗?"
|
||||
@confirm="remove(record)"
|
||||
v-if="false"
|
||||
>
|
||||
<a class="ele-text-danger">删除</a>
|
||||
</a-popconfirm>
|
||||
</a-space>
|
||||
</template>
|
||||
<template v-if="column.key === 'action'">
|
||||
<a-space>
|
||||
<a @click="openEdit(record)">修改</a>
|
||||
<a-divider type="vertical" />
|
||||
<a
|
||||
:class="{ 'disabled-text': !record.kbId }"
|
||||
:style="!record.kbId ? 'cursor: not-allowed; color: #999' : ''"
|
||||
@click="record.kbId && openDocManage(record)"
|
||||
>文档管理</a>
|
||||
<a-divider type="vertical" />
|
||||
<a-popconfirm
|
||||
title="确定要删除此记录吗?"
|
||||
@confirm="remove(record)"
|
||||
v-if="false"
|
||||
>
|
||||
<a class="ele-text-danger">删除</a>
|
||||
</a-popconfirm>
|
||||
</a-space>
|
||||
</template>
|
||||
</template>
|
||||
</ele-pro-table>
|
||||
</a-card>
|
||||
@@ -148,6 +147,8 @@
|
||||
<template #bodyCell="{ column, record }">
|
||||
<template v-if="column.key === 'action'">
|
||||
<a-space>
|
||||
<a @click="openDocEdit(record)">编辑</a>
|
||||
<a-divider type="vertical" />
|
||||
<a-popconfirm
|
||||
title="确定要删除此文档吗?"
|
||||
@confirm="deleteDoc(record)"
|
||||
@@ -171,6 +172,30 @@
|
||||
:doc="selectedDoc"
|
||||
/>
|
||||
|
||||
<a-modal
|
||||
v-model:visible="showDocEdit"
|
||||
title="编辑文档"
|
||||
width="700px"
|
||||
@ok="handleSaveDoc"
|
||||
@cancel="closeDocEdit"
|
||||
>
|
||||
<a-form :model="docForm" layout="vertical">
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12"><a-form-item label="文件名称"><a-input v-model:value="docForm.fileName" /></a-form-item></a-col>
|
||||
<a-col :span="12"><a-form-item label="制度标题"><a-input v-model:value="docForm.title" /></a-form-item></a-col>
|
||||
<a-col :span="12"><a-form-item label="发文字号"><a-input v-model:value="docForm.issueNumber" /></a-form-item></a-col>
|
||||
<a-col :span="12"><a-form-item label="版本号"><a-input v-model:value="docForm.version" /></a-form-item></a-col>
|
||||
<a-col :span="12"><a-form-item label="成文日期"><a-date-picker v-model:value="docForm.documentDate" value-format="YYYY-MM-DD" style="width: 100%" /></a-form-item></a-col>
|
||||
<a-col :span="12"><a-form-item label="生效日期"><a-date-picker v-model:value="docForm.effectiveDate" value-format="YYYY-MM-DD" style="width: 100%" /></a-form-item></a-col>
|
||||
<a-col :span="12"><a-form-item label="废止日期"><a-date-picker v-model:value="docForm.abolishDate" value-format="YYYY-MM-DD" style="width: 100%" /></a-form-item></a-col>
|
||||
<a-col :span="12"><a-form-item label="适用业务范围"><a-input v-model:value="docForm.businessScope" /></a-form-item></a-col>
|
||||
<a-col :span="12"><a-form-item label="适用区域"><a-input v-model:value="docForm.region" /></a-form-item></a-col>
|
||||
<a-col :span="24"><a-form-item label="关联制度"><a-input v-model:value="docForm.relatedDocuments" /></a-form-item></a-col>
|
||||
<a-col :span="24"><a-form-item label="备注"><a-textarea v-model:value="docForm.comments" :rows="3" /></a-form-item></a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</a-modal>
|
||||
|
||||
<!-- 新增/编辑目录弹窗 -->
|
||||
<a-modal
|
||||
v-model:visible="showDirModal"
|
||||
@@ -214,7 +239,7 @@
|
||||
import Import2 from '@/views/oa/oaCompany/components/Import2.vue';
|
||||
import { listAiCloudDoc, addAiCloudDoc, updateAiCloudDoc, removeAiCloudDoc } from '@/api/ai/aiCloudDoc';
|
||||
import type { AiCloudDoc } from '@/api/ai/aiCloudDoc/model';
|
||||
import { listAiCloudFile, removeAiCloudFile } from '@/api/ai/aiCloudFile';
|
||||
import { listAiCloudFile, removeAiCloudFile, updateAiCloudFile } from '@/api/ai/aiCloudFile';
|
||||
import type { AiCloudFile } from '@/api/ai/aiCloudFile/model';
|
||||
|
||||
// 表格实例
|
||||
@@ -235,6 +260,7 @@
|
||||
const showDocManage = ref(false); // 是否显示文档管理弹窗
|
||||
const showImport = ref(false); // 是否显示导入弹窗
|
||||
const showDirModal = ref(false); // 是否显示目录弹窗(新增/编辑)
|
||||
const showDocEdit = ref(false);
|
||||
|
||||
// 文档管理相关变量
|
||||
const currentKbId = ref(''); // 当前知识库ID
|
||||
@@ -259,6 +285,31 @@
|
||||
sortNumber: 0
|
||||
});
|
||||
|
||||
const docForm = ref<AiCloudFile>({
|
||||
id: undefined,
|
||||
docId: undefined,
|
||||
fileName: undefined,
|
||||
fileSize: undefined,
|
||||
fileType: undefined,
|
||||
workspaceId: undefined,
|
||||
fileId: undefined,
|
||||
fileUrl: undefined,
|
||||
fileExt: undefined,
|
||||
title: undefined,
|
||||
issueNumber: undefined,
|
||||
version: undefined,
|
||||
documentDate: undefined,
|
||||
effectiveDate: undefined,
|
||||
abolishDate: undefined,
|
||||
businessScope: undefined,
|
||||
relatedDocuments: undefined,
|
||||
region: undefined,
|
||||
comments: undefined,
|
||||
uploadTime: undefined,
|
||||
sortNumber: 0,
|
||||
status: 0
|
||||
});
|
||||
|
||||
// 计算目录弹窗标题
|
||||
const dirModalTitle = computed(() => {
|
||||
const mode = isEditingDir.value ? '编辑' : '新增';
|
||||
@@ -664,6 +715,26 @@
|
||||
}
|
||||
};
|
||||
|
||||
const openDocEdit = (record: AiCloudFile) => {
|
||||
docForm.value = { ...record };
|
||||
showDocEdit.value = true;
|
||||
};
|
||||
|
||||
const closeDocEdit = () => {
|
||||
showDocEdit.value = false;
|
||||
};
|
||||
|
||||
const handleSaveDoc = async () => {
|
||||
try {
|
||||
await updateAiCloudFile(docForm.value);
|
||||
message.success('修改成功');
|
||||
closeDocEdit();
|
||||
await loadCloudFiles();
|
||||
} catch (error: any) {
|
||||
message.error(error.message || '修改失败');
|
||||
}
|
||||
};
|
||||
|
||||
// 打开导入弹窗
|
||||
const openImport = () => {
|
||||
if (selectedKeys.value.length === 0) {
|
||||
|
||||
Reference in New Issue
Block a user