档案管理

This commit is contained in:
cwchen 2025-09-16 15:03:25 +08:00
parent b5bc20fb8b
commit fab9b91529
8 changed files with 118 additions and 19 deletions

View File

@ -9,3 +9,85 @@ export function getProListAPI(data) {
params: data, params: data,
}) })
} }
// 获取档案目录树
export function getFileManageTreeApi(params) {
return request({
url: '/smartArchives/fileManage/getFileManageTree',
method: 'get',
params,
})
}
// 新增档案目录
export function addArchiveLeftApi(data) {
return request({
url: '/smartArchives/fileManage/addLeft',
method: 'post',
data:data
})
}
// 新增档案表格数据
export function addArchiveRightApi(data) {
return request({
url: '/smartArchives/fileManage/addRight',
method: 'post',
data:data
})
}
// 修改档案目录
export function editArchiveLeftApi(data) {
return request({
url: '/smartArchives/fileManage/editLeft',
method: 'post',
data:data,
})
}
// 修改档案目录
export function editArchiveRightApi(data) {
return request({
url: '/smartArchives/fileManage/editRight',
method: 'post',
data:data,
})
}
// 删除档案目录
export function delFileManageApi(data) {
return request({
url: '/smartArchives/fileManage/delFileManage',
method: 'post',
data:data,
})
}
// 编辑-详情
export function getArchivalCatalogueByIdApi(params) {
return request({
url: '/smartArchives/fileManage/getArchivalCatalogueById',
method: 'get',
params
})
}
// 列表
export function getArchivalCatalogueListApi(params) {
return request({
url: '/smartArchives/fileManage/getArchivalCatalogue',
method: 'get',
params
})
}
// 查询序号
export function geMaxSortApi(params) {
return request({
url: '/smartArchives/fileManage/geMaxSort',
method: 'get',
params
})
}

View File

@ -5,10 +5,10 @@
<div> <div>
<el-form :model="form" :rules="rules" ref="ruleForm" label-width="110px"> <el-form :model="form" :rules="rules" ref="ruleForm" label-width="110px">
<el-form-item label="所属案卷"> <el-form-item label="所属案卷">
<el-input type="textarea" class="form-item" :value="belongName" :disabled="true"></el-input> <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 6 }" class="form-item" :value="belongName" :disabled="true"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="文件题名" prop="contentName"> <el-form-item label="文件题名" prop="contentName">
<el-input type="textarea" class="form-item" v-model="form.contentName" clearable show-word-limit <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 6 }" class="form-item" v-model="form.contentName" clearable show-word-limit
placeholder="请输入文件题名" maxlength="64" :disabled="detailStatus"></el-input> placeholder="请输入文件题名" maxlength="64" :disabled="detailStatus"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="案卷期限" prop="term"> <el-form-item label="案卷期限" prop="term">

View File

@ -10,7 +10,7 @@
@select="onParentSelect" noChildrenText="没有数据了" noOptionsText="没有数据了" noResultsText="没有搜索结果" /> @select="onParentSelect" noChildrenText="没有数据了" noOptionsText="没有数据了" noResultsText="没有搜索结果" />
</el-form-item> </el-form-item>
<el-form-item :label="getFormLabel('contentName')" prop="contentName"> <el-form-item :label="getFormLabel('contentName')" prop="contentName">
<el-input type="textarea" class="form-item" v-model="form.contentName" clearable show-word-limit <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 6 }" class="form-item" v-model="form.contentName" clearable show-word-limit
:placeholder="getFormPlaceholder('contentName')" maxlength="64"></el-input> :placeholder="getFormPlaceholder('contentName')" maxlength="64"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="getFormLabel('sort')" prop="sort"> <el-form-item :label="getFormLabel('sort')" prop="sort">

View File

