vux h5plus单图,多图,拍照,相册选取base64图片压缩上传

import lrz from "lrz"

import {generateMixed} from "../common"

import {add2Cache,getFromCache,removeFromCache} from "../cache"

// Created by quanzaiyu on 2017/10/25 0025.

var state = {

  img_upload_cache: [],//上传文件缓存

  img_paths: [],//上传状态,包括 ready selected uploading finished

  img_status:'ready',// # 上传后的路径反馈数组(数据结构为Set集合)

  items:new Map(),

  orderno:"",

headerimg:""

}

const actions = {

choiceImgdate({commit}){//选择拍照或上传

  if (!window.plus){

            actions. choiceDanpic({commit})//如果不支持plus,就用本地相册上传即可

            return;

          }

        let title = "选择照片"

        let btns = ['拍照','相册']

          var func = function(e){ 

          var index = e.index; 

            if(index == 1) actions.choiceCamera({commit}); 

          if(index == 2)  actions. choiceDanpic({commit}); 

        }

        if(title && btns && btns.length > 0){

          var btnArray = [];

          for(var i=0; i<btns.length; i++){

              btnArray.push({title:btns[i]});

          }

            plus.nativeUI.actionSheet({

              title : title,

              cancel : '取消',

            buttons : btnArray

          }, function(e){

            if(func) func(e);

          })

      }

},

choiceCamera({commit}){//相机

    var cmr = plus.camera.getCamera(); 

        cmr.captureImage(function (path){ 

            plus.io.resolveLocalFileSystemURL(path, function(entry){

                  let localurl = entry.toLocalURL();

                  actions.insertPhoto({commit},localurl);

            }, function(e){plus.nativeUI.toast("读取拍照文件错误:" + e.message);  }); 

        }, function(e){},{index:1,filename:"_doc/camera/"}); 

},

choicePic({commit}){//多图选择

plus.gallery.pick(function(e){

    for(var i in e.files){

    if (i < 9) {

              actions.insertPhoto({commit},e.files[i]);

        }

    }

    }, function ( e ) {

        console.log( "取消选择图片" );

    },{filter:"image",multiple:true,

          maximum:9,

    });//过滤器只要图片,多选

},

choiceDanpic({commit}){//丹徒选择

plus.gallery.pick(function(path){

actions.insertPhoto({commit},path);

}, function ( e ) {

console.log( "取消选择图片" );

},{filter:"image",filename:'_documents/siyuan/'

});//过滤器只要图片,多选

},

insertPhoto({commit},data){//选图

  lrz(data, { width: 480 }).then(function(rst) {

          let  reader = new FileReader()

                reader.readAsDataURL(rst.file);

                reader.onload = function(e) {

                rst.imgshow=e.target.result;

                rst.guid=generateMixed(6);

                commit('headerimg_set',rst)

            }

      return rst

    }).always(function() {  // 清空文件上传控件的值

    e.target.value = null

    });

},

delate({commit},guid){//删除图片

  commit('set_img_paths',guid)

},

getdata({commit},orderno){//获取单个编号相册情况

  commit('get_img_data',orderno)

},

clearupload({commit}){//清除照片

    commit('chu_set')

  },

getdanchuan({commit},obj){

  lrz(obj.files[0], {width: 350}, function (results) {import lrz from "lrz"

import {generateMixed} from "../common"

import {add2Cache,getFromCache,removeFromCache} from "../cache"

// Created by quanzaiyu on 2017/10/25 0025.

var state = {

  img_upload_cache: [],//上传文件缓存

  img_paths: [],//上传状态,包括 ready selected uploading finished

  img_status:'ready',// # 上传后的路径反馈数组(数据结构为Set集合)

  items:new Map(),

  orderno:"",

headerimg:""

}

const actions = {

choiceImgdate({commit}){//选择拍照或上传

  if (!window.plus){

            actions. choiceDanpic({commit})//如果不支持plus,就用本地相册上传即可

            return;

          }

        let title = "选择照片"

        let btns = ['拍照','相册']

          var func = function(e){ 

          var index = e.index; 

            if(index == 1) actions.choiceCamera({commit}); 

          if(index == 2)  actions. choiceDanpic({commit}); 

        }

        if(title && btns && btns.length > 0){

          var btnArray = [];

          for(var i=0; i<btns.length; i++){

              btnArray.push({title:btns[i]});

          }

            plus.nativeUI.actionSheet({

              title : title,

              cancel : '取消',

            buttons : btnArray

          }, function(e){

            if(func) func(e);

          })

      }

},

choiceCamera({commit}){//相机

    var cmr = plus.camera.getCamera(); 

        cmr.captureImage(function (path){ 

            plus.io.resolveLocalFileSystemURL(path, function(entry){

                  let localurl = entry.toLocalURL();

                  actions.insertPhoto({commit},localurl);

            }, function(e){plus.nativeUI.toast("读取拍照文件错误:" + e.message);  }); 

        }, function(e){},{index:1,filename:"_doc/camera/"}); 

},

choicePic({commit}){//多图选择

plus.gallery.pick(function(e){

    for(var i in e.files){

    if (i < 9) {

              actions.insertPhoto({commit},e.files[i]);

        }

    }

    }, function ( e ) {

        console.log( "取消选择图片" );

    },{filter:"image",multiple:true,

          maximum:9,

    });//过滤器只要图片,多选

},

choiceDanpic({commit}){//丹徒选择

plus.gallery.pick(function(path){

actions.insertPhoto({commit},path);

}, function ( e ) {

console.log( "取消选择图片" );

},{filter:"image",filename:'_documents/siyuan/'

});//过滤器只要图片,多选

},

insertPhoto({commit},data){//选图

  lrz(data, { width: 480 }).then(function(rst) {

          let  reader = new FileReader()

                reader.readAsDataURL(rst.file);

                reader.onload = function(e) {

                rst.imgshow=e.target.result;

                rst.guid=generateMixed(6);

                commit('headerimg_set',rst)

            }

      return rst

    }).always(function() {  // 清空文件上传控件的值

    e.target.value = null

    });

},

delate({commit},guid){//删除图片

  commit('set_img_paths',guid)

},

getdata({commit},orderno){//获取单个编号相册情况

  commit('get_img_data',orderno)

},

clearupload({commit}){//清除照片

    commit('chu_set')

  },

getdanchuan({commit},obj){

  lrz(obj.files[0], {width: 350}, function (results) {

            // 你需要的数据都在这里,可以以字符串的形式传送base64给服务端转存为图片。

            commit('headerimg_set',results)

        });

}

}

const getters = {}

const mutations = {

  set_img_upload_cache (state,rst) {

    let  newItem=[];

console.log(state.orderno);

    if (state.items.has(state.orderno)) {

        newItem=state.items.get(state.orderno);

        newItem.push(rst)

    }else{

      newItem.push(rst)

    }

        state.items.set(state.orderno,newItem);

        let goods=state.items.get(state.orderno);

      state.img_upload_cache= goods

  },

  set_img_paths(state,guid){

        let  newItem=[];

        if (state.items.has(state.orderno)) {

            newItem=state.items.get(state.orderno)

            for(let i=0;i< newItem.length;i++){

              let pitem=newItem[i];

              if (pitem.guid==guid) {

                newItem.splice(i,1)

              }

            }

        }

    state.items.set(state.orderno,newItem);

    let goods=state.items.get(state.orderno);

    state.img_upload_cache= goods;

  },

  get_img_data(state,orderno){

    state.img_upload_cache=[];

        state.items.clear();

      state.orderno=orderno;

console.log("获取传递过来的"+orderno)

  },

  chu_set(state){//上传成功清除

    state.img_upload_cache=[];

    state.items.delete(state.orderno);

    state.orderno="";

  },

headerimg_set(state,rst){//单图头像base64

state.headerimg=rst.base64

}

}

export default {

  namespaced: true,

  state,

  mutations,

  actions,

  getters

}

            // 你需要的数据都在这里,可以以字符串的形式传送base64给服务端转存为图片。

            commit('headerimg_set',results)

        });

}

}

const getters = {}

const mutations = {

  set_img_upload_cache (state,rst) {

    let  newItem=[];

console.log(state.orderno);

    if (state.items.has(state.orderno)) {

        newItem=state.items.get(state.orderno);

        newItem.push(rst)

    }else{

      newItem.push(rst)

    }

        state.items.set(state.orderno,newItem);

        let goods=state.items.get(state.orderno);

      state.img_upload_cache= goods

  },

  set_img_paths(state,guid){

        let  newItem=[];

        if (state.items.has(state.orderno)) {

            newItem=state.items.get(state.orderno)

            for(let i=0;i< newItem.length;i++){

              let pitem=newItem[i];

              if (pitem.guid==guid) {

                newItem.splice(i,1)

              }

            }

        }

    state.items.set(state.orderno,newItem);

    let goods=state.items.get(state.orderno);

    state.img_upload_cache= goods;

  },

  get_img_data(state,orderno){

    state.img_upload_cache=[];

        state.items.clear();

      state.orderno=orderno;

console.log("获取传递过来的"+orderno)

  },

  chu_set(state){//上传成功清除

    state.img_upload_cache=[];

    state.items.delete(state.orderno);

    state.orderno="";

  },

headerimg_set(state,rst){//单图头像base64

state.headerimg=rst.base64

}

}

export default {

  namespaced: true,

  state,

  mutations,

  actions,

  getters

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,312评论 0 10
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,028评论 0 2
  • 小班额、只有五个人的课堂如何进行教学?老师的教学理念和教学行为方式与大班额教学相比,是否发生了相应的变化?师...
    宋文洁阅读 703评论 0 4
  • 对于教学类医院来说,到了每年的实习季也是迎来送往的。铁打的科室,流水的实习生。每个科室为期一个月的实习,每个月都是...
    晏知七阅读 667评论 0 3
  • 16岁生日 天气晴 今天老爸回来,带给我承诺了半年的猪笼草种子,说是当生日礼物和毕业贺礼一起送了。比起我已经不是很...
    许鹿远阅读 262评论 0 0