美文网首页随笔-生活工作点滴
promise.all 一张一张传图片

promise.all 一张一张传图片

作者: 糖醋里脊120625 | 来源:发表于2019-07-05 16:07 被阅读7次
    <!doctype html>
    <html lang="en">
    
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.3, minimum-scale=1.0">
            <meta http-equiv="X-UA-Compatible" content="ie=edge">
            <title></title>
            <link rel="stylesheet" href="./css/index.css">
            <link rel="stylesheet" href="https://unpkg.com/mint-ui/lib/style.css">
        </head>
        <style>
            .mint-header {
                background: #3FD15B;
            }
            
            .mint-header {
                width: 100%;
                position: fixed;
                opacity: 1;
                z-index: 100;
            }
            
            #add {
                width: 100%;
                background: #e1e1e1;
            }
            
            body {
                padding: 0px!important;
                margin: 0px!important;
            }
            
            .header {
                font-size: 16px!important;
                text-align: center!important;
                padding: 0px!important;
                margin: auto!important;
            }
            
            .listeach {
                position: relative;
                box-sizing: border-box;
                width: 98%;
                margin: 14px auto;
                overflow: hidden;
                clear: both;
                border-bottom: 1px solid #e1e1e1;
                background: white;
                padding: 0px 4px 8px 4px;
            }
            
            .inputll .datainput {
                display: inline-block;
                height: 25px;
                line-height: 25px;
                float: right;
                width: 54%;
                border-radius: 4px;
                border: 1px solid #E1E1E1!important;
                text-indent: 3px;
                font-size: 12px;
            }
            
            .buildmore {
                width: 96%;
                margin: 5px auto;
                text-align: center;
                border-radius: 4px;
                border: 1px solid #E1E1E1!important;
                overflow: hidden;
                clear: both;
                height: 30px;
                line-height: 30px;
                font-size: 14px;
            }
            
            .listeach .listtop {
                font-size: 1rem;
                width: 100%;
                display: block;
                overflow: hidden;
                clear: both;
            }
            
            .listeach .listtop .topl,
            .listeach .listtop .topr {
                font-size: 14px;
            }
            
            .listeach .listtop .topl {
                float: left;
            }
            
            .listeach .listtop .topr {
                float: right;
            }
            
            .listeach p {
                font-size: 14px;
                padding: 0px;
                margin: auto;
                padding: 8px 0px;
                font-weight: bold;
            }
            
            .listend {
                font-size: 14px;
                width: 100%;
                text-align: right;
            }
            
            .listall {
                /*margin-top: 10px; */
                padding-top: 40px;
            }
            
            .goodstitle {
                overflow: hidden;
                width: 96%;
                margin: auto auto auto auto;
            }
            
            .goodstitle span {
                font-size: 14px;
            }
            
            .goodstitle span:nth-child(1) {
                float: right;
                font-weight: bold;
            }
            
            .goodstitle span:nth-child(2) {
                float: left;
                font-weight: bold;
            }
            
            input {
                border-radius: 4px;
                border: 1px solid #E1E1E1;
                font-size: 14px;
                text-indent: 4px;
                outline: none;
            }
            
            .inputlist {
                overflow: hidden;
            }
            
            .inputlist div {
                margin: 0px 0px;
                overflow: hidden;
            }
            
            .inputrr,
            .inputll {
                width: 50%;
                float: left;
            }
            
            .inputll span {
                font-size: 14px;
                display: inline-block;
                height: 25px;
                line-height: 25px;
                float: left;
                width: 44%;
            }
            
            .inputrr span {
                font-size: 14px;
                display: inline-block;
                height: 25px;
                line-height: 25px;
                float: left;
                width: 30%;
                text-align: center;
            }
            
            .inputrr input {
                display: inline-block;
                height: 25px;
                line-height: 25px;
                float: left;
                width: 30%;
                text-align: center;
            }
            
            .inputeach {
                clear: both;
                overflow: hidden;
            }
            
            .inputeach input {
                display: inline-block;
                height: 25px;
                line-height: 25px;
                float: left;
                width: 73%;
            }
            
            .inputother span,
            .inputother input {
                font-size: 14px;
                float: left;
                width: 22%;
                display: inline-block;
                height: 25px;
                line-height: 25px;
            }
            
            .inputother span {
                text-align: center;
            }
            
            .buildmorediv {
                width: 100%;
                margin: 10px auto;
                text-align: center;
                overflow: hidden;
                clear: both;
            }
            
            .goods_list {
                overflow: hidden;
                clear: both;
            }
            
            .cleabboth {
                height: 7px;
                width: 100%;
                overflow: hidden;
                clear: both;
                margin: 8px auto 8px auto;
                moz-box-shadow: 2px 2px 5px #e1e1e1;
                -webkit-box-shadow: 2px 2px 5px #e1e1e1;
                box-shadow: 2px 2px 5px #e1e1e1;
                border: none;
                background: #e1e1e1;
            }
            
            .inputtop {
                width: 96%;
                margin: 3px auto!important;
            }
            
            .delmore {
                text-align: right;
                margin-right: 18px!important;
                font-size: 20px;
                color: red;
            }
            
            .upform {
                margin: 8px auto;
                overflow: hidden;
                clear: both;
                width: 100%;
                border-bottom: 1px solid #E1E1E1;
            }
            
            .upform div {
                margin-top: 3px;
                padding-bottom: 4px;
            }
            .upform .formleft {
                float: left;
                text-align: center;
                line-height: 40px;
                font-size: 14px;
                font-weight: bold;
                margin-left: 2%;
            }
            
            .upform .formright {
                float: right;
                width: 68px!important;
                margin-right: 2%;
            }
            
            .upform .formright input {
                position: absolute;
                top: 0;
                right: 0;
                width: 100%;
                height: 100%;
                margin: 0;
                font-size: 23px;
                cursor: pointer;
                opacity: 0;
            }
            
            .chanceimg {
                display: block;
                height: 40px;
                width: 40px;
                float: right;
            }
            
            .chance {
                padding: 0px 8px;
                float: left;
                background: #3498db;
                color: white;
                position: relative;
                display: inline-block;
                margin-bottom: 0;
                font-size: 12px;
                font-weight: 400;
                line-height: 36px;
                height: 36px;
                text-align: center;
                border: 1px solid transparent;
                border-radius: 4px;
            }
            
            .activenone {
                background: #E1E1E1;
            }
            
            .class-b {
                display: none!important;
            }
            
            .noinput {
                background: #E8E8E1!important;
            }
            
            .upviewimgs {
                clear: both;
                width: 98%!important;
                margin: auto;
            }
            
            .upviewimgs span {
                display: inline-block;
                float: left;
            }
            
            .upviewimgs span img {
                width: 40px;
                height: 40px;
                margin: 0px 2px;
            }
            
            .mint-indicator-mask {
                z-index: 1000;
                opacity: 10000;
            }
            
            @media screen and (min-width: 800px) {
                #app {
                    width: 540px!important;
                    margin: auto;
                }
                .mint-header {
                    width: 540px!important;
                }
            }
        </style>
    
        <body>
            <div id="app">
                <div class="contain">
                    <mt-header title="入库接收详情">
                        <router-link to="" slot="left">
                            <mt-button icon="back" @click="goback">返回</mt-button>
                        </router-link>
                        <mt-button slot="right" @click="getsure">提交审核</mt-button>
                    </mt-header>
                    <div class="listall">
                        <div class="listeach">
                            <div class="listtop">
                                <span class="topl" v-if="Receiveall.arrayTime == 0">今天</span>
                                <span class="topl" v-if="Receiveall.arrayTime == 1">明天</span>
                                <span class="topl" v-if="Receiveall.arrayTime == 2">后天</span>
                                <span class="topr" v-if="Receiveall.reveceState == 0" style="color: #3FD15B;">待接收 </span>
                                <span class="topr" v-if="Receiveall.reveceState == 1" style="color: #3FD15B;">审核中</span>
                                <span class="topr" v-if="Receiveall.reveceState == 2" style="color: #3FD15B;">审核拒绝</span>
                                <span class="topr" v-if="Receiveall.reveceState == 3" style="color: #3FD15B;">审核通过</span>
                            </div>
                            <p>{{Receiveall.receiveNo}}</p>
                            <div class="listend">总计:<span style="font-weight: bold;">{{Receiveall.productCount}}</span>种商品,共<span style="font-weight: bold;">{{Receiveall.seCount}}</span>件</div>
                        </div>
                    </div>
                    <div class="upform">
                        <div class="formleft">送货单</div>
                        <div class="formright">
                            <span class="chance">{{viewtitle}}<input type="file" id="saveImage" name="myphoto" @change="getFile" multiple></span>
                        </div>
                        <div class="upviewimgs">
                            <span v-for="(item, index) in viewimgs">
                                <img :src="item.url+item.name" />
                            <span>
                        </div>
                    </div>
                    <div class="goodsall">
                        <div class="goods_list" v-for="(item, index) in datalist">
                            <div v-if="item.style !== 1" class="cleabboth"></div>
                            <div class="Rejectionstyle" style="margin: 2px 10px;">
                                <mt-switch v-if="item.style !== 1" v-model="item.Rejection" @change="turnstyle(item, index)">拒收</mt-switch>
                            </div>
                            <div class="goodstitle">
                                <span>{{item.barCode}}</span>
                            <span>{{item.goodName}}</span>
                        </div>
                        <div class="inputlist">
                            <div class="delmore" @click="delneed(item, index)" v-if="item.style === 1">✕</div>
                            <div class="inputtop" style="display: block;overflow: hidden;clear: both;">
                                <div class="inputll">
                                    <span>生产日期:</span>
                                    <span class="datainput" @click="dateClick1(item, index)">{{item.productionDateStr}}</span>
                                </div>
                                <div class="inputrr">
                                    <span>的商品</span>
                                    <input v-model="item.buyCount" :disabled="item.Rejection===true" type="number" @blur="sumFocus($event)" />
                                    <span style="text-align:center;">件</span>
                                </div>
                            </div>
                            <div class="buildmorediv" v-if="item.style !== 1" :class="{'class-b': nonebg}" v-show="item.Rejection===false">
                                <p class="buildmore" @click="buildmore(item, index)">新增一条</p>
                            </div>
                        </div>
                    </div>
                </div>
    
                <mt-datetime-picker v-model="dataVal1" type="date" ref="picker1" year-format="{value}年" month-format="{value}月" date-format="{value}日" @confirm="handleConfirm1">
                </mt-datetime-picker>
    
            </div>
            </div>
            <script src="https://unpkg.com/vue/dist/vue.min.js"></script>
            <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
            <script src="https://unpkg.com/mint-ui/lib/index.js"></script>
            <script src="https://unpkg.com/vue-resource@1.5.1/dist/vue-resource.js"></script>
            <script>
                var app = new Vue({
                    el: '#app',
                    data: {
                        LINK:"http://192.168.124.66:8888/web",
                        //LINK: "http://pic.tongchengxianggou.com:9011",
                        //LINK:'http://ha.tongchengxianggou.com',
                        noneid: '',
                        addpart: [{
                            name: "待审核"
                        }, ],
                        whether: '',
                        maina: '',
                        newmian: [],
                        nonebg: false,
                        objbighight: '',
                        localtime: '',
                        localaccept: '',
                        localcount: '',
                        localsingle: '',
                        statetypeid: '',
                        targetID: '',
                        hotmain: {},
                        srcimg: '',
                        personalPhoto: true,
                        localid: '',
                        cont: {},
                        time: '',
                        danwei: '',
                        datalist: [],
                        dataall: [],
                        value: null,
                        pickerValue: null,
                        pickerValue: '',
                        build: '',
                        current: 0,
                        showOrFalse: false,
                        mobile: null,
                        active: 0,
                        dataVal1: new Date(),
                        date1: "", //默认值
                                navArr: [{
                                name: "待审核"
                            },                
                            {
                                name: "审核中"
                            },                
                            {
                                name: "已完成"
                            }            
                        ],
                        setdata: [],
                        imglink: '',
                        imgname: '',
                        imgarray: [],
                        Receiveall: {},
                        indextime: '',
                        filesArr: [],
                        viewimgs: [],
                        viewtitle: "选择图片",
                        viewstring:"",
                        viewurl:""
                    },
                    methods: {
                        sumFocus(e) {
                            if(e.target.value <= 0) {
                                e.target.value = ""
                                return false
                            } else {
                                e.target.value = e.target.value
                            }
                        },
                        turnstyle: function(ta, tb) {
                            this.datalist.map((item) => {
                                if(item.id == ta.id) {
                                    item.Rejection = ta.Rejection
                                } else {
                                    item.Rejection = item.Rejection
                                }
    
                            });
                        },
                        delneed(target, few) {
                            this.$messagebox({
                                title: '温馨提示',
                                message: '确定需要删除吗?',
                                     showCancelButton: true,
                                     confirmButtonText: "删除",
                                     cancelButtonText: "取消"    
                            }).then(action => {     
                                if(action == 'confirm') {      
                                    this.datalist.splice(few, 1);     
                                } 
                            })
                        },
                        getFile(e) {
                            this.viewimgs = [];
                            this.filesArr = [];
                            var that = this;
                            let files = e.target.files;
                            // 如果没有选中文件,直接返回
                            if(files.length === 0) {
                                return;
                            }
                            let reader;
                            let file;
                            let images = this.images;
                            for(let i = 0; i < files.length; i++) {
                                file = files[i];
                                this.filesArr.push(file);
                            }
                            var promise = Promise.all(this.filesArr.map((tempFilePath, index) => {
                                return new Promise(function(resolve, reject) {
                                    var param = new FormData(); // 创建form对象
                                    param.append('imgFileTmp', tempFilePath)
                                    that.$http.post(that.LINK + `/app/sku/sku-instorage-accept/upload-tmp-pic-dothing/do`, param)
                                        .then(res => {
                                            if(res.body.code === 200) {
                                                resolve(res.body.data.replace(/\[|]/g, ''));
                                            } else {
                                                reject("failed");
                                            }
                                        })
                                        .catch(function(error) {
                                            reject("failed");
                                        });
                                });
                            }));
                            promise.then(function(results) {
                                var viewname = []; //这是回显的步骤
                                results.map((item) => {
                                    let obj = JSON.parse(item)
                                    that.viewimgs.push(obj)
                                    viewname.push(obj.name)
                                    that.viewurl =obj.url
                                });
                                that.filesArr = [];
                                that.viewtitle = "重新上传"
                                console.log(that.viewimgs)
                                console.log("传递数据")
                                console.log(viewname)
                                that.viewstring = viewname.join(";");
                                console.log("这是给后台的数据")
                                console.log(that.viewstring)
                            }).catch(function(err) {
                                console.log(err);
                            });
                        },
                        deleteimg(index) {
                            this.viewimgs.splice(index, 1);
                        },
                        goback() {
                            window.history.go(-1);
                        },
                        great() {
                            console.log("进入页面的时候触发")
                        },
                        databuild(a) {
                            var formData = new FormData()
                            this.Receiveall = JSON.parse(localStorage.getItem("ReceiveData"));
                            this.$http({
                                method: 'post',
                                url: this.LINK + `/sku/revece/order/list/product` + "?receveId=" + this.Receiveall.id + "&max=" + 10000,
                                headers: {
                                    'Content-Type': 'application/x-www-form-urlencoded'
                                },
                            }).then(res => {
                                res.data.data.rvList.map((item) => {
                                    var productionDateStr = "";
                                    var Rejection = "";
                                    this.$set(item, 'productionDateStr', productionDateStr)
                                    this.$set(item, 'Rejection', false)
    
                                });
                                this.datalist = res.data.data.rvList
                            })
                        },
                        dateClick1(a, b) {
                            console.log("时间时间")
                            console.log(a)
                            this.$refs.picker1.open();
                            this.cont = a;
                            this.indextime = b;
                        },
                        handleConfirm1(value) {
                            var d = new Date(value);  
                            if(d.getMonth() >= 0) {     
                                var month = (d.getMonth() + 1) < 10 ? ('0' + (d.getMonth() + 1)) : (d.getMonth() + 1);
                                var day = (d.getDate()) < 10 ? ('0' + (d.getDate())) : (d.getDate());
                                var hh = (d.getHours()) < 10 ? ('0' + (d.getHours())) : (d.getHours());     
                                var times = d.getFullYear() + '-' + month + '-' + day;   
                                this.date1 = times //注意pickerVisibles带s
                            } else {     
                                this.date1 = "1807-01-01" //设置的开始日期
                            }
                            //验证时间
                            var formData = new FormData();
                            formData.append('prId', this.cont.id)
                            formData.append('batchNo', this.date1)
                            this.$http.post(this.LINK + `/sku/purchas/batch/flag`, formData)
                                .then(res => {
                                    if(res.data.code === 200) {
                                        this.$toast({
                                            message: res.data.msg,
                                            position: 'center',
                                            duration: 2000
                                        });
                                        this.$indicator.close();
    
                                        setTimeout(function() {
                                            //window.history.go(-1);
                                        }, 200);
                                    } else {
    
                                        this.$toast({
                                            message: "无法提交",
                                            position: 'center',
                                            duration: 2000
                                        });
                                        this.$indicator.close();
                                    }
    
                                }).catch((err) => {    
                                    console.log(err);  
                                });
                            
                            
                            
                            
                            this.cont.productionDateStr = this.date1
                        },
                        buildmore(a, b) {
                            this.maina = a;
                            addmore: [],
                                newobj = {
                                    style: 1,
                                    id: a.id,
                                    productionDateStr: "",
                                    buyCount: "",
                                    Rejection: a.Rejection
                                }
                            this.newmian.push(newobj)
                            this.datalist.splice(b + 1, 0, newobj)
                            this.hotmain = newobj;
                        },
                        getsure() {
                            console.log(this.datalist)
                            var x = document.getElementById('saveImage').files[0];
                            if(x) {
                                this.$indicator.open({
                                    text: '加载中....',
                                    spinnerType: 'fading-circle'
                                });
    
                                var builddata = []
    
                                this.datalist.map((item) => {
                                    if(item.Rejection === false) {
                                        this.whether = 0;
                                    } else {
                                        this.whether = 1;
                                    }
                                    var addbuild = ({
                                        "flag": this.whether,
                                        "buyCount": item.buyCount, //数量
                                        "prrId": item.id,
                                        "batchNo": item.productionDateStr,
                                    })
                                    builddata.push(addbuild)
                                })
                                var map = {},
                                    dest = [];
                                for(var i = 0; i < builddata.length; i++) {
                                    var ai = builddata[i];
                                    if(!map[ai.prrId]) {
                                        dest.push({
                                            prrId: ai.prrId,
                                            flag: ai.flag,
                                            li: [ai]
                                        });
                                        map[ai.prrId] = ai;
                                    } else {
                                        for(var j = 0; j < dest.length; j++) {
                                            var dj = dest[j];
                                            if(dj.prrId == ai.prrId) {
                                                dj.li.push(ai);
                                                break;
                                            }
                                        }
                                    }
                                }
                                console.log(dest)
                                var formData = new FormData();
                                formData.append('receveId', this.Receiveall.id)
                                formData.append('state', 1)
                                formData.append('url', this.viewurl)
                                formData.append('name', this.viewstring)
                                formData.append('jsonArray', JSON.stringify(dest))
                                this.$http.post(this.LINK + `/sku/purchas/requisition/product/price/add`, formData)
                                    .then(res => {
                                        if(res.data.code === 200) {
                                            this.$toast({
                                                message: res.data.msg,
                                                position: 'center',
                                                duration: 2000
                                            });
                                            this.$indicator.close();
    
                                            setTimeout(function() {
                                                //window.history.go(-1);
                                            }, 200);
                                        } else {
    
                                            this.$toast({
                                                message: "无法提交",
                                                position: 'center',
                                                duration: 2000
                                            });
                                            this.$indicator.close();
                                        }
    
                                    }).catch((err) => {    
                                        console.log(err);  
                                    });
                            } else {
                                this.$toast({
                                    message: '提示: 请上传送货单再次提交审核',
                                    position: 'center',
                                    duration: 3000
                                });
                                return false;
                            }
    
                            /*
                            
                            var x = document.getElementById('saveImage').files[0];
                            if(x) {
                                var config = {
                                    headers: {
                                        'Content-Type': 'multipart/form-data'
                                    }
                                };
                                var myData = {
                                    inStorageAcceptId: this.localid,
                                    products: [],
                                };
                                var builddata = []
                                this.datalist.map((item) => {
                                    this.noneid = item.skuProductPoolDto.id;
                                    if(item.skuInstorageProductDto.productionDateStr === "") {
                                        this.whether = 1;
                                    } else {
                                        this.whether = 2;
                                    }
                                    var addbuild = ({
                                        "tomainid": item.skuProductPoolDto.id,
                                        "knowID": item.skuProductPoolDto.id,
                                        "amount": item.skuPurchaseTransferDto.amount,
                                        "productionDate": item.skuInstorageProductDto.productionDateStr,
                                        "purchasePrice": item.skuInstorageProductDto.purchasePrice,
                                        "memberPrice": item.skuInstorageProductDto.memberPrice,
                                        "sellPrice": item.skuInstorageProductDto.sellPrice,
                                    })
                                    builddata.push(addbuild)
                                })
                                //console.log(builddata)
                                //console.log("处理过后数据")
                                var map = {},
                                    dest = [];
                                for(var i = 0; i < builddata.length; i++) {
                                    var ai = builddata[i];
                                    ////////console.log(ai)
                                    if(!map[ai.knowID]) {
                                        dest.push({
                                            memberPrice: parseFloat(ai.memberPrice),
                                            knowID: ai.knowID,
                                            purchaseProductId: ai.tomainid,
                                            amount: ai.amount,
                                            productionDate: ai.productionDate,
                                            purchasePrice: ai.purchasePrice,
                                            sellPrice: ai.sellPrice,
                                            productsAttrPrice: []
                                        });
                                        map[ai.knowID] = ai;
                                    } else {
                                        for(var j = 0; j < dest.length; j++) {
                                            var dj = dest[j];
                                            if(dj.knowID == ai.knowID) {
                                                dj.productsAttrPrice.push(ai);
                                                break;
                                            }
                                        }
                                    }
                                };
                                //console.log(dest);
                                //console.log("给后台数据")
                                myData.products = dest;
                                if(this.whether === 1) {
                                    this.$toast({
                                        message: '提示: 请填写所有生产日期',
                                        position: 'center',
                                        duration: 3000
                                    });
                                    return false;
                                } else {
                                    var formData = new FormData();
                                    formData.append('inStorageProductsJsonString', JSON.stringify(myData))
                                    formData.append('purchasePicStr', JSON.stringify(this.imgarray))
    
                                    this.$http.post(this.LINK+`/app/sku/sku-instorage-accept/instorage-product/add/do`,formData)
                                        .then(res =>  {
                                        if(res.data.code === 200){
                                            this.$toast({
                                                message: res.data.msg,
                                                position: 'center',
                                                duration: 2000
                                            });
                                            setTimeout(location.href = 'index.html',8000);
                                        }else{
                                            this.$toast({
                                                message: res.data.msg,
                                                position: 'center',
                                                duration: 2000
                                            });
                                        }
                                        
                                    }).catch((err) => {    
                                        //////console.log(err);  
                                    });
    
                                }
                            } else {
                                this.$toast({
                                    message: '提示: 请上传送货单再次提交审核',
                                    position: 'center',
                                    duration: 3000
                                });
                                return false;
                            }
                            */
    
                        },
                    },
                    mounted: function() {
                        this.$nextTick(function() {
                            this.databuild();
                        });
                        this.great();
                    },
                });
            </script>
        </body>
    
    </html>
    

    相关文章

      网友评论

        本文标题:promise.all 一张一张传图片

        本文链接:https://www.haomeiwen.com/subject/jduehctx.html