ソースを参照

feat:修改checked

AmandaG 9 ヶ月 前
コミット
79b9dd0738
1 ファイル変更5 行追加3 行削除
  1. 5 3
      src/components/AutoSelect/src/AutoSelect.vue

+ 5 - 3
src/components/AutoSelect/src/AutoSelect.vue

@@ -28,6 +28,7 @@ const props = defineProps({
 interface ListItem {
   value: string
   label: string
+  checked: boolean
 }
 
 const list = ref<ListItem[]>([])
@@ -66,7 +67,7 @@ const remoteMethod = (query: string) => {
           loading.value = false
           if (res.code == 200) {
             list.value = res.data.map((item: any) => {
-              return { value: item, label: item }
+              return { value: item, label: item, checked: value.value?.includes(item) }
             })
             options.value = list.value.filter((item) => {
               return item.label.toLowerCase().includes(query.toLowerCase())
@@ -112,8 +113,9 @@ const removeClass = () => {
       :loading="loading"
     >
       <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
-        <el-checkbox :checked="value?.includes(item.value)"></el-checkbox>
-        <div class="label">{{ item.value }}</div>
+        <el-checkbox :checked="item.checked">
+          <span class="label" @click="item.checked = !item.checked">{{ item.value }}</span>
+        </el-checkbox>
       </el-option>
     </el-select>
   </div>