Commit 29cdcdb6 authored by 廖伟胜's avatar 廖伟胜

修改上创组件

parent 13518f2c
......@@ -2,10 +2,10 @@
<div>
<el-upload ref="upload" :show-file-list="false" :on-preview="handler().handlePreview()" :list-type="listType" :on-exceed="(files, fileList)=>handler().handleExceed(files,fileList)" :drag="uploadStyle === 'drag' ? true : false" :limit="limit" :on-success="(file) => handler().imageSuccess(file)" :action="uploadDomain" :before-upload="init().beforeUpload" :multiple="multiple" :headers="headers" class="avatar-uploader" >
<!--音频-->
<div v-if="data.length >0 && !isList" style="display:inline">
<div v-for="(item,index) in data" :key="index" style="float:left;margin-right:10px;" @click.stop="handler().getIndex(index)" >
<div v-if="list.length >0 && !isList" style="display:inline">
<div v-for="(item,index) in list" :key="index" style="float:left;margin-right:10px;" @click.stop="handler().getIndex(index)" >
<div class="avatar" style="border:none" >
<i class="el-icon-close delete-icon" title="删除" @click.stop="data.splice(index, 1)"/>
<i class="el-icon-close delete-icon" title="删除" @click.stop="handler().handelDelete(index)"/>
<aplayer
class="audio-player"
:music="item"
......@@ -22,12 +22,12 @@
</div>
</div>
</div>
<div v-else-if="data.length >0 && isList" style="display:inline">
<div v-else-if="list.length >0 && isList" style="display:inline">
<div class="avatar" style="border:none" >
<i class="el-icon-close delete-icon" title="删除" @click.stop="data.splice(index, 1)"/>
<i class="el-icon-close delete-icon" title="删除" @click.stop="handler().handelDelete(index)"/>
<aplayer
class="audio-player"
:list="data"
:list="list"
:mini="mini"
:float="float"
:showLrc="showLrc"
......@@ -141,7 +141,7 @@ export default{
// 图片大小限制(kb)
sizeLimit: {
type: Number,
default: 3000,
default: 10000,
},
//显示删除
showDel: {
......@@ -156,6 +156,11 @@ export default{
show: {
type: Boolean,
default: true,
},
// 类型
dataType: {
type: String,
default: 'array',
},
//上传组件风格
uploadStyle:{
......@@ -185,6 +190,7 @@ export default{
return {
index:null,
data: '',
list:[],
qiniuToken: '',
baseUrl: process.env.VUE_APP_BASE_API,
videoFlag: false,
......@@ -265,16 +271,17 @@ export default{
},
watch: {
value(value) {
this.data = this.init().data(value)
this.list = this.init().data(value)
},
data() {
this.$emit('input', this.data)
this.data = this.list;
this.$emit('input', this.init().value(this.data))
this.$emit('on-success', this.data)
},
},
created() {
this.index = null;
this.data = this.value
this.list = this.init().data(this.value);
this.init().token()
},
methods: {
......@@ -378,10 +385,9 @@ export default{
const link = data.url;
// this.data = url
let attrs = {
title:file.name,
src:link
}
this.data = this.data.push(attrs);
this.data = this.list.push(attrs);
this.$refs.upload.clearFiles();
},
//获取索引
......@@ -418,6 +424,10 @@ export default{
this.data = ''
this.$emit('delete')
},
//删除音频
handelDelete:(index)=>{
this.data = this.list.splice(index,1);
},
}
},
/**
......
<template>
<div>
<el-upload ref="upload" :show-file-list="false" :on-preview="handler().handlePreview()" :list-type="listType" :on-exceed="(files, fileList)=>handler().handleExceed(files,fileList)" :drag="uploadStyle === 'drag' ? true : false" :limit="limit" :on-success="(file) => handler().imageSuccess(file)" :action="uploadDomain" :before-upload="init().beforeUpload" :multiple="multiple" :headers="headers" class="avatar-uploader" >
<el-upload ref="upload" :show-file-list="false" :on-preview="handler().handlePreview()" :list-type="listType" :on-exceed="(files, fileList)=>handler().handleExceed(files,fileList)" :drag="uploadStyle === 'drag' ? true : false" :limit="limit" :on-success="(file,files) => handler().imageSuccess(file,files)" :action="uploadDomain" :before-upload="init().beforeUpload" :multiple="multiple" :headers="headers" class="avatar-uploader" >
<i class="el-icon-upload" v-if="uploadStyle === 'drag'"></i>
<div class="el-upload__text" v-if="uploadStyle === 'drag'">将文件拖到此处,或<em>点击上传</em></div>
<!--文件上传-->
......@@ -10,12 +10,12 @@
</el-upload>
<!-- 文件列表 -->
<transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear" tag="ul">
<li :key="index" class="el-upload-list__item ele-upload-list__item-content" v-for="(file, index) in data">
<li :key="index" class="el-upload-list__item ele-upload-list__item-content" v-for="(file, index) in list">
<el-link :href="`${baseUrl}${file.url}`" :underline="false" target="_blank">
<span class="el-icon-document"> {{ file.name }} </span>
</el-link>
<div class="ele-upload-list__item-content-action">
<el-link :underline="false" @click="handleDelete(index)" type="danger">删除</el-link>
<el-link :underline="false" @click="handler().handelDelete(index)" type="danger">删除</el-link>
</div>
</li>
</transition-group>
......@@ -59,6 +59,11 @@ export default{
sizeLimit: {
type: Number,
default: 3000,
},
// 类型
dataType: {
type: String,
default: 'array',
},
fileSize:{
type: Number,
......@@ -97,6 +102,7 @@ export default{
return {
index:null,
data: [],
list:[],
qiniuToken: '',
baseUrl: process.env.VUE_APP_BASE_API,
imgDomain: '',
......@@ -165,16 +171,17 @@ export default{
},
watch: {
value(value) {
this.data = this.init().data(value)
this.list = this.init().data(value)
},
data() {
this.$emit('input', this.data)
this.data = this.list;
this.$emit('input', this.init().value(this.data))
this.$emit('on-success', this.data)
},
},
created() {
this.index = null;
this.data = this.value
this.list = this.init().data(this.value);
this.init().token()
},
methods: {
......@@ -281,8 +288,7 @@ export default{
name:file.name,
url:link
}
this.data = this.data.push(attrs);
this.$refs.upload.clearFiles();
this.data = this.list.push(attrs);
},
// 文件个数超出
handleExceed:(file,fileList)=>{
......@@ -314,6 +320,10 @@ export default{
this.data = ''
this.$emit('delete')
},
//删除文件
handelDelete:(index)=>{
this.data = this.list.splice(index,1);
},
}
},
/**
......
......@@ -196,7 +196,7 @@ export default{
handler() {
return {
// 图片上传成功回调
imageSuccess: ({ data }) => {
imageSuccess: (data) => {
const { url } = data
this.data = url
},
......
<template>
<div>
<el-upload ref="upload" :show-file-list="false" :on-preview="handler().handlePreview()" :on-progress="(event, file, fileList)=>handler().uploadVideoProcess(event, file, fileList)" :file-list="data" :list-type="listType" :on-exceed="(files, fileList)=>handler().handleExceed(files,fileList)" :drag="uploadStyle === 'drag' ? true : false" :limit="limit" :on-success="(file) => handler().imageSuccess(file)" :action="uploadDomain" :before-upload="init().beforeUpload" :multiple="multiple" :headers="headers" class="avatar-uploader" >
<el-upload ref="upload" :show-file-list="false" :on-progress="(event, file)=>handler().uploadVideoProcess(event, file)" :list-type="listType" :on-exceed="(files)=>handler().handleExceed(files)" :drag="uploadStyle === 'drag' ? true : false" :limit="limit" :on-success="(file) => handler().imageSuccess(file)" :action="uploadDomain" :before-upload="init().beforeUpload" :multiple="multiple" :headers="headers" class="avatar-uploader" >
<!--视频-->
<div v-if="data.length >0" style="display:inline" @click.stop="handler().getIndex(index)" >
<div v-for="(item,index) in data" :key="index" style="float:left;" @click.stop="handler().getIndex(index)">
<div v-if="list.length >0" style="display:inline" @click.stop="handler().getIndex(index)" >
<div v-for="(item,index) in list" :key="index" style="float:left;" @click.stop="handler().getIndex(index)">
<div :style="style" class="avatar video-box" >
<i class="el-icon-close delete-icon" title="删除" @click.stop="data.splice(index, 1)"/>
<i class="el-icon-close delete-icon" title="删除" @click.stop="handler().handelDelete(index)"/>
<video id="myVideo"
:src="item.url"
:autoplay="autoplay == true ? 'autoplay' : false"
......@@ -86,6 +86,11 @@ export default{
preload:{
type: Boolean,
default: false,
},
// 类型
dataType: {
type: String,
default: 'array',
},
// 是否多选
multiple: {
......@@ -148,6 +153,7 @@ export default{
return {
index:null,
data: '',
list:[],
qiniuToken: '',
baseUrl: process.env.VUE_APP_BASE_API,
videoFlag: false,
......@@ -228,16 +234,17 @@ export default{
},
watch: {
value(value) {
this.data = this.init().data(value)
this.list = this.init().data(value)
},
data() {
this.$emit('input', this.data)
this.data = this.list;
this.$emit('input', this.init().value(this.data))
this.$emit('on-success', this.data)
},
},
created() {
this.index = null;
this.data = this.value
this.list = this.init().data(this.value);
this.init().token()
},
methods: {
......@@ -356,11 +363,11 @@ export default{
this.isShowUploadVideo = true;
this.videoFlag = false;
this.videoUploadPercent = 0;
this.data = this.index != null ? this.data.splice(this.index,1,attr) : this.data.push(attr);
this.$refs.upload.clearFiles();
this.data = this.index != null ? this.list.splice(this.index,1,attr) : this.list.push(attr);
// this.$refs.upload.clearFiles();
},
//进度条
uploadVideoProcess:(event, file, fileList)=>{
uploadVideoProcess:(event, file)=>{
this.videoFlag = true;
this.videoUploadPercent = file.percentage.toFixed(0) * 1;
},
......@@ -369,7 +376,7 @@ export default{
this.index = index;
},
// 文件个数超出
handleExceed:(file,fileList)=>{
handleExceed:(file)=>{
this.$message.error(`上传文件数量不能超过 ${this.limit} 个!`);
},
handlePreview:(file)=>{
......@@ -411,6 +418,10 @@ export default{
this.data = ''
this.$emit('delete')
},
//删除视频
handelDelete:(index)=>{
this.data = this.list.splice(index,1);
},
}
},
/**
......
......@@ -91,7 +91,7 @@ export default {
},
limit: { // 图片上传数量限制,默认10
type: Number,
default: 1,
default: 10,
},
value: {
type: [String, Object, Array],
......
......@@ -49,7 +49,7 @@
:ref="form[item.field]"
v-model="form[item.field]"
:type="item.type"
:limit="(item.upload && item.upload.limit) || 1"
:limit="(item.upload && item.upload.limit) || 5"
:size="(item.upload && item.upload.size) || 100"
:dataType="(item.upload && item.upload.dataType) || 'array'"
:edit="(item.upload && item.upload.edit) || true"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment