From 98842219bbf873965b4a86dbdfe3c44152be6c3b Mon Sep 17 00:00:00 2001 From: elseif Date: Mon, 18 Mar 2024 10:20:08 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BF=AE=E6=94=B9=E7=BB=88?= =?UTF-8?q?=E5=AE=A1=E5=88=97=E8=A1=A8=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components.d.ts | 1 + src/api/final/index.ts | 20 +++++++++++++++++++- src/config/aside.ts | 2 +- src/views/final/aside/Aside.vue | 6 +++--- src/views/final/content/Content.vue | 21 +++++++++++++++++++-- src/views/task/content/Content.vue | 10 +++++++--- src/views/task/modal/BatchModal.vue | 6 +++--- 7 files changed, 53 insertions(+), 13 deletions(-) diff --git a/components.d.ts b/components.d.ts index 0640c56..ef2a1b7 100644 --- a/components.d.ts +++ b/components.d.ts @@ -20,6 +20,7 @@ declare module 'vue' { NDialogProvider: typeof import('naive-ui')['NDialogProvider'] NDivider: typeof import('naive-ui')['NDivider'] NDropdown: typeof import('naive-ui')['NDropdown'] + NEmpty: typeof import('naive-ui')['NEmpty'] NForm: typeof import('naive-ui')['NForm'] NFormItem: typeof import('naive-ui')['NFormItem'] NGi: typeof import('naive-ui')['NGi'] diff --git a/src/api/final/index.ts b/src/api/final/index.ts index 3b11d58..3469e37 100644 --- a/src/api/final/index.ts +++ b/src/api/final/index.ts @@ -1,15 +1,33 @@ import type { FinalParam, ResetParam } from '/#/api' import { http } from '@/utils/http/axios' +import { notEmpty } from '@/utils' +import { pickBy } from 'lodash-es' +import { formatToDate2 } from '@/utils/dateUtil' /** * 获取审核列表 * @returns */ export async function getFinalList(params: FinalParam) { + const notEmptyParams = pickBy(params, notEmpty) + + Object.keys(notEmptyParams).forEach((key) => { + const val = notEmptyParams[key] + + if (key === 'izuptime') { + const start = formatToDate2(val[0]) + const end = formatToDate2(val[1]) + notEmptyParams[key] = `${start}-${end}` + } + + if (Array.isArray(notEmptyParams[key])) + notEmptyParams[key] = val.join(',') + }) + const res = await http.request({ url: `/flow/task/listfinal`, method: 'get', - params, + params: notEmptyParams, }) const { data: { list, totalPage } } = res diff --git a/src/config/aside.ts b/src/config/aside.ts index 1a1b6fd..3d3aec4 100644 --- a/src/config/aside.ts +++ b/src/config/aside.ts @@ -5,7 +5,7 @@ export interface AsideEntity { label: string defaultValue?: any isDefaultFilter?: boolean// 是否为默认显示选项(不能隐藏) - inFilterList?: boolean// 是否出现在过滤配置选项中 + inFilterList?: boolean// 是否出现在过滤配置选项中(这个名字不好,为false代表只用于客户端的显示配置,不作为参数传递给服务器端) render?: boolean// 是否作为单独组件渲染 key: string component: Component diff --git a/src/views/final/aside/Aside.vue b/src/views/final/aside/Aside.vue index 1608e22..ac2c2b8 100644 --- a/src/views/final/aside/Aside.vue +++ b/src/views/final/aside/Aside.vue @@ -21,9 +21,9 @@ const asideVisible: Partial> = reactive({}) const showItems = shallowRef<{ key: string, config: AsideEntity }[]>([]) Object.keys(asideMap).forEach((key) => { - const entity = asideMap[key] - const { defaultValue } = entity - asideValue[key] = defaultValue + const { defaultValue, inFilterList } = asideMap[key] + if (inFilterList !== false) + asideValue[key] = defaultValue }) const filterModalRef = ref(null) diff --git a/src/views/final/content/Content.vue b/src/views/final/content/Content.vue index e8d5894..6a6c607 100644 --- a/src/views/final/content/Content.vue +++ b/src/views/final/content/Content.vue @@ -6,12 +6,13 @@ import type { RowData } from '@/config/final' import { findKey, headRules } from '@/config/final' import { useWindowSizeFn } from '@/hooks/event/useWindowSizeFn' import { useUser } from '@/store/modules/user' +import { useFinal } from '@/store/modules/final' import { getViewportOffset } from '@/utils/domUtils' import { isBoolean } from '@/utils/is' import ConfrimModal from '@/views/task/modal/ConfrimModal.vue' import type { DataTableColumns, DataTableRowKey, PaginationProps } from 'naive-ui' import { NDataTable, useDialog, useMessage } from 'naive-ui' -import { computed, h, nextTick, onMounted, reactive, ref, unref } from 'vue' +import { computed, h, nextTick, onMounted, reactive, ref, unref, watch } from 'vue' import { Action, CustomTabelModal, ImportExcelModal, RepeatModal, RepeatTaskTableModal } from '../comp' import type { ApprovalParam } from '/#/api' @@ -125,9 +126,11 @@ const selectionIds = ref([]) const userStore = useUser() const dialog = useDialog() const message = useMessage() +const finalStore = useFinal() async function query(page: number, pageSize: number) { - const result = await getFinalList({ sortorder: 'asc', pageSize, currPage: page, sortname: '' }) + const filterParams = unref(finalStore.getAsideValue) + const result = await getFinalList({ sortorder: 'asc', pageSize, currPage: page, sortname: '', ...filterParams }) const { data, pageCount } = result tableData.value = data pagination.page = page @@ -381,6 +384,20 @@ function reload() { const { page, pageSize } = unref(tableRef.value?.pagination) as PaginationProps query(page!, pageSize!) } + +watch(() => finalStore.asideValue, (newVal, oldVal) => { + refreshHandler() +}, { deep: true }) + +function reset() { + pagination.page = 1 + pagination.pageCount = 1 + pagination.pageSize = 1 +} + +async function refreshHandler() { + query(pagination.page, pagination.pageSize) +} diff --git a/src/views/task/modal/BatchModal.vue b/src/views/task/modal/BatchModal.vue index ce72ef9..6d106cc 100644 --- a/src/views/task/modal/BatchModal.vue +++ b/src/views/task/modal/BatchModal.vue @@ -296,15 +296,15 @@ async function refreshHandler() { const packageid = taskStore.getPackageid const taskId = taskStore.getActiveId + if (!packageid || !taskId) + return + taskDetailInfo.value = await getTaskDetailInfo(taskId, packageid) pagination.pageNo = 1 pagination.pageSize = 30 listData.value.length = 0 - if (!packageid || !taskId) - return - const list = await featchList() listData.value = list layout()