feat(组件): 为多选组件添加全选功能并移除板面校验

- 在多选组件中增加全选选项和功能
- 移除异常管理中的板面校验逻辑
- 修复保存按钮加载状态显示问题
This commit is contained in:
砂糖
2026-04-16 10:18:21 +08:00
parent 220a24da78
commit 440e70ee82
3 changed files with 43 additions and 32 deletions

View File

@@ -1,25 +1,34 @@
<template> <template>
<div class="muti-select"> <div class="muti-select">
<!-- 下拉选择模式 --> <!-- 下拉选择模式 -->
<el-select <div v-if="type === 'select'" class="select-container">
v-if="type === 'select'" <el-select
v-model="innerValue" v-model="innerValue"
multiple multiple
:placeholder="placeholder" :placeholder="placeholder"
:filterable="filterable" :filterable="filterable"
:clearable="clearable" :clearable="clearable"
:allow-create="allowAdd" :allow-create="allowAdd"
:disabled="disabled" :disabled="disabled"
:size="size" :size="size"
@change="handleChange" @change="handleChange"
> >
<el-option <!-- 全选选项 -->
v-for="item in options" <el-option
:key="item.value" v-if="showSelectAll && options.length > 0"
:label="item.label" key="selectAll"
:value="item.value" label="全选"
/> value="selectAll"
</el-select> @click="toggleSelectAll"
/>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</div>
<!-- 复选框模式 --> <!-- 复选框模式 -->
<div v-else-if="type === 'checkbox'" class="checkbox-group"> <div v-else-if="type === 'checkbox'" class="checkbox-group">
@@ -33,14 +42,14 @@
{{ item.label }} {{ item.label }}
</el-checkbox> </el-checkbox>
</el-checkbox-group> </el-checkbox-group>
<!-- <el-button <el-button
v-if="showSelectAll && options.length > 0" v-if="showSelectAll && options.length > 0"
type="text" type="text"
size="small" size="small"
@click="toggleSelectAll" @click="toggleSelectAll"
> >
{{ isAllSelected ? '取消全选' : '全选' }} {{ isAllSelected ? '取消全选' : '全选' }}
</el-button> --> </el-button>
</div> </div>
</div> </div>
</template> </template>
@@ -114,7 +123,9 @@
methods: { methods: {
// 处理选择变化 // 处理选择变化
handleChange(val) { handleChange(val) {
this.$emit('change', val.join(',')); // 过滤掉 'selectAll' 选项
const filteredVal = val.filter(item => item !== 'selectAll');
this.$emit('change', filteredVal.join(','));
}, },
// 处理复选框变化 // 处理复选框变化
handleCheckboxChange(val) { handleCheckboxChange(val) {

View File

@@ -82,10 +82,10 @@ export default {
{ required: true, message: '请选择位置', trigger: 'change' }, { required: true, message: '请选择位置', trigger: 'change' },
{ validator: this.validateArray, trigger: 'change' } { validator: this.validateArray, trigger: 'change' }
], ],
plateSurface: [ // plateSurface: [
{ required: true, message: '请选择上下板面', trigger: 'change' }, // { required: true, message: '请选择上下板面', trigger: 'change' },
{ validator: this.validateArray, trigger: 'change' } // { validator: this.validateArray, trigger: 'change' }
], // ],
startPosition: [ startPosition: [
{ required: true, message: '请输入开始位置', trigger: ['blur', 'change'] }, { required: true, message: '请输入开始位置', trigger: ['blur', 'change'] },
{ validator: this.validateStartPosition, trigger: ['blur', 'change'] } { validator: this.validateStartPosition, trigger: ['blur', 'change'] }

View File

@@ -56,7 +56,7 @@
<div class="section-header"> <div class="section-header">
<h4 class="section-title">异常记录</h4> <h4 class="section-title">异常记录</h4>
<div> <div>
<el-button type="primary" size="mini" @click="handleSave">保存</el-button> <el-button type="primary" size="mini" @click="handleSave" :loading="buttonLoading">保存</el-button>
<el-button type="default" icon="el-icon-refresh" plain size="mini" @click="refreshAbnormalList" <el-button type="default" icon="el-icon-refresh" plain size="mini" @click="refreshAbnormalList"
:loading="abnormalLoading"> :loading="abnormalLoading">
刷新 刷新
@@ -291,10 +291,10 @@ export default {
this.$message.error(`${rowIndex}行:请选择断面位置`) this.$message.error(`${rowIndex}行:请选择断面位置`)
return return
} }
if (!row.plateSurface || row.plateSurface.length === 0) { // if (!row.plateSurface || row.plateSurface.length === 0) {
this.$message.error(`${rowIndex}行:请选择上下板面`) // this.$message.error(`第${rowIndex}行:请选择上下板面`)
return // return
} // }
if (!row.defectCode) { if (!row.defectCode) {
this.$message.error(`${rowIndex}行:请选择缺陷代码`) this.$message.error(`${rowIndex}行:请选择缺陷代码`)
return return
@@ -445,7 +445,7 @@ export default {
.exception-section { .exception-section {
background-color: #fafafa; background-color: #fafafa;
border-radius: 4px; border-radius: 4px;
padding: 16px; padding: 16px;
border: 1px solid #e4e7ed; border: 1px solid #e4e7ed;
} }