@ -33,7 +33,7 @@
import _ from 'lodash' import _ from 'lodash'
import Treeselect from "@riophae/vue-treeselect"; import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import { getArchivalCatalogueTreeApi, addArchiveLeftApi, editArchiveLeftApi,geMaxSortApi } from '@/api/archivesManagement/index.js' import { getArchivalCatalogueTreeApi, addFileManageApi, updateFileManageApi,geMaxSortApi } from '@/api/archivesManagement/index.js'
export default { export default {
name: "FileAddTreeData", name: "FileAddTreeData",
props: ["width", "dataForm", "title", "disabled", "isAdd", "rowData"], props: ["width", "dataForm", "title", "disabled", "isAdd", "rowData"],
@ -276,7 +276,7 @@ export default {
let params = _.cloneDeep(this.form); let params = _.cloneDeep(this.form);
if (this.isAdd === 'add') { if (this.isAdd === 'add') {
addArchiveLeftApi(params).then(res => { addFileManageApi(params).then(res => {
this.loading.close(); this.loading.close();
if (res.code === 200) { if (res.code === 200) {
this.handleReuslt(res); this.handleReuslt(res);
@ -288,7 +288,7 @@ export default {
// this.$modal.msgError(''); // this.$modal.msgError('');
}); });
} else { } else {
editArchiveLeftApi(params).then(res => { updateFileManageApi(params).then(res => {
this.loading.close(); this.loading.close();
if (res.code === 200) { if (res.code === 200) {
this.handleReuslt(res); this.handleReuslt(res);

View File

@ -35,7 +35,8 @@
@click.stop="() => addTree(data)" v-hasPermi="['archive:catalogue:add']"> @click.stop="() => addTree(data)" v-hasPermi="['archive:catalogue:add']">
</el-button> </el-button>
<el-button type="text" v-if="node.level > 1" icon="el-icon-edit-outline" <el-button type="text" v-if="node.level > 1" icon="el-icon-edit-outline"
style="color: #007ce0" @click.stop="() => editTree(node, data)" v-hasPermi="['archive:catalogue:edit']"> style="color: #007ce0" @click.stop="() => editTree(node, data)"
v-hasPermi="['archive:catalogue:edit']">
</el-button> </el-button>
<el-button type="text" v-if="node.level > 1" icon="el-icon-delete" style="color: #f00000;" <el-button type="text" v-if="node.level > 1" icon="el-icon-delete" style="color: #f00000;"
@click.stop="() => delTree(node, data)" v-hasPermi="['archive:catalogue:del']"> @click.stop="() => delTree(node, data)" v-hasPermi="['archive:catalogue:del']">
@ -53,11 +54,17 @@
</template> </template>
<script> <script>
import { getArchivalCatalogueTreeApi,delArchiveApi } from '@/api/archivesManagement/index.js' import { getFileManageTreeApi, delFileManageApi } from '@/api/archivesManagement/fileManager/fileManager.js'
import AddTreeData from './addTreeData.vue' import AddTreeData from './addTreeData.vue'
export default { export default {
name: 'FileLeftTree', name: 'FileLeftTree',
components: { AddTreeData }, components: { AddTreeData },
props: {
projectId: {
type: [String, Number],
default: 0
}
},
data() { data() {
return { return {
treeDataList: [], treeDataList: [],
@ -67,7 +74,7 @@ export default {
isAdd: '', isAdd: '',
row: {}, row: {},
selectedNodeId: null, // ID selectedNodeId: null, // ID
delArchiveApi delFileManageApi
} }
}, },
computed: { computed: {
@ -122,11 +129,11 @@ export default {
this.isflag = true; this.isflag = true;
}, },
/* 删除树节点 */ /* 删除树节点 */
delTree(row, data){ delTree(row, data) {
this.$modal.confirm(`是否确认删除节点名称为"${row.label}"的数据项?`).then(() => { this.$modal.confirm(`是否确认删除节点名称为"${row.label}"的数据项?`).then(() => {
// //
this.$modal.loading("正在删除,请稍候..."); this.$modal.loading("正在删除,请稍候...");
delArchiveApi({ id: data.id }).then(res => { delFileManageApi({ id: data.id }).then(res => {
this.$modal.closeLoading(); this.$modal.closeLoading();
if (res.code === 200) { if (res.code === 200) {
this.$modal.msgSuccess("删除成功"); this.$modal.msgSuccess("删除成功");
@ -163,7 +170,7 @@ export default {
level: item.level, level: item.level,
sort: item.sort, sort: item.sort,
parentId: item.parentId, parentId: item.parentId,
parentName:item.parentName parentName: item.parentName
}; };
// //
@ -193,7 +200,7 @@ export default {
}, },
// //
async getLeftTreeList() { async getLeftTreeList() {
const res = await getArchivalCatalogueTreeApi() const res = await getFileManageTreeApi()
const transformedData = this.convertToVueTree(res.data) const transformedData = this.convertToVueTree(res.data)
this.treeDataList = transformedData; this.treeDataList = transformedData;
// //
@ -274,8 +281,10 @@ export default {
min-width: 0; min-width: 0;
overflow: visible; overflow: visible;
text-overflow: initial; text-overflow: initial;
white-space: normal; /* 允许换行 */ white-space: normal;
word-break: break-word; /* 长词断行 */ /* 允许换行 */
word-break: break-word;
/* 长词断行 */
line-height: 20px; line-height: 20px;
} }
@ -291,7 +300,7 @@ export default {
} }
/* 高亮选中状态同样自适应高度 */ /* 高亮选中状态同样自适应高度 */
.el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content { .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
height: auto !important; height: auto !important;
align-items: flex-start; align-items: flex-start;
line-height: 20px; line-height: 20px;
@ -317,9 +326,11 @@ export default {
.left-tree-list .el-tree-node__content:hover { .left-tree-list .el-tree-node__content:hover {
background-color: #f5f5f5; background-color: #f5f5f5;
} }
.el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content {
.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
height: auto; height: auto;
} }
/* 选中节点的悬停效果 */ /* 选中节点的悬停效果 */
.left-tree-list .el-tree-node.is-current>.el-tree-node__content:hover { .left-tree-list .el-tree-node.is-current>.el-tree-node__content:hover {
background-color: #8cc8ff; background-color: #8cc8ff;

View File

@ -39,7 +39,7 @@ import { columnsList, formLabel } from './config'
import { import {
delArchiveApi, delArchiveApi,
getArchivalCatalogueListApi, getArchivalCatalogueListApi,
} from '@/api/archivesManagement/index' } from '@/api/archivesManagement/fileManager/fileManager.js'
import AddTableData from './addTableData' import AddTableData from './addTableData'

View File

@ -12,7 +12,7 @@
</el-card> </el-card>
<el-row :gutter="24" class="content-row"> <el-row :gutter="24" class="content-row">
<el-col :span="9" class="pane-left"> <el-col :span="9" class="pane-left">
<LeftTree @handleNodeClick="handleNodeClick" /> <LeftTree @handleNodeClick="handleNodeClick" :projectId="projectId" />
</el-col> </el-col>
<el-col :span="15" class="pane-right"> <el-col :span="15" class="pane-right">
<RightTable :selectedNode = "selectedNode" /> <RightTable :selectedNode = "selectedNode" />

View File

@ -0,0 +1,6 @@
<template>
<!-- 归档配置 -->
<div class="app-container">
</div>
</template>