js方法
<script src="http://unpkg.com/element-ui@1.4.1/lib/index.js"></script>
<div id="app" ref = 'find'>
<el-upload action="https://jsonplaceholder.typicode.com/posts/" list-type="picture-card" :on-preview="handlePictureCardPreview" :on-remove="handleRemove" :on-change = "handleChange">
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog v-model="dialogVisible" size="tiny">
![](dialogImageUrl)
</el-dialog>
</div>
var Main = {
data() {
return {
dialogImageUrl: '',
dialogVisible: false
};
},
methods: {
handleChange () {
this.$refs.find.querySelector(".el-upload--picture-card").style.background = 'red'
},
handleRemove(file, fileList) {
this.$refs.find.querySelector(".el-upload--picture-card").style.background = 'green'
console.log(file, fileList);
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
}
}
}
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
另一種思維:
也可以在外層包個class,然后設置class寬度
超出部分隱藏overflow:hidden
這里其實應給el -form-item單獨設立class也可實現(xiàn)這個效果
:on-change 可以改為 :on-sucess 當上傳成功后再進行操作