WholeProcessPlatform/frontend-sjgl/src/views/conventionalHydropower/zengZhiFangLiu/FbSearch.vue
2026-08-20 16:58:14 +08:00

97 lines
2.3 KiB
Vue

<template>
<BasicSearch
ref="basicSearchRef"
:searchList="searchList"
:initial-values="initSearchData"
:zhujianfujian="'fu'"
@reset="handleReset"
@finish="onSearchFinish"
>
<template #actions>
<a-button @click="hideBtn">{{ isHide ? '展开' : '隐藏' }}</a-button>
<a-button type="primary" @click="handleAdd">新增</a-button>
<a-button type="primary" @click="seeEdit">查看修改</a-button>
</template>
</BasicSearch>
</template>
<script lang="ts" setup>
import { ref, computed, onMounted } from 'vue';
import BasicSearch from '@/components/BasicSearch/index.vue';
import { sttpGetKendoList } from '@/api/system/map/ConfigManagement';
const emit = defineEmits<{
(e: 'search-finish', values: any): void;
(e: 'reset', values: any): void;
(e: 'add'): void;
(e: 'seeEdit'): void;
}>();
const basicSearchRef = ref();
const isHide = ref<boolean>(false);
const sttpOption = ref([]);
const initSearchData = {
baseId: 'all',
rstcd: null,
stnm: null,
sttp: null
};
const searchList: any = computed(() => [
{
type: 'jidiData',
name: 'baseId',
label: '水电基地',
placeholder: '请输入水电基地名称',
fieldProps: { allowClear: true },
options: []
},
{
type: 'Input',
name: 'stnm',
label: '增殖站名称',
placeholder: '请输入增殖站名称',
width: 160,
fieldProps: { allowClear: true }
},
{
col: isHide.value ? 0 : null,
type: 'Select',
name: 'sttp',
label: '测站类型',
width: 160,
fieldProps: { allowClear: true, placeholder: '请选择测站类型' },
options: sttpOption.value
}
]);
const getBaseList = async () => {
const res = await sttpGetKendoList({
filter: {
logic: 'and',
filters: [
{ field: 'sttpCode', operator: 'in', dataType: 'string', value: ['FB'] }
]
}
});
sttpOption.value = res.data.data.map(item => ({
label: item.sttpName,
value: item.sttpCode
}));
};
const onSearchFinish = (values: any) => emit('search-finish', { ...values });
const hideBtn = () => { isHide.value = !isHide.value; };
const handleReset = () => emit('reset', initSearchData);
const handleAdd = () => emit('add');
const seeEdit = () => emit('seeEdit');
onMounted(() => {
getBaseList();
emit('search-finish', { ...initSearchData });
});
defineExpose({ basicSearchRef });
</script>