refactor(crm): 统一搜索字段名并优化搜索功能

- 将多个页面的搜索字段统一命名为"keyword"以提高一致性
- 优化搜索按钮布局和交互,添加明确的搜索按钮
- 调整字段标签和占位文本使其更准确
- 修复合同列表导出功能中的HTML内容处理逻辑
This commit is contained in:
砂糖
2026-04-07 11:47:41 +08:00
parent dc92939262
commit 505f821df0
4 changed files with 48 additions and 38 deletions

View File

@@ -4,8 +4,8 @@
<div class="filter-section" style="padding: 10px; border-bottom: 1px solid #e4e7ed;"> <div class="filter-section" style="padding: 10px; border-bottom: 1px solid #e4e7ed;">
<div style="display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px;"> <div style="display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px;">
<div style="display: flex; align-items: center; gap: 4px;"> <div style="display: flex; align-items: center; gap: 4px;">
<el-input v-model="queryParams.contractName" placeholder="请输入合同名称" clearable @keyup.enter.native="handleQuery" <el-input v-model="queryParams.keyword" placeholder="请输入关键字" clearable
style="width: 200px;" /> @keyup.enter.native="handleQuery" />
<el-button icon="el-icon-sort" size="mini" @click="toggleMoreFilter" <el-button icon="el-icon-sort" size="mini" @click="toggleMoreFilter"
:type="showMoreFilter ? 'primary' : 'default'"> :type="showMoreFilter ? 'primary' : 'default'">
<!-- {{ showMoreFilter ? '收起' : '更多' }} --> <!-- {{ showMoreFilter ? '收起' : '更多' }} -->
@@ -19,6 +19,10 @@
<div v-show="showMoreFilter" class="more-filter" <div v-show="showMoreFilter" class="more-filter"
style="margin-top: 10px; padding-top: 10px; border-top: 1px dashed #e4e7ed;"> style="margin-top: 10px; padding-top: 10px; border-top: 1px dashed #e4e7ed;">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="80px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="80px">
<el-form-item label="合同名称" prop="contractName">
<el-input v-model="queryParams.contractName" placeholder="请输入合同名称" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="合同编号" prop="contractNo"> <el-form-item label="合同编号" prop="contractNo">
<el-input v-model="queryParams.contractNo" placeholder="请输入合同编号" clearable <el-input v-model="queryParams.contractNo" placeholder="请输入合同编号" clearable
@keyup.enter.native="handleQuery" /> @keyup.enter.native="handleQuery" />

View File

@@ -6,14 +6,17 @@
<div style="font-weight: 900;">客户列表</div> <div style="font-weight: 900;">客户列表</div>
<!-- 搜索区域 --> <!-- 搜索区域 -->
<div style="display: flex; align-items: center; gap: 5px; margin-top: 10px;"> <div style="display: flex; align-items: center; gap: 5px; margin-top: 10px;">
<el-input style="flex: 1;" prefix-icon="el-icon-search" placeholder="输入客户编码搜索" <el-input style="flex: 1;" prefix-icon="el-icon-search" placeholder="输入关键字搜索"
v-model="queryParams.customerCode" @change="getCustomerList" clearable></el-input> v-model="queryParams.keyword" @change="getCustomerList" clearable></el-input>
<el-button icon="el-icon-search" @click="toggleQuery"></el-button> <el-button icon="el-icon-sort" @click="toggleQuery"></el-button>
<el-button type="primary" icon="el-icon-search" style="margin-left: 0;" size="mini" @click="getCustomerList"></el-button>
<el-button type="primary" icon="el-icon-plus" style="margin-left: 0;" @click="handleAdd"></el-button> <el-button type="primary" icon="el-icon-plus" style="margin-left: 0;" @click="handleAdd"></el-button>
</div> </div>
<!-- 高级查询区域 --> <!-- 高级查询区域 -->
<div v-show="showQuery" <div v-show="showQuery"
style="display: flex; align-items: center; gap: 5px; margin-top: 10px; flex-wrap: wrap;"> style="display: flex; align-items: center; gap: 5px; margin-top: 10px; flex-wrap: wrap;">
<el-input style="width: 180px" placeholder="客户编码"
v-model="queryParams.customerCode" @change="getCustomerList" clearable></el-input>
<el-select style="width: 100px;" v-model="queryParams.industry" placeholder="客户行业" clearable <el-select style="width: 100px;" v-model="queryParams.industry" placeholder="客户行业" clearable
@change="getCustomerList"> @change="getCustomerList">
<el-option v-for="item in dict.type.customer_industry" :key="item.value" :label="item.label" <el-option v-for="item in dict.type.customer_industry" :key="item.value" :label="item.label"

