文件选择器添加插槽
This commit is contained in:
@@ -90,16 +90,19 @@
|
|||||||
</el-tabs>
|
</el-tabs>
|
||||||
</div>
|
</div>
|
||||||
<el-row justify="space-between" class="headerBar">
|
<el-row justify="space-between" class="headerBar">
|
||||||
<el-col :span="8">
|
<el-col :span="12">
|
||||||
<el-input v-model="filterForm.name" :placeholder="`请输入${TypeLabel[tabsActived % 4]}名`" prefix-icon="search"
|
<slot name="actionbar-left">
|
||||||
clearable @change="listRequest" />
|
<el-input v-model="filterForm.name" :placeholder="`请输入${TypeLabel[tabsActived % 4]}名`"
|
||||||
|
prefix-icon="search" clearable @change="listRequest" />
|
||||||
<div>
|
<div>
|
||||||
<el-tag v-if="props.multiple" type="primary" effect="light">
|
<el-tag v-if="props.multiple" type="primary" effect="light">
|
||||||
一共选中 {{ data?.length || 0 }} 个文件
|
一共选中 {{ data?.length || 0 }} 个文件
|
||||||
</el-tag>
|
</el-tag>
|
||||||
</div>
|
</div>
|
||||||
|
</slot>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12" style="width: 100%; display: flex; gap: 12px; justify-content: flex-end;">
|
<el-col :span="12" style="width: 100%; display: flex; gap: 12px; justify-content: flex-end;">
|
||||||
|
<slot name="actionbar-right" v-bind="{}">
|
||||||
<el-button type="default" circle icon="refresh" @click="listRequest" />
|
<el-button type="default" circle icon="refresh" @click="listRequest" />
|
||||||
<template v-if="tabsActived > 3 ? isSuperTenent : true">
|
<template v-if="tabsActived > 3 ? isSuperTenent : true">
|
||||||
<el-upload ref="uploadRef" :action="getBaseURL() + 'api/system/file/'" :multiple="false" :drag="false"
|
<el-upload ref="uploadRef" :action="getBaseURL() + 'api/system/file/'" :multiple="false" :drag="false"
|
||||||
@@ -112,15 +115,21 @@
|
|||||||
网络{{ TypeLabel[tabsActived % 4] }}
|
网络{{ TypeLabel[tabsActived % 4] }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
|
</slot>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-empty v-if="!listData.length" description="无内容,请上传"
|
<div v-if="!listData.length">
|
||||||
style="width: 100%; height: calc(50vh); margin-top: 24px; padding: 4px;" />
|
<slot name="empty">
|
||||||
|
<el-empty description="无内容,请上传" style="width: 100%; height: calc(50vh); margin-top: 24px; padding: 4px;" />
|
||||||
|
</slot>
|
||||||
|
</div>
|
||||||
<div ref="listContainerRef" class="listContainer" v-else>
|
<div ref="listContainerRef" class="listContainer" v-else>
|
||||||
<div v-for="item, index in listData" :key="index" @click="onItemClick($event)" :data-id="item[props.valueKey]"
|
<div v-for="item, index in listData" :key="index" @click="onItemClick($event)" :data-id="item[props.valueKey]"
|
||||||
:style="{ width: (props.itemSize || 100) + 'px', cursor: props.selectable ? 'pointer' : 'normal' }">
|
:style="{ width: (props.itemSize || 100) + 'px', cursor: props.selectable ? 'pointer' : 'normal' }">
|
||||||
|
<slot name="item" :data="item">
|
||||||
<FileItem :fileData="item" :api="fileApi" :showClose="tabsActived < 4 || isSuperTenent"
|
<FileItem :fileData="item" :api="fileApi" :showClose="tabsActived < 4 || isSuperTenent"
|
||||||
@onDelFile="listRequest(); listRequestAll();" />
|
@onDelFile="listRequest(); listRequestAll();" />
|
||||||
|
</slot>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="listPaginator">
|
<div class="listPaginator">
|
||||||
|
|||||||
@@ -1,5 +1,23 @@
|
|||||||
<template>
|
<template>
|
||||||
<fs-page>
|
<fs-page>
|
||||||
|
<FileSelector v-model="selected" :showInput="false" ref="fileSelectorRef" :tabsShow="SHOW.ALL" :itemSize="120"
|
||||||
|
:multiple="true" :selectable="false">
|
||||||
|
<!-- <template #input="scope">
|
||||||
|
input:{{ scope }}
|
||||||
|
</template> -->
|
||||||
|
<!-- <template #actionbar-left="scope">
|
||||||
|
actionbar-left:{{ scope }}
|
||||||
|
</template> -->
|
||||||
|
<!-- <template #actionbar-right="scope">
|
||||||
|
actionbar-right:{{ scope }}
|
||||||
|
</template> -->
|
||||||
|
<!-- <template #empty="scope">
|
||||||
|
empty:{{ scope }}
|
||||||
|
</template> -->
|
||||||
|
<!-- <template #item="{ data }">
|
||||||
|
{{ data }}
|
||||||
|
</template> -->
|
||||||
|
</FileSelector>
|
||||||
<fs-crud ref="crudRef" v-bind="crudBinding">
|
<fs-crud ref="crudRef" v-bind="crudBinding">
|
||||||
<template #actionbar-left="scope">
|
<template #actionbar-left="scope">
|
||||||
<el-upload :action="getBaseURL() + 'api/system/file/'" :multiple="false"
|
<el-upload :action="getBaseURL() + 'api/system/file/'" :multiple="false"
|
||||||
@@ -44,8 +62,6 @@
|
|||||||
</el-icon>
|
</el-icon>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<FileSelector :showInput="false" ref="fileSelectorRef" :tabsShow="SHOW.ALL" :itemSize="120" :multiple="false"
|
|
||||||
:selectable="false" />
|
|
||||||
</fs-page>
|
</fs-page>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -75,6 +91,7 @@ const { crudOptions } = createCrudOptions({ crudExpose, context: { openAddHandle
|
|||||||
// 初始化crud配置
|
// 初始化crud配置
|
||||||
const { resetCrudOptions } = useCrud({ crudExpose, crudOptions });
|
const { resetCrudOptions } = useCrud({ crudExpose, crudOptions });
|
||||||
|
|
||||||
|
const selected = ref<any>([]);
|
||||||
const openPreview = ref<boolean>(false);
|
const openPreview = ref<boolean>(false);
|
||||||
const videoPreviewSrc = ref<string>('');
|
const videoPreviewSrc = ref<string>('');
|
||||||
const audioPreviewSrc = ref<string>('');
|
const audioPreviewSrc = ref<string>('');
|
||||||
|
|||||||
Reference in New Issue
Block a user