Skip to content
官方QQ交流群
pc端ui:468705115   点此加入
移动端ui:468217742   点此加入
技术交流1:87208295   点此加入
技术交流2:787747122   点此加入
官网
云控制台
开放平台
关注微信公众号
代码仓库: 码云

cv-upload-image 图片上传

简要

  • 单张图片模式
  • 多张图片模式
  • 拖拽上传
  • 裁剪上传

全局配置

js
const uploadOption = {
  fileSize: 10
  upAction: 'https://jsonplaceholder.typicode.com/posts', // 上传地址
  data: {token: 'xxx'}, // 附带数据
  // 上传后对响应处理, 拼接为一个图片的地址
  upResponseFn(response, file, fileList) {
    // 根据响应结果, 设置 URL
    return 'https://xxx.xxx.com/image/' + response.id
  }
}
// 注册 cv-pc-ui
export function useCvUI(app) {
  app.use(cvPcUi, {
    // 可以在这里设置全局的 cvUploadImage 属性
    cvUploadImage: {
      ...uploadOption
    },
    upload: {
      ...uploadOption
    }
  });
}

示例

::: demo

vue
<template>
  <div>
    <h1 style="margin-bottom: 20px">上传组件 - 图片</h1>
    <cv-form-base>
      <h4 style="margin-bottom: 20px">默认使用全局配置</h4>
      <!-- <cv-form-item label="单张图">
        <cvUploadImage v-model="formData.image" v-model:initValue="formData.image_cdn" />
      </cv-form-item>
      <cv-form-item label="单张大图">
        <cvUploadImage v-model="formData.image" showBig v-model:initValue="formData.image_cdn" />
      </cv-form-item> -->
      <cv-form-item label="多张图片">
        <cvUploadImage v-model="formData.image_arr" multiple limit="5" v-model:initValue="formData.image_arr_cdn" />
      </cv-form-item>
      <!-- <cv-form-item label="多张大图">
        <cvUploadImage v-model="formData.image_arr" showBig multiple v-model:initValue="formData.image_arr_cdn" />
      </cv-form-item> -->
      <!-- <h4 style="margin-bottom: 20px">使用局部配置</h4>
      <cv-form-item label=" ">
        <cvUploadImage v-model="formData.image2" v-model:initValue="formData.image_cdn" />
      </cv-form-item>
      <cv-form-item label="拖拽">
        <cvUploadImage v-model="formData.image4" v-model:initValue="formData.image_cdn" drag />
      </cv-form-item>
      <cv-form-item label="裁剪">
        <cvUploadImage v-model="formData.image4" crop :initValue="formData.image_cdn" />
      </cv-form-item> -->
    </cv-form-base>
    <h4>显示数据</h4>
    <pre style="margin-top: 20px; background: #f6f6f6; padding: 20px; clear: both">{{ formData }}</pre>
  </div>
</template>
<script>
export default {
  data() {
    return {
      upAction1: 'https://jsonplaceholder.typicode.com/posts/',
      upAction: 'https://10yun.com/posts/',
      formData: {
        image: '',
        image_cdn: '',
        image_arr: [],
        image_arr_cdn: []
      }
    };
  },
  created() {
    setTimeout(() => {
      this.formData = {
        image: '',
        image_cdn: '//10ui.cn/default/default.png',
        image_arr: [],
        image_arr_cdn: ['//10ui.cn/default/default.png', '//10ui.cn/default/default.png']
      };
    }, 100);
  },
  methods: {
    handleRequest(data) {
      console.log(data);
      return Promise.resolve();
    },
    handleSuccess() {
      this.$message.success('提交成功');
    }
  },
  mounted() {}
};
</script>

:::

属性

属性名类型默认值说明
v-model/modelValueString,Object,Array-文本内容
initValueString-初始化
fileTypeArray-文件类型, 例如['png','jpg','jpeg']
fileSizeNumber-是否禁用
showSizeNumber150图片显示大小
showBigBoolean是否显示大图
multipleBooleantrue是否支持多选文件
limitNumber-最大允许上传个数 ,文件个数显示
lazyBooleanfalse图片懒加载
dragBooleanfalse是否启用拖拽上传
signatureTypeString签名类型
signatureFnFunction签名方法

thumbSuffix 说明 // 缩略图后缀, 例如七牛云缩略图样式 (?imageView2/1/w/20/h/20) // 如果存在, 则列表显示是加缩略图后缀的, 弹窗不带缩略图后缀

upExtendAliyun 说明

  • 需要配置参数:apiFunc ,并且返回参数如下
    json
    {
      
    }
  • 需要

裁剪组件属性

属性名类型默认值说明
cropBooleanfalse是否剪裁
cropHeightNumber-裁剪高度
cropWidthNumber-裁剪宽度

事件

事件名说明
error上传失败

相关链接

Copyright © 2017 10yun.com | 十云提供计算服务-IPV6 | ctocode组开发