View File

@@ -5,9 +5,10 @@
<div style="font-weight: 900;">订单列表</div> <div style="font-weight: 900;">订单列表</div>
<div style="display: flex; align-items: center; gap: 5px; margin-top: 10px;"> <div style="display: flex; align-items: center; gap: 5px; margin-top: 10px;">
<!-- 主搜索和添加 --> <!-- 主搜索和添加 -->
<el-input style="flex: 1;" prefix-icon="el-icon-search" placeholder="输入订单编号搜索" <el-input style="flex: 1;" prefix-icon="el-icon-search" placeholder="输入关键字搜索"
v-model="queryParams.orderCode"></el-input> v-model="queryParams.keyword" @change="getList" clearable></el-input>
<el-button icon="el-icon-search" @click="toggleQuery"></el-button> <el-button icon="el-icon-sort" @click="toggleQuery"></el-button>
<el-button type="primary" icon="el-icon-search" style="margin-left: 0;" size="mini" @click="getList"></el-button>
<el-button type="primary" icon="el-icon-plus" style="margin-left: 0;" @click="handleAdd" <el-button type="primary" icon="el-icon-plus" style="margin-left: 0;" @click="handleAdd"
v-hasPermi="['crm:order:add']"></el-button> v-hasPermi="['crm:order:add']"></el-button>
</div> </div>
@@ -15,11 +16,13 @@
style="display: flex; align-items: center; gap: 5px; margin-top: 10px; flex-wrap: wrap;"> style="display: flex; align-items: center; gap: 5px; margin-top: 10px; flex-wrap: wrap;">
<!-- 查询区通过上方的查询按钮控制显示隐藏 --> <!-- 查询区通过上方的查询按钮控制显示隐藏 -->
<!-- 客户行业和客户等级的下拉选 --> <!-- 客户行业和客户等级的下拉选 -->
<el-select style="width: 100px;" v-model="queryParams.salesman" placeholder="销售员" clearable> <el-input style="width: 180px;" placeholder="订单编号"
v-model="queryParams.orderCode" @change="getList" clearable></el-input>
<el-select style="width: 100px;" v-model="queryParams.salesman" placeholder="销售员" clearable @change="getList">
<el-option v-for="item in dict.type.wip_pack_saleman" :key="item.value" :label="item.label" <el-option v-for="item in dict.type.wip_pack_saleman" :key="item.value" :label="item.label"
:value="item.value" /> :value="item.value" />
</el-select> </el-select>
<el-select style="width: 100px;" v-model="queryParams.orderStatus" placeholder="订单状态" clearable> <el-select style="width: 100px;" v-model="queryParams.orderStatus" placeholder="订单状态" clearable @change="getList">
<el-option v-for="(value, key) in ORDER_STATUS" :key="value" :label="key" :value="value" /> <el-option v-for="(value, key) in ORDER_STATUS" :key="value" :label="key" :value="value" />
</el-select> </el-select>
</div> </div>
@@ -35,7 +38,7 @@
</div> </div>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getOrderList" /> :limit.sync="queryParams.pageSize" @pagination="getList" />
</el-col> </el-col>
<el-col :span="19"> <el-col :span="19">

View File

@@ -1,10 +1,10 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="销售员标签" prop="dictLabel"> <el-form-item label="销售员名称" prop="dictLabel">
<el-input <el-input
v-model="queryParams.dictLabel" v-model="queryParams.dictLabel"
placeholder="请输入销售员标签" placeholder="请输入销售员名称"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />