上传多组图片

多组图片.png

axml

<!--申请材料-->
<view class="content">
  <view class="title">
    <text class="blue"></text>
    申请材料
  </view>
  <block a:for="{{applyData}}" a:key="*this" a:for-index="applyIndex">
    <view class="photoLine">
      <view class="photoTitle">
        <text class="requireText">*</text>{{item}}
      </view>
      <view class="showPhoto">
        <view a:for="{{tempFilePaths[applyIndex]}}" class="photoImg" data-showIndex="{{index}}" data-applyIndex="{{applyIndex}}" onLongTap='onLongTapTest'>
          <image mode="widthFix" src="{{item}}" onTap="previewImage" data-showIndex="{{index}}" data-applyIndex="{{applyIndex}}" />
        </view>
        <block a:if="{{tempFilePaths[applyIndex].length<3}}">
          <view class="upload" onTap="chooseImage" data-applyIndex="{{applyIndex}}">
            <am-icon type="add" size="30" color="#CFCCCF"/>
          </view>
        </block>
      </view>
    </view>
  </block>
</view>

acss

.content{
  /* width: 100%; */
  box-sizing: border-box;
  margin-bottom: 30rpx;
  padding: 31rpx 24rpx;
  border-radius: 7rpx;
  font-size: 25rpx;
  color: #333;
  line-height: 36rpx;
  background: #fff;
}
.title{
  display: flex;
  align-items: center;
  font-size:29rpx;
  font-family:PingFangSC-Semibold,PingFang SC;
  font-weight:600;
  color:rgba(51,51,51,1);
  height:40rpx;
  padding: 0 7rpx;
  margin-bottom: 22rpx;
}
.blue{
  height: 26rpx;
  border: 2rpx solid #018EFE;
  border-radius:3rpx;
  margin-right: 20rpx;
  background: #018EFE;
}
.requireText{
  color: #d33131;
}
.photoLine{
  width: 100%;
  padding:30rpx 20rpx;
  box-sizing: border-box;
  background: #fff;
  border-bottom: 2rpx solid #F7F7F7;
}
.photoLine:nth-last-child(1){
  border: none;
}
.photoTitle{
  color: rgba(115, 115, 115, 1);
  font-size: 32rpx;
  margin-bottom: 30rpx;
}
.showPhoto{
  display: flex;
  flex-wrap: wrap;
}
.photoImg{
  margin-right: 30rpx;
}
.photoImg image{
  width: 164rpx;
  height: 164rpx;
}
.upload{
  display: flex;
  justify-content: center;
  align-items: center;
  width:112rpx;
  height:112rpx;
  border-radius:7rpx;
  border:2rpx solid rgba(204,204,204,1);
}

js

var app = getApp();
Page({
  data: {
    //存储网络路径
    tempFilePaths: [],
    //存储未加前缀的路径
    tempImg: [],
    len: [],
    applyData: ['第一组图片', '第二组图片', '第三组图片',],
  },
  onLoad() {
    //目的:让img_url和temFilePaths是数组里放数组
    for (let j = 0; j < this.data.applyData.length; j++) {
      this.data.tempFilePaths[j] = [];
      this.data.len[j] = 0;
      this.data.tempImg[j] = [];
    }
    this.setData({
      tempFilePaths: this.data.tempFilePaths,
      tempImg: this.data.tempImg,
    })
  },
  chooseImage(e) {
    let that = this;
    let applyIndex = e.target.dataset.applyIndex;
    console.log("applyIndex=" + applyIndex);
    that.setData({
      applyIndex
    })
    if (that.data.tempFilePaths[applyIndex] != null) {
      that.data.len[applyIndex] = that.data.tempFilePaths[applyIndex].length;
    }
    my.chooseImage({
      sourceType: ['camera', 'album'],
      count: 3 - that.data.len[applyIndex],
      success: (res) => {
        //把每次选择的图push进数组 
        //存储网络路径         
        let imageNetPath = that.data.tempFilePaths;
        //存储路径
        let localImg = that.data.tempImg;
        //多张图片临时变量
        let imgUrl = imageNetPath[applyIndex];
        let unprefix = localImg[applyIndex];
        for (let i = 0; i < res.apFilePaths.length; i++) {
          my.uploadFile({
            url: app.globalData.host + "/api/common/upload_image",
            header: {
              'content-type': 'application/json',
            },
            fileType: 'image',
            fileName: 'img',
            filePath: res.apFilePaths[i],
            success: res => {
              let arr = JSON.parse(res.data);
              console.log(arr);
              if (arr.status == 0) {
                unprefix.push(arr.data.img_path);
                imgUrl.push(app.globalData.host + "/" + arr.data.img_path);
                imageNetPath[applyIndex] = imgUrl;
                localImg[applyIndex] = unprefix;
                that.setData({
                  tempImg: localImg,
                  tempFilePaths: imageNetPath
                })
                console.log("=====tempImg====");
                console.log(this.data.tempImg);
                console.log("=====tempFilePaths====");
                console.log(this.data.tempFilePaths);
                console.log(this.data.tempFilePaths[applyIndex]);
              }
             if(arr.status==1){
                my.showToast({
                    type: 'none',
                    content:"上传失败:"+ arr.message,
                    duration: 1500
                });
              }
            },
            fail: function (res) {
              my.alert({ title: '上传失败' });
            },
          });
        }
      },
      fail: (res) => {
        console.log(res)
      }
    })
  },

  //预览图片
  previewImage(e) {
    const applyIndex = e.target.dataset.applyIndex;
    const showIndex = e.target.dataset.showIndex;
    let applyArr = this.data.tempFilePaths[applyIndex];
    console.log("==applyIndex==" + applyIndex);
    console.log("==showIndex==" + showIndex);
    my.previewImage({
      current: showIndex,
      urls: applyArr
    });
  },

  //长按删除图片
  onLongTapTest(e) {
    var that = this;
    let index = e.target.dataset.showIndex;//图片下标
    let applyIndex = e.target.dataset.applyIndex;//门诊病历,住院病历索引
    var tempFilePaths = that.data.tempFilePaths;
    var tempImg = that.data.tempImg;
    my.confirm({
      title: '温馨提示',
      content: '确定要删除此图片吗',
      confirmButtonText: '确定',
      cancelButtonText: '取消',
      success: (res) => {
        if (res.confirm) {
            my.request({
              url: app.globalData.host + '/api/common/delete_image',
              method: 'POST',
              data: {
                img_path:tempImg[applyIndex][index]
              },
              headers:{'content-type': 'application/json'},
              dataType: 'json',
              success: (res) => {
                if (res.data.status == 0) {
                 tempFilePaths[applyIndex].splice(index, 1);
                 tempImg[applyIndex].splice(index, 1);
                  that.setData({
                    tempFilePaths,
                    tempImg
                  });
                  my.showToast({
                    type: 'none',
                    content: res.data.message,
                    duration: 1500
                  });
                }
              },
            });
        } else if (res.cancel) {
          console.log('点击取消了');
          return false;
        }
      }
    })
  },
上传成功.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,755评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,369评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,799评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,910评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,096评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,159评论 3 411
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,917评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,360评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,673评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,814评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,509评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,156评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,123评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,641评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,728评论 2 351