兰宝车间质量管理系统-前端
疯狂的狮子Li
2024-02-23 26cfa7afc4c30c909f82b635e7ea130c2937e5fc
!84 图片上传组件增加压缩支持
Merge pull request !84 from 缝合怪/dev
已修改2个文件
23 ■■■■ 文件已修改
package.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/ImageUpload/index.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json
@@ -30,6 +30,7 @@
    "element-plus": "2.4.4",
    "file-saver": "2.0.5",
    "fuse.js": "7.0.0",
    "image-conversion": "^2.1.1",
    "js-cookie": "3.0.5",
    "jsencrypt": "3.3.2",
    "nprogress": "0.2.0",
src/components/ImageUpload/index.vue
@@ -44,6 +44,7 @@
import { OssVO } from '@/api/system/oss/types';
import { propTypes } from '@/utils/propTypes';
import { globalHeaders } from '@/utils/request';
import { compressAccurately } from 'image-conversion';
const props = defineProps({
  modelValue: {
@@ -60,7 +61,14 @@
  isShowTip: {
    type: Boolean,
    default: true
  }
  },
  // 是否支持压缩,默认否
  compressSupport: {
    type: Boolean,
    default: false
  },
  // 压缩目标大小,单位KB。默认300KB以上文件才压缩,并压缩至300KB以内
  compressTargetSize: propTypes.number.def(300)
});
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
@@ -138,8 +146,16 @@
      return false;
    }
  }
  proxy?.$modal.loading('正在上传图片,请稍候...');
  number.value++;
  //压缩图片,开启压缩并且大于指定的压缩大小时才压缩
  if (props.compressSupport && file.size / 1024 > props.compressTargetSize) {
    proxy?.$modal.loading('正在上传图片,请稍候...');
    number.value++;
    return compressAccurately(file, props.compressTargetSize);
  } else {
    proxy?.$modal.loading('正在上传图片,请稍候...');
    number.value++;
  }
};
// 文件个数超出