Browse Source

修复任务调度、权限管理、视图管理筛选

zhontai 2 năm trước cách đây
mục cha
commit
e0a712885f

+ 10 - 6
src/views/admin/api/index.vue

@@ -3,9 +3,9 @@
     <el-row :gutter="8" style="width: 100%">
       <el-col :span="24" :xs="24">
         <el-card shadow="never" :body-style="{ paddingBottom: '0' }" style="margin-top: 8px">
-          <el-form :model="state.filterModel" :inline="true" @submit.stop.prevent>
-            <el-form-item label="接口名称" prop="name">
-              <el-input v-model="state.filterModel.name" placeholder="接口名称" @keyup.enter="onQuery" />
+          <el-form :inline="true" @submit.stop.prevent>
+            <el-form-item label="接口名称">
+              <el-input v-model="state.filter.name" placeholder="接口名称" @keyup.enter="onQuery" />
             </el-form-item>
             <el-form-item>
               <el-button type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
@@ -58,7 +58,7 @@ import { ref, reactive, onMounted, getCurrentInstance, onUnmounted, defineAsyncC
 import { ApiListOutput } from '/@/api/admin/data-contracts'
 import { ApiApi } from '/@/api/admin/Api'
 import { ApiApi as ApiExtApi } from '/@/api/admin.extend/Api'
-import { listToTree, treeToList } from '/@/utils/tree'
+import { listToTree, treeToList, filterTree } from '/@/utils/tree'
 import { cloneDeep, isArray } from 'lodash-es'
 import eventBus from '/@/utils/mitt'
 
@@ -73,7 +73,7 @@ const state = reactive({
   loading: false,
   syncLoading: false,
   apiFormTitle: '',
-  filterModel: {
+  filter: {
     name: '',
   },
   apiTreeData: [] as Array<ApiListOutput>,
@@ -101,7 +101,11 @@ const onQuery = async () => {
     state.loading = false
   })
   if (res && res.data && res.data.length > 0) {
-    state.apiTreeData = listToTree(cloneDeep(res.data))
+    state.apiTreeData = filterTree(listToTree(cloneDeep(res.data)), state.filter.name, {
+      filterWhere: (item: any, keyword: string) => {
+        return item.label?.toLocaleLowerCase().indexOf(keyword) > -1 || item.path?.toLocaleLowerCase().indexOf(keyword) > -1
+      },
+    })
     state.formApiTreeData = listToTree(res.data.filter((a) => a.parentId === 0))
   } else {
     state.apiTreeData = []

+ 1 - 1
src/views/admin/permission/index.vue

@@ -165,7 +165,7 @@ const onQuery = async () => {
   if (res && res.data && res.data.length > 0) {
     state.permissionTreeData = filterTree(listToTree(cloneDeep(res.data)), state.filter.name, {
       filterWhere: (item: any, keyword: string) => {
-        return item.label?.toLocaleLowerCase().indexOf(keyword) > -1
+        return item.label?.toLocaleLowerCase().indexOf(keyword) > -1 || item.path?.toLocaleLowerCase().indexOf(keyword) > -1
       },
     })
     state.formPermissionGroupTreeData = listToTree(cloneDeep(res.data).filter((a) => a.type === 1))

+ 5 - 4
src/views/admin/task/index.vue

@@ -1,9 +1,9 @@
 <template>
   <div style="padding: 0px 0px 8px 8px">
     <el-card shadow="never" :body-style="{ paddingBottom: '0' }" style="margin-top: 8px">
-      <el-form :model="state.filterModel" :inline="true" @submit.stop.prevent>
-        <el-form-item prop="name">
-          <el-input v-model="state.filterModel.topic" placeholder="任务名称" @keyup.enter="onQuery" />
+      <el-form :inline="true" @submit.stop.prevent>
+        <el-form-item>
+          <el-input v-model="state.filter.topic" placeholder="任务名称" @keyup.enter="onQuery" />
         </el-form-item>
         <el-form-item>
           <el-button type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
@@ -95,7 +95,7 @@ const taskLogsRef = ref()
 const state = reactive({
   loading: false,
   taskFormTitle: '',
-  filterModel: {
+  filter: {
     topic: '',
   },
   total: 0,
@@ -144,6 +144,7 @@ const formatterTime = (row: any, column: any, cellValue: any) => {
 
 const onQuery = async () => {
   state.loading = true
+  state.pageInput.filter = state.filter
   const res = await new TaskApi().getPage(state.pageInput).catch(() => {
     state.loading = false
   })

+ 6 - 5
src/views/admin/tenant/index.vue

@@ -1,9 +1,9 @@
 <template>
   <div style="padding: 0px 0px 8px 8px">
     <el-card shadow="never" :body-style="{ paddingBottom: '0' }" style="margin-top: 8px">
-      <el-form :model="state.filterModel" :inline="true" @submit.stop.prevent>
-        <el-form-item label="姓名" prop="name">
-          <el-input v-model="state.filterModel.name" placeholder="姓名" @keyup.enter="onQuery" />
+      <el-form :inline="true" @submit.stop.prevent>
+        <el-form-item label="姓名">
+          <el-input v-model="state.filter.name" placeholder="姓名" @keyup.enter="onQuery" />
         </el-form-item>
         <el-form-item>
           <el-button type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
@@ -73,10 +73,10 @@ const setTenantMenuRef = ref()
 const state = reactive({
   loading: false,
   tenantFormTitle: '',
-  filterModel: {
+  total: 0,
+  filter: {
     name: '',
   },
-  total: 0,
   pageInput: {
     currentPage: 1,
     pageSize: 20,
@@ -97,6 +97,7 @@ onUnmounted(() => {
 
 const onQuery = async () => {
   state.loading = true
+  state.pageInput.filter = state.filter
   const res = await new TenantApi().getPage(state.pageInput).catch(() => {
     state.loading = false
   })

+ 10 - 6
src/views/admin/view/index.vue

@@ -3,9 +3,9 @@
     <el-row :gutter="8" style="width: 100%">
       <el-col :span="24" :xs="24">
         <el-card shadow="never" :body-style="{ paddingBottom: '0' }" style="margin-top: 8px">
-          <el-form :model="state.filterModel" :inline="true" @submit.stop.prevent>
-            <el-form-item label="视图名称" prop="name">
-              <el-input v-model="state.filterModel.name" placeholder="视图名称" @keyup.enter="onQuery" />
+          <el-form :inline="true" @submit.stop.prevent>
+            <el-form-item label="视图名称">
+              <el-input v-model="state.filter.name" placeholder="视图名称" @keyup.enter="onQuery" />
             </el-form-item>
             <el-form-item>
               <el-button type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
@@ -53,7 +53,7 @@
 import { ref, reactive, onMounted, getCurrentInstance, onUnmounted, defineAsyncComponent } from 'vue'
 import { ViewListOutput } from '/@/api/admin/data-contracts'
 import { ViewApi } from '/@/api/admin/View'
-import { listToTree } from '/@/utils/tree'
+import { listToTree, filterTree } from '/@/utils/tree'
 import { cloneDeep } from 'lodash-es'
 import eventBus from '/@/utils/mitt'
 
@@ -66,7 +66,7 @@ const { proxy } = getCurrentInstance() as any
 const state = reactive({
   loading: false,
   viewFormTitle: '',
-  filterModel: {
+  filter: {
     name: '',
   },
   viewTreeData: [] as Array<ViewListOutput>,
@@ -90,7 +90,11 @@ const onQuery = async () => {
     state.loading = false
   })
   if (res && res.data && res.data.length > 0) {
-    state.viewTreeData = listToTree(cloneDeep(res.data))
+    state.viewTreeData = filterTree(listToTree(cloneDeep(res.data)), state.filter.name, {
+      filterWhere: (item: any, keyword: string) => {
+        return item.label?.toLocaleLowerCase().indexOf(keyword) > -1 || item.path?.toLocaleLowerCase().indexOf(keyword) > -1
+      },
+    })
   } else {
     state.viewTreeData = []
     state.formViewTreeData = []