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

cv-upload-image 图片上传

简要

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

全局配置

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

示例

::: demo

vue
<template>
  <div>
    <h1>上传组件 - 图片</h1>

    <h3 style="margin-bottom: 20px">默认使用全局配置</h3>
    <cv-form-base labelWidth="auto">
      <cv-form-item label="封面">
        <cvUploadImage v-model="formData.image" limit="1" />
      </cv-form-item>
      <cv-form-item label="多张图片">
        <cvUploadImage v-model="formData.image_arr" multiple :valInit="formData.image_arr_cdn" />
      </cv-form-item>
    </cv-form-base>
    <h4 style="margin-bottom: 20px"></h4>
    <!-- <h4 style="margin-bottom: 20px;">使用局部配置</h4>
    <cvUploadImage  v-model="formData.image2" :valInit="formData.image_cdn" :upAction="upAction" :upResponseFn="handleResponse" /> -->
    <h4 style="margin-bottom: 20px"></h4>
    <h4 style="margin-bottom: 20px">拖拽</h4>
    <!-- 
    <cvUploadImage v-model="formData.image4" drag :valInit="formData.image_cdn" :upAction="upAction" :upResponseFn="handleResponse" /> -->

    <h4 style="margin-bottom: 20px">裁剪</h4>
    <!--
    <cvUploadImage  v-model="formData.image4" crop :valInit="formData.image_cdn" :upAction="upAction"  :upResponseFn="handleResponse" /> 
    -->
    <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: '//f.10cdn.cn/default/default.png',
        image_arr: [],
        image_arr_cdn: ['//f.10cdn.cn/default/default.png', '//f.10cdn.cn/default/default.png']
      };
    }, 0);
  },
  methods: {
    handleResponse(response, file, fileList) {
      return file.url;
    },
    handleRequest(data) {
      console.log(data);
      return Promise.resolve();
    },
    handleSuccess() {
      this.$message.success('提交成功');
    }
  },
  mounted() {}
};
</script>

:::

属性

属性名类型默认值说明
v-model/modelValueString,Object,Array-文本内容
upActionString-必选参数,上传的地址
upNameStringfile文件名
upHeadersObject-上传图片携带的header
upDataObject-自定义上传数据, 例如
upCookieBooleanfalse是否需要带cookie
upAcceptString-接受上传的文件类型
upResponseFnFunction-上传成功的进一步处理
dragBooleanfalse是否启用拖拽上传
multipleBooleantrue是否支持多选文件
limitNumber-最大允许上传个数 ,文件个数显示
beforeRemoveFunction-删除前的操作
httpRequestFunction-覆盖默认上传行为,自定义上传
fileTypeArray-文件类型, 例如['png','jpg','jpeg']
fileSizeNumber-是否禁用
lazyBooleanfalse图片懒加载
isShowTipBooleantrue是否显示提示
isShowSuccessTipBooleantrue是否显示提示
sizeNumber150图片显示大小
thumbSuffixString-缩略图后缀

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

裁剪组件属性

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

事件

事件名说明
error上传失败

相关链接

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