Files
tms-erp-web/src/views/payment/components/bill-ledger-search.vue
T
gxwebsoft a8986690bb refactor(payment): 调整到期快捷筛选至账单台账页面独立展示
- 将快捷筛选标签及相关逻辑从搜索子组件提升至账单台账页面
- 标签置于搜索卡片下方、表格上方独立一行,满足用户需求
- 删除子组件中相关标签DOM及快捷筛选功能代码
- 统一选中态样式,采用 Element Plus 默认蓝底深字风格

fix(transportCapacity): 统一船舶管理弹窗表单控件宽度

- 删除异常的宽度强制规则,避免控件宽度不一致
- 采用固定宽度250px加最大宽度100%方案,实现多控件视觉宽度一致
- 清理无用label-width属性,解决label撑开布局异常问题
- 优化表单项label对齐与必填星号样式,确保多行label视觉协调

refactor(transportCapacity): 优化船舶证书分组布局及标签简化

- 证书有效期自标签统一更改为“有效期自”
- 证书上传区域由集中底部移至对应证书分组末尾,保持信息关联
- 清理无用样式,保留必需上传项间距样式,提升界面整洁度

fix(business): 修复项目申请表单级联选择器宽度问题

- 业务部门和承办部门el-cascader控件未设置宽度,导致收缩
- 补充级联选择器宽度规则,保证与其他控件宽度统一
- 支持热更新,无需重启开发环境
2026-09-02 14:36:42 +08:00

123 lines
3.7 KiB
Vue

<template>
<section class="bill-ledger-search">
<el-form :model="query" label-position="right" label-width="88px" @submit.prevent>
<div class="bill-ledger-search__grid">
<el-form-item label="票据编号">
<el-input v-model="query.billNo" clearable placeholder="请输入" />
</el-form-item>
<el-form-item label="出票日期">
<el-date-picker
v-model="query.issueDateRange"
type="daterange"
unlink-panels
clearable
value-format="YYYY-MM-DD"
start-placeholder="开始日期"
end-placeholder="结束日期"
/>
</el-form-item>
<el-form-item label="出票单位">
<el-input v-model="query.issuerName" clearable placeholder="请输入" />
</el-form-item>
<el-form-item label="收票单位">
<el-input v-model="query.receiverName" clearable placeholder="请输入" />
</el-form-item>
<el-form-item v-if="expanded" label="汇票类型">
<el-select v-model="query.billType" clearable placeholder="请选择">
<el-option
v-for="item in billTypeOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item v-if="expanded" label="到期状态">
<el-select v-model="query.maturityStatus" clearable placeholder="请选择">
<el-option
v-for="item in maturityStatusOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</div>
<div class="bill-ledger-search__actions-buttons">
<el-button type="primary" :loading="loading" @click="$emit('search')">
<el-icon><Search /></el-icon>
<span>搜索</span>
</el-button>
<el-button @click="$emit('reset')">
<el-icon><Delete /></el-icon>
<span>重置</span>
</el-button>
<el-tooltip :content="expanded ? '折叠' : '展开'" placement="top">
<el-button text @click="expanded = !expanded">
<el-icon><component :is="expanded ? ArrowUp : ArrowDown" /></el-icon>
<span>{{ expanded ? '折叠' : '展开' }}</span>
</el-button>
</el-tooltip>
</div>
</el-form>
</section>
</template>
<script>
import { ArrowDown, ArrowUp, Delete, Search } from '@element-plus/icons-vue';
import { billTypeOptions, maturityStatusOptions } from '@/api/payment/billLedger';
export default {
name: 'BillLedgerSearch',
props: {
query: { type: Object, required: true },
loading: { type: Boolean, default: false },
},
emits: ['search', 'reset'],
data() {
return {
ArrowDown,
ArrowUp,
Delete,
Search,
expanded: false,
billTypeOptions,
maturityStatusOptions,
};
},
};
</script>
<style scoped lang="scss">
.bill-ledger-search {
padding: 12px 12px 4px;
background: #fff;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}
.bill-ledger-search__grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 8px 24px;
}
.bill-ledger-search :deep(.el-form-item) {
margin-bottom: 8px;
}
.bill-ledger-search :deep(.el-input),
.bill-ledger-search :deep(.el-select),
.bill-ledger-search :deep(.el-date-editor) {
width: 100%;
}
.bill-ledger-search__actions-buttons {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 8px;
margin-bottom: 8px;
}
@media (max-width: 1200px) {
.bill-ledger-search__grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
</style>