|
@@ -11,7 +11,7 @@ var mobilePortrayalGrouping = `
|
|
|
<span class="add-grouping-text">新增分组</span>
|
|
|
</div>
|
|
|
<div class="grouping-list">
|
|
|
- <van-checkbox-group v-model="groupingResult">
|
|
|
+ <van-checkbox-group v-model="groupingResult" @change="handleGroupChange">
|
|
|
<van-checkbox checked-color="#2ABED1" name="0">默认分组 a</van-checkbox>
|
|
|
<van-checkbox checked-color="#2ABED1" :name="index" v-for="(item, index) in 15">复选框 {{item}}</van-checkbox>
|
|
|
</van-checkbox-group>
|
|
@@ -24,11 +24,12 @@ var mobilePortrayalGrouping = `
|
|
|
@confirm="addGrouping"
|
|
|
show-cancel-button>
|
|
|
<van-field
|
|
|
- v-model="groupingName"
|
|
|
+ v-model="groupingName"
|
|
|
show-word-limit
|
|
|
maxlength="15"
|
|
|
- error-message="分组名称已存在"
|
|
|
+ :error-message="errorMessageText"
|
|
|
placeholder="请输入分组名称"
|
|
|
+ @input="setGroupingName"
|
|
|
></van-field>
|
|
|
</van-dialog>
|
|
|
</div>
|
|
@@ -52,9 +53,11 @@ var mobilePortrayalGroupingScript = {
|
|
|
},
|
|
|
data () {
|
|
|
return {
|
|
|
- groupingResult: [],
|
|
|
+ groupingResult: ['0'],
|
|
|
groupingName: '',
|
|
|
- showAddGroupingDialog: false
|
|
|
+ showAddGroupingDialog: false,
|
|
|
+ errorMessageText: '',
|
|
|
+ isUpdating: false // 标志位,避免死循环
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
@@ -64,6 +67,27 @@ var mobilePortrayalGroupingScript = {
|
|
|
addGrouping () {
|
|
|
// 添加分组确定事件
|
|
|
this.showAddGroupingDialog = false
|
|
|
+ },
|
|
|
+ setGroupingName (val) {
|
|
|
+ this.groupingName = val.trim().replace(/\s+/g, '')
|
|
|
+ },
|
|
|
+ handleGroupChange (checked) {
|
|
|
+ if (this.isUpdating) {
|
|
|
+ // 如果正在更新,直接返回,避免递归调用
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.isUpdating = true; // 设置标志位
|
|
|
+
|
|
|
+ if (checked.indexOf('0') > 0) {
|
|
|
+ // 如果选择了默认分组,清空其他分组的选择
|
|
|
+ this.groupingResult = ['0'];
|
|
|
+ } else {
|
|
|
+ // 如果选择了其他分组,移除默认分组的选择
|
|
|
+ this.groupingResult = this.groupingResult.filter(item => item !== '0');
|
|
|
+ }
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.isUpdating = false; // 更新完成后重置标志位
|
|
|
+ });
|
|
|
}
|
|
|
}
|
|
|
}
|