From ceb024784be107bd51cff0332862805085b224af Mon Sep 17 00:00:00 2001 From: liushilong <2224574157@qq.com> Date: Sun, 31 Mar 2024 23:12:11 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=AB=98=E7=BA=A7=E7=AD=9B=E9=80=89?= =?UTF-8?q?=E7=BB=84=E4=BB=B6props=E8=B0=83=E6=95=B4=EF=BC=8C=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=AE=A1=E6=89=B9=E9=AB=98=E7=BA=A7=E7=AD=9B=E9=80=89?= =?UTF-8?q?=E7=AD=9B=E9=80=89=E5=80=BC=E8=B5=8B=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/config/aside.ts | 2 +- src/config/final.ts | 89 ++++ .../home/aside/comp/modals/FilterModal.vue | 15 +- .../home/aside/comp/modals/NewFilterModal.vue | 2 + src/views/task/aside/Aside.vue | 21 +- src/views/task/modal/CustomFieldModal.vue | 19 +- src/views/task/modal/NewFilterModal.vue | 380 ++++++++++++++++++ 7 files changed, 507 insertions(+), 21 deletions(-) create mode 100644 src/views/task/modal/NewFilterModal.vue diff --git a/src/config/aside.ts b/src/config/aside.ts index 5ba3b4d..7b6b5b7 100644 --- a/src/config/aside.ts +++ b/src/config/aside.ts @@ -8,7 +8,7 @@ export interface AsideEntity { inFilterList?: boolean// 是否出现在过滤配置选项中(这个名字不好,为false代表只用于客户端的显示配置,不作为参数传递给服务器端) render?: boolean// 是否作为单独组件渲染 key: string - component: Component + component?: Component } // 客户端配置 diff --git a/src/config/final.ts b/src/config/final.ts index 17fe255..d9b2970 100644 --- a/src/config/final.ts +++ b/src/config/final.ts @@ -129,3 +129,92 @@ export const asideMap: Recordable = { inFilterList: false, }, } + + +// 审批添加筛选配置 (左侧) +export const asideTaskMap: Recordable = { + izstatus: { + label: '审批状态', + defaultValue: null, + isDefaultFilter: true, + key: 'izstatus' + }, + izuptime: { + label: '提报时间', + defaultValue: null, + isDefaultFilter: true, + key: 'izuptime' + }, + izupuser: { + label: '提报人', + defaultValue: null, + isDefaultFilter: true, + key: 'izupuser' + }, + izprojecttype: { + label: '任务类型', + defaultValue: null, + isDefaultFilter: true, + key: 'izprojecttype' + }, + iztaskrrom: { + label: '任务来源', + defaultValue: null, + isDefaultFilter: true, + key: 'iztaskrrom' + }, + izcustomname: { + label: '拜访客户', + defaultValue: null, + isDefaultFilter: true, + key: 'izcustomname' + }, + izcustomtype: { + label: '客户类型', + defaultValue: null, + isDefaultFilter: true, + key: 'izcustomtype' + }, + izproject: { + label: '所属项目', + defaultValue: null, + isDefaultFilter: true, + key: 'izproject' + }, + izvisitpro: { + label: '拜访省份/直辖市', + defaultValue: null, + isDefaultFilter: true, + key: 'izvisitpro' + }, + izcustomlevel: { + label: '客户级别', + defaultValue: null, + isDefaultFilter: true, + key: 'izcustomlevel' + }, + izprojecttype: { + label: '项目类别', + defaultValue: null, + isDefaultFilter: true, + key: 'izprojecttype' + }, + izproductname: { + label: '产品名称', + defaultValue: null, + isDefaultFilter: true, + key: 'izproductname' + }, + izvisitcity: { + label: '拜访城市', + defaultValue: null, + isDefaultFilter: true, + key: 'izvisitcity' + }, + izfirm: { + label: '厂商', + defaultValue: null, + isDefaultFilter: true, + key: 'izfirm' + } +} \ No newline at end of file diff --git a/src/views/home/aside/comp/modals/FilterModal.vue b/src/views/home/aside/comp/modals/FilterModal.vue index f119d1f..d12ad9a 100644 --- a/src/views/home/aside/comp/modals/FilterModal.vue +++ b/src/views/home/aside/comp/modals/FilterModal.vue @@ -20,6 +20,13 @@ import type { FilterSearchParam } from "/#/api"; defineOptions({ name: "FilterModal" }); +const props = defineProps({ + type: { + type: Number, + default: () => 0, + }, +}); + const emit = defineEmits<{ (e: "showNewFilter"): void; (e: "editFilter", filter: any): void; @@ -56,7 +63,9 @@ const sortData = (row) => { new Date(b[row.columnKey]).getTime() - new Date(a[row.columnKey]).getTime() ); } else { - tableData.value.sort((a, b) => Number((a as any).reorder) - Number((b as any).reorder)); + tableData.value.sort( + (a, b) => Number((a as any).reorder) - Number((b as any).reorder) + ); } }; @@ -142,7 +151,7 @@ async function query(page: number, pageSize: number) { const searchParam: FilterSearchParam = { search_searchname: { value: keyword.value, op: "like", type: "string" }, }; - const result = await getConditionList({ pageNo: page, pageSize }, searchParam, 0); + const result = await getConditionList({ pageNo: page, pageSize }, searchParam, props.type); const { data, pageCount, total: totalCount } = result; tableData.value = data; pagination.page = page; @@ -440,7 +449,7 @@ const inputHandler = debounce((word) => { } } } -::v-deep(.n-data-table .n-data-table-th){ +::v-deep(.n-data-table .n-data-table-th) { font-weight: bold !important; } diff --git a/src/views/home/aside/comp/modals/NewFilterModal.vue b/src/views/home/aside/comp/modals/NewFilterModal.vue index 4793d0d..7b1212e 100644 --- a/src/views/home/aside/comp/modals/NewFilterModal.vue +++ b/src/views/home/aside/comp/modals/NewFilterModal.vue @@ -210,6 +210,8 @@ watch(() => dicStore.relationTypeList, (newval) => { }) function showModal() { + const list = generateAllData(configStore.systemConfig) + typeOptions.value = list show.value = true } diff --git a/src/views/task/aside/Aside.vue b/src/views/task/aside/Aside.vue index 17d1790..8212a5a 100644 --- a/src/views/task/aside/Aside.vue +++ b/src/views/task/aside/Aside.vue @@ -1,21 +1,19 @@ + + + + -- 2.39.3