|
|
@ -31,7 +31,8 @@ |
|
|
|
</div> |
|
|
|
<el-row :gutter="20"> |
|
|
|
<el-col :span="6"> |
|
|
|
<treecomponent @nodeClick="nodeClick" ref="treeComponentRef"> |
|
|
|
<treecomponent @nodeClick="nodeClick" @editxiangmu="editxiangmu" @delxiangmu="delxiangmu" :treeData="treeData" |
|
|
|
ref="treeComponentRef" v-loading="treeLoading"> |
|
|
|
</treecomponent> |
|
|
|
</el-col> |
|
|
|
<el-col :span="18"> |
|
|
@ -87,7 +88,7 @@ |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</div> |
|
|
|
<div v-loading="loading"> |
|
|
|
<div v-loading="tableLoading"> |
|
|
|
<tablecomponent :tableHeader="tableHeader" :tableData="tableData" @view="viewFile" @edit="editFile" |
|
|
|
@unregister="unregisterFile" @download="downloadFile" ref="tableComponentRef"> |
|
|
|
</tablecomponent> |
|
|
@ -100,8 +101,19 @@ |
|
|
|
</formcomponent> |
|
|
|
<template #footer> |
|
|
|
<div> |
|
|
|
<el-button @click="cancelDialog">取消</el-button> |
|
|
|
<el-button type="primary" @click="submitDialog"> 确认 </el-button> |
|
|
|
<el-button @click="canceldanganDialog">取消</el-button> |
|
|
|
<el-button type="primary" @click="submitdanganDialog"> 确认 </el-button> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-dialog> |
|
|
|
<el-dialog v-model="addFileForm.visible" :title="addFileForm.title" width="80%" :close-on-click-modal="false"> |
|
|
|
<formcomponent :formHeader="addFileForm.formHeader" :formData="addFileForm.formData" |
|
|
|
:disabled="addFileForm.disabled"> |
|
|
|
</formcomponent> |
|
|
|
<template #footer> |
|
|
|
<div> |
|
|
|
<el-button @click="cancelFileDialog">取消</el-button> |
|
|
|
<el-button type="primary" @click="submitFileDialog"> 确认 </el-button> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-dialog> |
|
|
@ -111,6 +123,7 @@ |
|
|
|
<script> |
|
|
|
import _ from 'lodash' |
|
|
|
import * as XLSX from 'xlsx'; |
|
|
|
import { v5 } from "uuid"; |
|
|
|
import tableHeaderLocal from '../assets/json/file.json' |
|
|
|
import { myDatabase } from '../assets/js/db.js' |
|
|
|
import dayjs from 'dayjs' |
|
|
@ -196,6 +209,14 @@ export default { |
|
|
|
value: "unregister" |
|
|
|
}, |
|
|
|
], |
|
|
|
level1: [], |
|
|
|
level2: ["主卷", "副卷", "备考卷"], |
|
|
|
level3: { |
|
|
|
"主卷": ["文字卷", "图纸卷", "照片卷", "拓片及慕本卷", "保护规划及保护工程方案卷", "文物调查及考古发掘卷", "文物保护工程及防治监测卷", "文物展示卷", "电子文件卷"], |
|
|
|
"副卷": ["行政管理文件", "法律文书卷", "大事记卷"], |
|
|
|
"备考卷": ["参考资料卷", "论文卷", "图书卷"], |
|
|
|
}, |
|
|
|
treeData: [], |
|
|
|
tableHeader: [], |
|
|
|
formHeader: [], |
|
|
|
exportHeader: [], |
|
|
@ -216,35 +237,120 @@ export default { |
|
|
|
formHeader: [], |
|
|
|
formData: {} |
|
|
|
}, |
|
|
|
loading: false, |
|
|
|
uuidNameSpace: "8268af6b-7ef5-5d6d-a489-2d641dfb53bb", |
|
|
|
treeLoading: false, |
|
|
|
tableLoading: false, |
|
|
|
} |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
//搜索数据(树状) |
|
|
|
async searchTree(params = {}, isAll = false) { |
|
|
|
|
|
|
|
async searchTree() { |
|
|
|
this.treeLoading = true |
|
|
|
let collection = myDatabase.treeList |
|
|
|
let xianmguName = _.trim(this.xiangmuObj.xianmguName) |
|
|
|
if (xianmguName) { |
|
|
|
let reg = new RegExp(xianmguName, "i") |
|
|
|
collection = collection.filter((equip) => reg.test(equip.label)) |
|
|
|
} |
|
|
|
// 处理 jujinnianxian |
|
|
|
let res = await collection.toArray(); |
|
|
|
let level1List = _.filter(res, { level: 1, prepreId: "", preId: "", }) |
|
|
|
let level2List = _.filter(res, { level: 2, prepreId: "", }) |
|
|
|
let level3List = _.filter(res, { level: 3 }) |
|
|
|
this.treeLoading = false |
|
|
|
let treeList = [] |
|
|
|
for (let i = 0; i < level1List.length; i++) { |
|
|
|
let level1Item = level1List[i]; |
|
|
|
let level2ListTemp = _.filter(level2List, { level: 2, preId: level1Item.currentId, prepreId: "", }) |
|
|
|
let level1Children = [] |
|
|
|
for (let j = 0; j < level2ListTemp.length; j++) { |
|
|
|
let level2Item = level2ListTemp[j]; |
|
|
|
let level3ListTemp = _.filter(level3List, { level: 3, preId: level2Item.currentId, prepreId: level1Item.currentId, }) |
|
|
|
let level2Children = [] |
|
|
|
for (let l = 0; l < level3ListTemp.length; l++) { |
|
|
|
let level3Item = level3ListTemp[l]; |
|
|
|
level2Children.push({ |
|
|
|
...level3Item, |
|
|
|
id: level3Item.currentId, |
|
|
|
}) |
|
|
|
} |
|
|
|
level1Children.push({ |
|
|
|
...level2Item, |
|
|
|
id: level2Item.currentId, |
|
|
|
children: level2Children |
|
|
|
}) |
|
|
|
} |
|
|
|
treeList.push({ |
|
|
|
...level1Item, |
|
|
|
id: level1Item.currentId, |
|
|
|
children: level1Children |
|
|
|
}) |
|
|
|
} |
|
|
|
this.treeData = treeList |
|
|
|
}, |
|
|
|
//增加项目(树状) |
|
|
|
async addxiangmu(params = {}, isAll = false) { |
|
|
|
|
|
|
|
async addxiangmu() { |
|
|
|
this.adddanganForm = { |
|
|
|
visible: true, |
|
|
|
title: "新增档案", |
|
|
|
disabled: false, |
|
|
|
type: "add", |
|
|
|
formHeader: [ |
|
|
|
{ |
|
|
|
label: "项目名称", |
|
|
|
prop: "xianmguName", |
|
|
|
type: "text", |
|
|
|
placeholder: "请输入项目名称", |
|
|
|
required: true, |
|
|
|
rules: [ |
|
|
|
{ required: true, message: "请输入项目名称", trigger: "blur" } |
|
|
|
] |
|
|
|
} |
|
|
|
], |
|
|
|
formData: { |
|
|
|
xianmguName: "" |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
//编辑项目(树状) |
|
|
|
async editxiangmu(params = {}, isAll = false) { |
|
|
|
|
|
|
|
async editxiangmu(node) { |
|
|
|
console.log(265, node); |
|
|
|
}, |
|
|
|
//删除项目(树状) |
|
|
|
async delxiangmu(params = {}, isAll = false) { |
|
|
|
|
|
|
|
async delxiangmu(node) { |
|
|
|
console.log(269, node); |
|
|
|
}, |
|
|
|
// 选中树的节点 |
|
|
|
async nodeClick() { }, |
|
|
|
async nodeClick(node) { |
|
|
|
console.log(273, node); |
|
|
|
}, |
|
|
|
//导出(树状) |
|
|
|
async exportData(params = {}, isAll = false) { |
|
|
|
|
|
|
|
}, |
|
|
|
//新增文件 |
|
|
|
async addFile(params = {}, isAll = false) { |
|
|
|
|
|
|
|
async addFile() { |
|
|
|
this.addFileForm = { |
|
|
|
visible: true, |
|
|
|
title: "新增文件", |
|
|
|
disabled: false, |
|
|
|
type: "add", |
|
|
|
formHeader: [ |
|
|
|
{ |
|
|
|
label: "项目名称", |
|
|
|
prop: "xianmguName", |
|
|
|
type: "text", |
|
|
|
placeholder: "请输入项目名称", |
|
|
|
required: true, |
|
|
|
rules: [ |
|
|
|
{ required: true, message: "请输入项目名称", trigger: "blur" } |
|
|
|
] |
|
|
|
} |
|
|
|
], |
|
|
|
formData: { |
|
|
|
xianmguName: "" |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
//搜索文件 |
|
|
|
async searchFile(params = {}, isAll = false) { |
|
|
@ -270,19 +376,91 @@ export default { |
|
|
|
async downloadFile(params = {}, isAll = false) { |
|
|
|
|
|
|
|
}, |
|
|
|
//关闭模态框 |
|
|
|
cancelDialog() { |
|
|
|
//关闭项目模态框 |
|
|
|
canceldanganDialog() { |
|
|
|
this.adddanganForm = { |
|
|
|
visible: false, |
|
|
|
title: "新增学生", |
|
|
|
title: "新增档案", |
|
|
|
type: "add", |
|
|
|
formHeader: [], |
|
|
|
formData: {} |
|
|
|
} |
|
|
|
}, |
|
|
|
//确认模态框 |
|
|
|
async submitDialog() { |
|
|
|
|
|
|
|
//确认项目模态框 |
|
|
|
async submitdanganDialog() { |
|
|
|
let treeList = [] |
|
|
|
let xianmguName = _.trim(this.adddanganForm.formData.xianmguName) |
|
|
|
if (xianmguName) { |
|
|
|
let firstId = v5(xianmguName, this.uuidNameSpace) |
|
|
|
for (let i = 0; i < this.level2.length; i++) { |
|
|
|
let level2Item = this.level2[i]; |
|
|
|
let level2Str = `${xianmguName}${level2Item}` |
|
|
|
let level2uuid = v5(level2Str, this.uuidNameSpace) |
|
|
|
for (let j = 0; j < this.level3[level2Item].length; j++) { |
|
|
|
let level3Item = this.level3[level2Item][j]; |
|
|
|
let level3Str = `${xianmguName}${level2Item}${level3Item}` |
|
|
|
let level3uuid = v5(level3Str, this.uuidNameSpace) |
|
|
|
// ++id, label, currentId, preId, prepreId, level, note, create_at, update_at |
|
|
|
treeList.push({ |
|
|
|
label: level3Item, |
|
|
|
currentId: level3uuid, |
|
|
|
preId: level2uuid, |
|
|
|
prepreId: firstId, |
|
|
|
level: 3, |
|
|
|
create_at: dayjs().format('YYYY-MM-DD HH:mm:ss'), |
|
|
|
update_at: dayjs().format('YYYY-MM-DD HH:mm:ss'), |
|
|
|
}) |
|
|
|
} |
|
|
|
treeList.push({ |
|
|
|
label: level2Item, |
|
|
|
currentId: level2uuid, |
|
|
|
preId: firstId, |
|
|
|
prepreId: "", |
|
|
|
level: 2, |
|
|
|
create_at: dayjs().format('YYYY-MM-DD HH:mm:ss'), |
|
|
|
update_at: dayjs().format('YYYY-MM-DD HH:mm:ss'), |
|
|
|
}) |
|
|
|
} |
|
|
|
treeList.push({ |
|
|
|
label: xianmguName, |
|
|
|
currentId: firstId, |
|
|
|
preId: "", |
|
|
|
prepreId: "", |
|
|
|
level: 1, |
|
|
|
create_at: dayjs().format('YYYY-MM-DD HH:mm:ss'), |
|
|
|
update_at: dayjs().format('YYYY-MM-DD HH:mm:ss'), |
|
|
|
}) |
|
|
|
} |
|
|
|
try { |
|
|
|
await myDatabase.treeList.bulkAdd(treeList) |
|
|
|
this.canceldanganDialog() |
|
|
|
// 在d盘中新建文件夹 |
|
|
|
|
|
|
|
await this.searchTree() |
|
|
|
} catch (error) { |
|
|
|
ElMessage({ |
|
|
|
message: `${error}`, |
|
|
|
type: 'error', |
|
|
|
}) |
|
|
|
} |
|
|
|
}, |
|
|
|
//关闭文件模态框 |
|
|
|
cancelFileDialog() { |
|
|
|
this.addFileForm = { |
|
|
|
visible: false, |
|
|
|
title: "新增文件", |
|
|
|
disabled: false, |
|
|
|
type: "add", |
|
|
|
formHeader: [], |
|
|
|
formData: {} |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
//确认文件模态框 |
|
|
|
async submitFileDialog() { |
|
|
|
}, |
|
|
|
|
|
|
|
//确认模态框 |
|
|
|
// async submitDialog() { |
|
|
|
// for (let i = 0; i < this.formHeader.length; i++) { |
|
|
@ -316,6 +494,7 @@ export default { |
|
|
|
this.tableHeader = _.filter(tableHeaderLocal, o => o.tableShow) |
|
|
|
this.formHeader = _.filter(tableHeaderLocal, o => o.formShow) |
|
|
|
this.exportHeader = _.filter(tableHeaderLocal, o => o.export) |
|
|
|
this.searchTree() |
|
|
|
}, |
|
|
|
} |
|
|
|
</script> |
|
|
|