文件列表 2 项
文件内容 index.html 5 KB 4910 字符
<!DOCTYPE HTML>
<html>

<head>
    <meta charset="utf-8">
    <meta name="renderer" content="webkit|ie-comp|ie-stand">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport"
        content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
    <meta http-equiv="Cache-Control" content="no-siteapp" />
    <title>图片选择器</title>
    <meta name="keywords" content="">
    <meta name="description" content="">
</head>

<body>

    <style type="text/css">
        .img_body {
            margin: auto;
            box-sizing: border-box;
            padding: 20px;
            display: flex;
            flex-direction: row;
            flex-wrap: wrap;

        }

        img {
            width: auto;
            height: auto;
            max-width: 200px;
            max-height: 200px;
            margin-right: 20px;
            margin-bottom: 20px;
            border: 2px solid transparent;
            cursor: pointer;
            border-radius: 8px;
            overflow: hidden;
            transition: all 0.5s;
        }

        img:last-child {
            margin-right: 0;
            margin-bottom: 0;
        }

        .selected {
            border: 2px solid #5a98de;
        }
    </style>

    <div class="img_body">

    </div>

    <!--_footer 作为公共模版分离出去-->
    <script type="text/javascript" src="../lib/jquery/1.9.1/jquery.min.js"></script>
    <script type="text/javascript" src="../lib/layer/3.1.1/layer.js"></script>
    <script type="text/javascript" src="../lib/api.js"></script>
    <script type="text/javascript">
        var selectNum = 1;
        var pageData =null;
        var selectModel=1;//1表示直接url模式,2表示object

        $(window).ready(function () {

            var numStr = _apigetquery('pf_num');
            if (numStr != null) {
                selectNum = parseInt(numStr);
            }

            $(".img_body").on('click', 'img', function () {
                // console.log($(this).attr('src'));

                if ($(this).hasClass("selected")) {
                    $(this).removeClass("selected");
                } else {
                    $(this).addClass('selected');
                    if (selectNum == 1) {
                        $(this).siblings().removeClass('selected');
                    }
                }

                //判断数量是否符合,进行返回
                var imgSelecteds = $(".img_body .selected");
                if (imgSelecteds.length > 0) {

                    var imgs = new Array();
                    for (var k = 0; k < imgSelecteds.length; k++) {
                        var idstr = $(imgSelecteds[k]).attr('data-id');
                        var urlstr =$(imgSelecteds[k]).attr('src');
                        if(idstr){
                            var find = findObjectItem(idstr);
                            if(find!=null){
                                imgs.push(find);
                            }
                        }else{
                            imgs.push(urlstr);//直接选择url模式
                        }
                        // imgs.push($(imgSelecteds[k]).attr('src'));
                    }
                    window.SelectObject = imgs;
                    //数量够了之后,自动关闭
                    if (imgSelecteds.length == selectNum) {
                        sure_select_close_page();
                    }
                } else {
                    window.SelectObject = null;
                }
            });

            //特殊情况下可能需要返回对象,而不是单单url,而且url可能是相对得,也就是需要完整对象返回给调用方,如何前后兼容?

            _apiget("/api/app/Upload/Images", true, function (code, obj) {
                if (code == 200) {
                    pageData = obj;
                    var ahtml = '';
                    obj.forEach(img => {
                        if(typeof(img) == 'object'){
                            ahtml += '<img src="' + img.url + '" data-id="'+img.id+'">';
                            selectModel = 2;
                        }else{
                            ahtml += '<img src="' + img + '" >';
                            selectModel = 1;
                        }
                    });
                    $(".img_body").html(ahtml);
                } else {

                }
            })

        });

        /**
         * 从数据中找到对应得
         **/
        function findObjectItem(idkey){
            if(pageData){
                for(var item of pageData){
                    if(item.id === idkey){
                        return item;
                    }
                }
            }
            return null;
        }

        /**
 * 通知上级点击确定
 */
        function sure_select_close_page() {
            var _top = window.top;
            if (_top) {
                if (_top.FuncClickSure) {
                    _top.FuncClickSure();
                }
            }
        }


    </script>

</body>

</html>
​ ​