<template>
    <view
        :class="className"
        @tap="onTap"
    >
        <slot></slot>
    </view>
</template>

<script>
/**
* @file 路由组件
* @author haoyan
*/
import {navigate} from '../../utils/navigate';

export default {
    config: {
        component: true
    },
    props: {
        className: {
            type: String
        },
        url: { // 跳转的页面地址
            'type': String,
            'default': ''
        },
        path: { // 跳转，的页面path（若设置则会替换掉url的path部分）
            'type': String,
            'default': ''
        },
        openType: { // 页面打开方式
            'type': String,
            'default': 'navigate'
        },
        urlType: {
            'type': String,
            'default': '0'
        },
        extra: { // 自定义日志字段
            'type': Object,
            'default': () => ({})
        },
        log: { // ubc日志字段
            'type': Object,
            'default': null
        }
    },
    methods: {
        onTap() {
            if (this.url || this.path) {
                this.setWebviewData();
            }
        },
        setWebviewData() {
            const {
                url,
                openType,
                urlType,
                path,
                extra,
                log
            } = this;

            let ext = {};

            // merge extra
            if (extra) {
                Object.keys(extra).map(k => {
                    ext[k] = extra[k];
                });
            }
            navigate({
                url,
                path,
                openType,
                urlType,
                extra: ext,
                log
            });
        }
    }
};
</script>

<style>
</style>
