123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 |
- <!-- 发布邻里圈 -->
- <template>
- <view class="">
- <view class="content">
- <view class="text">
- <textarea style="width: 100%;" :auto-height="true" placeholder="这一刻的想法" v-model="textarea" maxlength="300"></textarea>
- </view>
- <view class="imgBox">
- <view class="upImg" >
- <image :src="item" v-for="(item,index) in imgData" :key="index" @longpress="deleteImg(index)" @tap="prew(imgData,index)" style="width:208rpx;height: 208rpx;margin-right: 10rpx;margin-bottom: 10rpx;"
- v-show="imgData.length>0" ></image>
- <image src="../../static/circle_image@2x.png" style="width:208rpx;height: 208rpx;margin-bottom: 10rpx;" @tap="chooseImg" v-if="imgData.length<9"></image>
- <!-- <view style="font-size: 18rpx;line-height:114rpx;color: #999999;margin-left: 10rpx;" v-if="imgData.length>0">长按图片可以进行删除</view> -->
- </view>
- <!-- <view style="width: 208rpx;height: 208rpx;" @tap="chooseImg">
- <image src="../../static/circle_image@2x.png" style="width: 100%;height: 100%;"></image>
- </view> -->
- </view>
- </view>
- <view v-if="imgData.length>0 || textarea" @tap="push" class="btn active">发表</view>
- <view v-else @tap="push" class="btn">发表</view>
- </view>
- </template>
- <script>
- export default {
- data() {
- return {
- imgData: [], //图片数据
- textarea: '', //文本数据
- num:9
- }
- },
-
- methods: {
- // 计算还能选择几张
- formatNum(){
- this.num=9-this.imgData.length
- },
- // 预览图片
- prew(item,index){
- uni.previewImage({
- current:item[index],
- urls:item,
- success:(res)=>{
-
- },
- })
- },
- // 长按图片删除
- deleteImg(index){
- wx.showModal({
- title: '提示',
- content: '确定要删除此图片吗?',
- success: (res) =>{
- if (res.confirm) {
- this.imgData.splice(index, 1);
- this.formatNum()
- } else if (res.cancel) {
- return false;
- }
- }
- })
- },
- // 发表
- push() {
- if (this.textarea || this.imgData.length>0) {
- let img = ''
- // 判断是否上传图片
- if (this.imgData.length > 0) {
- img = this.imgData.join()
- } else {
- img = ''
- }
- uni.showLoading({
- mask:true,
- title:'加载中'
- })
- this.http.httpRequest('/wxapplet/prop/comtycircle/add', 'post', {
- userId: uni.getStorageSync('userId'),
- content: this.textarea,
- photosUrlList: img,
- createBy: uni.getStorageSync('createBy'),
- comtyId:uni.getStorageSync('comtyId'),
- }, true).then((res) => {
- console.log(res)
- if (res.code == 0) {
- uni.hideLoading()
- uni.showToast({
- 'icon':'success',
- title:'发表成功'
- })
- this.textarea=''
- this.imgData=[]
- setTimeout(()=>{
- uni.switchTab({
- url:'./circles'
- })
- },800)
-
- } else {
- uni.hideLoading()
- uni.showToast({
- title: res.msg,
- 'icon': 'none'
- })
- }
- }).catch(()=>{
- uni.hideLoading()
- })
- } else {
- return
- }
- },
- // 添加照片
- chooseImg() {
- // 判断当前选择图片是否大于九张
- if (this.imgData.length >= 9) {
- uni.showToast({
- "icon": 'none',
- title: '最多只能上传九张图片'
- })
- return
- }
- uni.chooseImage({
- count: this.num, //默认9
- sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
- // sourceType: ['album'], //从相册选择
- success: (res) => {
- var successUp = 0; //成功个数
- var failUp = 0; //失败个数
- var length = res.tempFilePaths.length; //总共个数
- var i = 0; //第几个
- this.uploadDIY(res.tempFilePaths, successUp, failUp, i, length);
- }
- });
- },
- // 上传图片
- uploadDIY(filePaths, successUp, failUp, i, length) {
- uni.showLoading({
- mask:true,
- title:'上传中'
- })
- wx.uploadFile({
- filePath: filePaths[i],
- url: 'https://www.szdeao.com/wxapplet/upload/imgPhoto ', //仅为示例,非真实的接口地址
- name: 'photo',
- method: 'post',
- success: (resp) => {
- let data =JSON.parse(resp.data)
- if(data.code==0){
- let reg=/,$/gi;
- let str=data.data.imagesPath.replace(reg,"");
- if(this.imgData.length<9){
- this.imgData.push(str)
- this.formatNum()
- uni.hideLoading()
- setTimeout(()=>{
- uni.showToast({
- title:'上传成功',
- 'icon':'success'
- })
- },1000)
- }
- successUp++;
- }else{
- uni.showToast({
- title:'上传失败,'+data.msg,
- 'icon':'none'
- })
- }
- console.log(data)
- },
- fail: (res) => {
- console.log(res)
- failUp++;
- },
- complete: () => {
- i++;
- if (i == length) {
-
- } else { //递归调用uploadDIY函数
- this.uploadDIY(filePaths, successUp, failUp, i, length);
- }
- },
- });
-
- },
- }
- }
- </script>
- <style>
- .upImg {
- display: flex;
- flex-wrap: wrap;
- }
- .imgBox {
- width: 100%;
- margin-top: 30rpx;
- /* display: flex;
- flex-wrap: wrap; */
- }
- .content {
- width: 702rpx;
- margin: 0 auto;
- margin-top: 34rpx;
- }
- .text {
- width: 100%;
- font-size: 32rpx;
- font-family: PingFang SC;
- font-weight: 400;
- color: rgba(51, 51, 51, 1);
- }
- .btn {
- width: 702rpx;
- height: 90rpx;
- background: rgba(247, 247, 247, 1);
- opacity: 1;
- border-radius: 18rpx;
- font-size: 32rpx;
- font-family: PingFang SC;
- font-weight: bold;
- color: rgba(204, 204, 204, 1);
- text-align: center;
- line-height: 90rpx;
- position: fixed;
- bottom: 56rpx;
- left: 26rpx;
- }
- .active {
- color: rgba(255, 255, 255, 1) !important;
- background: rgba(41, 138, 253, 1) !important;
- }
- </style>
|