修改文档管理表格字段
This commit is contained in:
@@ -82,3 +82,17 @@ export async function getAiCloudFile(id: number) {
|
|||||||
}
|
}
|
||||||
return Promise.reject(new Error(res.data.message));
|
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;
|
fileUrl?: string;
|
||||||
// 文件扩展名
|
// 文件扩展名
|
||||||
fileExt?: 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;
|
uploadTime?: string;
|
||||||
// 排序(数字越小越靠前)
|
// 排序(数字越小越靠前)
|
||||||
|
|||||||
@@ -174,6 +174,8 @@
|
|||||||
</template>
|
</template>
|
||||||
<template v-if="column.key === 'action'">
|
<template v-if="column.key === 'action'">
|
||||||
<a-space>
|
<a-space>
|
||||||
|
<a @click="openDocEdit(record)">编辑</a>
|
||||||
|
<a-divider type="vertical" />
|
||||||
<a-popconfirm
|
<a-popconfirm
|
||||||
title="确定要删除此文档吗?"
|
title="确定要删除此文档吗?"
|
||||||
@confirm="deleteDoc(record)"
|
@confirm="deleteDoc(record)"
|
||||||
@@ -197,6 +199,30 @@
|
|||||||
:doc="selectedDoc"
|
: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
|
<a-modal
|
||||||
v-model:visible="showDirModal"
|
v-model:visible="showDirModal"
|
||||||
@@ -258,7 +284,7 @@
|
|||||||
} from '@/api/ai/aiCloudDoc';
|
} from '@/api/ai/aiCloudDoc';
|
||||||
import type { AiCloudDoc } from '@/api/ai/aiCloudDoc/model';
|
import type { AiCloudDoc } from '@/api/ai/aiCloudDoc/model';
|
||||||
// 导入AiCloudFile API
|
// 导入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';
|
import type { AiCloudFile } from '@/api/ai/aiCloudFile/model';
|
||||||
|
|
||||||
// 表格实例
|
// 表格实例
|
||||||
@@ -276,6 +302,7 @@
|
|||||||
const showDocManage = ref(false); // 是否显示文档管理弹窗
|
const showDocManage = ref(false); // 是否显示文档管理弹窗
|
||||||
const showImport = ref(false); // 是否显示导入弹窗
|
const showImport = ref(false); // 是否显示导入弹窗
|
||||||
const showDirModal = ref(false); // 是否显示目录弹窗(新增/编辑)
|
const showDirModal = ref(false); // 是否显示目录弹窗(新增/编辑)
|
||||||
|
const showDocEdit = ref(false);
|
||||||
// 加载状态
|
// 加载状态
|
||||||
const loading = ref(true);
|
const loading = ref(true);
|
||||||
|
|
||||||
@@ -305,6 +332,31 @@
|
|||||||
sortNumber: 0
|
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 dirModalTitle = computed(() => {
|
||||||
const mode = isEditingDir.value ? '编辑' : '新增';
|
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 = () => {
|
const openImport = () => {
|
||||||
if (selectedKeys.value.length === 0) {
|
if (selectedKeys.value.length === 0) {
|
||||||
|
|||||||
@@ -37,13 +37,12 @@
|
|||||||
<a-space>
|
<a-space>
|
||||||
<a @click="openEdit(record)">修改</a>
|
<a @click="openEdit(record)">修改</a>
|
||||||
<a-divider type="vertical" />
|
<a-divider type="vertical" />
|
||||||
<!-- 文档管理按钮 -->
|
|
||||||
<a
|
<a
|
||||||
:class="{ 'disabled-text': !record.kbId }"
|
:class="{ 'disabled-text': !record.kbId }"
|
||||||
:style="!record.kbId ? 'cursor: not-allowed; color: #999' : ''"
|
:style="!record.kbId ? 'cursor: not-allowed; color: #999' : ''"
|
||||||
@click="record.kbId && openDocManage(record)"
|
@click="record.kbId && openDocManage(record)"
|
||||||
>文档管理</a>
|
>文档管理</a>
|
||||||
<a-divider type="vertical"/>
|
<a-divider type="vertical" />
|
||||||
<a-popconfirm
|
<a-popconfirm
|
||||||
title="确定要删除此记录吗?"
|
title="确定要删除此记录吗?"
|
||||||
@confirm="remove(record)"
|
@confirm="remove(record)"
|
||||||
@@ -148,6 +147,8 @@
|
|||||||
<template #bodyCell="{ column, record }">
|
<template #bodyCell="{ column, record }">
|
||||||
<template v-if="column.key === 'action'">
|
<template v-if="column.key === 'action'">
|
||||||
<a-space>
|
<a-space>
|
||||||
|
<a @click="openDocEdit(record)">编辑</a>
|
||||||
|
<a-divider type="vertical" />
|
||||||
<a-popconfirm
|
<a-popconfirm
|
||||||
title="确定要删除此文档吗?"
|
title="确定要删除此文档吗?"
|
||||||
@confirm="deleteDoc(record)"
|
@confirm="deleteDoc(record)"
|
||||||
@@ -171,6 +172,30 @@
|
|||||||
:doc="selectedDoc"
|
: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
|
<a-modal
|
||||||
v-model:visible="showDirModal"
|
v-model:visible="showDirModal"
|
||||||
@@ -214,7 +239,7 @@
|
|||||||
import Import2 from '@/views/oa/oaCompany/components/Import2.vue';
|
import Import2 from '@/views/oa/oaCompany/components/Import2.vue';
|
||||||
import { listAiCloudDoc, addAiCloudDoc, updateAiCloudDoc, removeAiCloudDoc } from '@/api/ai/aiCloudDoc';
|
import { listAiCloudDoc, addAiCloudDoc, updateAiCloudDoc, removeAiCloudDoc } from '@/api/ai/aiCloudDoc';
|
||||||
import type { AiCloudDoc } from '@/api/ai/aiCloudDoc/model';
|
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';
|
import type { AiCloudFile } from '@/api/ai/aiCloudFile/model';
|
||||||
|
|
||||||
// 表格实例
|
// 表格实例
|
||||||
@@ -235,6 +260,7 @@
|
|||||||
const showDocManage = ref(false); // 是否显示文档管理弹窗
|
const showDocManage = ref(false); // 是否显示文档管理弹窗
|
||||||
const showImport = ref(false); // 是否显示导入弹窗
|
const showImport = ref(false); // 是否显示导入弹窗
|
||||||
const showDirModal = ref(false); // 是否显示目录弹窗(新增/编辑)
|
const showDirModal = ref(false); // 是否显示目录弹窗(新增/编辑)
|
||||||
|
const showDocEdit = ref(false);
|
||||||
|
|
||||||
// 文档管理相关变量
|
// 文档管理相关变量
|
||||||
const currentKbId = ref(''); // 当前知识库ID
|
const currentKbId = ref(''); // 当前知识库ID
|
||||||
@@ -259,6 +285,31 @@
|
|||||||
sortNumber: 0
|
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 dirModalTitle = computed(() => {
|
||||||
const mode = isEditingDir.value ? '编辑' : '新增';
|
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 = () => {
|
const openImport = () => {
|
||||||
if (selectedKeys.value.length === 0) {
|
if (selectedKeys.value.length === 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user