From cc7becfdd8b9c8e11aa8432291801fc3e3ff2e46 Mon Sep 17 00:00:00 2001 From: ulleo Date: Mon, 6 May 2024 15:40:34 +0800 Subject: [PATCH] =?UTF-8?q?feat(X-Pack):=E3=80=90=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=A1=AB=E6=8A=A5=E3=80=91=E6=96=B0=E5=BB=BA=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E5=90=8E=E7=95=8C=E9=9D=A2=E7=9B=B4=E6=8E=A5=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=88=9A=E5=88=9B=E5=BB=BA=E7=9A=84=E8=A1=A8=E5=8D=95=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/dataFilling/form/index.vue | 34 +++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/core/frontend/src/views/dataFilling/form/index.vue b/core/frontend/src/views/dataFilling/form/index.vue index aa699e3c00..080d878f9a 100644 --- a/core/frontend/src/views/dataFilling/form/index.vue +++ b/core/frontend/src/views/dataFilling/form/index.vue @@ -4,7 +4,7 @@ import DeAsideContainer from '@/components/dataease/DeAsideContainer.vue' import NoSelect from './NoSelect.vue' import ViewTable from './ViewTable.vue' import { listForm, saveForm, updateForm, deleteForm, getWithPrivileges } from '@/views/dataFilling/form/dataFilling' -import { cloneDeep } from 'lodash-es' +import { forEach, cloneDeep, find } from 'lodash-es' import { hasPermission } from '@/directive/Permission' import DataFillingFormMoveSelector from './MoveSelector.vue' @@ -33,10 +33,31 @@ export default { displayFormData: undefined } }, + computed: { + flattenFolderList() { + const result = [] + this.flattenFolder(this.formList, result) + return result + } + }, mounted() { this.treeLoading = true listForm({}).then(res => { this.formList = res.data || [] + + if (this.$route.query?.id) { + this.$nextTick(() => { + this.$refs.formTreeRef?.setCurrentKey(this.$route.query.id) + const checkedNode = this.$refs.formTreeRef?.getNode(this.$route.query.id) + if (checkedNode) { + checkedNode?.parent?.expand() + this.selectedItem = find(this.flattenFolderList, f => f.id === this.$route.query.id) + if (this.selectedItem) { + this.nodeClick(this.selectedItem) + } + } + }) + } }).finally(() => { this.treeLoading = false }) @@ -217,6 +238,15 @@ export default { if (this.activeName === 'my-tasks') { this.$router.push('/data-filling/my-jobs') } + }, + flattenFolder(list, result = []) { + forEach(list, item => { + result.push(item) + if (item.children && item.children.length > 0) { + this.flattenFolder(item.children, result) + } + }) + return result } } } @@ -274,7 +304,7 @@ export default {