|
@@ -1,124 +1,146 @@
|
|
|
<template>
|
|
|
- <div class="hc-page-layout-box">
|
|
|
- <div class="hc-layout-left-box" :style="`width:${leftWidth}px;`">
|
|
|
- <div class="hc-project-box">
|
|
|
- <div class="hc-project-icon-box">
|
|
|
- <HcIcon name="stack" />
|
|
|
- </div>
|
|
|
- <div class="ml-2 project-name-box">
|
|
|
- <span class="text-xl text-cut project-alias">{{ projectInfo.projectAlias }}</span>
|
|
|
- <div class="text-xs text-cut project-name">
|
|
|
- {{ projectInfo.name }}
|
|
|
+ <hc-body class="hc-archives-bookmark-page">
|
|
|
+ <div class="relative h-full flex">
|
|
|
+ <div :id="`hc_tree_card_${uuid}`">
|
|
|
+ <hc-new-card>
|
|
|
+ <template #header>
|
|
|
+ <div class="hc-project-box">
|
|
|
+ <div class="hc-project-icon-box">
|
|
|
+ <HcIcon name="stack" />
|
|
|
+ </div>
|
|
|
+ <div class="ml-2 project-name">{{ projectInfo.name }}</div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <div v-loading="treeLoading" class="hc-tree-box" element-loading-text="加载中...">
|
|
|
+ <el-scrollbar>
|
|
|
+ <HcTree :project-id="projectId" :contract-id="contractId" :auto-expand-keys="treeAutoExpandKeys" @nodeTap="nodeElTreeClick" @nodeLoading="treeNodeLoading" />
|
|
|
+ </el-scrollbar>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </hc-new-card>
|
|
|
</div>
|
|
|
- <div v-loading="treeLoading" class="hc-tree-box" element-loading-text="加载中...">
|
|
|
- <el-scrollbar>
|
|
|
- <HcTree :project-id="projectId" :contract-id="contractId" :auto-expand-keys="treeAutoExpandKeys" @nodeTap="nodeElTreeClick" @nodeLoading="treeNodeLoading" />
|
|
|
- </el-scrollbar>
|
|
|
+ <div :id="`hc_table_card_${uuid}`" class="flex-1">
|
|
|
+ 22
|
|
|
</div>
|
|
|
- <!-- 左右拖动 -->
|
|
|
- <div class="horizontal-drag-line" @mousedown="onmousedown" />
|
|
|
</div>
|
|
|
- <div class="hc-page-content-box">
|
|
|
- <HcCard title="当前目录信息编辑">
|
|
|
- <template #extra>
|
|
|
- <HcTooltip keys="archives_bookmark_btn_add">
|
|
|
- <el-button type="primary" hc-btn @click="addModalClick(false)">
|
|
|
- <span>保存设置</span>
|
|
|
- </el-button>
|
|
|
- </HcTooltip>
|
|
|
- </template>
|
|
|
- <el-form ref="formUserRef" :model="formInline" size="large" label-position="top">
|
|
|
- <el-row :gutter="20">
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="档号前缀">
|
|
|
- <el-input v-model="formInline.value.fileNumberPrefix" placeholder="请输入" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="保管期限">
|
|
|
- <el-select v-model="formInline.value.storageTime" placeholder="请选择" clearable style="width:100%">
|
|
|
- <el-option v-for="item in retentionPeriod" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
+ <!-- 废弃 -->
|
|
|
+ <div class="hc-page-layout-box" style="display: none">
|
|
|
+ <div class="hc-layout-left-box" :style="`width:${leftWidth}px;`">
|
|
|
+ <div class="hc-project-box">
|
|
|
+ <div class="hc-project-icon-box">
|
|
|
+ <HcIcon name="stack" />
|
|
|
+ </div>
|
|
|
+ <div class="ml-2 project-name-box">
|
|
|
+ <div class="project-alias">{{ projectInfo.name }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div v-loading="treeLoading" class="hc-tree-box" element-loading-text="加载中...">
|
|
|
+ <el-scrollbar>
|
|
|
+ <HcTree :project-id="projectId" :contract-id="contractId" :auto-expand-keys="treeAutoExpandKeys" @nodeTap="nodeElTreeClick" @nodeLoading="treeNodeLoading" />
|
|
|
+ </el-scrollbar>
|
|
|
+ </div>
|
|
|
+ <!-- 左右拖动 -->
|
|
|
+ <div class="horizontal-drag-line" @mousedown="onmousedown" />
|
|
|
+ </div>
|
|
|
+ <div class="hc-page-content-box">
|
|
|
+ <HcCard title="当前目录信息编辑">
|
|
|
+ <template #extra>
|
|
|
+ <HcTooltip keys="archives_bookmark_btn_add">
|
|
|
+ <el-button type="primary" hc-btn @click="addModalClick(false)">
|
|
|
+ <span>保存设置</span>
|
|
|
+ </el-button>
|
|
|
+ </HcTooltip>
|
|
|
+ </template>
|
|
|
+ <el-form ref="formUserRef" :model="formInline" size="large" label-position="top">
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="档号前缀">
|
|
|
+ <el-input v-model="formInline.value.fileNumberPrefix" placeholder="请输入" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="保管期限">
|
|
|
+ <el-select v-model="formInline.value.storageTime" placeholder="请选择" clearable style="width:100%">
|
|
|
+ <el-option v-for="item in retentionPeriod" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
|
|
|
- <el-row :gutter="20">
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="目录名称">
|
|
|
- <el-input v-model="formInline.value.title" placeholder="请输入" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="立卷人">
|
|
|
- <el-input v-model="formInline.value.rollor" placeholder="请输入" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row :gutter="20">
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="卷盒规格">
|
|
|
- <el-select v-model="formInline.value.specification" placeholder="请选择" clearable style="width:100%">
|
|
|
- <el-option v-for="item in coilsize" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="审核人">
|
|
|
- <el-input v-model="formInline.value.reviewer" placeholder="请输入" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row :gutter="20">
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="案卷后缀">
|
|
|
- <el-input v-model="formInline.value.archiveNameSuffix" placeholder="请输入" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="目录名称">
|
|
|
+ <el-input v-model="formInline.value.title" placeholder="请输入" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="立卷人">
|
|
|
+ <el-input v-model="formInline.value.rollor" placeholder="请输入" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="卷盒规格">
|
|
|
+ <el-select v-model="formInline.value.specification" placeholder="请选择" clearable style="width:100%">
|
|
|
+ <el-option v-for="item in coilsize" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="审核人">
|
|
|
+ <el-input v-model="formInline.value.reviewer" placeholder="请输入" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="案卷后缀">
|
|
|
+ <el-input v-model="formInline.value.archiveNameSuffix" placeholder="请输入" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ <template #action>
|
|
|
+ <el-alert title="提示:设置基础信息,系统可统一内置到组卷信息里面去" type="error" :closable="false" />
|
|
|
+ </template>
|
|
|
+ </HcCard>
|
|
|
+ </div>
|
|
|
+ <!-- 新增子目录文件夹 -->
|
|
|
+ <el-dialog v-model="showaddModal" :title="`${showaddModaltype}子目录文件夹`" width="50rem" class="hc-modal-border" draggable destroy-on-close @closed="cancelClick">
|
|
|
+ <el-form :model="addform" label-width="150px" style="flex-wrap: nowrap;">
|
|
|
+ <el-form-item label="文件目录名称:">
|
|
|
+ <div class="el-form-item__content">
|
|
|
+ <el-input v-model="addform.title" />
|
|
|
+ <!-- <i class="ri-add-circle-line mleft" @click="addinputItem"></i>
|
|
|
+ <i class="ri-delete-bin-line mleft" @click="delinputItem(index,item)"></i> -->
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item v-for="(item, index) in addArray" :key="index" label="文件目录名称:">
|
|
|
+ <div v-if="addArray.length > 0" class="el-form-item__content">
|
|
|
+ <el-input v-model="item.title" /> <i class="ri-add-circle-line mleft" @click="addinputItem" />
|
|
|
+ <i class="ri-delete-bin-line mleft" @click="delinputItem(index, item)" />
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
</el-form>
|
|
|
- <template #action>
|
|
|
- <el-alert title="提示:设置基础信息,系统可统一内置到组卷信息里面去" type="error" :closable="false" />
|
|
|
+ <template #footer>
|
|
|
+ <div class="dialog-footer">
|
|
|
+ <el-button size="large" @click="cancelClick">
|
|
|
+ <HcIcon name="close" />
|
|
|
+ <span>取消</span>
|
|
|
+ </el-button>
|
|
|
+ <el-button type="primary" hc-btn @click="confirmClick">
|
|
|
+ <HcIcon name="check" />
|
|
|
+ <span>确认</span>
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
- </HcCard>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
- <!-- 新增子目录文件夹 -->
|
|
|
- <el-dialog v-model="showaddModal" :title="`${showaddModaltype}子目录文件夹`" width="50rem" class="hc-modal-border" draggable destroy-on-close @closed="cancelClick">
|
|
|
- <el-form :model="addform" label-width="150px" style="flex-wrap: nowrap;">
|
|
|
- <el-form-item label="文件目录名称:">
|
|
|
- <div class="el-form-item__content">
|
|
|
- <el-input v-model="addform.title" />
|
|
|
- <!-- <i class="ri-add-circle-line mleft" @click="addinputItem"></i>
|
|
|
- <i class="ri-delete-bin-line mleft" @click="delinputItem(index,item)"></i> -->
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item v-for="(item, index) in addArray" :key="index" label="文件目录名称:">
|
|
|
- <div v-if="addArray.length > 0" class="el-form-item__content">
|
|
|
- <el-input v-model="item.title" /> <i class="ri-add-circle-line mleft" @click="addinputItem" />
|
|
|
- <i class="ri-delete-bin-line mleft" @click="delinputItem(index, item)" />
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- <template #footer>
|
|
|
- <div class="dialog-footer">
|
|
|
- <el-button size="large" @click="cancelClick">
|
|
|
- <HcIcon name="close" />
|
|
|
- <span>取消</span>
|
|
|
- </el-button>
|
|
|
- <el-button type="primary" hc-btn @click="confirmClick">
|
|
|
- <HcIcon name="check" />
|
|
|
- <span>确认</span>
|
|
|
- </el-button>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-dialog>
|
|
|
- </div>
|
|
|
+ </hc-body>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import { onMounted, reactive, ref, watch } from 'vue'
|
|
|
+import { nextTick, onMounted, reactive, ref, watch } from 'vue'
|
|
|
import { useAppStore } from '~src/store'
|
|
|
|
|
|
// import HcTree from "./components/hc-tree.vue"
|
|
@@ -126,7 +148,7 @@ import HcTree from '~src/components/tree/hc-tree.vue'
|
|
|
import projectScanningApi from '~api/other-file/projectScanning'
|
|
|
import { getArchiveTreeLazyTree } from '~api/other'
|
|
|
import { getStoreValue, setStoreValue } from '~src/utils/storage'
|
|
|
-import { deepClone, downloadBlob, getArrValue } from 'js-fast-way'
|
|
|
+import { deepClone, downloadBlob, getArrValue, getRandom } from 'js-fast-way'
|
|
|
import { HcIsButton } from '~src/plugins/IsButtons'
|
|
|
|
|
|
import { archiveTreeUpdate } from '~api/other'
|
|
@@ -146,6 +168,7 @@ const addArray = reactive([])
|
|
|
let checkArray = reactive([])
|
|
|
import { rowsToId, rowsToIdNumArr } from '~uti/tools'
|
|
|
|
|
|
+const uuid = getRandom(4)
|
|
|
|
|
|
//监听
|
|
|
watch(() => [
|
|
@@ -156,9 +179,23 @@ watch(() => [
|
|
|
|
|
|
//渲染完成
|
|
|
onMounted(() => {
|
|
|
- setElTreeMenu(1)
|
|
|
+ setElTreeMenu(1)
|
|
|
+ setSplitRef()
|
|
|
})
|
|
|
|
|
|
+
|
|
|
+//初始化设置拖动分割线
|
|
|
+const setSplitRef = () => {
|
|
|
+ //配置参考: https://split.js.org/#/?direction=vertical&snapOffset=0
|
|
|
+ nextTick(() => {
|
|
|
+ window.$split(['#hc_tree_card_' + uuid, '#hc_table_card_' + uuid], {
|
|
|
+ sizes: [20, 80],
|
|
|
+ snapOffset: 0,
|
|
|
+ minSize: [50, 500],
|
|
|
+ })
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
//树加载
|
|
|
const treeLoading = ref(true)
|
|
|
const treeNodeLoading = () => {
|
|
@@ -216,7 +253,7 @@ const cancelClick = () => {
|
|
|
}
|
|
|
//删除
|
|
|
const delModalClick = () => {
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
//树相关的变量
|
|
|
const primaryKeyId = ref('')
|
|
@@ -281,7 +318,7 @@ const setTreeMenuDataClick = ({ key, node, data }) => {
|
|
|
addform = { title:'' }
|
|
|
showaddModal.value = true
|
|
|
} else if (key === 'del') {
|
|
|
-
|
|
|
+
|
|
|
} else {
|
|
|
addform = data
|
|
|
showaddModaltype.value = '编辑'
|
|
@@ -290,12 +327,7 @@ const setTreeMenuDataClick = ({ key, node, data }) => {
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
-<style lang="scss" scoped>
|
|
|
-.el-form-item__content{
|
|
|
- flex-wrap: nowrap;
|
|
|
-}
|
|
|
-.mleft{
|
|
|
- margin-left: 10px;
|
|
|
- font-size: 1.25rem;
|
|
|
-}
|
|
|
+<style lang="scss">
|
|
|
+@import '~style/archives/bookmark.scss';
|
|
|
+//@import '~src/styles/theme/archives/bookmark.scss';
|
|
|
</style>
|