|
@@ -1,22 +1,24 @@
|
|
|
<template>
|
|
|
<div class="hc-page-layout-box">
|
|
|
- <div class="hc-layout-left-box" :style="'width:' + leftWidth + 'px;'">
|
|
|
+ <div class="hc-layout-left-box" :style="`width:${leftWidth}px;`">
|
|
|
<div class="hc-project-box">
|
|
|
<div class="hc-project-icon-box">
|
|
|
- <HcIcon name="stack"/>
|
|
|
+ <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']}}</div>
|
|
|
+ <span class="text-xl text-cut project-alias">{{ projectInfo.projectAlias }}</span>
|
|
|
+ <div class="text-xs text-cut project-name">
|
|
|
+ {{ projectInfo.name }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="hc-tree-box" v-loading="treeLoading" element-loading-text="加载中...">
|
|
|
+ <div v-loading="treeLoading" class="hc-tree-box" element-loading-text="加载中...">
|
|
|
<el-scrollbar>
|
|
|
- <HcTree :projectId="projectId" :contractId="contractId" @nodeTap="nodeElTreeClick" @nodeLoading="treeNodeLoading" :autoExpandKeys="treeAutoExpandKeys"/>
|
|
|
+ <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 class="horizontal-drag-line" @mousedown="onmousedown" />
|
|
|
</div>
|
|
|
<div class="hc-page-content-box">
|
|
|
<HcCard title="当前目录信息编辑">
|
|
@@ -27,87 +29,86 @@
|
|
|
</el-button>
|
|
|
</HcTooltip>
|
|
|
</template>
|
|
|
- <el-form ref="formUserRef" :model="formInline" size="large" label-position="top">
|
|
|
- <el-row :gutter="20">
|
|
|
+ <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-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-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-row :gutter="20">
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="目录名称">
|
|
|
- <el-input v-model="formInline.value.title" placeholder="请输入" />
|
|
|
- </el-form-item>
|
|
|
+ <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-form-item label="立卷人">
|
|
|
+ <el-input v-model="formInline.value.rollor" placeholder="请输入" />
|
|
|
+ </el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
- <el-row :gutter="20">
|
|
|
+ <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-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-form-item label="审核人">
|
|
|
+ <el-input v-model="formInline.value.reviewer" placeholder="请输入" />
|
|
|
+ </el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
- <el-row :gutter="20">
|
|
|
+ <el-row :gutter="20">
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="案卷后缀">
|
|
|
- <el-input v-model="formInline.value.archiveNameSuffix" placeholder="请输入" />
|
|
|
- </el-form-item>
|
|
|
+ <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" />
|
|
|
+ <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>
|
|
|
+ <!-- 新增子目录文件夹 -->
|
|
|
+ <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 label="文件目录名称:" v-for="(item,index) in addArray" :key="index" >
|
|
|
- <div class="el-form-item__content" v-if="addArray.length>0">
|
|
|
- <el-input v-model="item.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>
|
|
|
+ </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"/>
|
|
|
+ <HcIcon name="close" />
|
|
|
<span>取消</span>
|
|
|
</el-button>
|
|
|
- <el-button type="primary" hc-btn @click="confirmClick">
|
|
|
- <HcIcon name="check"/>
|
|
|
+ <el-button type="primary" hc-btn @click="confirmClick">
|
|
|
+ <HcIcon name="check" />
|
|
|
<span>确认</span>
|
|
|
</el-button>
|
|
|
</div>
|
|
@@ -117,37 +118,38 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import {ref, watch, onMounted,reactive } from "vue";
|
|
|
-import {useAppStore} from "~src/store";
|
|
|
+import { onMounted, reactive, ref, watch } from 'vue'
|
|
|
+import { useAppStore } from '~src/store'
|
|
|
|
|
|
// import HcTree from "./components/hc-tree.vue"
|
|
|
-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 {downloadBlob, getArrValue, deepClone} from "js-fast-way"
|
|
|
-import {HcIsButton} from "~src/plugins/IsButtons";
|
|
|
+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 { HcIsButton } from '~src/plugins/IsButtons'
|
|
|
|
|
|
-import {archiveTreeUpdate} from "~api/other";
|
|
|
+import { archiveTreeUpdate } from '~api/other'
|
|
|
|
|
|
//变量
|
|
|
const useAppState = useAppStore()
|
|
|
-const projectId = ref(useAppState.getProjectId);
|
|
|
-const contractId = ref(useAppState.getContractId);
|
|
|
-const projectInfo = ref(useAppState.getProjectInfo);
|
|
|
-const menusData=ref([])
|
|
|
-const isCollapse = ref(useAppState.getCollapse);
|
|
|
-let parentId=ref('')
|
|
|
+const projectId = ref(useAppState.getProjectId)
|
|
|
+const contractId = ref(useAppState.getContractId)
|
|
|
+const projectInfo = ref(useAppState.getProjectInfo)
|
|
|
+const menusData = ref([])
|
|
|
+const isCollapse = ref(useAppState.getCollapse)
|
|
|
+let parentId = ref('')
|
|
|
const showaddModal = ref(false)
|
|
|
const showaddModaltype = ref('新增')
|
|
|
-let addform = reactive({title: ''})
|
|
|
+let addform = reactive({ title: '' })
|
|
|
const addArray = reactive([])
|
|
|
let checkArray = reactive([])
|
|
|
-import {delMessage, rowsToId, rowsToIdNumArr} from "~uti/tools";
|
|
|
+import { rowsToId, rowsToIdNumArr } from '~uti/tools'
|
|
|
+
|
|
|
|
|
|
//监听
|
|
|
watch(() => [
|
|
|
- useAppState.getCollapse
|
|
|
+ useAppState.getCollapse,
|
|
|
], ([Collapse]) => {
|
|
|
isCollapse.value = Collapse
|
|
|
})
|
|
@@ -165,44 +167,44 @@ const treeNodeLoading = () => {
|
|
|
|
|
|
let formInline = reactive({
|
|
|
value:{
|
|
|
- title:''
|
|
|
- }
|
|
|
+ title:'',
|
|
|
+ },
|
|
|
})
|
|
|
//保管期限
|
|
|
const retentionPeriod = ref([
|
|
|
- {label: '永久', value: '1'},
|
|
|
- {label: '30年', value: '2'},
|
|
|
- {label: '10年', value: '3'}
|
|
|
+ { label: '永久', value: '1' },
|
|
|
+ { label: '30年', value: '2' },
|
|
|
+ { label: '10年', value: '3' },
|
|
|
])
|
|
|
|
|
|
const coilsize = ref([
|
|
|
- {label: '30mm', value: '30'},
|
|
|
- {label: '40mm', value: '40'},
|
|
|
- {label: '50mm', value: '50'}
|
|
|
+ { label: '30mm', value: '30' },
|
|
|
+ { label: '40mm', value: '40' },
|
|
|
+ { label: '50mm', value: '50' },
|
|
|
])
|
|
|
const onSubmit = () => {
|
|
|
console.log('submit!')
|
|
|
}//新增
|
|
|
|
|
|
-const addModalClick = async(type) => {
|
|
|
- if(!formInline.value.id){
|
|
|
+const addModalClick = async (type) => {
|
|
|
+ if (!formInline.value.id) {
|
|
|
window.$message?.warning('请先点选左侧要修改信息的树节点')
|
|
|
- return;
|
|
|
+ return
|
|
|
}
|
|
|
- const {code } = await archiveTreeUpdate(formInline.value)
|
|
|
+ const { code } = await archiveTreeUpdate(formInline.value)
|
|
|
//console.log(res);
|
|
|
if (code == 200) {
|
|
|
window.$message?.success('修改成功')
|
|
|
- window?.location?.reload() //刷新页面
|
|
|
+ window?.location?.reload() //刷新页面
|
|
|
}
|
|
|
|
|
|
}
|
|
|
const addinputItem = () => {
|
|
|
- addArray.push({title:'' });
|
|
|
+ addArray.push({ title:'' })
|
|
|
}
|
|
|
|
|
|
-const delinputItem = (item,index) => {
|
|
|
- addArray.splice(index,1)
|
|
|
+const delinputItem = (item, index) => {
|
|
|
+ addArray.splice(index, 1)
|
|
|
}
|
|
|
//确认
|
|
|
|
|
@@ -214,9 +216,7 @@ const cancelClick = () => {
|
|
|
}
|
|
|
//删除
|
|
|
const delModalClick = () => {
|
|
|
- delMessage(() => {
|
|
|
-
|
|
|
- })
|
|
|
+
|
|
|
}
|
|
|
//树相关的变量
|
|
|
const primaryKeyId = ref('')
|
|
@@ -224,18 +224,18 @@ const primaryKeyId = ref('')
|
|
|
const nodeItemInfo = ref({})
|
|
|
|
|
|
//左右拖动,改变树形结构宽度
|
|
|
-const leftWidth = ref(382);
|
|
|
+const leftWidth = ref(382)
|
|
|
const onmousedown = () => {
|
|
|
const leftNum = isCollapse.value ? 142 : 272
|
|
|
document.onmousemove = (ve) => {
|
|
|
- let diffVal = ve.clientX - leftNum;
|
|
|
- if(diffVal >= 310 && diffVal <= 900) {
|
|
|
- leftWidth.value = diffVal;
|
|
|
+ let diffVal = ve.clientX - leftNum
|
|
|
+ if (diffVal >= 310 && diffVal <= 900) {
|
|
|
+ leftWidth.value = diffVal
|
|
|
}
|
|
|
}
|
|
|
document.onmouseup = () => {
|
|
|
- document.onmousemove = null;
|
|
|
- document.onmouseup = null;
|
|
|
+ document.onmousemove = null
|
|
|
+ document.onmouseup = null
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -244,10 +244,10 @@ const onmousedown = () => {
|
|
|
|
|
|
const treeAutoExpandKeys = ref(getStoreValue('bookExpandKeys') || [])
|
|
|
//项目树被点击
|
|
|
-const nodeElTreeClick = ({node, data, keys, key}) => {
|
|
|
- console.log('点击',data);
|
|
|
+const nodeElTreeClick = ({ node, data, keys, key }) => {
|
|
|
+ console.log('点击', data)
|
|
|
// treeNodeInfo.value = node
|
|
|
- formInline.value=data
|
|
|
+ formInline.value = data
|
|
|
|
|
|
setStoreValue('bookExpandKeys', keys)
|
|
|
treeAutoExpandKeys.value = keys || []
|
|
@@ -256,38 +256,36 @@ const nodeElTreeClick = ({node, data, keys, key}) => {
|
|
|
const ElTreeMenu = ref([])
|
|
|
const TreeMark = ref(false)
|
|
|
const setElTreeMenu = (contractType) => {
|
|
|
- let newArr = [];
|
|
|
- newArr=[
|
|
|
+ let newArr = []
|
|
|
+ newArr = [
|
|
|
|
|
|
- {icon: 'add-circle', label: '新增', key: "add"},
|
|
|
- {icon: 'draft', label: '编辑', key: "edit"},
|
|
|
- {icon: 'delete-bin', label: '删除', key: "del"},
|
|
|
+ { icon: 'add-circle', label: '新增', key: 'add' },
|
|
|
+ { icon: 'draft', label: '编辑', key: 'edit' },
|
|
|
+ { icon: 'delete-bin', label: '删除', key: 'del' },
|
|
|
]
|
|
|
ElTreeMenu.value = newArr
|
|
|
|
|
|
}
|
|
|
//树菜单被点击
|
|
|
-const ElTreeMenuClick = async ({key,node,data}) => {
|
|
|
+const ElTreeMenuClick = async ({ key, node, data }) => {
|
|
|
// nodeItemInfo.value = node
|
|
|
// nodeDataInfo.value = data
|
|
|
- setTreeMenuDataClick({key,node,data})
|
|
|
+ setTreeMenuDataClick({ key, node, data })
|
|
|
setStoreValue('bookExpandKeys', keys)
|
|
|
treeAutoExpandKeys.value = keys || []
|
|
|
}
|
|
|
//处理菜单被点击数据
|
|
|
-const setTreeMenuDataClick = ({key,node,data}) => {
|
|
|
- if (key === 'add'){
|
|
|
- addArray.length=0
|
|
|
- addform={title:''}
|
|
|
- showaddModal.value = true;
|
|
|
- }else if(key === 'del'){
|
|
|
- delMessage(() => {
|
|
|
-
|
|
|
- })
|
|
|
- }else{
|
|
|
- addform=data
|
|
|
- showaddModaltype.value='编辑'
|
|
|
- showaddModal.value = true;
|
|
|
+const setTreeMenuDataClick = ({ key, node, data }) => {
|
|
|
+ if (key === 'add') {
|
|
|
+ addArray.length = 0
|
|
|
+ addform = { title:'' }
|
|
|
+ showaddModal.value = true
|
|
|
+ } else if (key === 'del') {
|
|
|
+
|
|
|
+ } else {
|
|
|
+ addform = data
|
|
|
+ showaddModaltype.value = '编辑'
|
|
|
+ showaddModal.value = true
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
@@ -300,5 +298,4 @@ const setTreeMenuDataClick = ({key,node,data}) => {
|
|
|
margin-left: 10px;
|
|
|
font-size: 1.25rem;
|
|
|
}
|
|
|
-
|
|
|
</style>
|