Commit dd4bbb3e authored by 徐俊's avatar 徐俊

xujun

parent 348ac648
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
</div> </div>
<div class="select-content"> <div class="select-content">
<ul class="data-list-content"> <ul class="data-list-content">
<li v-for="(item,index) in dataList" :key="item.key" @click="onChange(item,index)" class="data-list-content-item"> <li v-for="(item, index) in dataList" :key="item.key || 'item-' + index" @click="onChange(item,index)" class="data-list-content-item">
<input type="checkbox" class="list-checkbox-input" :checked="item.selected"> <input type="checkbox" class="list-checkbox-input" :checked="item.selected">
<span style="font-size:8pt;" :title="item.description" :class="{'font-red':item.disabled}"> <span style="font-size:8pt;" :title="item.description" :class="{'font-red':item.disabled}">
<span>{{item.title}}<span style="font-style: italic;color: #8e99a5;" :class="{'font-red':item.disabled}">({{item.description}})</span></span> <span>{{item.title}}<span style="font-style: italic;color: #8e99a5;" :class="{'font-red':item.disabled}">({{item.description}})</span></span>
...@@ -106,13 +106,34 @@ export default { ...@@ -106,13 +106,34 @@ export default {
} }
this.indeterminate = !!this.nowSelectKeys.length && this.nowSelectKeys.length < this.dataList.length this.indeterminate = !!this.nowSelectKeys.length && this.nowSelectKeys.length < this.dataList.length
this.checkAll = this.nowSelectKeys.length === this.dataList.length && this.nowSelectKeys.length > 0 this.checkAll = this.nowSelectKeys.length === this.dataList.length && this.nowSelectKeys.length > 0
},
ensureUniqueKeys() {
const keyMap = new Map();
let hasDuplicates = false;
this.dataList.forEach((item, index) => {
if (!item.key) {
item.key = 'generated-' + index;
} else if (keyMap.has(item.key)) {
console.warn(`发现重复键: ${item.key},已自动修复`);
item.key = item.key + '-' + index;
hasDuplicates = true;
}
keyMap.set(item.key, true);
});
if (hasDuplicates) {
this.initData();
}
} }
}, },
watch: { watch: {
dataList: { dataList: {
handler (dataList) { handler(dataList) {
this.initData() this.ensureUniqueKeys();
this.initData();
}, },
immediate: true
}, },
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment