<!--
  Copyright © 2026 Qiantong Technology Co., Ltd.
  qModel Model Platform(Open Source Edition)
   *
  License:
  Released under the Apache License, Version 2.0.
  You may use, modify, and distribute this software for commercial purposes
  under the terms of the License.
   *
  Special Notice:
  All derivative versions are strictly prohibited from modifying or removing
  the default system logo and copyright information.
  For brand customization, please apply for brand customization authorization via official channels.
   *
  More information: https://qmodel.qiantong.tech/business.html
   *
  ============================================================================
   *
  版权所有 © 2026 江苏千桐科技有限公司
  qModel 模型平台（开源版）
   *
  许可协议：
  本项目基于 Apache License 2.0 开源协议发布，
  允许在遵守协议的前提下进行商用、修改和分发。
   *
  特别说明：
  所有衍生版本不得修改或移除系统默认的 LOGO 和版权信息；
  如需定制品牌，请通过官方渠道申请品牌定制授权。
   *
  更多信息请访问：https://qmodel.qiantong.tech/business.html
-->

<script setup lang="ts">
import employeesDialog from "./employeesDialog.vue";
import orgItem from "./orgItem.vue";
import {ref, computed} from "vue";
import {deepCopy} from "../../utils/objutil";

let selectUserDialogVisible = ref(false);
const afterSelectUser = (data) => {
	//选择人员变化
	selectUserDialogVisible.value = false;
	emits("update:orgList", data)
};

var defaultValue = computed(
		{
			get: () => {
				let orgList = props.orgList;
				return orgList;
			},
			set: (r) => {
				emits("update:orgList", r)

			}
		}
)
let emits = defineEmits(['update:orgList'])


let props = defineProps({
	disableSelectChildrenDept:{ //禁止选择下级部门
		type:Boolean,
		default:true
	},
	orgList: {
		type: Array,
		default: () => []
	},
	disableUser: {
		type: Array,
		default: () => []
	},
	type: {
		type: String,
		default: 'org'
	},
	multiple: {
		type: Boolean,
		default: true
	},
	disabled: {
		type: Boolean,
		default: false
	},
	showStyle:{
		type:Number,
		default:1
	},
	placeholder:{
		type:String,
		default:'请选择'
	}
});

const inputShowValue=computed(()=>{
		if(!defaultValue.value){
				return ''
		}
	return defaultValue.value.map(re=>re.name).join(",");
})

</script>

<template>
	<div>
		<employees-dialog
				v-model:visible="selectUserDialogVisible"
				:data="defaultValue"
				:type="type"
				:disable-select-children-dept="disableSelectChildrenDept"
				:multiple="multiple"
				:disable-user="disableUser"
				@change="afterSelectUser"
		/>
	</div>
	<template v-if="showStyle===1">
		<div class="org-list">
			<org-item v-model:data="defaultValue" :disabled="disabled"/>
		</div>

		<el-button :type="disabled?'info':'primary'" :disabled="disabled" :icon="$icon['Plus']" circle size="large" @click="selectUserDialogVisible=true"
		>
		</el-button>
	</template>
	<template v-if="showStyle===2">
		<el-input
				v-model="inputShowValue"
				:placeholder="placeholder"
				clearable
				readonly
				:disabled="disabled"
				style="width: 200px"
				@click="selectUserDialogVisible=true"

		/>
	</template>

</template>

<style scoped lang="less">

</style>
