vue-评论、input上传图片

前端基于YDUI框架开发

<template>
<div class="discuss">
<div style="">
<yd-cell-group>
<yd-cell-item>
<yd-textarea
slot="right"
placeholder="发布你的晒图,最多1000字哦..."
maxlength="140"
v-model="value1"
></yd-textarea>
</yd-cell-item>
</yd-cell-group>
<ul style="padding: 0.2rem 0.25rem;;display: flex;border-top: 1px solid #eaeaea">
<li class="discussImg discussImgAdd">

<input
name="file"
type="file"
class="upload"
accept="image/png,image/gif,image/jpeg,image/jpg"
@change="uploadAvatar($event)"
/>
</li>
<li
class="discussImg"
v-for="(item, key) in circleArr2"
>
<img
:src="item"
class="discussImg1"
alt=""
>
</li>
</ul>
</div>
<div class="tijiao" @click="pinlun">提交</div>
</div>
</template>
<script>
export default {
data() {
return {
value1:'',
img:[],
storeXq1:{},
circleArr2: [],
}
},
methods: {
doinfo (e,a,b) {
var data = {
'store_id': e,
'longitude': a,
'latitude': b,
}
this.$api.shuStoreXq(data, res => {
this.storeXq1 = res.data
})
},
pinlun () {
var data = {
'store_id': this.id,
'comment': this.value1,
'type': 2,
'score': this.rate7,
'is_dis': 1,
'images': this.circleArr2,
}
console.log(this.value1)
this.$api.pinlun(data, res => {
this.pinlunList = res.data;
// console.log("写评论",res.data)
})
if(this.value1 != ''){
// console.log('提交',this.value1)
this.$router.push({path: '/shuStoreDetail', query: {store_id:this.id}});
}
},
uploadAvatar(e) {
let file = e.target.files[0];
let param = new FormData();
param.append("upfile", file, file.name);
this.$api.uploadFile("image", param, res => {
if (res.status) {
let avatar = res.data.url; // 上传成功的图片地址
this.circleArr2.push(avatar);
}
});
},
},
created () {
this.id = this.$route.query.store_id
this.doinfo(this.$route.query.store_id,30.539228,104.062474)
},
}
</script>
<style scoped>
/deep/ .yd-cell:after{
height: 0;
width: 0;
border-bottom: none;
}
.tijiao{
width: 100%;
height: 1rem;
background-color: #d4b058;
color: #fff;
position: fixed;
bottom: 0;
left: 0;
font-size: 0.3rem;
line-height: 1rem;
}
.yd-cell:after{
height: 0;
width: 0;
}
.yd-cell-box{
margin-bottom: 0;
}
.yd-cell-right{
padding-right: 0;
}
.discussImg{
width: 1rem;
height: 1rem;
border-radius: 5px;
margin-right: .15rem;
}
.discussImgAdd{
border: 1px dashed #eaeaea;
color: #dedede;
line-height: 1rem;
font-size: .4rem;
font-family: 宋体;
}
.discussImg img{
width: 100%;
height: 100%;
}
/deep/ .yd-cell-box {
margin-bottom: 0;
}
.discussImg {
width: 1rem;
height: 1rem;
border-radius: 5px;
margin-right: 0.15rem;
position: relative;
}
.discussImgAdd {
border: 1px dashed #eaeaea;
color: #dedede;
line-height: 1rem;
font-size: 0.4rem;
font-family: 宋体;
position: relative;
}
.discussImg1 {
width: 1rem;
height: 1rem;
}
.upload {
opacity: 0;
position: absolute;
left: 0;
top: 0;
width: 1rem;
height: 1rem;
}
</style>

 

 

转载于:https://www.cnblogs.com/llying/p/10276053.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vue-quill-editor是一个基于Quill.js的富文本编辑器,它支持上图片,以下是上图片的步骤: 1. 安装依赖 ``` npm install quill-image-resize-module --save npm install quill --save npm install vue-quill-editor --save ``` 2. 引入依赖 ```javascript import { quillEditor } from 'vue-quill-editor' import Quill from 'quill' import ImageResize from 'quill-image-resize-module' Quill.register('modules/imageResize', ImageResize) ``` 3. 配置vue-quill-editor ```javascript <template> <quill-editor v-model="content" :options="editorOption"></quill-editor> </template> <script> export default { data () { return { content: '', editorOption: { modules: { imageResize: { displaySize: true }, toolbar: [ ['bold', 'italic', 'underline', 'strike'], [{ 'header': 1 }, { 'header': 2 }], [{ 'color': [] }, { 'background': [] }], [{ 'list': 'ordered' }, { 'list': 'bullet' }], ['image', 'code-block', 'link'] ] }, placeholder: '请输入内容' } } } } </script> ``` 4. 添加上图片功能 ```javascript <template> <quill-editor v-model="content" :options="editorOption" ref="myQuillEditor"></quill-editor> <input type="file" @change="uploadImage" ref="fileInput" style="display:none"> </template> <script> export default { data () { return { content: '', editorOption: { modules: { imageResize: { displaySize: true }, toolbar: [ ['bold', 'italic', 'underline', 'strike'], [{ 'header': 1 }, { 'header': 2 }], [{ 'color': [] }, { 'background': [] }], [{ 'list': 'ordered' }, { 'list': 'bullet' }], ['image', 'code-block', 'link'] ] }, placeholder: '请输入内容' }, imageSrc: '' } }, methods: { uploadImage() { const file = this.$refs.fileInput.files[0] const formData = new FormData() formData.append('image', file) axios.post('/api/uploadImage', formData).then(res => { if (res.data.status === 'success') { const range = this.$refs.myQuillEditor.quill.getSelection() const imgSrc = res.data.data.imageSrc this.$refs.myQuillEditor.quill.insertEmbed(range.index, 'image', imgSrc) this.$refs.fileInput.value = '' } }) } } } </script> ``` 5. 其中,`uploadImage`方法用于上图片,并将图片插入到编辑器中。 注意:要将`image`添加到`toolbar`中,以便能够在编辑器中添加图片。 ```javascript ['image', 'code-block', 'link'] ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值