老莫的笔记本  
  
查看: 1057|回复: 0

记录分类书 大类生成【一个较为复杂的面向对象】

[复制链接]

664

主题

880

帖子

5155

积分

超级版主

Rank: 8Rank: 8

积分
5155
发表于 2019-7-17 23:22:32 | 显示全部楼层 |阅读模式
  1. <html>
  2.     <head>
  3.         <meta charset="utf-8" />
  4.         <title>分类书展示</title>
  5.         <meta name="renderer" content="webkit" />
  6.         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  7.         <meta
  8.             name="viewport"
  9.             content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"
  10.         />
  11.         <link rel="stylesheet" href="/layui/css/layui.css" media="all" />
  12.         <link rel="stylesheet" href="/src/style/site.css" />
  13.         <style>
  14.             .nice-paragraph .nice-paragraph-title {
  15.                 margin-left: 5px;
  16.             }

  17.             .nice-paragraph .nice-paragraph-asterisk {
  18.                 margin-left: 14px;
  19.             }

  20.             .nice-paragraph .nice-paragraph-NonStandard {
  21.                 margin-left: 14px;
  22.                 font-style: italic;
  23.             }
  24.             .nice-paragraph {
  25.                 white-space: keep-all !important;
  26.             }
  27.             .nice-paragraph a {
  28.                 display: inline-block;
  29.                 width: auto !important;
  30.                 padding: 0px 8px !important;
  31.                 margin: 2px !important;
  32.                 line-height: 2.4;
  33.             }
  34.            
  35.             .nice-paragraph .nice-paragraph-note {
  36.                 margin: 15px;
  37.                 color: #ccc;
  38.             }

  39.             .nice-group-note {
  40.                 margin: 15px;
  41.                 color: #222;
  42.             }
  43.             .nice-read .nice-read-main{
  44.                 height: auto !important;
  45.             }
  46.             
  47.         </style>
  48.     </head>
  49.     <body>
  50.         <div class="layer-page">
  51.             <div class="nice-read">
  52.                 <div class="nice-read-search">
  53.                     <form
  54.                         class="layui-form table-header-tools"
  55.                         action=""
  56.                         lay-filter="search-form-group"
  57.                     >
  58.                         <div class="layui-row layui-col-space10">
  59.                             <div class="layui-col-sm12 text-right">
  60.                                 <div class="layui-form-item">
  61.                                     <div class="input-group">
  62.                                         <input
  63.                                             type="text"
  64.                                             name="content"
  65.                                             placeholder="搜索关键词"
  66.                                             autocomplete="off"
  67.                                             class="layui-input"
  68.                                         />
  69.                                         <span class="input-group-append">
  70.                                             <a
  71.                                                 href="javacript:void(0);"
  72.                                                 class="layui-btn"
  73.                                                 >搜索</a
  74.                                             >
  75.                                         </span>
  76.                                     </div>
  77.                                 </div>
  78.                             </div>
  79.                         </div>
  80.                     </form>
  81.                 </div>
  82.                 <div class="nice-read-main">
  83.                     <div class="left-side">
  84.                         <ul id="mtype-show">
  85.                         </ul>
  86.                     </div>
  87.                     <div class="main-side">
  88.                         <div class="title">
  89.                             <h1
  90.                                 class="font-bold letter-spacing-4 text-center"
  91.                                 id="mo-cnum"
  92.                             >
  93.                                 第一类
  94.                             </h1>
  95.                             <h4 id="mo-ctitle">
  96.                                 用于工业、科学、摄影、农业、园艺和林业的化学品;未加工人造合成树脂;未加工塑料物质;肥料;灭火用合成物;淬火和焊接用制剂;保存食品用化学品;鞣料;工业用粘合剂。
  97.                             </h4>
  98.                         </div>
  99.                         <div class="notes">
  100.                             <h4 class="text-center">【注释】</h4>
  101.                             <p id="cnotes">
  102.                                 
  103.                             </p>
  104.                         </div>
  105.                         <div class="main" id="main">
  106.                            
  107.                         </div>

  108.                     </div>
  109.                 </div>
  110.             </div>
  111.         </div>
  112.         <script src="/layui/layui.js"></script>
  113.         <script>
  114.             // 按钮类
  115.             function Abtn(j, fn) {
  116.                 this.data = j;
  117.                 this.title = j.spfw;
  118.                 this.xtype = j.xtype || "";
  119.                 this.callback = fn;
  120.             }
  121.             Abtn.prototype.render = function() {
  122.                 this.a = document.createElement("a");
  123.                 this.a.href = "javacript:void(0);";
  124.                 this.a.innerHTML = this.title + this.xtype;
  125.                 var self = this;
  126.                 this.a.onclick = function() {
  127.                     self.callback(self.data);
  128.                 };
  129.                 return this.a;
  130.             };

  131.             // 类似群的类展示[一个类似群json]
  132.             function MGroup(j) {
  133.                 this.j = j;
  134.                 this.ctype = j.ctype;
  135.                 this.mtype = j.mtype;
  136.                 this.title = j.title;
  137.             }
  138.             MGroup.prototype.render = function() {
  139.                 this.box = document.createElement("div");
  140.                 this.box.classList.add("group");
  141.                 this.h = document.createElement("h4");
  142.                 this.h.classList.add("text-center", "mb-2");
  143.                 this.h.innerHTML = this.mtype + this.title;

  144.                 this.main = document.querySelector("#main");
  145.                 this.main.appendChild(this.box);
  146.                 this.box.appendChild(this.h);

  147.                 let p_arr = this.j.p;

  148.                 let self = this;

  149.                 // 循环拿段落
  150.                 for(var i=0; i<p_arr.length; i++ )
  151.                 {

  152.                     let pitem = document.createElement('div');
  153.                         pitem.classList.add("nice-paragraph");
  154.                     let ptspan = document.createElement('span');
  155.                         ptspan.classList.add("nice-paragraph-title");

  156.                         ptspan.innerHTML = p_arr[i].cnum || '';

  157.                         pitem.appendChild(ptspan);

  158.                         // 主体
  159.                         for (var k = 0; k < p_arr[i].cen.length; k++)
  160.                         {
  161.                             let aj = {
  162.                                 mtype: self.mtype,
  163.                                 ctype: self.ctype,
  164.                                 xtype: p_arr[i].cen[k].xtype,
  165.                                 spfw: p_arr[i].cen[k].spfw
  166.                             };

  167.                             let abtn = new Abtn(aj, function(e) {
  168.                                 console.log(e);
  169.                             });

  170.                             pitem.appendChild( abtn.render() );
  171.                         }

  172.                         // 段落注释
  173.                         if(p_arr[i].notes.length >0){

  174.                             let pnociebox = document.createElement('div');
  175.                                 pnociebox.classList.add("nice-paragraph-note");
  176.                             let pnocietitle = document.createElement('span');
  177.                                 pnocietitle.innerHTML = '段落注释:';
  178.                                 pnociebox.appendChild(pnocietitle);
  179.                             let pnocieui = document.createElement('ui');
  180.                                 for(var k =0; k<p_arr[i].notes.length; k++)
  181.                                 {
  182.                                     let pnocieli = document.createElement('li');
  183.                                         pnocieli.innerHTML = p_arr[i].notes[k];

  184.                                     pnocieui.appendChild(pnocieli);
  185.                                 }

  186.                                 pnociebox.appendChild(pnocieui);

  187.                             pitem.appendChild(pnociebox);
  188.                         }

  189.                     self.box.appendChild(pitem);

  190.                 }

  191.                 // 九十八非规范
  192.                 if(this.j.x98.length>0)
  193.                 {

  194.                     let fbox = document.createElement('div');
  195.                         fbox.classList.add("nice-paragraph");
  196.                     let fspan = document.createElement('span');
  197.                         fspan.classList.add("nice-paragraph-NonStandard");
  198.                         fspan.innerHTML = '非规范商品:';
  199.                         fbox.appendChild(fspan);
  200.                     for(var i=0; i<self.j.x98.length; i++)
  201.                     {
  202.                         let aj={
  203.                             mtype : self.mtype,
  204.                             ctype : self.ctype,
  205.                             xtype : '',
  206.                             spfw :  self.j.x98[i]
  207.                         }
  208.                         let abtn = new Abtn(aj, function(e) {
  209.                             console.log(e);
  210.                         });
  211.                         // console.log(1)
  212.                         fbox.appendChild( abtn.render() )
  213.                     }

  214.                     self.box.appendChild( fbox );
  215.                 }

  216.                 // 类似群注释
  217.                 if( this.j.notes.length >0 )
  218.                 {
  219.                     let mnbox = document.createElement('div');
  220.                         mnbox.classList.add("nice-group-note");
  221.                     let mnpan = document.createElement('span');
  222.                         mnpan.innerHTML = '类似群注释:';
  223.                         mnbox.appendChild(mnpan);
  224.                     let mnui = document.createElement('ui');
  225.                         mnbox.appendChild(mnui);

  226.                     for( var i=0; i<self.j.notes.length; i++)
  227.                     {
  228.                         let mnli = document.createElement('li');
  229.                             mnli.innerHTML = self.j.notes[i];
  230.                             mnui.appendChild( mnli );
  231.                     }

  232.                     self.box.appendChild(mnbox);
  233.                 }
  234.             };
  235.         </script>
  236.         <script>
  237.             // 获取URL中的参数
  238.             function getQueryVariable(variable) {
  239.                 var query = window.location.search.substring(1);
  240.                 var vars = query.split("&");
  241.                 for (var i = 0; i < vars.length; i++) {
  242.                     var pair = vars[i].split("=");
  243.                     if (pair[0] == variable) {
  244.                         return pair[1];
  245.                     }
  246.                 }
  247.                 return false;
  248.             }

  249.             // 大类数字转汉字
  250.             function toCnum(a) {
  251.                 let str = "";
  252.                 a = Number(a);
  253.                 arrcnum = [
  254.                     "十",
  255.                     "一",
  256.                     "二",
  257.                     "三",
  258.                     "四",
  259.                     "五",
  260.                     "六",
  261.                     "七",
  262.                     "八",
  263.                     "九"
  264.                 ];

  265.                 // 大类转化为中文
  266.                 if (a > 9) {
  267.                     str +=
  268.                         arrcnum[parseInt(a / 10)] +
  269.                         "" +
  270.                         arrcnum[0] +
  271.                         "" +
  272.                         arrcnum[a % 10];
  273.                 } else {
  274.                     str += arrcnum[a];
  275.                 }
  276.                 return str;
  277.             }

  278.             // 展示大类的注释
  279.             function showCnotes(na) {
  280.                 let strgs = ""; // 概述
  281.                 let strbk = ""; // 尤其包括
  282.                 let strnb = ""; // 尤其不包括
  283.                 for (var i = 0; i < na.length; i++) {
  284.                     switch (na[i].k) {
  285.                         case 3:
  286.                             strgs += na[i].txt + "<br />";
  287.                             break;
  288.                         case 1:
  289.                             strbk += " ——" + na[i].txt + "<br />";
  290.                             break;
  291.                         case 2:
  292.                             strnb += " ——" + na[i].txt + "<br />";
  293.                             break;
  294.                     }
  295.                 }

  296.                 if (strbk.length !== 0) {
  297.                     strbk = "本类尤其包括:<br />" + strbk;
  298.                 }
  299.                 if (strbk.length !== 0) {
  300.                     strnb = "本类尤不其包括:<br />" + strnb;
  301.                 }

  302.                 let str = strgs + strbk + strnb;

  303.                 return str;
  304.             }
  305.                
  306.             function mShowLeft( j )
  307.             {
  308.                 this.box = document.querySelector("#mtype-show");
  309.                 this.item = document.createElement('li');
  310.                 this.a = document.createElement('a');
  311.                 this.a.classList.add('left-side-item');
  312.                 this.a.href = "javacript:void(0);";
  313.                 this.div1 = document.createElement('div');
  314.                 this.div1.classList.add('side-title');
  315.                 this.div1.innerHTML = j.mtype;
  316.                 this.div2 = document.createElement('div');
  317.                 this.div2.classList.add('side-sub');
  318.                 this.div2.innerHTML = j.title;
  319.                 this.box.appendChild(this.item);
  320.                 this.item.appendChild(this.a);
  321.                 this.a.appendChild(this.div1)
  322.                 this.a.appendChild(this.div2)

  323.             }

  324.         </script>
  325.         <script>
  326.             layui.use(["table"], function() {
  327.                 var $ = layui.jquery;
  328.                 var table = layui.table;

  329.                 // 获取父页面的域名 [省得 每个都设置 ]
  330.                 var mo_url = parent.mo_url;

  331.                 var ctype = getQueryVariable("c");

  332.                 $.ajax({
  333.                     type: "POST",
  334.                     url: mo_url + "api/wifi/out",
  335.                     dataType: "json",
  336.                     data: {
  337.                         key: "c",
  338.                         ctype: ctype
  339.                     },
  340.                     success: function(res) {
  341.                         console.log(res);
  342.                         showBig(res.data);
  343.                     }
  344.                 });

  345.                 // 主要的展示类型
  346.                 function showBig(e) {
  347.                     // 头部
  348.                     $("#mo-cnum").html("第" + toCnum(e.c.ctype) + "类");
  349.                     $("#mo-ctitle").html(e.c.jieshao);

  350.                     // 大类的注释
  351.                     $("#cnotes").html(showCnotes(e.cnotes));

  352.                     // 清空
  353.                     $(".main").html('');

  354.                     // 添加类似群
  355.                     for (var i = 0; i < e.m.length; i++) {
  356.                         
  357.                         let mgroup = new MGroup(e.m[i]);
  358.                         mgroup.render();

  359.                         let ms = new mShowLeft(e.m[i]);
  360.                   
  361.                     }

  362.                 }

  363.                 table.render({
  364.                     elem: "#search-results",
  365.                     url: "../../../start/json/table/nice-class.js",
  366.                     height: "full-60",
  367.                     cellMinWidth: 80,
  368.                     page: true,
  369.                     limit: 30,
  370.                     cols: [
  371.                         [
  372.                             { type: "checkbox" },
  373.                             {
  374.                                 field: "id",
  375.                                 title: "ID",
  376.                                 width: 100,
  377.                                 align: "center"
  378.                             },
  379.                             {
  380.                                 field: "nice",
  381.                                 title: "类别",
  382.                                 width: 100,
  383.                                 align: "center"
  384.                             },
  385.                             {
  386.                                 field: "sml",
  387.                                 title: "近似群",
  388.                                 width: 120,
  389.                                 align: "center"
  390.                             },
  391.                             {
  392.                                 field: "number",
  393.                                 title: "商品编号",
  394.                                 width: 120,
  395.                                 align: "center"
  396.                             },
  397.                             { field: "name", title: "商品名称" },
  398.                             {
  399.                                 field: "splb",
  400.                                 title: "商品类型",
  401.                                 width: 120,
  402.                                 align: "center"
  403.                             }
  404.                         ]
  405.                     ]
  406.                 });
  407.             });
  408.         </script>
  409.     </body>
  410. </html>
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表