<template>
    <div class="portrait-style">
        <a-avatar slot="avatar" :src="imgUrl"></a-avatar>
    </div>
</template>
<script>
    /**
     * 头像组件
     * src
     */
    import interConfig from '../api/commonInter';
    import {Avatar} from 'ant-design-vue';
    import StaticParams from '../../../global-llibs/staticParams';
    export default{
        data(){
            return {
                imgUrl: this.$store.state.userStore.portraitUrl,
            }
        },
        props: ['personId'],
        created() {
            if(!this.imgUrl || this.imgUrl === "") {
                this.getImgSrc(this.$props.personId)
            }
        },
        methods: {
            getImgSrc: function (personId) {
                if (personId && personId != '') {
                    this.InterfaceConfig.callInterface([{
                        url: interConfig.getPersonTxByYw.url,
                        params: {
                            person_id: personId,
                            identity_id: 5,
                        },
                        method: interConfig.getPersonTxByYw.method,
                        isTestLogin: interConfig.getPersonTxByYw.isTestLogin,
                    }], (result) => {
                        let resData = result[0].data;
                        if (result[0].status === 200) {
                            if (resData.success === true) {
                                this.imgUrl = StaticParams.getThumbUrl(resData.file_id + "." + resData.extension, 100, 100, 100);
                                this.$store.commit('userStore/setPortraitUrl', this.imgUrl);
                            }
                        }
                    })
                }
            }
        },
        watch: {
            personId: function (newVal) {
                this.getImgSrc(newVal)
            }
        },
        components: {
            AAvatar: Avatar
        }
    }
</script>
<style scoped lang="scss">
    .portrait-style {
        .ant-avatar {
            width: 36px;
            height: 36px;
        }
    }
</style>