lookup.html 13.3 KB
<!DOCTYPE html  >
<html lang="zh-CN" ng-app="myApp">
<head>
    <meta charset="utf-8">
    <meta http-equiv="Expires" CONTENT="0">
    <meta http-equiv="Cache-Control" CONTENT="no-cache">
    <meta http-equiv="Cache-Control" CONTENT="no-store">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <!--公共引用-->
    <link rel="Shortcut Icon"  href="https://cdn.xiniunet.com/img/favicon.ico" type="image/x-icon">
    <link rel="stylesheet" href="https://cdn.xiniunet.com/css/xn-bootstrap/1.0.2/bootstrap.min.css" >
    <link rel="stylesheet" href="https://cdn.xiniunet.com/font/xn-icon-common/2.0.7/iconfont.min.css" />
    <link rel="stylesheet" href="/guide/dist/styles/local.min.css" />
    <!--公共引用-->
    <script  type="text/javascript" src="https://cdn.xiniunet.com/js/base/1.2.0/base.min.js" ></script>
    <!--源码插件-->
    <link rel="stylesheet" href="/guide/vendor/code-prettify/prettify.css" />
    <script  type="text/javascript" src="/guide/vendor/code-prettify/prettify.js" ></script>

    <!--需要加载的文件-->
    <link rel="stylesheet"  href="https://cdn.xiniunet.com/js/xn-select/1.1.7/style.min.css" >
    <script  type="text/javascript" src="https://cdn.xiniunet.com/js/xn-select/1.1.7/selects.min.js" ></script>


