<template>
	<view style="width: 100%;"
		@tap="open"
	>
		<u--input
			v-model="labels"
			suffixIcon="arrow-right"
			suffixIconStyle="color: #909399"
			disabled
			disabledColor="#ffffff"
			:placeholder="placeholder"
			border="none"
		></u--input>
	
		<u-action-sheet
			:show="show"
			@close="show = false"
		>
		<view class="cu-bar bg-white">
			<view class="action text-blue" @tap="show=false">取消</view>
			<view class="action text-green" @tap="selectOffice">确定</view>
		</view>
		<view>
		  <ly-tree :tree-data="data"
			:props="props" 
			node-key="id" 
			:checkOnClickNode ="true"
			:showRadio="true"
			:show-checkbox ="false"
			:checkOnlyLeaf = "false"
			ref="officeTree" />
		</view>
		</u-action-sheet>
	</view>
</template>

<script>
	import officeService from "@/api/sys/officeService"
	export default {
		data() {
			return {
				labels: '',
				show: false,
				data: [],
				treeList: []
			};
		},
		props: {
		    limit: Number,
		    value: String,
		    size: String,
			placeholder: String,
		    readonly: {
		      type: Boolean,
		      default: () => { return false }
		    },
			checkOnlyLeaf: {
		      type: Boolean,
		      default: () => { return false }
		    },
			showRadio: {
		      type: Boolean,
		      default: () => { return true }
		    },
			showCheckBox: {
			  type: Boolean,
			  default: () => { return false }
			},
		    disabled: {
		      type: Boolean,
		      default: () => { return false }
		    },
			props: {
				type: Object,
				default: () => {
					return {
						children: 'children',
						label: 'name'
					}
				}
			}
		  },
		mounted() {
			officeService.treeData().then((data)=>{
				this.data = data
				this.setTreeList(this.data)
				if(this.value){
					this.treeList.forEach((node) => {
					  if (this.value === node.id) {
						this.labels = node.name
					  }
					})
				}
			})
		},
		methods:{
			open () {
				this.show = true;
				if(this.value){
					this.$nextTick(()=>{
						this.$refs.officeTree.setCheckedKeys( this.value.split(','));
					})
				}
			},
			setTreeList (datas) { // 遍历树  获取id数组
			      for (var i in datas) {
			        this.treeList.push(datas[i])
			        if (datas[i].children) {
			          this.setTreeList(datas[i].children)
			        }
			      }
			},
			selectOffice () {
				let ids = this.$refs.officeTree.getCheckedNodes().map((item)=>{
					return item.id
				}).join(",");
				let names = this.$refs.officeTree.getCheckedNodes().map((item)=>{
					return item.name
				}).join(",");
				this.labels = names
				this.$emit('input', ids)
				this.show = false
			}
		}
	}
</script>