美文网首页
vue项目2

vue项目2

作者: 糖醋里脊120625 | 来源:发表于2019-05-22 09:18 被阅读0次
    <!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{               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;padding: 5px 0px;}
    .goodstitle span{font-size: 14px;}
    .goodstitle span:nth-child(1){float: right;font-weight: bold;}
    .goodstitle span:nth-child(2){float: left;}
    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: 24%;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: 98%;margin:3px auto!important;}
    .delmore{text-align: right;margin-right: 18px!important;font-size: 20px;color: red;}
    .upform{height: 65px;margin: 8px auto; overflow: hidden;clear: both; width: 100%;border-bottom: 1px solid #E1E1E1;}
    .upform div{
        margin-top: 10px;
        width: 60px;
        height: 50px;
    }
    .upform .formleft{
        float: left;
        text-align: center;
        line-height: 40px;
        font-size: 14px;
        font-weight: bold;
        margin-left: 2%;
    }
    .upform .formright{
        float: right;
        width: 120px!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;
    }
    @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"  v-if="this.statetypeid == 1">提交审核</mt-button>
                    </mt-header>
                    <div class="listall">
                        <div class="listeach">
                            <div class="listtop">
                                <span class="topl">{{localtime}}</span>
                                <span class="topr" v-if="this.statetypeid == 1" style="color: rgb(229, 28, 35);">业务员接收中</span>
                                <span class="topr" v-if="this.statetypeid == 2" style="color: rgb(139, 195, 74);">业务员接收中</span>
                            </div>
                            <p>{{localaccept}}</p>
                            <div class="listend">总计:<span style="font-weight: bold;">{{localcount}}</span>种商品,共<span style="font-weight: bold;">{{localsingle}}</span>件</div>
                        </div>
                    </div>
                    <div class="upform">
                        <div class="formleft">送货单</div>
                        <div class="formright">
                            <img class="chanceimg" :src="this.imgurl" alt="" id="portrait"/>
                            <span class="chance"  v-show="this.statetypeid == 1">选择图片<input type="file" id="saveImage" name="myphoto" @change="getFile"></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="goodstitle">
                                <span>{{item.skuProductPoolDto.barCode}}</span>
                                <span>{{item.skuProductPoolDto.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)" :class="{'noinput': nonebg}">{{item.skuInstorageProductDto.productionDateStr}}</span></div>
                                    <div  class="inputrr"><span>的商品</span><input v-model="item.skuPurchaseTransferDto.amount" :disabled="nonebg"  /><span style="text-align:center;">件</span></div>
                                </div>
                                <div class="inputeach" style="margin: 4px 0px;">
                                    <span style="font-size: 14px;display: inline-block; height: 25px;line-height: 25px; float: left;width: 24%; text-align: center;">采购价:</span>
                                    <input v-model="item.skuInstorageProductDto.sellPrice" type="number" :disabled="nonebg" />
                                </div>
                                <div class="inputother">
                                    <span >平台价:</span>
                                    <input v-model="item.skuInstorageProductDto.purchasePrice" type="number" :disabled="nonebg"  />
                                    <span>会员价:</span>
                                    <input v-model="item.skuInstorageProductDto.memberPrice" type="number" :disabled="nonebg"  />
                                </div>
                                <div class="buildmorediv" v-if="item.style !== 1" :class="{'class-b': nonebg}"><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}日" 
                        hour-format="{value}"
                        minute-format="{value}"
                        second-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>
                var app = new Vue({
                    el: '#app',
                    data: {
                        LINK:"http://192.168.124.66:8888/web",
                        noneid:'',
                        addpart:[
                            {name: "待审核"}, 
                        ],
                        whether:'',
                        maina:'',
                        newmian:[],
                        imgurl:"http://www.17sucai.com/preview/1/2016-12-16/take_photo/img/photo_icon.png",
                        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:[],
                    },
                    methods:{
                        getFile(){
                            let x = document.getElementById('saveImage').files[0];
                            let updata = new FormData();
                            updata.append('imgFileTmp',x)
                            axios({
                                method: 'POST',
                                url: this.LINK+`/app/sku/sku-instorage-accept/upload-tmp-pic-dothing/do`,
                                data: updata,
                                headers: {
                                    'Content-Type': 'application/x-www-form-urlencoded'
                                },
                            }).then(res => {
                                //this.$indicator.open('加载中...');
                                if(res.data.code === 200){
                                    this.$toast({
                                        message: res.data.msg,
                                        position: 'center',
                                        duration: 2000
                                    });
                                    var datasmall = JSON.parse(res.data.data)
                                    this.imgarray = datasmall;
                                    this.imglink = datasmall[0].url;
                                    this.imgname = datasmall[0].name;
                                }else{
                                    this.$toast({
                                        message: res.data.msg,
                                        position: 'center',
                                        duration: 2000
                                    });
                                }
                            }).catch((err) => {    
                                ////console.log(err);  
                            });
                        },
                        goback(){
                            window.history.go(-1);
                        },
                        great(){
                            document.getElementById('saveImage').onchange = function () {
                                var imgFile = this.files[0];
                                var fr = new FileReader();
                                fr.onload = function () {
                                    this.imgurl = fr.result;
                                    document.getElementById('portrait').src = this.imgurl;
                                };
                                fr.readAsDataURL(imgFile);
                            }
                        },
                        databuild(a) {
                            let formData = new FormData()
                            formData.append('resourceName', "this.limitName")
                            formData.append('resourceType', "this.selValue" )
                            this.objbighight = localStorage["objbig"];
                            this.localaccept = localStorage["acceptNumber"];
                            this.localtime = localStorage["transferTime"];
                            this.localsingle = localStorage["productTotalCount"];
                            this.localcount = localStorage["productTypeCount"];
                            this.localid = localStorage["name"];
                            this.statetypeid = localStorage["statetype"];
                            this.targetID = localStorage["toID"];
                            //////alert(this.statetypeid)
                            if(this.statetypeid == 1 ){
                                this.nonebg= false;
                            }if(this.statetypeid == 2 ){
                                this.nonebg= true;
                            }
                            var _this = this;
                            this.load_data = false;
                            axios({
                                method: 'get',
                                url: this.LINK+`/app/sku/sku-instorage-accept/transfer-product/byid/do`+"?id="+this.localid+"&inStoreId="+this.targetID,
                                headers: {
                                    'Content-Type': 'application/x-www-form-urlencoded'
                                },
                            }).then(res => {
                                ////console.log(res.data.data)
                                var that = this;
                                that.datalist = res.data.data;
                                
                                if(this.statetypeid != 1){
                                    for(var i=0;i<that.datalist.length;i++ ){
                                        that.imgurl = that.datalist[0].oPictureUrlDto.url+that.datalist[0].oPictureUrlDto.name;
                                    }
                                }
                            })
                        },
                        delneed(target,few){
                            this.$messagebox({
                                title: '温馨提示',
                                message: '确定需要删除吗?',
                                showCancelButton: true,
                                confirmButtonText:"删除",
                                cancelButtonText:"取消"
                            }).then(action => {
                                if(action == 'confirm'){
                                    this.datalist.splice(few,1);
                                }else{
                                    ////console.log('取消')
                                  }
                            })
                        },
                        dateClick1(a,b) {
                            if(this.statetypeid == 1){
                                this.$refs.picker1.open();
                                this.cont = a
                            }if(this.statetypeid == 2){
                                ////console.log("xxx")
                            }
                        },
                        handleConfirm1(value) {
                            console.info(value)
                            ////console.log(value)
                            var d = new Date(value);
                            if (d.getMonth() >= 0) {
                                let month = (d.getMonth() + 1) < 10 ? ('0' + (d.getMonth() + 1)) : (d.getMonth() + 1)
                                let day = (d.getDate()) < 10 ? ('0' + (d.getDate())) : (d.getDate())
                                //let hh = d.getHours();
                                let hh = (d.getHours()) < 10 ? ('0' + (d.getHours())) : (d.getHours())
                                let times = d.getFullYear() + '-' + month + '-' + day+" "+"00"+":"+"00"+':'+"00" ;;
                                this.date1 = times//注意pickerVisibles带s
                            }else{
                                this.date1 = "1807-01-01"//设置的开始日期
                            }
                            this.cont.skuInstorageProductDto.productionDateStr  = this.date1 
                            //////console.log(this.cont )打印出一个对象
                        },
                        buildmore(a,b){
                            if(this.statetypeid == 1){
                                this.maina = a;
                                addmore:[],
                                newobj={
                                    style:1,
                                    id: a.id,
                                    skuProductPoolDto:{
                                        id:a.skuProductPoolDto.id,
                                    },
                                    skuInstorageProductDto:{
                                        sellPrice: "",
                                        purchasePrice:"",
                                        memberPrice:"",
                                        productionDateStr:"",
                                    },
                                    skuPurchaseTransferDto:{
                                        amount:"",
                                    },
                                    pubdate:a.summary,
                                    datetime:""
                                }
                                ////console.log(this.datalist[0])
                                this.newmian.push(newobj)
                                this.datalist.splice(b+1,0,newobj)
                                this.hotmain = newobj;
                                console.log(newobj)
                                console.log(this.datalist)
                            }else {
                                return false;
                            }
                        },
                        getsure() {
                            console.log(this.datalist)
                            console.log("原始数据")
                            let x = document.getElementById('saveImage').files[0];
                            if(x){
                                let config = {
                                    headers:{'Content-Type':'multipart/form-data'}
                                };
                                let myData = {
                                    inStorageAcceptId: this.localid,
                                    products: [],
                                };
                                let builddata = []
                                this.datalist.map((item) =>{
                                        this.noneid = item.skuProductPoolDto.id;
                                    if(item.skuInstorageProductDto.productionDateStr === ""){
                                        this.whether = 1; 
                                    }else{
                                        this.whether = 2;
                                    }
                                    let 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{
                                    let formData = new FormData();
                                    formData.append('inStorageProductsJsonString', JSON.stringify(myData)) 
                                    formData.append('purchasePicStr',JSON.stringify(this.imgarray))
                                    axios({
                                        method: 'POST',
                                        url: this.LINK+`/app/sku/sku-instorage-accept/instorage-product/add/do`,
                                        data: formData,
                                        headers: {
                                            'Content-Type': 'application/x-www-form-urlencoded'
                                        },
                                    }).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>

    相关文章

      网友评论

          本文标题:vue项目2

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