</head>
<body ng-controller="PageController" >
<div class="xn-main xn-width mt-20 xn-grid-layout auto clearfix" >
    <div class="xn-main-header">
        <span>{{setting.name}}</span>
        <span class="ml-50 font-sm">{{setting.subtitle}}</span>
    </div>
    <div class="xn-main-body xn-grid-14  xn-lh" >
        <div class="xn-demo">
            <div class="title"><span class="h3-title">示例:</span></div>
            <div class="xn-input-line clearfix">
                <div  xn-lookup  ng-model="lookup"  data-method="getList(data)" name="lookup" data-callback="selectLookup(data)"
                      placeholder="请输入提示信息"   data-search-val="id|name" ></div>
            </div>
            <div class="xn-input-line clearfix">
                <div class="sub-title" >ng-Model返回值</div>
                <div class="xn-col-md-22 xn-col-md-offset-1 xn-callback-data" >{{lookup}}</div>
            </div>
        </div>
        <div class="xn-options">
            <div class="title"><span class="h3-title">代码:</span></div>
            <div class="xn-input-line clearfix">
                <pre class="prettyprint " id="options"></pre>
            </div>
        </div>
        <div class="xn-explain">
            <div class="title"><span class="h3-title">说明:</span><span class="f-right">(点击标题查看详情)</span></div>

            <div class="xn-input-line clearfix">
                <div class="sub-title" ng-click="tabSubNav(1)">ng-model</div>
                <div class="explain-content" ng-if="setting.subNavActive===1">
                    <p>必填 : 返回的数据</p>
                </div>
            </div>

            <div class="xn-input-line clearfix">
                <div class="sub-title" ng-click="tabSubNav(2)">data-method="getList(data)"</div>
                <div class="explain-content" ng-if="setting.subNavActive===2">
                    <p>必填 :  获取数据的方法。 <p>
                    <div class="xn-input-line clearfix">
                        <pre class="prettyprint lang-html linenums prettyprinted" >
                            /**
                            *     参数数据结构:
                            *    {
                            *       data:{
                            *           keyword:"string",    //关键词
                            *           pageNumber:"number",      //页数
                            *           pageSize:"number",        //每页条数
                            *       }
                            *       deferred:{
                            *           resolve:{
                            *               itemList:"array",      //查询结果列表
                            *               totalCount:"number"    //查询结果总数
                            *           }
                            *       }
                            *    }
                            *
                            */
                           $scope.getList=function(data){

                                //后台查询数据成功后执行
                                data.deferred.resolve({itemList:itemList,totalCount:25});
                            };
                        </pre>
                    </div>
                </div>
            </div>

            <div class="xn-input-line clearfix">
                <div class="sub-title" ng-click="tabSubNav(3)">name</div>
                <div class="explain-content" ng-if="setting.subNavActive===3">
                    <p>必填 : 输入框的名称。 <p>
                </div>
            </div>

            <div class="xn-input-line clearfix">
                <div class="sub-title" ng-click="tabSubNav(4)">placeholder</div>
                <div class="explain-content" ng-if="setting.subNavActive===4">
                    <p>必填 : 输入框的提示文字。 <p>
                </div>
            </div>

            <div class="xn-input-line clearfix">
                <div class="sub-title" ng-click="tabSubNav(10)">required</div>
                <div class="explain-content" ng-if="setting.subNavActive===10">
                    <p>可选 : 是否验证。验证为:true 默认值为:false  <p>
                </div>
            </div>

            <div class="xn-input-line clearfix">
                <div class="sub-title" ng-click="tabSubNav(11)">data-callback </div>
                <div class="explain-content" ng-if="setting.subNavActive===11">
                    <p>可选 :选择完成后执行的函数:参数一个,返回选择的对象。  <p>
                </div>
            </div>

            <div class="xn-input-line clearfix">
                <div class="sub-title" ng-click="tabSubNav(12)">data-search-val </div>
                <div class="explain-content" ng-if="setting.subNavActive===12">
                    <p>可选 :选择后展现的内容及默认排版的字段,也是搜索的关键词。可单个,也可以多个,用“|”间隔开,默认为name<p>
                </div>
            </div>

            <div class="xn-input-line clearfix">
                <div class="sub-title" ng-click="tabSubNav(13)">data-search-key </div>
                <div class="explain-content" ng-if="setting.subNavActive===13">
                    <p>可选 :搜索后匹配的 关键词。默认为 id  <p>
                </div>
            </div>

            <div class="xn-input-line clearfix">
                <div class="sub-title" ng-click="tabSubNav(16)">data-is-popup </div>
                <div class="explain-content" ng-if="setting.subNavActive===16">
                    <p>可选 :鼠标移动到列表中是否显示全部。true 为显示,false为不显示。默认值为:false <p>
                </div>
            </div>

            <div class="xn-input-line clearfix">
                <div class="sub-title" ng-click="tabSubNav(14)">data-show-width</div>
                <div class="explain-content" ng-if="setting.subNavActive===14">
                    <p>可选 :搜索展开内容的宽度  <p>
                </div>
            </div>

            <div class="xn-input-line clearfix">
                <div class="sub-title" ng-click="tabSubNav(15)">data-template-url</div>
                <div class="explain-content" ng-if="setting.subNavActive===15">
                    <p>可选 :值为模板的"id"。模板可使用栅格系统24份,参数为item对象 。<p>
                    <pre class="prettyprint" id="template"></pre>
                </div>
            </div>
            <div class="xn-input-line clearfix">
                <div class="sub-title" ng-click="tabSubNav(18)">data-page-size</div>
                <div class="explain-content" ng-if="setting.subNavActive===18">
                    <p>可选 :分页的个数。默认为10<p>
                </div>
            </div>
        </div>
    </div>

    <div class="xn-main-body xn-col-md-8 xn-col-md-offset-1 xn-lh" >
        <div class="xn-info">
            <div class="title"><span class="h3-title">基本信息</span></div>
            <div class="xn-input-line clearfix ">
                <label class="xn-col-md-6 xn-text-right xn-label">隶属于:</label>
                <div class="xn-col-md-18">{{setting.affiliated}}</div>
            </div>
            <div class="xn-input-line clearfix ">
                <label class="xn-col-md-6 xn-text-right xn-label">version: </label>
                <div class="xn-col-md-18" >{{setting.version}}</div>
            </div>
            <div class="xn-input-line clearfix ">
                <label class="xn-col-md-6 xn-text-right xn-label">依赖组件:</label>
                <div class="xn-col-md-18">{{setting.rely}}</div>
            </div>
            <div class="xn-input-line clearfix ">
                <label class="xn-col-md-6 xn-text-right xn-label">CDN路径:</label>
                <div class="xn-col-md-18 clearfix" >
                    {{setting.jsUrl}}<br/>{{setting.cssUrl}}
                </div>
            </div>
        </div>
    </div>
