|
@@ -1,4 +1,4 @@
|
|
|
-import { defineComponent, ref } from 'vue';
|
|
|
+import { defineComponent, ref, reactive } from 'vue';
|
|
|
import styles from './index.module.less';
|
|
|
import popBox from './select_courseware_box.png';
|
|
|
import popClose from './selce_courseware_close.png';
|
|
@@ -13,6 +13,16 @@ export default defineComponent({
|
|
|
},
|
|
|
emits: ['close', 'select'],
|
|
|
setup(props, { emit }) {
|
|
|
+ const data = reactive({
|
|
|
+ actIdx: null as any,
|
|
|
+ });
|
|
|
+ const selectItem = (item: any, index: any) => {
|
|
|
+ data.actIdx = index
|
|
|
+ setTimeout(() => {
|
|
|
+ emit('select', item)
|
|
|
+ data.actIdx = null
|
|
|
+ }, 300);
|
|
|
+ }
|
|
|
return () => (
|
|
|
<div class={styles.popBox} onClick={(e: Event) => e.stopPropagation()}>
|
|
|
<div class={styles.popBody}>
|
|
@@ -23,7 +33,7 @@ export default defineComponent({
|
|
|
<ul class={styles.list}>
|
|
|
{props.list.map((item: any, index: number) => {
|
|
|
return (
|
|
|
- <li onClick={() => emit('select', item)}>{item.name}</li>
|
|
|
+ <li class={data.actIdx === index ? styles.active : ''} onClick={() => selectItem(item, index)}>{item.name}</li>
|
|
|
);
|
|
|
})}
|
|
|
</ul>
|