Files
pj_admin_cloud/src/components/OrgSelector/selectResult.vue
T
2025-01-12 20:49:49 +08:00

137 lines
2.8 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!--
* @Date: 2022-08-26 16:29:24
* @LastEditors: StavinLi 495727881@qq.com
* @LastEditTime: 2022-09-21 14:36:30
* @FilePath: /Workflow-Vue3/src/components/selectResult.vue
-->
<template>
<div class="select-result l">
<p class="clear">
已选({{ total }})
<a @click="emits('del')">清空</a>
</p>
<ul>
<template v-for="{ type, data, cancel } in list" :key="type">
<template v-if="type === 'role'">
<li v-for="item in data" :key="item.id">
<div style="display: flex; flex-direction: row">
<div class="f11">
<el-icon style="font-size: 20px">
<Share />
</el-icon>
</div>
<div class="f12">{{ item.name }}</div>
<div class="f13">
<el-button size="small" text @click="cancel(item)" :icon="CircleClose"></el-button>
</div>
</div>
</li>
</template>
<template v-if="type === 'dept'">
<li v-for="item in data" :key="item.id">
<div style="display: flex; flex-direction: row">
<div class="f11">
<el-icon style="font-size: 20px">
<Grid />
</el-icon>
</div>
<div class="f12">{{ item.name }}</div>
<div class="f13">
<el-button size="small" text @click="cancel(item)" :icon="CircleClose"></el-button>
</div>
</div>
</li>
</template>
<template v-if="type === 'user'">
<li v-for="item in data" :key="item.id">
<div style="display: flex; flex-direction: row">
<div class="f11">
<preview-image width="20px" height="20px" :src="item.avatar" />
</div>
<div class="f12">{{ item.name }}</div>
<div class="f13">
<el-button size="small" text @click="cancel(item)" :icon="CircleClose"></el-button>
</div>
</div>
</li>
</template>
</template>
</ul>
</div>
</template>
<script setup>
import { CircleClose, Grid, Share } from "@element-plus/icons-vue"
import UploadImg from "/@/components/Upload/Image.vue"
defineProps({
total: {
type: Number,
default: 0,
},
list: {
type: Array,
default: () => [{ type: "role", data, cancel }],
},
})
let emits = defineEmits(["del"])
</script>
<style scoped lang="scss">
.select-result {
width: 276px;
height: 100%;
font-size: 12px;
ul {
height: 460px;
overflow-y: auto;
li {
margin: 11px 26px 13px 19px;
line-height: 17px;
span {
vertical-align: middle;
}
img:first-of-type {
width: 14px;
vertical-align: middle;
margin-right: 5px;
}
img:last-of-type {
float: right;
margin-top: 2px;
width: 14px;
}
}
}
p {
padding-left: 19px;
padding-right: 20px;
line-height: 37px;
border-bottom: 1px solid #f2f2f2;
a {
float: right;
}
}
}
.f11 {
width: 30px;
}
.f12 {
width: calc(100% - 60px);
height: 25px;
line-height: 25px;
}
.f13 {
width: 30px;
}
</style>