数通互联化工云平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

256 lines
5.2 KiB

<!--
@ 作者: 秦东
@ 时间: 2023-07-07 09:12:32
@ 备注: 选择人员
-->
<script lang='ts' setup>
import { Search,ArrowRight } from '@element-plus/icons-vue' //搜索图标
import { ElDivider } from 'element-plus'
/**
* 引入图片
*/
const spacer = h(ElDivider, { direction: 'vertical' })
const props = defineProps({
orgBoxShow:{
type:Boolean,
default:false
},
tabledata:{
type:Object,
default(){
return {}
}
},
orglist:{
type:Object,
default(){
return {}
}
},
orgtree:{
type:Object,
default(){
return {}
}
}
});
const emits = defineEmits(["update:orgBoxShow"]); //父级元素
const dialogTitle = ref<string>()
const addOrgUserLoading = ref(false);
const searchKeywords = ref<string>()
const keywordsTitle = ref<string>()
/**
* 弹窗显示控制
*/
const pickorg_is_Show = computed({
get: () => props.orgBoxShow,
set: (val) => {
emits("update:orgBoxShow", val);
},
});
/**
* 关闭弹窗
*/
function closeBox(){
// eslint-disable-next-line vue/no-mutating-props
props.tabledata.isedit = false;
// eslint-disable-next-line vue/no-mutating-props
props.tabledata.namelist=["秦东","马飞"]
emits("update:orgBoxShow", false);
}
/**
* 监听数据
*/
watch(() => props.orgBoxShow,() => {
if(props.orgBoxShow){
// console.log("监听数据-----sd3------>",props.tabledata)
switch(props.tabledata.types){
case 2:
dialogTitle.value = "选择行政组织"
keywordsTitle.value = "请输入关键字"
break;
case 3:
dialogTitle.value = "选择分部"
keywordsTitle.value = "请输入关键字"
break;
default:
dialogTitle.value = "选择成员"
keywordsTitle.value = "请输入姓名或工号"
}
}
})
/**
* 提交数据
*/
function submitPickOrgOrUser(){}
</script>
<template>
<el-dialog
v-model="pickorg_is_Show"
width="600px"
:title="dialogTitle"
append-to-body
draggable
:before-close="closeBox"
>
<el-row class="biankuang_all">
<el-col :span="12" class="col_body ">
<div class="input_box">
<el-input
v-model="searchKeywords"
:placeholder="keywordsTitle"
:prefix-icon="Search"
size="large"
class="inputDeep"
/>
</div>
<el-space :size="-2" :spacer="spacer" class="mianbaoxue">
<el-text class="allSearch">所有</el-text>
<el-text>恒信高科</el-text>
</el-space>
<ul class="select-box">
<li class="active">
<div class="orgboxdiv">
<div>
<img src="@/assets/image/icon_file.png">恒信高科
</div>
<i>下级</i>
</div>
</li>
<li class="active ">
<div class="userboxdiv">
<svg-icon icon-class="select1" /><img src="@/assets/image/icon_people.png">秦东
</div>
</li>
<li class="active ">
<div class="userboxdiv">
<svg-icon icon-class="select3" /><img src="@/assets/image/icon_people.png">秦东
</div>
</li>
</ul>
</el-col>
<el-col :span="12" class="col_body biankuang_left">
<div class="pick_head input_box">
<span>已选择(1)</span>
<span>清空</span>
</div>
<ul class="pick_select_box">
<li>
<div>
<img src="@/assets/image/icon_people.png">秦东
</div>
<svg-icon icon-class="cc_k" class="right_5" />
</li>
</ul>
</el-col>
</el-row>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" :loading="addOrgUserLoading" @click="submitPickOrgOrUser" >确 定</el-button>
<el-button @click="closeBox"> </el-button>
</div>
</template>
</el-dialog>
</template>
<style lang='scss' scoped>
.biankuang_all{
border: 1px solid rgb(220, 223, 230);
}
.biankuang_left{
border-left: 1px solid rgb(220, 223, 230);
}
.col_body{
height: 502px;
padding:0 0px;
}
.input_box{
border-bottom: 1px solid rgb(220, 223, 230);
}
.inputDeep {
:deep(.el-input__wrapper) {
box-shadow: 0 0 0 0px var(--el-input-border-color, var(--el-border-color)) inset;
cursor: default;
.el-input__inner {
cursor: default !important;
}
}
}
.mianbaoxue{
width: 100%;
overflow-x: auto;
white-space:nowrap;
padding: 5px 5px;
}
.select-box {
height: 430px;
overflow-y: auto;
border-top: 1px solid rgb(220, 223, 230);
li{
padding: 5px 0;
.userboxdiv{
padding: 0 5px;
cursor: pointer;
}
.orgboxdiv{
display: flex;
justify-content: space-between;
align-items: center;
}
i{
padding-left: 24px;
padding-right: 10px;
font-style: normal;
font-size: 12px;
cursor: pointer;
background: url(@/assets/image/next_level.png) no-repeat 10px center;
border-left: 1px solid rgb(238, 238, 238);
}
img {
width: 14px;
vertical-align: middle;
margin-right: 5px;
margin-left: 5px;
}
}
li.active{
color: #3195f8;
i{
background: url(@/assets/image/next_level_active.png) no-repeat 10px center;
}
}
}
.pick_head{
width: 100%;
height: 41px;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 5px;
}
.pick_select_box{
height: 460px;
overflow-y: auto;
li{
display: flex;
justify-content: space-between;
align-items: center;
padding: 5px 0;
img {
width: 14px;
vertical-align: middle;
margin-right: 5px;
margin-left: 5px;
}
.right_5{
margin-right: 5px;
cursor: pointer;
}
}
}
</style>