<template>
    <div class="canvas_content">
        <van-nav-bar fixed title="签名">
            <template #left>
                <img src="../../assets/images/back.png" alt="" @click="goBack" />
            </template>
        </van-nav-bar>
        <div class="height_44"></div>
        <vue-esign ref="esign" :isCrop="false" :width="400" :height="600"/>
        <div class="btn">
            <div class="btn_right" @click="handleReset">
                <img src="../../assets/images/abrase.png" alt="">
                <div>清除</div>
            </div>
            <div class="btn_left" @click="handleGenerate">
                <img src="../../assets/images/save.png" alt="">
                <div>保存</div>
            </div>
        </div>
    </div>
</template>
<script>
import {dataURLtoFile} from '@/utils/common';
import {uploadEsignPng} from '@/axios/api';
import {Dialog} from 'vant'
export default {
    data() {
        return {

        }
    },
    methods: {
        handleGenerate() {
            this.$refs.esign.generate().then(res => {
                Dialog.confirm({
                    title: '提示',
                    message: '确定要保存该签名么?',
                }).then(() => {
                    let file = dataURLtoFile(res, 'esign.png');
                    let fromData = new FormData();
                    fromData.append("file", file);
                    this.$toast.submit();
                    uploadEsignPng(fromData).then(res => {
                        this.$toast.close();
                        if (res.code === 'SUCCESS') {
                            this.$toast.success('保存成功');
                            this.$router.push('informedConsentForm');
                            window.sessionStorage.setItem('esignImg', res.data.trueDownloadUrl);
                            window.sessionStorage.setItem('esignImgId', res.data.id);
                        };
                    }).catch(() => {
                        this.$toast.close();
                    });
                }).catch(() => {
                    return false;
                });
            }).catch(err => {
                Dialog.alert({
                    title: '提示',
                    message: '请签名后再保存签名图片',
                });
                return err;
            });
        },
        handleReset() {
            this.$refs.esign.reset();
        },

        goBack() {
            this.$router.go(-1);
        },
    },
}
</script>
<style lang="less" scoped>
.canvas_content {
    height: 100%;
    background: #000;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    canvas {
        background: #fff !important;
        width: 90% !important;
        border-radius: 8px;
    }

    .btn {
        color: #fff;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 100px;

        .btn_right {
            margin-right: 50px;
            transform: rotate(90deg);
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
        }
        .btn_left {
            transform: rotate(90deg);
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
        }
    }
}
</style>