This commit is contained in:
Hefeng
2024-01-30 15:59:37 +08:00

View File

@ -14,18 +14,17 @@
</slot>
</span>
<el-config-provider :locale="locale">
<el-dialog v-model="showDialog" class="select-transfer-modal" :title="title" :width="width" append-to-body
:z-index="zIndex" @open="getList" @closed="closed">
<el-dialog
v-model="showDialog" class="select-transfer-modal" :title="title" :width="width" append-to-body
:z-index="zIndex" @open="getList" @closed="closed"
>
<div flex>
<slot name="left" />
<div grow>
<el-form ref="queryRef" :model="queryParams" inline>
<el-form-item v-for="formItem in formItems" :key="formItem.prop" :label="formItem.label"
:prop="formItem.prop">
<el-select v-if="formItem.selectOptions" :placeholder="formItem.placeholder">
<el-option v-for="option in formItem.selectOptions" :key="option.value" :value="option.value">
{{ option.label }}
</el-option>
<el-form-item v-for="formItem in formItems" :key="formItem.prop" :label="formItem.label" :prop="formItem.prop">
<el-select v-if="formItem.selectOptions" v-model="queryParams[formItem.prop]" filterable :placeholder="formItem.placeholder">
<el-option v-for="option in formItem.selectOptions" :key="option.value" :label="$options.label" :value="option.value" />
</el-select>
<el-input v-else v-model="queryParams[formItem.prop]" :placeholder="formItem.placeholder" />
</el-form-item>
@ -38,21 +37,34 @@
</el-button>
</el-form-item>
</el-form>
<el-transfer v-model="transferValue" v-loading="loading" inline-block text-left
style="--el-transfer-panel-width:25vw" :titles="['待选项', '已选项']" :button-texts="['移除', '添加']" :format="{
noChecked: '${total}',
hasChecked: '${checked}/${total}',
}" :data="data" :filter-method="filterMethod" :props="props">
<el-transfer
v-model="transferValue"
v-loading="loading"
inline-block
text-left
style="--el-transfer-panel-width:25vw"
:titles="['待选项', '已选项']"
:button-texts="['移除', '添加']"
:format="{
hasChecked: '${checked}',
noChecked: ' ',
}"
:data="data"
:filter-method="filterMethod"
:props="props"
>
<template #default="{ option }">
<slot name="transfer" :option="option">
{{ option[props.label] }}
</slot>
</template>
<template #left-footer>
<el-pagination v-if="!hidePagination && total > queryParams.pageSize"
v-model:current-page="queryParams.pageNum" v-model:page-size="queryParams.pageSize" background small
layout="total, sizes, prev, next, jumper" mt-9px :page-sizes="pageSizes" :pager-count="pagerCount"
:total="total" @size-change="handleSizeChange" @current-change="getList" />
<el-pagination
v-model:current-page="queryParams.pageNum"
v-model:page-size="queryParams.pageSize" background small layout="total, sizes, prev,pager, next" mt-9px
:page-sizes="pageSizes" :pager-count="pagerCount" :total="total" @size-change="handleSizeChange"
@current-change="getList"
/>
</template>
</el-transfer>
</div>
@ -218,6 +230,7 @@ function resetQuery() {
function handleSizeChange(val: number) {
if (queryParams.pageNum * val > total)
queryParams.pageNum = 1
getList()
}
function transferValueInit() {