WholeProcessPlatform/frontend/src/views/DataQueryMenuModule/components/conventionalHydropower/Approval/ApprovalSearch.vue
2026-06-25 10:21:53 +08:00

143 lines
2.9 KiB
Vue

<template>
<div class="approval-search">
<BasicSearch
ref="basicSearchRef"
:searchList="searchList"
:initial-values="initSearchData"
:zhujianfujian="'fu'"
@reset="handleReset"
@finish="onSearchFinish"
@values-change="onValuesChange"
>
<template #actions>
<a-button :loading="exportLoading" @click="exportBtn">导出</a-button>
</template>
</BasicSearch>
</div>
</template>
<script lang="ts" setup>
import { ref, computed, onMounted } from 'vue';
import BasicSearch from '@/components/BasicSearch/index.vue';
const emit = defineEmits<{
(e: 'export-btn'): void;
(e: 'reset', values: any): void;
(e: 'search-finish', values: any): void;
}>();
const basicSearchRef = ref<any>();
const btnLoading = ref<boolean>(false);
const props = defineProps<{
exportLoading?: boolean;
}>();
const initSearchData = {
basin: null,
approvalFileNo: null,
ecologicalFlow: null,
fishPassageMeasures: null,
envMonitoringRequire: null,
bldsttCcode: null
};
const searchData = ref<any>({ ...initSearchData });
const searchList: any = computed(() => [
{
type: 'waterStation',
name: 'rvcd',
label: '流域',
placeholder: '请输入流域名称',
fieldProps: {
allowClear: true
},
options: []
},
{
type: 'Input',
name: 'approvalFileNo',
label: '批复文号',
width: 140,
placeholder: '请输入批复文号',
fieldProps: {
allowClear: true
},
options: []
},
{
type: 'Input',
name: 'ecologicalFlow',
label: '生态流量',
width: 140,
placeholder: '请输入生态流量',
fieldProps: {
allowClear: true
},
options: []
},
{
type: 'Input',
name: 'fishPassageMeasures',
label: '过鱼措施',
width: 140,
placeholder: '请输入过鱼措施',
fieldProps: {
allowClear: true
},
options: []
},
{
type: 'Input',
name: 'envMonitoringRequire',
label: '环境监测要求',
width: 170,
placeholder: '请输入环境监测要求',
fieldProps: {
allowClear: true
},
options: []
},
{
type: 'Select',
name: 'bldsttCcode',
label: '建设状态',
width: 140,
fieldProps: {},
options: [
{ label: '全部', value: '' },
{ label: '未建', value: '0' },
{ label: '在建', value: '1' },
{ label: '已建', value: '2' }
]
}
]);
const onSearchFinish = (values: any) => {
emit('search-finish', values);
};
const exportBtn = () => {
emit('export-btn');
};
const onValuesChange = (changedValues: any, allValues: any) => {
searchData.value = { ...searchData.value, ...allValues };
};
const handleReset = () => {
emit('reset', initSearchData);
};
defineExpose({
btnLoading,
searchData
});
onMounted(() => {
emit('search-finish', initSearchData);
});
</script>
<style lang="scss"></style>