</div>
<script type="text/javascript">
//    配置设置
    (function () {
        function htmlEscape(s) {
            return s
                    .replace(/&/g, '&amp;')
                    .replace(/</g, '&lt;')
                    .replace(/>/g, '&gt;');
        }
        // this page's own source code
        var quineHtml = htmlEscape(
                '<div  xn-lookup  \n' +
                '   ng-model="{object}" \n' +
                '   data-method="{expression}"  \n' +
                '   name="{string}" \n' +
                '   placeholder="{string}"  \n' +
                '   [required="{boolean}" ] \n' +
                '   [data-callback="{expression}"] \n' +
                '   [data-search-val="{string}"] \n' +
                '   [data-search-key="{string}"] \n' +
                '   [data-is-popup="{boolean}"] \n' +
                '   [data-show-width="{number}" ] \n' +
                '   [data-template-url="{template}" ] \n' +
                '   [data-page-size="{number}"] \n' +
                '   >\n' +
                '</div>');

        // Highlight the operative parts:
        quineHtml = quineHtml.replace(
                /&lt;script src[\s\S]*?&gt;&lt;\/script&gt;|&lt;!--\?[\s\S]*?--&gt;|&lt;pre\b[\s\S]*?&lt;\/pre&gt;/g,
                '<span class="operative">$&<\/span>');

        // insert into PRE
        document.getElementById("options").innerHTML = quineHtml;


        var templateHtml=htmlEscape(
               '  <script type="text/ng-template" id="lookup.html"> \n'+
               '         <div class="xn-col-md-18" ng-bind="item.name"></div> \n'+
               '         <div class="xn-col-md-6" ng-bind="item.id"></div> \n'+
               '  < \/script>');

        templateHtml= templateHtml.replace(
                        /&lt;script src[\s\S]*?&gt;&lt;\/script&gt;|&lt;!--\?[\s\S]*?--&gt;|&lt;pre\b[\s\S]*?&lt;\/pre&gt;/g,
                        '<span class="operative">$&<\/span>');

        document.getElementById("template").innerHTML = templateHtml;

    })();
    var pageController = function ($scope,$timeout) {
        var version="1.1.7";
        $scope.setting={
            name:"lookup指令",
            subtitle:"xnLookup",
            affiliated:"xn.directive.select",
            version:version,
            rely:"无",
            jsUrl:"js/xn-select/"+version+"/selects.min.js",
            cssUrl:"js/xn-select/"+version+"/style.min.css",
            subNavActive:null
        };
        $scope.tabSubNav=function (index) {
            if($scope.setting.subNavActive==index){
                $scope.setting.subNavActive=null
            }else {
                $scope.setting.subNavActive=index
            }
        };

        /*执行的方法*/

        $scope.getList=function(data){
            console.log(data);
            var time=new Date().getTime();
            var i=1111;
            var index=0;
            $timeout(function () {
                index++;
                var itemList=[
                    {name:time+"特步(XTEP)",  id:"1"},
                    {name:time+"休闲运动男女鞋春夏秋凉鞋",  id:i},
                    {name:time+"休闲运动男女鞋春夏秋凉鞋",  id:i},
                    {name:time+"休闲运动男女鞋春夏秋凉鞋",  id:i},
                    {name:time+"休闲运动男女鞋春夏秋凉鞋",  id:i},
                    {name:time+"休闲运动男女鞋春夏秋凉鞋",  id:i},
                    {name:time+"休闲运动男女鞋春夏秋凉鞋",  id:i},
                    {name:time+"休闲运动男女鞋春夏秋凉鞋",  id:i},
                    {name:time+"休闲运动男女鞋春夏秋凉鞋",  id:i},
                    {name:time+"休闲运动男女鞋春夏秋凉鞋",  id:i}
                ];

                data.deferred.resolve({itemList:itemList,totalCount:25});
            },1000);

            //选择框
            $scope.selectLookup=function (data) {
                console.log(data);
            }
        };

    };
    angular.module("myApp",["xn.directive.select"])
            .controller("PageController", ["$scope","$timeout", pageController]);
</script>
</body>
</html>