fix(richedit): 修复信号规则选择器的互斥逻辑

移除禁用选择器的互斥逻辑,改为在选项级别禁用已选择的规则
同时取消信号规则变更时自动清空另一选择器的值
This commit is contained in:
34701892@qq.com 2025-11-14 11:50:05 +08:00
parent 4c10ce70ca
commit 4f67556ade
2 changed files with 14 additions and 19 deletions

View File

@ -33,17 +33,15 @@
<div class="colHeader-right-2" style="gap: 10px"> <div class="colHeader-right-2" style="gap: 10px">
<span>信号规则</span> <span>信号规则</span>
<el-select v-model="form.includeRuleIds" :disabled="excludeRuleIds?.length > 0" clearable <el-select v-model="form.includeRuleIds" clearable placeholder="含任一信号规则" multiple size="large"
placeholder="含任一信号规则" multiple size="large" style="width: 180px" filterable style="width: 180px" filterable @change="signalChange($event, 1)">
@change="signalChange($event, 1)">
<el-option v-for="item in signalRulesList" :key="item.id" :value="item.id" <el-option v-for="item in signalRulesList" :key="item.id" :value="item.id"
:label="item.ruleName"></el-option> :disabled="form.excludeRuleIds?.includes(item.id)" :label="item.ruleName"></el-option>
</el-select> </el-select>
<el-select v-model="form.excludeRuleIds" :disabled="includeRuleIds?.length > 0" clearable <el-select v-model="form.excludeRuleIds" clearable placeholder="不含任一信号规则" multiple size="large"
placeholder="不含任一信号规则" multiple size="large" style="width: 180px" filterable style="width: 180px" filterable @change="signalChange($event, 2)">
@change="signalChange($event, 2)">
<el-option v-for="item in signalRulesList" :key="item.id" :value="item.id" <el-option v-for="item in signalRulesList" :key="item.id" :value="item.id"
:label="item.ruleName"></el-option> :disabled="form.includeRuleIds?.includes(item.id)" :label="item.ruleName"></el-option>
</el-select> </el-select>
<span>报道时间</span> <span>报道时间</span>

View File

@ -97,18 +97,15 @@
<div class="colHeader-right-2" style="gap: 10px"> <div class="colHeader-right-2" style="gap: 10px">
<span>信号规则</span> <span>信号规则</span>
<el-select v-model="form.includeRuleIds" :disabled="excludeRuleIds?.length > 0" clearable <el-select v-model="form.includeRuleIds" clearable placeholder="含任一信号规则" multiple size="large"
placeholder="含任一信号规则" multiple size="large" style="width: 180px" filterable style="width: 180px" filterable @change="signalChange($event, 1)">
@change="signalChange($event, 1)">
<el-option v-for="item in signalRulesList" :key="item.id" :value="item.id" <el-option v-for="item in signalRulesList" :key="item.id" :value="item.id"
:label="item.ruleName"></el-option> :disabled="form.excludeRuleIds?.includes(item.id)" :label="item.ruleName"></el-option>
</el-select> </el-select>
<el-select v-model="form.excludeRuleIds" clearable placeholder="不含任一信号规则" multiple size="large"
<el-select v-model="form.excludeRuleIds" :disabled="includeRuleIds?.length > 0" clearable style="width: 180px" filterable @change="signalChange($event, 2)">
placeholder="不含任一信号规则" multiple size="large" style="width: 180px" filterable
@change="signalChange($event, 2)">
<el-option v-for="item in signalRulesList" :key="item.id" :value="item.id" <el-option v-for="item in signalRulesList" :key="item.id" :value="item.id"
:label="item.ruleName"></el-option> :disabled="form.includeRuleIds?.includes(item.id)" :label="item.ruleName"></el-option>
</el-select> </el-select>
<span>报道时间</span> <span>报道时间</span>
<div> <div>
@ -1006,11 +1003,11 @@ function signalChange(event, type) {
if (type == 1) { if (type == 1) {
// form.value.signalId1 = signalId1.value; // form.value.signalId1 = signalId1.value;
includeRuleIds.value = event.join(','); includeRuleIds.value = event.join(',');
excludeRuleIds.value = null; // excludeRuleIds.value = null;
} else { } else {
// form.value.signalId2 = signalId2.value; // form.value.signalId2 = signalId2.value;
excludeRuleIds.value = event.join(','); excludeRuleIds.value = event.join(',');
includeRuleIds.value = null; // includeRuleIds.value = null;
} }
getData(); getData();