文件选择器的删除按钮优化
This commit is contained in:
@@ -6,7 +6,8 @@
|
||||
<el-option v-for="item, index in listAllData" :key="index" :value="String(item[props.valueKey])"
|
||||
:label="item.name" />
|
||||
</el-select>
|
||||
<div v-if="props.inputType === 'image'" style="position: relative;"
|
||||
<div class="form-display" @mouseenter="formDisplayEnter" @mouseleave="formDisplayLeave"
|
||||
v-if="props.inputType === 'image'" style="position: relative;"
|
||||
:style="{ width: props.inputSize + 'px', height: props.inputSize + 'px' }">
|
||||
<el-image :src="data" fit="scale-down" :style="{ width: props.inputSize + 'px', aspectRatio: '1 / 1' }">
|
||||
<template #error>
|
||||
@@ -25,7 +26,8 @@
|
||||
<Close />
|
||||
</el-icon>
|
||||
</div>
|
||||
<div v-if="props.inputType === 'video'"
|
||||
<div class="form-display" @mouseenter="formDisplayEnter" @mouseleave="formDisplayLeave"
|
||||
v-if="props.inputType === 'video'"
|
||||
style="position: relative; display: flex; align-items: center; justify-items: center;"
|
||||
:style="{ width: props.inputSize * 2 + 'px', height: props.inputSize + 'px' }">
|
||||
<video :src="data" :controls="false" :autoplay="true" :muted="true" :loop="true"
|
||||
@@ -42,7 +44,8 @@
|
||||
<Close />
|
||||
</el-icon>
|
||||
</div>
|
||||
<div v-if="props.inputType === 'audio'"
|
||||
<div class="form-display" @mouseenter="formDisplayEnter" @mouseleave="formDisplayLeave"
|
||||
v-if="props.inputType === 'audio'"
|
||||
style="position: relative; display: flex; align-items: center; justify-items: center;"
|
||||
:style="{ width: props.inputSize * 2 + 'px', height: props.inputSize + 'px' }">
|
||||
<audio :src="data" :controls="!!data" :autoplay="false" :muted="true" :loop="true"
|
||||
@@ -178,6 +181,8 @@ const listRequest = async () => {
|
||||
pageForm.limit = res.limit;
|
||||
selectedInit();
|
||||
};
|
||||
const formDisplayEnter = (e: MouseEvent) => (e.target as HTMLElement).style.setProperty('--fileselector-close-display', 'block');
|
||||
const formDisplayLeave = (e: MouseEvent) => (e.target as HTMLElement).style.setProperty('--fileselector-close-display', 'none');
|
||||
const listRequestAll = async () => {
|
||||
if (props.inputType !== 'selector') return;
|
||||
let res = await fileApi.GetAll();
|
||||
@@ -259,6 +264,11 @@ onMounted(() => {
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.form-display {
|
||||
--fileselector-close-display: none;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.headerBar>* {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
@@ -315,13 +325,10 @@ onMounted(() => {
|
||||
}
|
||||
|
||||
.closeHover {
|
||||
display: var(--fileselector-close-display);
|
||||
position: absolute;
|
||||
right: 2px;
|
||||
top: 2px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.closeHover:hover {
|
||||
color: black;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user