Commit 6f6be05b authored by 王玉鑫's avatar 王玉鑫

feat: 我的园区搜索条件

parent 712f44b8
......@@ -5413,7 +5413,7 @@
},
"node_modules/dayjs": {
"version": "1.11.10",
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz",
"resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz",
"integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ=="
},
"node_modules/de-indent": {
......@@ -15410,7 +15410,7 @@
},
"dayjs": {
"version": "1.11.10",
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz",
"resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz",
"integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ=="
},
"de-indent": {
......
<template>
<div>
<div class="flex">
<div class="flex space-x-[10px]">
<div>
<ElSelect v-model="params.isSystem" placeholder="请选择来源方式">
<ElOption label="录入" :value="SourceType.input"></ElOption>
<ElOption label="完善" :value="SourceType.repair"></ElOption>
</ElSelect>
</div>
<div>
<ElInput v-model="params.name" placeholder="请输入名称"></ElInput>
</div>
<div>
<ElDatePicker
v-model="params.time"
class="!w-[350px]"
format="YYYY-MM-DD hh:mm"
value-format="YYYY-MM-DD hh:mm"
type="datetimerange"
placeholder="请选择录入时间"
/>
</div>
<div>
<ElSelect v-model="params.status" placeholder="请选择审批状态">
<ElOption label="审核通过" :value="AuthStatus.authed"></ElOption>
<ElOption label="审核拒绝" :value="AuthStatus.reject"></ElOption>
<ElOption label="待审核" :value="AuthStatus.waitAuth"></ElOption>
</ElSelect>
</div>
</div>
<div class="ml-[10px] flex flex-none items-center">
<div
class="flex h-[30px] w-[56px] cursor-pointer items-center justify-center rounded-sm bg-[#C0322B] text-xs leading-[22px] text-white"
@click="handleSearch"
>
搜索
</div>
<div
class="flex h-[30px] w-[56px] cursor-pointer items-center justify-center rounded-sm text-xs leading-[22px] outline outline-1 outline-[black]/[.08]"
@click="handleReset"
>
重置
</div>
</div>
</div>
<ElTable :data="datas" row-key="id">
<ElTableColumn label="编号">
<template #default="{ $index }">
......@@ -32,9 +76,9 @@
import { useListView } from '@/composable/useListView.ts';
import { RouteName } from '@/router/router.ts';
import { RequestUrl } from '@/types/api.ts';
import type { MyParkCondition, MyParkItem } from '@/types/api/myParkList';
import { ParkItemType } from '@/types/enum.ts';
import { computed } from 'vue';
import { SourceType, type MyParkCondition, type MyParkItem } from '@/types/api/myParkList.ts';
import { AuthStatus, ParkItemType } from '@/types/enum.ts';
import { computed, ref } from 'vue';
import ListPagination from '@/components/list/ListPagination.vue';
const props = withDefaults(
......@@ -44,6 +88,13 @@ const props = withDefaults(
{},
);
const params = ref({
time: '',
isSystem: '',
name: '',
status: '',
});
const isDevelop = computed(() => {
return props.type === ParkItemType.develop;
});
......@@ -72,8 +123,7 @@ const currentUrl = computed(() => {
}
});
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const { pageNum, pageSize, totalCount, datas, handleDetail, queryList } = useListView<
const { pageNum, pageSize, totalCount, datas, handleDetail, searchParams } = useListView<
MyParkItem,
MyParkCondition
>(currentUrl.value!);
......@@ -92,4 +142,26 @@ const toDetail = (row: MyParkItem) => {
handleDetail(routeName!, row);
}
};
const handleSearch = () => {
const result = Object.entries(params.value).reduce((pre, [key, value]) => {
if (value && key !== 'time') {
pre[key] = value;
}
return pre;
}, {} as any);
if (params.value.time) {
[result.startCreateTime, result.endCreateTime] = params.value.time;
}
searchParams.value = result;
};
const handleReset = () => {
params.value.isSystem = '';
params.value.name = '';
params.value.status = '';
params.value.time = '';
searchParams.value = '' as any;
};
</script>
......@@ -2,6 +2,9 @@ import './assets/styles/main.scss';
import { createApp } from 'vue';
import { createPinia } from 'pinia';
import ElementPlus from 'element-plus';
// @ts-ignore
import zhCn from 'element-plus/dist/locale/zh-cn.mjs';
import App from './App.vue';
import router from './router/router.ts';
......@@ -10,6 +13,9 @@ const app = createApp(App);
app.use(createPinia());
app.use(router);
app.use(ElementPlus, {
locale: zhCn,
});
app.mount('#app');
......
import { AuthStatus } from '@/types/enum.ts';
/**
* 来源方式
*/
export enum SourceType {
/** 录入 */
input = 1,
/** 完善 */
repair = 2,
}
/**
* 我的园区列表请求条件参数
*/
export interface MyParkCondition {
/** 录入结束时间 */
endCreateTime: string;
endCreateTime?: string;
/** 来源方式 */
isSystem: number;
isSystem?: SourceType;
/** 名称 */
name: string;
name?: string;
/** 录入起始时间 */
startCreateTime: string;
startCreateTime?: string;
/** 审批状态 */
status: number;
status?: AuthStatus;
}
/**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment