{"version":3,"file":"upload.vue2.mjs","sources":["../../../../../../packages/components/upload/src/upload.vue"],"sourcesContent":["<template>\r\n  <!-- 拖拽上传 -->\r\n  <a-upload-dragger\r\n    v-if=\"operateStyle === 'drag'\"\r\n    v-model:file-list=\"currentFileList\"\r\n    :accept=\"currentAccept\"\r\n    v-bind=\"attrs\"\r\n    :before-upload=\"beforeUpload\"\r\n    :list-type=\"currentListType\"\r\n    :class=\"[bem.b(), bem.is('drag'), disabled ? bem.is('disabled') : '']\"\r\n    :disabled=\"disabled\"\r\n    @change=\"handleChange\"\r\n  >\r\n    <ll-icon :icon-name=\"uploadIcon || 'icon-upload'\" :size=\"uploadIconSize\" />\r\n    <!-- 上传标题 -->\r\n    <div v-if=\"uploadTitle\" :class=\"bem.m('upload-title')\">\r\n      {{ uploadTitle }}\r\n    </div>\r\n    <!-- 上传提示 -->\r\n    <div v-if=\"uploadTip\" :class=\"bem.m('upload-tip')\">\r\n      {{ uploadTip }}\r\n    </div>\r\n  </a-upload-dragger>\r\n\r\n  <!-- 默认上传 -->\r\n  <a-upload\r\n    v-else\r\n    v-bind=\"attrs\"\r\n    v-model:file-list=\"currentFileList\"\r\n    :accept=\"currentAccept\"\r\n    :before-upload=\"beforeUpload\"\r\n    :class=\"[bem.b(), bem.is('default')]\"\r\n    :list-type=\"currentListType\"\r\n    :disabled=\"disabled\"\r\n    @dragenter.capture.stop\r\n    @dragover.capture.stop\r\n    @drop.capture.stop\r\n    @change=\"handleChange\"\r\n  >\r\n    <!-- 卡片风格 -->\r\n    <div v-if=\"operateStyle === 'card'\" :class=\"bem.is('card')\">\r\n      <ll-icon\r\n        :icon-name=\"uploadIcon || 'icon-upload'\"\r\n        :size=\"uploadIconSize\"\r\n      />\r\n      <div v-if=\"uploadTitle\" :class=\"bem.m('upload-title')\">\r\n        {{ uploadTitle }}\r\n      </div>\r\n    </div>\r\n\r\n    <!-- 按钮风格 -->\r\n    <div v-else :class=\"bem.is('button')\">\r\n      <ll-button :disabled=\"disabled\">\r\n        <ll-icon\r\n          :icon-name=\"uploadIcon || 'icon-upload'\"\r\n          :size=\"uploadIconSize\"\r\n        />\r\n        <div v-if=\"uploadTitle\" :class=\"bem.m('upload-title')\">\r\n          {{ uploadTitle }}\r\n        </div>\r\n      </ll-button>\r\n      <!-- 上传提示 -->\r\n      <div v-if=\"uploadTip\" :class=\"bem.m('upload-tip')\">\r\n        {{ uploadTip }}\r\n      </div>\r\n    </div>\r\n    <template v-for=\"item in Object.keys($slots)\" #[item]=\"data\">\r\n      <slot :name=\"item\" v-bind=\"data || {}\"></slot>\r\n    </template>\r\n  </a-upload>\r\n\r\n  <!-- 上传提示 -->\r\n  <div v-if=\"uploadTip && operateStyle === 'card'\" :class=\"bem.m('upload-tip')\">\r\n    {{ uploadTip }}\r\n  </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { createNamespace, formatFileSize } from '@ll-plus/utils'\r\nimport { computed, ref, useAttrs } from 'vue'\r\n\r\nimport { matchAcceptType } from '@ll-plus/utils'\r\nimport { message } from 'ant-design-vue'\r\nimport { FileType } from 'ant-design-vue/es/upload/interface'\r\nimport { uploadProps } from './upload'\r\n\r\ndefineOptions({ name: 'LlUpload' })\r\n\r\nconst attrs = useAttrs()\r\nconst bem = createNamespace('upload')\r\n\r\nconst props = defineProps(uploadProps)\r\n\r\nconst emits = defineEmits(['update:fileList', 'change'])\r\n\r\nconst rejectUid = ref<string[]>([])\r\n\r\nconst currentFileList = computed({\r\n  get: () => props.fileList,\r\n  set: (val) => {\r\n    emits('update:fileList', val)\r\n    emits('change', val)\r\n  },\r\n})\r\n\r\nconst currentAccept = computed(() => {\r\n  return props.accept\r\n})\r\n\r\nconst beforeUpload = async (file: FileType, fileList: FileType[]) => {\r\n  let isType = true\r\n  let isSize = true\r\n  if (!matchAcceptType(file, currentAccept.value)) {\r\n    message.error(`${file.name} 需要为${currentAccept.value}格式。`)\r\n    isType = false\r\n  }\r\n  if (props.imgSize > 0) {\r\n    const fileSizeInMB = file.size / (1024 * 1024)\r\n    if (fileSizeInMB > props.imgSize) {\r\n      message.error(\r\n        `${file.name} 文件不得大于${formatFileSize(\r\n          props.imgSize * 1024 * 1024,\r\n        )}。`,\r\n      )\r\n      isSize = false\r\n    }\r\n  }\r\n\r\n  if (!(isType && isSize)) {\r\n    rejectUid.value.push(file.uid)\r\n    return Promise.reject(false)\r\n  }\r\n  if (!props.beforeUpload?.(file, fileList)) {\r\n    rejectUid.value.push(file.uid)\r\n    return Promise.reject(false)\r\n  }\r\n  return Promise.resolve()\r\n}\r\n\r\nconst handleChange = ({\r\n  fileList,\r\n}: {\r\n  file: FileType\r\n  fileList: FileType[]\r\n}) => {\r\n  const files = fileList.filter(\r\n    (item) => rejectUid.value.indexOf(item.uid) === -1,\r\n  )\r\n  currentFileList.value = files\r\n}\r\n\r\nconst currentListType = computed(() => {\r\n  // 若当前为卡片类型，则设置上传列表为缩略图\r\n  return props.operateStyle === 'card' ? 'picture-card' : props.listType\r\n})\r\n</script>\r\n"],"names":["_createCommentVNode","operateStyle","_openBlock","_createBlock","_mergeProps","_unref","disabled","_createVNode","uploadIcon","uploadIconSize","uploadTitle","_createElementBlock","_normalizeClass","uploadTip","_Fragment","_createElementVNode","_renderList","$slots","_withCtx","_renderSlot","_normalizeProps","_guardReactiveProps"],"mappings":"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"}