gaoluyang
19 小时以前 121b7edf3f2e8ad5cb7f8d7b602172b64f6fa4da
src/components/upload/file-upload.vue
@@ -8,9 +8,9 @@
import { computed, ref, toRefs, watch } from 'vue';
import { IconifyIcon } from '..\..\packages\icons\src';
import { $t } from '..\..\packages\locales\src';
import { checkFileType, isFunction, isObject, isString } from '..\..\packages\utils\src';
import { IconifyIcon } from '@vben/icons';
import { $t } from '@vben/locales';
import { checkFileType, isFunction, isObject, isString } from '@vben/utils';
import { Button, message, Upload } from 'ant-design-vue';
@@ -35,6 +35,8 @@
  returnText: false,
  showDescription: false,
  showDownloadIcon: true,
  valueKey: 'url',
  valuePrefix: '',
});
const emit = defineEmits([
  'change',
@@ -95,6 +97,14 @@
            };
          } else if (item && isObject(item)) {
            return item;
          } else if (item && (typeof item === 'number' || typeof item === 'string')) {
            return {
              uid: `${-i}`,
              name: `文件 ${String(item)}`,
              status: UploadResultStatus.DONE,
              url: item,
              response: { [props.valueKey]: item },
            } as UploadFile;
          }
          return null;
        })
@@ -223,8 +233,10 @@
  // 添加到临时上传列表
  const fileUrl = res?.url || res?.data || res;
  uploadList.value.push({
    name: file.name,
    name: res?.name || file.name,
    url: fileUrl,
    id: res?.id,
    response: res,
    status: UploadResultStatus.DONE,
    uid: file.name + Date.now(),
  });
@@ -255,7 +267,13 @@
      if (item?.response && props?.resultField) {
        return item?.response;
      }
      return item?.url || item?.response?.url || item?.response;
      const val =
        item?.response?.[props.valueKey] ??
        item?.[props.valueKey] ??
        item?.url ??
        item?.response?.url ??
        item?.response;
      return props.valuePrefix ? `${props.valuePrefix}${val}` : val;
    });
  // 单个文件的情况,根据输入参数类型决定返回格式