tableheader

This commit is contained in:
仲么了
2024-01-04 16:39:05 +08:00
parent f14b778c05
commit 450b37fae9
4 changed files with 79 additions and 56 deletions

View File

@@ -1,32 +1,51 @@
<template> <template>
<div ref="tableHeader"> <div ref="tableHeader" class="cn-table-header">
<!-- 通用搜索 --> <!-- 通用搜索 -->
<transition name="el-zoom-in-bottom" mode="out-in" v-if="$slots.select"> <transition name="el-zoom-in-bottom" mode="out-in">
<div class="table-com-search" v-if="showSelect"> <div class="table-com-search" v-show="showSelect">
<el-form @submit.prevent="" @keyup.enter="onComSearch" label-position="left" :inline="true"> <el-form
@submit.prevent=""
@keyup.enter="onComSearch"
label-position="left"
:inline="true"
class="table-com-search-form"
:label-width="90"
>
<slot name="select"></slot> <slot name="select"></slot>
<el-form-item label="日期" v-if="datePicker"> <el-form-item label="日期" v-if="datePicker">
<DatePicker v-model="date" @change="dateChange"></DatePicker> <DatePicker v-model="date" @change="dateChange"></DatePicker>
</el-form-item> </el-form-item>
<el-form-item>
<el-button @click="onComSearch" type="primary">查询</el-button>
<el-button @click="onResetForm">重置</el-button>
</el-form-item>
</el-form> </el-form>
</div> </div>
</transition> </transition>
<div class="table-header ba-scroll-style">
<div class="table-header ba-scroll-style" v-if="showOperation"> <div style="flex: 1; height: 32px; overflow: hidden">
<slot name="operation"></slot> <el-form
<!-- 右侧搜索框和工具按钮 --> v-show="!showSelect"
<div class="table-search"> id="header-form"
<slot name="right"></slot> @submit.prevent=""
<div class="table-search-button-group" v-if="$slots.select"> @keyup.enter="onComSearch"
label-position="left"
:inline="true"
class="table-com-search-form2"
:label-width="100"
>
<slot name="select"></slot>
<el-form-item label="日期" v-if="datePicker">
<DatePicker v-model="date" @change="dateChange"></DatePicker>
</el-form-item>
</el-form>
</div>
<template v-if="$slots.select">
<el-button @click="onComSearch" type="primary">查询</el-button>
<el-button @click="onResetForm">重置</el-button>
<div class="table-search-button-group" v-if="showUnfoldButton">
<el-button class="table-search-button-item" color="#dcdfe6" plain @click="showSelectChange"> <el-button class="table-search-button-item" color="#dcdfe6" plain @click="showSelectChange">
<Icon size="14" name="el-icon-Search" /> <Icon size="14" name="el-icon-Search" />
</el-button> </el-button>
</div> </div>
</div> </template>
<slot name="operation"></slot>
</div> </div>
</div> </div>
</template> </template>
@@ -45,15 +64,10 @@ const date = ref([
]) ])
interface Props { interface Props {
// 默认展开
showSelect?: boolean
showOperation?: boolean // 是否显示operation
datePicker?: boolean datePicker?: boolean
} }
const props = withDefaults(defineProps<Props>(), { const props = withDefaults(defineProps<Props>(), {
showSelect: true,
showOperation: true,
datePicker: false datePicker: false
}) })
if (props.datePicker) { if (props.datePicker) {
@@ -66,8 +80,16 @@ const resizeObserver = new ResizeObserver(entries => {
handlerHeight() handlerHeight()
} }
}) })
const showUnfoldButton = ref(false)
onMounted(() => { onMounted(() => {
nextTick(() => {
resizeObserver.observe(tableHeader.value) resizeObserver.observe(tableHeader.value)
const dom = document.getElementById('header-form')
console.log(dom.offsetHeight,'123123')
if (dom.offsetHeight > 50) {
showUnfoldButton.value = true
}
})
}) })
onUnmounted(() => { onUnmounted(() => {
resizeObserver.disconnect() resizeObserver.disconnect()
@@ -78,7 +100,7 @@ const handlerHeight = () => {
tableStore.table.publicHeight + tableHeader.value.offsetHeight + (tableStore.showPage ? 58 : 0) + 20 tableStore.table.publicHeight + tableHeader.value.offsetHeight + (tableStore.showPage ? 58 : 0) + 20
).height as string ).height as string
} }
const showSelect = ref(props.showSelect) const showSelect = ref(false)
const showSelectChange = () => { const showSelectChange = () => {
showSelect.value = !showSelect.value showSelect.value = !showSelect.value
nextTick(() => { nextTick(() => {
@@ -124,40 +146,43 @@ const dateChange = () => {
background-color: var(--ba-bg-color-overlay); background-color: var(--ba-bg-color-overlay);
border: 1px solid var(--ba-border-color); border: 1px solid var(--ba-border-color);
border-bottom: none; border-bottom: none;
padding: 13px 15px 0 15px; padding: 13px 15px 20px 15px;
font-size: 14px; font-size: 14px;
.com-search-col {
display: flex;
align-items: center;
padding-top: 8px;
color: var(--el-text-color-regular);
font-size: 13px;
} }
.table-com-search-form,
.com-search-col-label { .table-com-search-form2 {
width: 33.33%; display: grid;
padding: 0 15px; grid-gap: 20px;
text-align: right; grid-template-columns: repeat(5, 1fr);
overflow: hidden; :deep(.el-select),
white-space: nowrap; :deep(.el-cascader),
:deep(.el-input) {
width: 100%;
} }
:deep(.el-form-item) {
.com-search-col-input { max-width: 600px;
padding: 0 15px; margin-right: 0;
width: 66.66%; margin-bottom: 0;
}
.com-search-col-input-range {
display: flex;
align-items: center;
padding: 0 15px;
width: 66.66%;
.range-separator {
padding: 0 5px;
} }
} }
@media screen and (max-width: 2600px) {
.table-com-search-form {
grid-template-columns: repeat(4, 1fr);
}
}
@media screen and (max-width: 2000px) {
.table-com-search-form {
grid-template-columns: repeat(3, 1fr);
}
}
@media screen and (max-width: 1400px) {
.table-com-search-form {
grid-template-columns: repeat(2, 1fr);
}
}
.table-com-search-form2 {
grid-template-columns: repeat(auto-fit, 400px);
} }
.mlr-12 { .mlr-12 {

View File

@@ -1,6 +1,6 @@
<template> <template>
<div class="default-main"> <div class="default-main">
<TableHeader date-picker :showOperation="false"> <TableHeader date-picker>
<template v-slot:select> <template v-slot:select>
<el-form-item label="区域"> <el-form-item label="区域">
<Area v-model="tableStore.table.params.deptIndex" /> <Area v-model="tableStore.table.params.deptIndex" />
@@ -46,7 +46,6 @@
<el-input <el-input
v-model="tableStore.table.params.searchValue" v-model="tableStore.table.params.searchValue"
placeholder="根据变电站,终端编号,型号或网络参数查询" placeholder="根据变电站,终端编号,型号或网络参数查询"
style="width: 300px"
/> />
</el-form-item> </el-form-item>
</template> </template>

View File

@@ -1,6 +1,6 @@
<template> <template>
<div class="default-main"> <div class="default-main">
<TableHeader date-picker :showOperation="false"> <TableHeader date-picker>
<template v-slot:select> <template v-slot:select>
<el-form-item label="区域"><Area v-model="tableStore.table.params.deptIndex" /></el-form-item> <el-form-item label="区域"><Area v-model="tableStore.table.params.deptIndex" /></el-form-item>
<el-form-item label="干扰源类型"> <el-form-item label="干扰源类型">
@@ -48,7 +48,6 @@
<el-input <el-input
v-model="tableStore.table.params.searchValue" v-model="tableStore.table.params.searchValue"
placeholder="根据变电站,终端编号,型号或网络参数查询" placeholder="根据变电站,终端编号,型号或网络参数查询"
style="width: 300px"
/> />
</el-form-item> </el-form-item>
</template> </template>

View File

@@ -1,6 +1,6 @@
<template> <template>
<div class="default-main"> <div class="default-main">
<TableHeader date-picker :showOperation="false" showSelect> <TableHeader date-picker >
<template v-slot:select> <template v-slot:select>
<el-form-item label="区域"> <el-form-item label="区域">
<Area v-model="tableStore.table.params.deptIndex" /> <Area v-model="tableStore.table.params.deptIndex" />