<template>
    <uni-drawer ref="drawerContainerRef" :width="width" mode="right">

        <uni-nav-bar
            :border="false"
            :fixed="true"
            left-icon="left"
            status-bar
            title="账期审核"
            @clickLeft="hideDrawer"
        />

        <view class="padding">
            <uni-section :subTitle="queryParams.userName" title="商业公司名称:" type="line"/>
            <uni-section :subTitle="queryParams.companyName" title="货主:" type="line"/>
            <uni-section
                :subTitle="`${queryParams.creditPeriod}  - 现有信用账期:${queryParams.oldCreditPeriod}`"
                :title="`${onCompanySelect(queryParams.companyId)}:`"
                type="line"
            />
            <uni-section :subTitle="queryParams.remark" title="备注:" type="line"/>
            <uni-section class="margin-bottom" title="回退原因:" type="line">
                <uni-easyinput v-model="queryParams.backReasonCredit" placeholder="请输入回退内容"/>
            </uni-section>

            <view class="flex">
                <button class="mini-btn" size="mini" type="primary" @click="handleBack">回退</button>
                <button class="mini-btn" size="mini" type="default" @click="handleSubmit">初审通过</button>
            </view>

        </view>

    </uni-drawer>
</template>

<script setup>
import {defineEmits, defineExpose, ref} from 'vue'
import {putBackDataLastPaymentOrQuota} from "../../../../../api/AccountPricePreliminaryRreview";

// 账期审核

defineOptions({
    name: 'AccountPeriodReview'
})

const emit = defineEmits(['refresh'])

const width = ref(document.documentElement.clientWidth || document.body.clientWidth)
const queryParams = ref({})
const drawerContainerRef = ref()

const tableData = ref([])
const total = ref(0)
const paging = ref({
    pageNum: 1,
    pageSize: 100,
})


// 选择公司后 获取该公司的标题进行显示
const onCompanySelect = (type) => {
    switch (type) {
        case '1':
            return 'ZOP信用期限(天)'
        case '2':
            return 'GOP信用期限(天)'
        case '3':
            return 'LOP信用期限(天)'
        case '4':
            return 'HOP信用期限(天)'
        default:
            return '';
    }
}

const openDrawer = async (data) => {
    drawerContainerRef.value.open()
    queryParams.value = data
}

defineExpose({openDrawer})

const hideDrawer = () => {
    drawerContainerRef.value.close()
}

const handleBack = () => {
    if (!queryParams.value.backReasonCredit) {
        return uni.showToast({
            title: '请填写回退内容',
            icon: 'none',
        })
    }

    uni.showModal({
        title: '提示',
        content: '您确定是否要回退记录？',
        success: async function (res) {
            if (res.confirm) {

                uni.showLoading({
                    title: '加载中'
                });

                await putBackDataLastPaymentOrQuota({
                    creditHistId: queryParams.value.creditHistId,
                });

                uni.showToast({
                    title: '操作成功',
                    icon: 'none',
                    duration: 2000
                });

                uni.hideLoading()

                hideDrawer()
                emit('refresh')

            }
        }
    })
}

const handleSubmit = () => {
    uni.showModal({
        title: '提示',
        content: '您确认要进行审核通过吗？',
        success: async function (res) {
            if (res.confirm) {
                uni.showLoading({
                    title: '加载中'
                });

                await directorLastReviewPayment({
                    creditHistId: queryParams.value.creditHistId
                })

                uni.showToast({
                    title: '操作成功',
                    icon: 'none',
                    duration: 2000
                });

                uni.hideLoading()

                hideDrawer()
                emit('refresh')

            }
        }
    })
}
</script>