refactor(mes/qc/template): 替换方案单位输入框为可创建选择器

1. 将搜索区和弹窗中的方案单位输入框改为可创建的下拉选择器
2. 从列表数据中提取已有的方案单位作为选项
3. 重置查询时不再重置页码
4. 移除冗余的分页组件展示逻辑
This commit is contained in:
2026-05-13 10:37:38 +08:00
parent 863ff5f9e2
commit 43dcef4aa9

View File

@@ -9,8 +9,9 @@
@keyup.enter.native="handleQuery" /> @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="方案单位" prop="templateUnit"> <el-form-item label="方案单位" prop="templateUnit">
<el-input v-model="queryParams.templateUnit" placeholder="请输入方案单位" clearable <el-select v-model="queryParams.templateUnit" placeholder="请选择方案单位" clearable filterable allow-create @keyup.enter.native="handleQuery">
@keyup.enter.native="handleQuery" /> <el-option v-for="unit in templateUnitOptions" :key="unit" :label="unit" :value="unit" />
</el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
@@ -44,9 +45,6 @@
<el-empty v-if="inspectionItemTemplateList.length === 0" description="暂无数据" :image-size="100" /> <el-empty v-if="inspectionItemTemplateList.length === 0" description="暂无数据" :image-size="100" />
</div> </div>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
<!-- 添加或修改待检项方案对话框 --> <!-- 添加或修改待检项方案对话框 -->
<el-dialog :title="title" :visible.sync="open" width="700px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
@@ -54,7 +52,9 @@
<el-input v-model="form.templateName" placeholder="请输入方案名称" /> <el-input v-model="form.templateName" placeholder="请输入方案名称" />
</el-form-item> </el-form-item>
<el-form-item label="方案单位" prop="templateUnit"> <el-form-item label="方案单位" prop="templateUnit">
<el-input v-model="form.templateUnit" placeholder="请输入方案单位" /> <el-select v-model="form.templateUnit" placeholder="请选择方案单位" filterable allow-create>
<el-option v-for="unit in templateUnitOptions" :key="unit" :label="unit" :value="unit" />
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="方案描述" prop="templateDesc"> <el-form-item label="方案描述" prop="templateDesc">
<el-input v-model="form.templateDesc" type="textarea" placeholder="请输入内容" /> <el-input v-model="form.templateDesc" type="textarea" placeholder="请输入内容" />
@@ -173,36 +173,34 @@ export default {
CheckItemTransfer, CheckItemTransfer,
}, },
data() { data() {
return { return {
// 按钮loading // 按钮loading
buttonLoading: false, buttonLoading: false,
// 遮罩层 // 遮罩层
loading: true, loading: true,
// 选中数组 // 选中数组
ids: [], ids: [],
// 非单个禁用 // 非单个禁用
single: true, single: true,
// 非多个禁用 // 非多个禁用
multiple: true, multiple: true,
// 显示搜索条件 // 显示搜索条件
showSearch: true, showSearch: true,
// 总条数 // 待检项方案表格数据
total: 0, inspectionItemTemplateList: [],
// 待检项方案表格数据 // 方案单位选项
inspectionItemTemplateList: [], templateUnitOptions: [],
// 弹出层标题 // 弹出层标题
title: "", title: "",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
// 查询参数 // 查询参数
queryParams: { queryParams: {
pageNum: 1, templateName: undefined,
pageSize: 10, templateUnit: undefined,
templateName: undefined, templateDesc: undefined,
templateUnit: undefined, inspectionItem: undefined,
templateDesc: undefined, },
inspectionItem: undefined,
},
// 表单参数 // 表单参数
form: {}, form: {},
// 表单校验 // 表单校验
@@ -235,8 +233,9 @@ export default {
getList() { getList() {
this.loading = true; this.loading = true;
listInspectionItemTemplate(this.queryParams).then(response => { listInspectionItemTemplate(this.queryParams).then(response => {
this.inspectionItemTemplateList = response.rows; this.inspectionItemTemplateList = response.rows || response.data || response;
this.total = response.total; const units = [...new Set(this.inspectionItemTemplateList.map(item => item.templateUnit).filter(Boolean))];
this.templateUnitOptions = units.sort();
this.loading = false; this.loading = false;
}); });
}, },
@@ -369,7 +368,6 @@ export default {
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
this.queryParams.pageNum = 1;
this.getList(); this.getList();
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */