<template>
	<!-- 协议配置弹出层组件 -->
	<view>
		<uv-parse 
		v-if="tiled"
		:content="content">
		</uv-parse>
		
		<uv-popup
		v-else
		:customStyle="{height: '75vh'}"
		ref="popup">
			<view id="config">
				<uv-parse :content="content"></uv-parse>
			</view>
		</uv-popup>
	</view>
</template>

<script>
	import { mapState } from 'vuex'
	export default {
		name:"configPopup",
		props : {
			findValue : {//查找对应的值
				type : String,
			},
			findKey : {//查找的键
				type : String,
				default : 'keyValue'
			},
			contentKey : {//展示内容的键
				type : String,
				default : 'content'
			},
			languageContentKey : {//国际化展示内容的键
				type : Object,
			},
			index : {//索引查找，优先级高于查找
				type : Number,
			},
			tiled : {
				default : false,
				type : Boolean,
			}
		},
		data() {
			return {
			};
		},
		computed : {
			...mapState(['configList']),
			locale(){
				return this.$t('components.config.configPopup')
			},
			obj(){
				if(typeof this.index == 'number'){
					return this.configList[this.index]
				}
				
				for(let i = 0; i < this.configList.length; i++){
					if(this.configList[i][this.findKey] == this.findValue){
						return this.configList[i]
					}
				}
			},
			objKey(){
				if(this.languageContentKey 
				&& this.languageContentKey[this.$i18n.locale]){
					return this.languageContentKey[this.$i18n.locale]
				}
				return this.contentKey
			},
			content(){
				if(!this.obj){
					return `<h3>${this.locale.noData}</h3>`
				}
				return this.obj[this.objKey]
			}
		},
		methods : {
			open(type = 'bottom'){
				if(this.tiled){
					return
				}
				this.$refs.popup.open(type);
			},
		},
	}
</script>

<style scoped lang="scss">
#config{
	padding: 20rpx;
	line-height: 50rpx;
}
</style>