{"version":3,"file":"KrFileUpload.cjs","sources":["../../../../../packages/src/kr-file-upload/KrFileUpload.vue"],"sourcesContent":["<template>\n    <!-- 单选题 -->\n    <div class=\"question-item\">\n        <div class=\"question-item-num\">\n            <question-title v-if=\"titleIsEdit\" :dataList=\"dataList\" @numberBlur=\"(e) => emits('numberChange', e)\" />\n            <div v-else style=\"margin-top: 8px\">{{ dataList.questionNumber }}</div>\n        </div>\n        <div class=\"question-item-content\">\n            <div class=\"title\">\n                <rich-text-editor ref=\"titileInput\" class=\"titile-input\" v-model:valueData=\"dataList.title\" />\n            </div>\n            <div class=\"content\">\n                <div class=\"upload-box\">\n                    <img src=\"@/images/icon/upload@3x.png\" />\n                    <div class=\"text\">上传文件/图片</div>\n                </div>\n                <div class=\"file-limit\">\n                    <span>{{ dataList.fileFormat ? `支持格式：${fileFormat[dataList.fileFormat]}` : \"不限制格式\" }}</span\n                    ><span>,最多{{ dataList.fileNumber }}个,单个文件大小不超过{{ dataList.fileSize }}M</span>\n                </div>\n            </div>\n            <!-- 底部操作栏 -->\n            <div class=\"footer-operation\" v-if=\"footerShow\">\n                <action-bar\n                    class=\"action-bar\"\n                    @addCopy=\"() => emits('copyQuestion', dataList)\"\n                    @deleteQuestion=\"() => emits('deleteQuestion')\"\n                    @view=\"(e) => emits('singlePreview', e)\"\n                ></action-bar>\n            </div>\n        </div>\n    </div>\n</template>\n<script setup name=\"kr-file-upload\">\n// js\nimport { ref, watch, provide } from \"vue\";\n// components\nimport RichTextEditor from \"@/components/editor/RichTextEditor.vue\";\nimport ActionBar from \"@/components/action/ActionBar.vue\";\nimport QuestionTitle from \"@/components/question/QuestionNumber.vue\";\n\n// props\nconst props = defineProps({\n    // 是否展示底部操作栏\n    footerShow: {\n        type: Boolean,\n        default: true,\n    },\n    // 题号是否可编辑\n    titleIsEdit: {\n        type: Boolean,\n        default: true,\n    },\n    // 数据渲染\n    dataList: {\n        type: Object,\n        default: () => ({}),\n    },\n});\n// 复制题目，删除题目, 数据改变, 单题预览;\nconst emits = defineEmits([\"copyQuestion\", \"deleteQuestion\", \"change\", \"singlePreview\", \"numberChange\"]);\nconst titileInput = ref(null);\nconst fileFormat = {\n    P: \"png, jpg, gift, bmp\",\n    V: \"mp4, flv, webm, mov, m4v, wmv, avi\",\n    A: \"mp3, wma, wav, amr, m4a, aac\",\n};\n\nwatch(\n    () => props.dataList,\n    (curr, old) => {\n        emits(\"change\", curr);\n    },\n    { deep: true }\n);\n\nprovide(\"data\", props.dataList);\ndefineExpose({ titileInput });\n</script>\n<style lang=\"scss\" scoped>\n@use \"@/css/common.scss\" as *;\n\n.upload-box {\n    width: 108px;\n    height: 108px;\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    text-align: center;\n    border-radius: 4px;\n    border: 1px solid rgba(229, 232, 238, 1);\n    img {\n        width: 32px;\n        height: 32px;\n        margin: 0 auto;\n        margin-bottom: 11px;\n    }\n    .text {\n        font-size: 12px;\n        font-weight: 400;\n        color: rgba(112, 120, 134, 1);\n        text-align: center;\n    }\n}\n.file-limit {\n    font-size: 12px;\n    font-weight: 400;\n    color: rgba(183, 186, 191, 1);\n    margin-top: 12px;\n}\n</style>\n"],"names":["titileInput","ref","fileFormat","watch","props","curr","old","emits","provide","expose"],"mappings":"sqCA6DAA,EAAAC,EAAAA,IAAA,IAAA,EACAC,EAAA,CACA,EAAA,sBACA,EAAA,qCACA,EAAA,8BACA,EAEAC,OAAAA,EAAA,MACA,IAAAC,EAAA,SACA,CAAAC,EAAAC,IAAA,CACAC,EAAA,SAAAF,CAAA,CACA,EACA,CAAA,KAAA,EAAA,CACA,EAEAG,EAAAA,QAAA,OAAAJ,EAAA,QAAA,EACAK,EAAA,CAAA,YAAAT,CAAA,CAAA"}