<template>
    <view></view>
</template>

<script setup>
const lemonjkFileSelect = uni.requireNativePlugin('lemonjk-FileSelect');
//插件地址： https://ext.dcloud.net.cn/plugin?id=14059

//事件
const emit = defineEmits(['change'])

//选择文件
const selectFile = () => {
    // #ifdef APP-PLUS
    selectFileApi()
    // #endif
}

//手机端选择文件
const selectFileApi = () => {
    lemonjkFileSelect.showPicker({
        mimeType: "*/*",
        utisType: "public.data",
        multi: 'yes'
    }, (res) => {
        const code = res.code.toString()
        if(code === '0') {
            // [{filePath,fileName,fileExtension,fileSize},...]
            emit('change', res.files ?? [])
        } else if(code === '1001'){
            // #ifdef APP-ANDROID
            // （仅安卓）当错误码为1001，即未授权文件读取权限,可以提示用户未打开读取文件权限，并跳转设置页
            uni.showModal({
                title: "需要文件访问权限",
                content: "您还未授权本应用读取文件。为保证您可以正常上传文件，请在权限设置页面打开文件访问权限（不同手机厂商表述可能略有差异）请根据自己手机品牌设置",
                confirmText: "去授权",
                cancelText: "取消",
                success(e) {
                    if(e.confirm){
                        // 跳转到应用设置页
                        lemonjkFileSelect.gotoSetting();
                    }
                }
            })
            // #endif
            // #ifdef APP-IOS
            uni.showModal({
                title: "需要文件访问权限",
                content: "您还未授权本应用读取文件。为保证您可以正常上传文件，请在设置页面打开文件访问权限",
            })
            // #endif
        } else if(code === '-1'){
            uni.showModal({
                title: "错误",
                content: "选择文件失败 -1"
            })
        } else if(code === '1002'){
            uni.showModal({
                title: "错误",
                content: "选择文件失败，文件不存在了"
            })
        } else if(code === '1005'){
            uni.showModal({
                title: "错误",
                content: "文件选取出错"
            })
        }
    })
}

//导处函数
defineExpose({
    selectFile
})
</script>
