| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 | 'use strict';/** * * * @author Zhong * @date 2018/10/17 * @version */$(document).ready(function () {    //每页显示的图片数(后端也进行了控制)    const perImgs = 3;    /*     * 上传图片,清单规则、定额说明、定额工程量计算规则共用     * 通过各自的上传图片按钮value值判定触发来源     * 根据触发来源放置图片位置,一个来源一个文件夹,便于管理     * */    let curTrigger = '';    //同一页面中的所有触发器(定额中的说明和工程量计算规则都能上传图片)    let allTriggers = $('.uploadImgTrigger');    for(let theTrigger of allTriggers){        //点击上传图片        $(theTrigger).click(function () {            curTrigger = $(theTrigger).attr('trigger');            loadImges(curTrigger, 1);        });    }    $('#uploadImgFile').change(function(){        let file = $(this)[0],            img = file.files[0],            trigger = curTrigger;//触发源        if(img){            let formData = new FormData();            formData.append('file', img);            formData.append('trigger', trigger);            $.ajax({                url: '/stdBillsEditor/uploadImg',                type: 'POST',                data: formData,                cache: false,                contentType: false,                processData: false,                beforeSend: function() {                    $.bootstrapLoading.start();                },                success: function(response){                    loadImges(trigger, 1);                },                error: function(){                    alert('上传失败');                    $.bootstrapLoading.end();                }            });        }    });    /*     * 根据触发源和页码,按时间大小降序加载图片     * @param {String}trigger(触发源,同源同文件夹) {Number}page(要展示的页码)     * */    function loadImges(trigger, page) {        if(!$.bootstrapLoading.isLoading()){            $.bootstrapLoading.start();        }        CommonAjax.post('/stdBillsEditor/loadImgs', {trigger, page}, function (rstData) {            initImgsDiv(page, rstData.pageCount, rstData.currentImgsUrl);            if($.bootstrapLoading.isLoading){                $.bootstrapLoading.end();            }        }, function () {            if($.bootstrapLoading.isLoading){                $.bootstrapLoading.end();            }        });    }    /*     * 根据图片路径删除图片     * @param {String}trigger(操作源) {String}url(要删除图片的url)     * */    function delImg(trigger, url) {        $.bootstrapLoading.start();        CommonAjax.post('/stdBillsEditor/delImg', {trigger, url}, function (rstData) {            let curPage = parseInt($('#pageInfo').text().trim().split('/')[0]);            loadImges(trigger, curPage);        }, function () {            $.bootstrapLoading.end();        });    }    /*    * 设置图片展示DIV    * @param {Number}curPage(当前页码) {Number}pageCount(页面总数) {Array}imgsUrl(所要展示图片的Url域后片段)    * @return{void}    * */    function initImgsDiv(curPage, pageCount, imgsUrl) {        //去掉端口的源        let trigger = curTrigger;        $('#prevPage').removeAttr('disabled');        $('#nextPage').removeAttr('disabled');        if(curPage <= 1){            $('#prevPage').attr('disabled', '');        }        if(curPage == pageCount){            $('#nextPage').attr('disabled', '');        }        $('#pageInfo').text(`${curPage} / ${pageCount}`);        $('#imgsDiv').find('.card').remove();        for(let imgUrl of imgsUrl){            let idx = imgsUrl.indexOf(imgUrl);            if(idx < perImgs){                //时间戳转化成时间显示                let date = new Date(parseInt(imgUrl.split('/').pop().split('.')[0])).toLocaleString();                date = date.replace(new RegExp('/', 'g'), '-').split(' ')[0];                let cardHtml = `<div class="card"><img class="card-img-top" src="/${imgUrl}" alt="Card image cap" height="180px"><div class="card-block"><p class="card-text">                                <input class="form-control form-control-sm" value="<img src='/${imgUrl}'>" readonly="readonly"><small class="mr-2">${date} 上传</small>                                <a href="javascript:void(0);" class="text-danger" delUrl="${imgUrl}" id="del${idx}">删除</a></p></div></div>`;                $('#imgsDiv').find(`.col-4:eq(${idx})`).html(cardHtml);                //删除图片                $(`#del${idx}`).click(function () {                    delImg(trigger, $(this).attr('delUrl'));                });            }        }    }    //上一页    $('#prevPage').click(function () {        let curPage = parseInt($('#pageInfo').text().trim().split('/')[0]) - 1;        //加载图片        loadImges(curTrigger, curPage);    });    //下一页    $('#nextPage').click(function () {        let curPage = parseInt($('#pageInfo').text().trim().split('/')[0]) + 1;        //加载图片        loadImges(curTrigger, curPage);    });});
 |