<template>
	<view class="tm-pickersCityView">
		<tm-pickersView :bg-color="bgColor" :black="black_tmeme" :disabled="disabled" ref="cityApp" :default-value="defaultValue" :list="list" ></tm-pickersView>
	</view>
</template>

<script>
	import provinceData from '@/tm-vuetify/tool/util/province.js';
	import cityData from '@/tm-vuetify/tool/util/city.js';
	import areaData from '@/tm-vuetify/tool/util/area.js';
	/**
	 * 地区选择器(内嵌式)
	 * @description 地区选择器(内嵌式),使用$refs 方式调用getSelectedValue取得选中的数据。
	 * @property {String} level = [province|city|area] ,默认area,显示的级别province:仅显示省,city仅显示省市,area:显示省市区。
	 * @property {Array} default-value = [] 同tm-pckerView格式,可以是数组内:序列,对象,字符串赋值。
	 * @property {String|Boolean} black = [true|false] 是否开启暗黑模式。 
	 * @property {String|Boolean} disabled = [true|false] 是否禁用
	 * @property {String} bg-color = [white|blue] 默认:white,白色背景;请填写背景的主题色名称。 
	 * @example <tm-pickersCityView ref="city" :defaultValue='["上海市", "市辖区", "徐汇区"]'></tm-pickersCityView>
	 * 
	 */
	import tmPickersView from "@/tm-vuetify/components/tm-pickersView/tm-pickersView.vue"
	export default {
		components:{tmPickersView},
		name:'tm-pickersCityView',
		props:{
			defaultValue:{
				type:Array,
				default:()=>{return []}
			},
			// 显示的级别。province,city,area。
			level:{
				type:String,
				default:'area'
			},
			black:{
				type:String|Boolean,
				default:null
			},
			// 是否禁用
			disabled:{
				type:String|Boolean,
				default:false
			},
			// 背景颜色,主题色名称。
			bgColor:{
				type:String,
				default:'white'
			},
		},
		data() {
			return {
				list:[],
			};
		},
		computed: {
		
			black_tmeme: function() {
				if (this.black !== null) return this.black;
				return this.$tm.vx.state().tmVuetify.black;
			}
		},
		mounted() {
			this.$nextTick(function(){
				this.chili_level();
			})
		},
		methods: {
			// 获取选中的资料。
			getSelectedValue(){
				let d = this.$refs.cityApp.getSelectedValue();
				
				let p = [];
				if(this.level=='province'){
					p = [d[0].data.text]
				}else if(this.level=='city'){
					p = [d[0].data.text,d[1].data.text]
				}else{
					p = [d[0].data.text,d[1].data.text,d[2].data.text]
				}
				return p;
			},
			chili_level(){
				if(this.level=='province'){
					this.chiliFormatCity_pro();
				}else if(this.level=='city'){
					this.chiliFormatCity_city();
				}else{
					this.chiliFormatCity_area();
				}
			},
			chiliFormatCity_area() {
				let list = [];
				provinceData.forEach((item,index)=>{
					list.push({
						id:item.value,
						text:item.label,
						children:[]
					})
				})
				cityData.forEach((item,index)=>{
					item.forEach((citem,cindex)=>{
						list[index].children.push({
							id:citem.value,
							text:citem.label,
							children:[]
						})
					})
				})
				list.forEach((item,index)=>{
					item.children.forEach((citem,cindex)=>{
						areaData[index][cindex].forEach(jitem=>{
							list[index].children[cindex].children.push({
								id:jitem.value,
								text:jitem.label
							})
						})
					})
				})
				this.list = list;
			},
			chiliFormatCity_pro() {
				let list = [];
				provinceData.forEach((item,index)=>{
					list.push({
						id:item.value,
						text:item.label
					})
				})
				
				this.list = list;
			},
			chiliFormatCity_city() {
				let list = [];
				provinceData.forEach((item,index)=>{
					list.push({
						id:item.value,
						text:item.label,
						children:[]
					})
				})
				cityData.forEach((item,index)=>{
					item.forEach((citem,cindex)=>{
						list[index].children.push({
							id:citem.value,
							text:citem.label
						})
					})
				})
			
				this.list = list;
			}
			
		},
	}
</script>

<style lang="scss">

</style>