Commit dd4bbb3e authored by 徐俊's avatar 徐俊

xujun

parent 348ac648
......@@ -5,7 +5,7 @@
</div>
<div class="select-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">
<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>
......@@ -106,13 +106,34 @@ export default {
}
this.indeterminate = !!this.nowSelectKeys.length && this.nowSelectKeys.length < this.dataList.length
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: {
dataList: {
handler (dataList) {
this.initData()
handler(dataList) {
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