Переглянути джерело

软件锁表格的内容和loading的功能

outaozhen 4 роки тому
батько
коміт
eb75cc649d

+ 264 - 0
dist/contact/index.html

@@ -0,0 +1,264 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+  <meta charset="utf-8">
+  <title>
+    联系人-纵横CLD v2.0-subindex
+  </title>
+  <meta name="description" content="Page Titile">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no, user-scalable=no, minimal-ui">
+  <!-- Call App Mode on ios devices -->
+  <meta name="apple-mobile-web-app-capable" content="yes" />
+  <!-- Remove Tap Highlight on Windows Phone IE -->
+  <meta name="msapplication-tap-highlight" content="no">
+  <!-- base css -->
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/vendors.bundle.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/app.bundle.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/cld-custom.css">
+  <!-- Place favicon.ico in the root directory -->
+  <link rel="shortcut icon" href="http://cld2.com:9090/img/favicon/favicon.ico">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/fa-regular.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/fa-solid.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/fa-brands.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/global.css">
+
+
+
+<link href="http://cld2.com:9090/css/vendor.d919b9206a46f65a9f0b.css" rel="stylesheet"></head>
+
+<body class="mod-bg-1 nav-function-fixed header-function-fixed">
+  <!-- DOC: script to save and load page settings -->
+  <script>
+    /**
+     *	This script should be placed right after the body tag for fast execution
+     *	Note: the script is written in pure javascript and does not depend on thirdparty library
+     **/
+    'use strict';
+    var classHolder = document.getElementsByTagName("BODY")[0],
+      /**
+       * Load from localstorage
+       **/
+      themeSettings = (localStorage.getItem('themeSettings')) ? JSON.parse(localStorage.getItem('themeSettings')) : {},
+      themeURL = themeSettings.themeURL || '',
+      themeOptions = themeSettings.themeOptions || '';
+    /**
+     * Load theme options
+     **/
+    if (themeSettings.themeOptions) {
+      classHolder.className = themeSettings.themeOptions;
+      
+    } else {
+     
+    }
+    if (themeSettings.themeURL && !document.getElementById('mytheme')) {
+      var cssfile = document.createElement('link');
+      cssfile.id = 'mytheme';
+      cssfile.rel = 'stylesheet';
+      cssfile.href = themeURL;
+      document.getElementsByTagName('head')[0].appendChild(cssfile);
+    }
+    /**
+     * Save to localstorage
+     **/
+    var saveSettings = function () {
+      themeSettings.themeOptions = String(classHolder.className).split(/[^\w-]+/).filter(function (item) {
+        return /^(nav|header|mod|display)-/i.test(item);
+      }).join(' ');
+      if (document.getElementById('mytheme')) {
+        themeSettings.themeURL = document.getElementById('mytheme').getAttribute("href");
+      };
+      localStorage.setItem('themeSettings', JSON.stringify(themeSettings));
+    }
+    /**
+     * Reset settings
+     **/
+    var resetSettings = function () {
+      localStorage.setItem("themeSettings", "");
+    }
+  </script>
+  <!-- BEGIN Page Wrapper -->
+  <div class="page-wrapper">
+    <div class="page-inner">
+      <div id="root" class="width100"></div>
+    </div>
+  </div>
+  <!-- END Page Wrapper -->
+  <!-- BEGIN应用切换 -->
+  <div class="modal fade modal-backdrop-transparent" id="modal-shortcut" tabindex="-1" role="dialog"
+    aria-labelledby="modal-shortcut" aria-hidden="true">
+    <div class="modal-dialog modal-dialog-top modal-transparent" role="document">
+      <div class="modal-content">
+        <div class="modal-body">
+          <ul class="app-list w-auto h-auto p-0 text-left">
+            <li>
+              <a href="/" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-11 icon-stack-3x opacity-100 color-primary-700"></i> <i
+                    class="base base-7 icon-stack-2x opacity-100 color-primary-500"></i> <i
+                    class="fas fa-chess icon-stack-1x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  工作台
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="/contact" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-4 icon-stack-3x opacity-100 color-info-700"></i> <i
+                    class="base base-12 icon-stack-2x opacity-100 color-info-500"></i> <i
+                    class="fas fa-address-book icon-stack-1x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  客户
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="/product" class="app-list-item text-white">
+                <span class="icon-stack">
+                  <i class="base base-7 icon-stack-3x opacity-100 color-danger-900 "></i>
+                  <i class="base base-4 icon-stack-2x opacity-100 color-danger-600 "></i>
+                  <i class="fal fa-box icon-stack-1x text-white"></i>
+                </span>
+                <span class="app-list-name">
+                  产品
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="#" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-9 icon-stack-3x opacity-100 color-success-700"></i> <i
+                    class="base base-14 icon-stack-2x opacity-100 color-success-500"></i> <i
+                    class="fas fa-clipboard-list icon-stack-1x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  费用
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="#" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-3 icon-stack-3x opacity-100 color-warning-700"></i> <i
+                    class="base base-9 icon-stack-2x opacity-100 color-warning-500"></i> <i
+                    class="fas fa-credit-card-front icon-stack-1x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  开票
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="#" class="app-list-item text-white">
+                <div class="icon-stack">
+                  <i class="base-18 icon-stack-3x color-info-300"></i>
+                  <span class="position-absolute pos-top pos-left pos-right color-white fs-md mt-2 fw-400">Zz..</span>
+                </div>
+                <span class="app-list-name">
+                  假期
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="/hr" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-15 icon-stack-3x opacity-100 color-fusion-200"></i> <i
+                    class="base base-10 icon-stack-2x opacity-100 color-fusion-500"></i> <i
+                    class="fas fa-users icon-stack-1x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  人资
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="#" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-5 icon-stack-3x opacity-100 color-danger-300"></i> <i
+                    class="base base-14 icon-stack-2x opacity-100 color-danger-200"></i> <i
+                    class="fas fa-id-card icon-stack-2x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  我的纵横
+                </span>
+              </a>
+            </li>
+          </ul>
+        </div>
+      </div>
+    </div>
+  </div>
+<script src="http://cld2.com:9090/nodejs/framework.d919b9206a46f65a9f0b.bundle.js"></script><script src="http://cld2.com:9090/nodejs/vendor.d919b9206a46f65a9f0b.bundle.js"></script><script src="http://cld2.com:9090/nodejs/contact.d919b9206a46f65a9f0b.bundle.js"></script></body>
+
+<script src="http://cld2.com:9090/js/vendors.bundle.js"></script>
+<script src="http://cld2.com:9090/js/app.bundle.js"></script>
+<script src="http://cld2.com:9090/js/cld-custom.js"></script>
+
+
+<script type="text/javascript">
+
+
+  // $(document).ready(function () {
+  //   $('#dt-basic-example').dataTable(
+  //     {
+  //       responsive: true,
+  //       autoWidth: true,
+  //       info: false,
+  //       searching: false,
+  //       lengthChange: false,
+  //       "ajax": {
+  //         "url": "http://cld2.com:9090/cld2/contact/client",
+  //         "dataSrc": "list"
+  //       }
+  //       //scrollX: true,
+  //     });
+
+  //   $('.js-thead-colors a').on('click', function () {
+  //     var theadColor = $(this).attr("data-bg");
+  //     console.log(theadColor);
+  //     $('#dt-basic-example thead').removeClassPrefix('bg-').addClass(theadColor);
+  //   });
+
+  //   $('.js-tbody-colors a').on('click', function () {
+  //     var theadColor = $(this).attr("data-bg");
+  //     console.log(theadColor);
+  //     $('#dt-basic-example').removeClassPrefix('bg-').addClass(theadColor);
+  //   });
+
+  // });
+
+
+
+
+  autoFlashHeight();
+  $('.slimScroll1').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+  $('.slimScrol2').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+  $('.slimScrol3').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+  $('.slimScrol4').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+</script>
+<script>
+
+
+</script>
+
+</html>

Різницю між файлами не показано, бо вона завелика
+ 27844 - 0
dist/css/vendor.d919b9206a46f65a9f0b.css


+ 264 - 0
dist/hr/index.html

@@ -0,0 +1,264 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+  <meta charset="utf-8">
+  <title>
+    联系人-纵横CLD v2.0-subindex
+  </title>
+  <meta name="description" content="Page Titile">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no, user-scalable=no, minimal-ui">
+  <!-- Call App Mode on ios devices -->
+  <meta name="apple-mobile-web-app-capable" content="yes" />
+  <!-- Remove Tap Highlight on Windows Phone IE -->
+  <meta name="msapplication-tap-highlight" content="no">
+  <!-- base css -->
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/vendors.bundle.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/app.bundle.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/cld-custom.css">
+  <!-- Place favicon.ico in the root directory -->
+  <link rel="shortcut icon" href="http://cld2.com:9090/img/favicon/favicon.ico">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/fa-regular.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/fa-solid.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/fa-brands.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/global.css">
+
+
+
+<link href="http://cld2.com:9090/nodecss/hr.d919b9206a46f65a9f0b.css" rel="stylesheet"></head>
+
+<body class="mod-bg-1 nav-function-fixed header-function-fixed">
+  <!-- DOC: script to save and load page settings -->
+  <script>
+    /**
+     *	This script should be placed right after the body tag for fast execution
+     *	Note: the script is written in pure javascript and does not depend on thirdparty library
+     **/
+    'use strict';
+    var classHolder = document.getElementsByTagName("BODY")[0],
+      /**
+       * Load from localstorage
+       **/
+      themeSettings = (localStorage.getItem('themeSettings')) ? JSON.parse(localStorage.getItem('themeSettings')) : {},
+      themeURL = themeSettings.themeURL || '',
+      themeOptions = themeSettings.themeOptions || '';
+    /**
+     * Load theme options
+     **/
+    if (themeSettings.themeOptions) {
+      classHolder.className = themeSettings.themeOptions;
+      
+    } else {
+     
+    }
+    if (themeSettings.themeURL && !document.getElementById('mytheme')) {
+      var cssfile = document.createElement('link');
+      cssfile.id = 'mytheme';
+      cssfile.rel = 'stylesheet';
+      cssfile.href = themeURL;
+      document.getElementsByTagName('head')[0].appendChild(cssfile);
+    }
+    /**
+     * Save to localstorage
+     **/
+    var saveSettings = function () {
+      themeSettings.themeOptions = String(classHolder.className).split(/[^\w-]+/).filter(function (item) {
+        return /^(nav|header|mod|display)-/i.test(item);
+      }).join(' ');
+      if (document.getElementById('mytheme')) {
+        themeSettings.themeURL = document.getElementById('mytheme').getAttribute("href");
+      };
+      localStorage.setItem('themeSettings', JSON.stringify(themeSettings));
+    }
+    /**
+     * Reset settings
+     **/
+    var resetSettings = function () {
+      localStorage.setItem("themeSettings", "");
+    }
+  </script>
+  <!-- BEGIN Page Wrapper -->
+  <div class="page-wrapper">
+    <div class="page-inner">
+      <div id="root" class="width100"></div>
+    </div>
+  </div>
+  <!-- END Page Wrapper -->
+  <!-- BEGIN应用切换 -->
+  <div class="modal fade modal-backdrop-transparent" id="modal-shortcut" tabindex="-1" role="dialog"
+    aria-labelledby="modal-shortcut" aria-hidden="true">
+    <div class="modal-dialog modal-dialog-top modal-transparent" role="document">
+      <div class="modal-content">
+        <div class="modal-body">
+          <ul class="app-list w-auto h-auto p-0 text-left">
+            <li>
+              <a href="/" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-11 icon-stack-3x opacity-100 color-primary-700"></i> <i
+                    class="base base-7 icon-stack-2x opacity-100 color-primary-500"></i> <i
+                    class="fas fa-chess icon-stack-1x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  工作台
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="/contact" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-4 icon-stack-3x opacity-100 color-info-700"></i> <i
+                    class="base base-12 icon-stack-2x opacity-100 color-info-500"></i> <i
+                    class="fas fa-address-book icon-stack-1x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  客户
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="/product" class="app-list-item text-white">
+                <span class="icon-stack">
+                  <i class="base base-7 icon-stack-3x opacity-100 color-danger-900 "></i>
+                  <i class="base base-4 icon-stack-2x opacity-100 color-danger-600 "></i>
+                  <i class="fal fa-box icon-stack-1x text-white"></i>
+                </span>
+                <span class="app-list-name">
+                  产品
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="#" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-9 icon-stack-3x opacity-100 color-success-700"></i> <i
+                    class="base base-14 icon-stack-2x opacity-100 color-success-500"></i> <i
+                    class="fas fa-clipboard-list icon-stack-1x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  费用
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="#" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-3 icon-stack-3x opacity-100 color-warning-700"></i> <i
+                    class="base base-9 icon-stack-2x opacity-100 color-warning-500"></i> <i
+                    class="fas fa-credit-card-front icon-stack-1x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  开票
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="#" class="app-list-item text-white">
+                <div class="icon-stack">
+                  <i class="base-18 icon-stack-3x color-info-300"></i>
+                  <span class="position-absolute pos-top pos-left pos-right color-white fs-md mt-2 fw-400">Zz..</span>
+                </div>
+                <span class="app-list-name">
+                  假期
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="/hr" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-15 icon-stack-3x opacity-100 color-fusion-200"></i> <i
+                    class="base base-10 icon-stack-2x opacity-100 color-fusion-500"></i> <i
+                    class="fas fa-users icon-stack-1x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  人资
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="#" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-5 icon-stack-3x opacity-100 color-danger-300"></i> <i
+                    class="base base-14 icon-stack-2x opacity-100 color-danger-200"></i> <i
+                    class="fas fa-id-card icon-stack-2x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  我的纵横
+                </span>
+              </a>
+            </li>
+          </ul>
+        </div>
+      </div>
+    </div>
+  </div>
+<script src="http://cld2.com:9090/nodejs/framework.d919b9206a46f65a9f0b.bundle.js"></script><script src="http://cld2.com:9090/nodejs/hr.d919b9206a46f65a9f0b.bundle.js"></script></body>
+
+<script src="http://cld2.com:9090/js/vendors.bundle.js"></script>
+<script src="http://cld2.com:9090/js/app.bundle.js"></script>
+<script src="http://cld2.com:9090/js/cld-custom.js"></script>
+
+
+<script type="text/javascript">
+
+
+  // $(document).ready(function () {
+  //   $('#dt-basic-example').dataTable(
+  //     {
+  //       responsive: true,
+  //       autoWidth: true,
+  //       info: false,
+  //       searching: false,
+  //       lengthChange: false,
+  //       "ajax": {
+  //         "url": "http://cld2.com:9090/cld2/contact/client",
+  //         "dataSrc": "list"
+  //       }
+  //       //scrollX: true,
+  //     });
+
+  //   $('.js-thead-colors a').on('click', function () {
+  //     var theadColor = $(this).attr("data-bg");
+  //     console.log(theadColor);
+  //     $('#dt-basic-example thead').removeClassPrefix('bg-').addClass(theadColor);
+  //   });
+
+  //   $('.js-tbody-colors a').on('click', function () {
+  //     var theadColor = $(this).attr("data-bg");
+  //     console.log(theadColor);
+  //     $('#dt-basic-example').removeClassPrefix('bg-').addClass(theadColor);
+  //   });
+
+  // });
+
+
+
+
+  autoFlashHeight();
+  $('.slimScroll1').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+  $('.slimScrol2').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+  $('.slimScrol3').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+  $('.slimScrol4').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+</script>
+<script>
+
+
+</script>
+
+</html>

+ 215 - 0
dist/index.html

@@ -0,0 +1,215 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+  <meta charset="utf-8">
+  <title>
+    联系人-纵横CLD v2.0-index
+  </title>
+  <meta name="description" content="Page Titile">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no, user-scalable=no, minimal-ui">
+  <!-- Call App Mode on ios devices -->
+  <meta name="apple-mobile-web-app-capable" content="yes" />
+  <!-- Remove Tap Highlight on Windows Phone IE -->
+  <meta name="msapplication-tap-highlight" content="no">
+  <!-- base css -->
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/vendors.bundle.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/app.bundle.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/cld-custom.css">
+  <!-- Place favicon.ico in the root directory -->
+  <link rel="shortcut icon" href="http://cld2.com:9090/img/favicon/favicon.ico">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/fa-regular.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/fa-solid.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/fa-brands.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/global.css">
+
+
+
+
+<link href="http://cld2.com:9090/css/vendor.d919b9206a46f65a9f0b.css" rel="stylesheet"></head>
+
+<body class="mod-bg-1 nav-function-fixed header-function-fixed">
+  <!-- DOC: script to save and load page settings -->
+  <script>
+    /**
+     *	This script should be placed right after the body tag for fast execution
+     *	Note: the script is written in pure javascript and does not depend on thirdparty library
+     **/
+    'use strict';
+    var classHolder = document.getElementsByTagName("BODY")[0],
+      /**
+       * Load from localstorage
+       **/
+      themeSettings = (localStorage.getItem('themeSettings')) ? JSON.parse(localStorage.getItem('themeSettings')) : {},
+      themeURL = themeSettings.themeURL || '',
+      themeOptions = themeSettings.themeOptions || '';
+    /**
+     * Load theme options
+     **/
+    if (themeSettings.themeOptions) {
+      classHolder.className = themeSettings.themeOptions;
+      console.log("%c✔ Theme settings loaded", "color: #148f32");
+    } else {
+      console.log("Heads up! Theme settings is empty or does not exist, loading default settings...");
+    }
+    if (themeSettings.themeURL && !document.getElementById('mytheme')) {
+      var cssfile = document.createElement('link');
+      cssfile.id = 'mytheme';
+      cssfile.rel = 'stylesheet';
+      cssfile.href = themeURL;
+      document.getElementsByTagName('head')[0].appendChild(cssfile);
+    }
+    /**
+     * Save to localstorage
+     **/
+    var saveSettings = function() {
+      themeSettings.themeOptions = String(classHolder.className).split(/[^\w-]+/).filter(function(item) {
+        return /^(nav|header|mod|display)-/i.test(item);
+      }).join(' ');
+      if (document.getElementById('mytheme')) {
+        themeSettings.themeURL = document.getElementById('mytheme').getAttribute("href");
+      };
+      localStorage.setItem('themeSettings', JSON.stringify(themeSettings));
+    }
+    /**
+     * Reset settings
+     **/
+    var resetSettings = function() {
+      localStorage.setItem("themeSettings", "");
+    }
+  </script>
+  <!-- BEGIN Page Wrapper -->
+  <div class="page-wrapper">
+    <div class="page-inner">
+      <div id="root" class="width100"></div>
+    </div>
+  </div>
+  <!-- END Page Wrapper -->
+  <!-- BEGIN应用切换 -->
+  <div class="modal fade modal-backdrop-transparent" id="modal-shortcut" tabindex="-1" role="dialog" aria-labelledby="modal-shortcut" aria-hidden="true">
+      <div class="modal-dialog modal-dialog-top modal-transparent" role="document">
+          <div class="modal-content">
+              <div class="modal-body">
+                  <ul class="app-list w-auto h-auto p-0 text-left">
+                    <li>
+                      <a href="/" class="app-list-item text-white">
+                        <div class='icon-stack'>
+                          <i class="base base-11 icon-stack-3x opacity-100 color-primary-700"></i> <i class="base base-7 icon-stack-2x opacity-100 color-primary-500"></i> <i class="fas fa-chess icon-stack-1x opacity-100 color-white"></i>
+                        </div>
+                        <span class="app-list-name">
+                          工作台
+                          </span>
+                      </a>
+                    </li>
+                    <li>
+                      <a href="/contact" class="app-list-item text-white">
+                        <div class='icon-stack'>
+                          <i class="base base-4 icon-stack-3x opacity-100 color-info-700"></i> <i class="base base-12 icon-stack-2x opacity-100 color-info-500"></i> <i class="fas fa-address-book icon-stack-1x opacity-100 color-white"></i>
+                        </div>
+                        <span class="app-list-name">
+                         客户
+                          </span>
+                      </a>
+                    </li>
+                    <li>
+                      <a href="/product" class="app-list-item text-white">
+                          <span class="icon-stack">
+                            <i class="base base-7 icon-stack-3x opacity-100 color-danger-900 "></i>
+                            <i class="base base-4 icon-stack-2x opacity-100 color-danger-600 "></i>
+                            <i class="fal fa-box icon-stack-1x text-white"></i>
+                          </span>
+                          <span class="app-list-name">
+                            产品
+                          </span>
+                        </a>
+                    </li>
+                    <li>
+                      <a href="#" class="app-list-item text-white">
+                        <div class='icon-stack'>
+                          <i class="base base-9 icon-stack-3x opacity-100 color-success-700"></i> <i class="base base-14 icon-stack-2x opacity-100 color-success-500"></i> <i class="fas fa-clipboard-list icon-stack-1x opacity-100 color-white"></i>
+                        </div>
+                        <span class="app-list-name">
+                            费用
+                          </span>
+                      </a>
+                    </li>
+                    <li>
+                      <a href="#" class="app-list-item text-white">
+                        <div class='icon-stack'>
+                          <i class="base base-3 icon-stack-3x opacity-100 color-warning-700"></i> <i class="base base-9 icon-stack-2x opacity-100 color-warning-500"></i> <i class="fas fa-credit-card-front icon-stack-1x opacity-100 color-white"></i>
+                        </div>
+                        <span class="app-list-name">
+                            开票
+                          </span>
+                      </a>
+                    </li>
+                    <li>
+                      <a href="#" class="app-list-item text-white">
+                        <div class="icon-stack">
+                          <i class="base-18 icon-stack-3x color-info-300"></i>
+                          <span class="position-absolute pos-top pos-left pos-right color-white fs-md mt-2 fw-400">Zz..</span>
+                        </div>
+                        <span class="app-list-name">
+                            假期
+                          </span>
+                      </a>
+                    </li>
+                    <li>
+                      <a href="/hr" class="app-list-item text-white">
+                        <div class='icon-stack'>
+                          <i class="base base-15 icon-stack-3x opacity-100 color-fusion-200"></i> <i class="base base-10 icon-stack-2x opacity-100 color-fusion-500"></i> <i class="fas fa-users icon-stack-1x opacity-100 color-white"></i>
+                        </div>
+                        <span class="app-list-name">
+                            人资
+                          </span>
+                      </a>
+                    </li>
+                    <li>
+                      <a href="#" class="app-list-item text-white">
+                        <div class='icon-stack'>
+                          <i class="base base-5 icon-stack-3x opacity-100 color-danger-300"></i> <i class="base base-14 icon-stack-2x opacity-100 color-danger-200"></i> <i class="fas fa-id-card icon-stack-2x opacity-100 color-white"></i>
+                        </div>
+                        <span class="app-list-name">
+                            我的纵横
+                          </span>
+                      </a>
+                    </li>
+                  </ul>
+              </div>
+          </div>
+      </div>
+  </div>
+<script src="http://cld2.com:9090/nodejs/framework.d919b9206a46f65a9f0b.bundle.js"></script><script src="http://cld2.com:9090/nodejs/vendor.d919b9206a46f65a9f0b.bundle.js"></script><script src="http://cld2.com:9090/nodejs/workbench.d919b9206a46f65a9f0b.bundle.js"></script></body>
+
+  
+<script src="http://cld2.com:9090/js/vendors.bundle.js"></script>
+<script src="http://cld2.com:9090/js/app.bundle.js"></script>
+<script src="http://cld2.com:9090/js/cld-custom.js"></script>
+
+<script type="text/javascript">
+  autoFlashHeight();
+  $('.slimScroll1').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+  $('.slimScrol2').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+  $('.slimScrol3').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+  $('.slimScrol4').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+</script>
+<script>
+  </script>
+</html>

+ 215 - 0
dist/login.html

@@ -0,0 +1,215 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+  <meta charset="utf-8">
+  <title>
+    联系人-纵横CLD v2.0-index
+  </title>
+  <meta name="description" content="Page Titile">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no, user-scalable=no, minimal-ui">
+  <!-- Call App Mode on ios devices -->
+  <meta name="apple-mobile-web-app-capable" content="yes" />
+  <!-- Remove Tap Highlight on Windows Phone IE -->
+  <meta name="msapplication-tap-highlight" content="no">
+  <!-- base css -->
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/vendors.bundle.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/app.bundle.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/cld-custom.css">
+  <!-- Place favicon.ico in the root directory -->
+  <link rel="shortcut icon" href="http://cld2.com:9090/img/favicon/favicon.ico">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/fa-regular.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/fa-solid.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/fa-brands.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/global.css">
+
+
+
+
+<link href="http://cld2.com:9090/css/vendor.d919b9206a46f65a9f0b.css" rel="stylesheet"></head>
+
+<body class="mod-bg-1 nav-function-fixed header-function-fixed">
+  <!-- DOC: script to save and load page settings -->
+  <script>
+    /**
+     *	This script should be placed right after the body tag for fast execution
+     *	Note: the script is written in pure javascript and does not depend on thirdparty library
+     **/
+    'use strict';
+    var classHolder = document.getElementsByTagName("BODY")[0],
+      /**
+       * Load from localstorage
+       **/
+      themeSettings = (localStorage.getItem('themeSettings')) ? JSON.parse(localStorage.getItem('themeSettings')) : {},
+      themeURL = themeSettings.themeURL || '',
+      themeOptions = themeSettings.themeOptions || '';
+    /**
+     * Load theme options
+     **/
+    if (themeSettings.themeOptions) {
+      classHolder.className = themeSettings.themeOptions;
+      console.log("%c✔ Theme settings loaded", "color: #148f32");
+    } else {
+      console.log("Heads up! Theme settings is empty or does not exist, loading default settings...");
+    }
+    if (themeSettings.themeURL && !document.getElementById('mytheme')) {
+      var cssfile = document.createElement('link');
+      cssfile.id = 'mytheme';
+      cssfile.rel = 'stylesheet';
+      cssfile.href = themeURL;
+      document.getElementsByTagName('head')[0].appendChild(cssfile);
+    }
+    /**
+     * Save to localstorage
+     **/
+    var saveSettings = function() {
+      themeSettings.themeOptions = String(classHolder.className).split(/[^\w-]+/).filter(function(item) {
+        return /^(nav|header|mod|display)-/i.test(item);
+      }).join(' ');
+      if (document.getElementById('mytheme')) {
+        themeSettings.themeURL = document.getElementById('mytheme').getAttribute("href");
+      };
+      localStorage.setItem('themeSettings', JSON.stringify(themeSettings));
+    }
+    /**
+     * Reset settings
+     **/
+    var resetSettings = function() {
+      localStorage.setItem("themeSettings", "");
+    }
+  </script>
+  <!-- BEGIN Page Wrapper -->
+  <div class="page-wrapper">
+    <div class="page-inner">
+      <div id="root" class="width100"></div>
+    </div>
+  </div>
+  <!-- END Page Wrapper -->
+  <!-- BEGIN应用切换 -->
+  <div class="modal fade modal-backdrop-transparent" id="modal-shortcut" tabindex="-1" role="dialog" aria-labelledby="modal-shortcut" aria-hidden="true">
+      <div class="modal-dialog modal-dialog-top modal-transparent" role="document">
+          <div class="modal-content">
+              <div class="modal-body">
+                  <ul class="app-list w-auto h-auto p-0 text-left">
+                    <li>
+                      <a href="/" class="app-list-item text-white">
+                        <div class='icon-stack'>
+                          <i class="base base-11 icon-stack-3x opacity-100 color-primary-700"></i> <i class="base base-7 icon-stack-2x opacity-100 color-primary-500"></i> <i class="fas fa-chess icon-stack-1x opacity-100 color-white"></i>
+                        </div>
+                        <span class="app-list-name">
+                          工作台
+                          </span>
+                      </a>
+                    </li>
+                    <li>
+                      <a href="/contact" class="app-list-item text-white">
+                        <div class='icon-stack'>
+                          <i class="base base-4 icon-stack-3x opacity-100 color-info-700"></i> <i class="base base-12 icon-stack-2x opacity-100 color-info-500"></i> <i class="fas fa-address-book icon-stack-1x opacity-100 color-white"></i>
+                        </div>
+                        <span class="app-list-name">
+                         客户
+                          </span>
+                      </a>
+                    </li>
+                    <li>
+                      <a href="/product" class="app-list-item text-white">
+                          <span class="icon-stack">
+                            <i class="base base-7 icon-stack-3x opacity-100 color-danger-900 "></i>
+                            <i class="base base-4 icon-stack-2x opacity-100 color-danger-600 "></i>
+                            <i class="fal fa-box icon-stack-1x text-white"></i>
+                          </span>
+                          <span class="app-list-name">
+                            产品
+                          </span>
+                        </a>
+                    </li>
+                    <li>
+                      <a href="#" class="app-list-item text-white">
+                        <div class='icon-stack'>
+                          <i class="base base-9 icon-stack-3x opacity-100 color-success-700"></i> <i class="base base-14 icon-stack-2x opacity-100 color-success-500"></i> <i class="fas fa-clipboard-list icon-stack-1x opacity-100 color-white"></i>
+                        </div>
+                        <span class="app-list-name">
+                            费用
+                          </span>
+                      </a>
+                    </li>
+                    <li>
+                      <a href="#" class="app-list-item text-white">
+                        <div class='icon-stack'>
+                          <i class="base base-3 icon-stack-3x opacity-100 color-warning-700"></i> <i class="base base-9 icon-stack-2x opacity-100 color-warning-500"></i> <i class="fas fa-credit-card-front icon-stack-1x opacity-100 color-white"></i>
+                        </div>
+                        <span class="app-list-name">
+                            开票
+                          </span>
+                      </a>
+                    </li>
+                    <li>
+                      <a href="#" class="app-list-item text-white">
+                        <div class="icon-stack">
+                          <i class="base-18 icon-stack-3x color-info-300"></i>
+                          <span class="position-absolute pos-top pos-left pos-right color-white fs-md mt-2 fw-400">Zz..</span>
+                        </div>
+                        <span class="app-list-name">
+                            假期
+                          </span>
+                      </a>
+                    </li>
+                    <li>
+                      <a href="/hr" class="app-list-item text-white">
+                        <div class='icon-stack'>
+                          <i class="base base-15 icon-stack-3x opacity-100 color-fusion-200"></i> <i class="base base-10 icon-stack-2x opacity-100 color-fusion-500"></i> <i class="fas fa-users icon-stack-1x opacity-100 color-white"></i>
+                        </div>
+                        <span class="app-list-name">
+                            人资
+                          </span>
+                      </a>
+                    </li>
+                    <li>
+                      <a href="#" class="app-list-item text-white">
+                        <div class='icon-stack'>
+                          <i class="base base-5 icon-stack-3x opacity-100 color-danger-300"></i> <i class="base base-14 icon-stack-2x opacity-100 color-danger-200"></i> <i class="fas fa-id-card icon-stack-2x opacity-100 color-white"></i>
+                        </div>
+                        <span class="app-list-name">
+                            我的纵横
+                          </span>
+                      </a>
+                    </li>
+                  </ul>
+              </div>
+          </div>
+      </div>
+  </div>
+<script src="http://cld2.com:9090/nodejs/framework.d919b9206a46f65a9f0b.bundle.js"></script><script src="http://cld2.com:9090/nodejs/vendor.d919b9206a46f65a9f0b.bundle.js"></script><script src="http://cld2.com:9090/nodejs/login.d919b9206a46f65a9f0b.bundle.js"></script></body>
+
+  
+<script src="http://cld2.com:9090/js/vendors.bundle.js"></script>
+<script src="http://cld2.com:9090/js/app.bundle.js"></script>
+<script src="http://cld2.com:9090/js/cld-custom.js"></script>
+
+<script type="text/javascript">
+  autoFlashHeight();
+  $('.slimScroll1').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+  $('.slimScrol2').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+  $('.slimScrol3').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+  $('.slimScrol4').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+</script>
+<script>
+  </script>
+</html>

+ 1 - 0
dist/nodecss/hr.d919b9206a46f65a9f0b.css

@@ -0,0 +1 @@
+

Різницю між файлами не показано, бо вона завелика
+ 752 - 0
dist/nodejs/contact.d919b9206a46f65a9f0b.bundle.js


Різницю між файлами не показано, бо вона завелика
+ 563 - 0
dist/nodejs/framework.d919b9206a46f65a9f0b.bundle.js


Різницю між файлами не показано, бо вона завелика
+ 193 - 0
dist/nodejs/hr.d919b9206a46f65a9f0b.bundle.js


Різницю між файлами не показано, бо вона завелика
+ 369 - 0
dist/nodejs/login.d919b9206a46f65a9f0b.bundle.js


Різницю між файлами не показано, бо вона завелика
+ 529 - 0
dist/nodejs/product.d919b9206a46f65a9f0b.bundle.js


Різницю між файлами не показано, бо вона завелика
+ 182 - 0
dist/nodejs/staff.d919b9206a46f65a9f0b.bundle.js


Різницю між файлами не показано, бо вона завелика
+ 35073 - 0
dist/nodejs/vendor.d919b9206a46f65a9f0b.bundle.js


Різницю між файлами не показано, бо вона завелика
+ 266 - 0
dist/nodejs/workbench.d919b9206a46f65a9f0b.bundle.js


+ 264 - 0
dist/product/index.html

@@ -0,0 +1,264 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+  <meta charset="utf-8">
+  <title>
+    联系人-纵横CLD v2.0-subindex
+  </title>
+  <meta name="description" content="Page Titile">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no, user-scalable=no, minimal-ui">
+  <!-- Call App Mode on ios devices -->
+  <meta name="apple-mobile-web-app-capable" content="yes" />
+  <!-- Remove Tap Highlight on Windows Phone IE -->
+  <meta name="msapplication-tap-highlight" content="no">
+  <!-- base css -->
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/vendors.bundle.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/app.bundle.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/cld-custom.css">
+  <!-- Place favicon.ico in the root directory -->
+  <link rel="shortcut icon" href="http://cld2.com:9090/img/favicon/favicon.ico">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/fa-regular.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/fa-solid.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/fa-brands.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/global.css">
+
+
+
+<link href="http://cld2.com:9090/css/vendor.d919b9206a46f65a9f0b.css" rel="stylesheet"></head>
+
+<body class="mod-bg-1 nav-function-fixed header-function-fixed">
+  <!-- DOC: script to save and load page settings -->
+  <script>
+    /**
+     *	This script should be placed right after the body tag for fast execution
+     *	Note: the script is written in pure javascript and does not depend on thirdparty library
+     **/
+    'use strict';
+    var classHolder = document.getElementsByTagName("BODY")[0],
+      /**
+       * Load from localstorage
+       **/
+      themeSettings = (localStorage.getItem('themeSettings')) ? JSON.parse(localStorage.getItem('themeSettings')) : {},
+      themeURL = themeSettings.themeURL || '',
+      themeOptions = themeSettings.themeOptions || '';
+    /**
+     * Load theme options
+     **/
+    if (themeSettings.themeOptions) {
+      classHolder.className = themeSettings.themeOptions;
+      
+    } else {
+     
+    }
+    if (themeSettings.themeURL && !document.getElementById('mytheme')) {
+      var cssfile = document.createElement('link');
+      cssfile.id = 'mytheme';
+      cssfile.rel = 'stylesheet';
+      cssfile.href = themeURL;
+      document.getElementsByTagName('head')[0].appendChild(cssfile);
+    }
+    /**
+     * Save to localstorage
+     **/
+    var saveSettings = function () {
+      themeSettings.themeOptions = String(classHolder.className).split(/[^\w-]+/).filter(function (item) {
+        return /^(nav|header|mod|display)-/i.test(item);
+      }).join(' ');
+      if (document.getElementById('mytheme')) {
+        themeSettings.themeURL = document.getElementById('mytheme').getAttribute("href");
+      };
+      localStorage.setItem('themeSettings', JSON.stringify(themeSettings));
+    }
+    /**
+     * Reset settings
+     **/
+    var resetSettings = function () {
+      localStorage.setItem("themeSettings", "");
+    }
+  </script>
+  <!-- BEGIN Page Wrapper -->
+  <div class="page-wrapper">
+    <div class="page-inner">
+      <div id="root" class="width100"></div>
+    </div>
+  </div>
+  <!-- END Page Wrapper -->
+  <!-- BEGIN应用切换 -->
+  <div class="modal fade modal-backdrop-transparent" id="modal-shortcut" tabindex="-1" role="dialog"
+    aria-labelledby="modal-shortcut" aria-hidden="true">
+    <div class="modal-dialog modal-dialog-top modal-transparent" role="document">
+      <div class="modal-content">
+        <div class="modal-body">
+          <ul class="app-list w-auto h-auto p-0 text-left">
+            <li>
+              <a href="/" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-11 icon-stack-3x opacity-100 color-primary-700"></i> <i
+                    class="base base-7 icon-stack-2x opacity-100 color-primary-500"></i> <i
+                    class="fas fa-chess icon-stack-1x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  工作台
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="/contact" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-4 icon-stack-3x opacity-100 color-info-700"></i> <i
+                    class="base base-12 icon-stack-2x opacity-100 color-info-500"></i> <i
+                    class="fas fa-address-book icon-stack-1x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  客户
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="/product" class="app-list-item text-white">
+                <span class="icon-stack">
+                  <i class="base base-7 icon-stack-3x opacity-100 color-danger-900 "></i>
+                  <i class="base base-4 icon-stack-2x opacity-100 color-danger-600 "></i>
+                  <i class="fal fa-box icon-stack-1x text-white"></i>
+                </span>
+                <span class="app-list-name">
+                  产品
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="#" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-9 icon-stack-3x opacity-100 color-success-700"></i> <i
+                    class="base base-14 icon-stack-2x opacity-100 color-success-500"></i> <i
+                    class="fas fa-clipboard-list icon-stack-1x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  费用
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="#" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-3 icon-stack-3x opacity-100 color-warning-700"></i> <i
+                    class="base base-9 icon-stack-2x opacity-100 color-warning-500"></i> <i
+                    class="fas fa-credit-card-front icon-stack-1x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  开票
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="#" class="app-list-item text-white">
+                <div class="icon-stack">
+                  <i class="base-18 icon-stack-3x color-info-300"></i>
+                  <span class="position-absolute pos-top pos-left pos-right color-white fs-md mt-2 fw-400">Zz..</span>
+                </div>
+                <span class="app-list-name">
+                  假期
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="/hr" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-15 icon-stack-3x opacity-100 color-fusion-200"></i> <i
+                    class="base base-10 icon-stack-2x opacity-100 color-fusion-500"></i> <i
+                    class="fas fa-users icon-stack-1x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  人资
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="#" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-5 icon-stack-3x opacity-100 color-danger-300"></i> <i
+                    class="base base-14 icon-stack-2x opacity-100 color-danger-200"></i> <i
+                    class="fas fa-id-card icon-stack-2x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  我的纵横
+                </span>
+              </a>
+            </li>
+          </ul>
+        </div>
+      </div>
+    </div>
+  </div>
+<script src="http://cld2.com:9090/nodejs/framework.d919b9206a46f65a9f0b.bundle.js"></script><script src="http://cld2.com:9090/nodejs/vendor.d919b9206a46f65a9f0b.bundle.js"></script><script src="http://cld2.com:9090/nodejs/product.d919b9206a46f65a9f0b.bundle.js"></script></body>
+
+<script src="http://cld2.com:9090/js/vendors.bundle.js"></script>
+<script src="http://cld2.com:9090/js/app.bundle.js"></script>
+<script src="http://cld2.com:9090/js/cld-custom.js"></script>
+
+
+<script type="text/javascript">
+
+
+  // $(document).ready(function () {
+  //   $('#dt-basic-example').dataTable(
+  //     {
+  //       responsive: true,
+  //       autoWidth: true,
+  //       info: false,
+  //       searching: false,
+  //       lengthChange: false,
+  //       "ajax": {
+  //         "url": "http://cld2.com:9090/cld2/contact/client",
+  //         "dataSrc": "list"
+  //       }
+  //       //scrollX: true,
+  //     });
+
+  //   $('.js-thead-colors a').on('click', function () {
+  //     var theadColor = $(this).attr("data-bg");
+  //     console.log(theadColor);
+  //     $('#dt-basic-example thead').removeClassPrefix('bg-').addClass(theadColor);
+  //   });
+
+  //   $('.js-tbody-colors a').on('click', function () {
+  //     var theadColor = $(this).attr("data-bg");
+  //     console.log(theadColor);
+  //     $('#dt-basic-example').removeClassPrefix('bg-').addClass(theadColor);
+  //   });
+
+  // });
+
+
+
+
+  autoFlashHeight();
+  $('.slimScroll1').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+  $('.slimScrol2').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+  $('.slimScrol3').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+  $('.slimScrol4').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+</script>
+<script>
+
+
+</script>
+
+</html>

+ 264 - 0
dist/staff/index.html

@@ -0,0 +1,264 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+  <meta charset="utf-8">
+  <title>
+    联系人-纵横CLD v2.0-subindex
+  </title>
+  <meta name="description" content="Page Titile">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no, user-scalable=no, minimal-ui">
+  <!-- Call App Mode on ios devices -->
+  <meta name="apple-mobile-web-app-capable" content="yes" />
+  <!-- Remove Tap Highlight on Windows Phone IE -->
+  <meta name="msapplication-tap-highlight" content="no">
+  <!-- base css -->
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/vendors.bundle.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/app.bundle.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/cld-custom.css">
+  <!-- Place favicon.ico in the root directory -->
+  <link rel="shortcut icon" href="http://cld2.com:9090/img/favicon/favicon.ico">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/fa-regular.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/fa-solid.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/fa-brands.css">
+  <link rel="stylesheet" media="screen, print" href="http://cld2.com:9090/css/global.css">
+
+
+
+</head>
+
+<body class="mod-bg-1 nav-function-fixed header-function-fixed">
+  <!-- DOC: script to save and load page settings -->
+  <script>
+    /**
+     *	This script should be placed right after the body tag for fast execution
+     *	Note: the script is written in pure javascript and does not depend on thirdparty library
+     **/
+    'use strict';
+    var classHolder = document.getElementsByTagName("BODY")[0],
+      /**
+       * Load from localstorage
+       **/
+      themeSettings = (localStorage.getItem('themeSettings')) ? JSON.parse(localStorage.getItem('themeSettings')) : {},
+      themeURL = themeSettings.themeURL || '',
+      themeOptions = themeSettings.themeOptions || '';
+    /**
+     * Load theme options
+     **/
+    if (themeSettings.themeOptions) {
+      classHolder.className = themeSettings.themeOptions;
+      
+    } else {
+     
+    }
+    if (themeSettings.themeURL && !document.getElementById('mytheme')) {
+      var cssfile = document.createElement('link');
+      cssfile.id = 'mytheme';
+      cssfile.rel = 'stylesheet';
+      cssfile.href = themeURL;
+      document.getElementsByTagName('head')[0].appendChild(cssfile);
+    }
+    /**
+     * Save to localstorage
+     **/
+    var saveSettings = function () {
+      themeSettings.themeOptions = String(classHolder.className).split(/[^\w-]+/).filter(function (item) {
+        return /^(nav|header|mod|display)-/i.test(item);
+      }).join(' ');
+      if (document.getElementById('mytheme')) {
+        themeSettings.themeURL = document.getElementById('mytheme').getAttribute("href");
+      };
+      localStorage.setItem('themeSettings', JSON.stringify(themeSettings));
+    }
+    /**
+     * Reset settings
+     **/
+    var resetSettings = function () {
+      localStorage.setItem("themeSettings", "");
+    }
+  </script>
+  <!-- BEGIN Page Wrapper -->
+  <div class="page-wrapper">
+    <div class="page-inner">
+      <div id="root" class="width100"></div>
+    </div>
+  </div>
+  <!-- END Page Wrapper -->
+  <!-- BEGIN应用切换 -->
+  <div class="modal fade modal-backdrop-transparent" id="modal-shortcut" tabindex="-1" role="dialog"
+    aria-labelledby="modal-shortcut" aria-hidden="true">
+    <div class="modal-dialog modal-dialog-top modal-transparent" role="document">
+      <div class="modal-content">
+        <div class="modal-body">
+          <ul class="app-list w-auto h-auto p-0 text-left">
+            <li>
+              <a href="/" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-11 icon-stack-3x opacity-100 color-primary-700"></i> <i
+                    class="base base-7 icon-stack-2x opacity-100 color-primary-500"></i> <i
+                    class="fas fa-chess icon-stack-1x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  工作台
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="/contact" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-4 icon-stack-3x opacity-100 color-info-700"></i> <i
+                    class="base base-12 icon-stack-2x opacity-100 color-info-500"></i> <i
+                    class="fas fa-address-book icon-stack-1x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  客户
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="/product" class="app-list-item text-white">
+                <span class="icon-stack">
+                  <i class="base base-7 icon-stack-3x opacity-100 color-danger-900 "></i>
+                  <i class="base base-4 icon-stack-2x opacity-100 color-danger-600 "></i>
+                  <i class="fal fa-box icon-stack-1x text-white"></i>
+                </span>
+                <span class="app-list-name">
+                  产品
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="#" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-9 icon-stack-3x opacity-100 color-success-700"></i> <i
+                    class="base base-14 icon-stack-2x opacity-100 color-success-500"></i> <i
+                    class="fas fa-clipboard-list icon-stack-1x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  费用
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="#" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-3 icon-stack-3x opacity-100 color-warning-700"></i> <i
+                    class="base base-9 icon-stack-2x opacity-100 color-warning-500"></i> <i
+                    class="fas fa-credit-card-front icon-stack-1x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  开票
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="#" class="app-list-item text-white">
+                <div class="icon-stack">
+                  <i class="base-18 icon-stack-3x color-info-300"></i>
+                  <span class="position-absolute pos-top pos-left pos-right color-white fs-md mt-2 fw-400">Zz..</span>
+                </div>
+                <span class="app-list-name">
+                  假期
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="/hr" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-15 icon-stack-3x opacity-100 color-fusion-200"></i> <i
+                    class="base base-10 icon-stack-2x opacity-100 color-fusion-500"></i> <i
+                    class="fas fa-users icon-stack-1x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  人资
+                </span>
+              </a>
+            </li>
+            <li>
+              <a href="#" class="app-list-item text-white">
+                <div class='icon-stack'>
+                  <i class="base base-5 icon-stack-3x opacity-100 color-danger-300"></i> <i
+                    class="base base-14 icon-stack-2x opacity-100 color-danger-200"></i> <i
+                    class="fas fa-id-card icon-stack-2x opacity-100 color-white"></i>
+                </div>
+                <span class="app-list-name">
+                  我的纵横
+                </span>
+              </a>
+            </li>
+          </ul>
+        </div>
+      </div>
+    </div>
+  </div>
+<script src="http://cld2.com:9090/nodejs/framework.d919b9206a46f65a9f0b.bundle.js"></script><script src="http://cld2.com:9090/nodejs/staff.d919b9206a46f65a9f0b.bundle.js"></script></body>
+
+<script src="http://cld2.com:9090/js/vendors.bundle.js"></script>
+<script src="http://cld2.com:9090/js/app.bundle.js"></script>
+<script src="http://cld2.com:9090/js/cld-custom.js"></script>
+
+
+<script type="text/javascript">
+
+
+  // $(document).ready(function () {
+  //   $('#dt-basic-example').dataTable(
+  //     {
+  //       responsive: true,
+  //       autoWidth: true,
+  //       info: false,
+  //       searching: false,
+  //       lengthChange: false,
+  //       "ajax": {
+  //         "url": "http://cld2.com:9090/cld2/contact/client",
+  //         "dataSrc": "list"
+  //       }
+  //       //scrollX: true,
+  //     });
+
+  //   $('.js-thead-colors a').on('click', function () {
+  //     var theadColor = $(this).attr("data-bg");
+  //     console.log(theadColor);
+  //     $('#dt-basic-example thead').removeClassPrefix('bg-').addClass(theadColor);
+  //   });
+
+  //   $('.js-tbody-colors a').on('click', function () {
+  //     var theadColor = $(this).attr("data-bg");
+  //     console.log(theadColor);
+  //     $('#dt-basic-example').removeClassPrefix('bg-').addClass(theadColor);
+  //   });
+
+  // });
+
+
+
+
+  autoFlashHeight();
+  $('.slimScroll1').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+  $('.slimScrol2').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+  $('.slimScrol3').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+  $('.slimScrol4').slimScroll({
+    position: 'right',
+    height: 'auto',
+    railVisible: true
+  });
+</script>
+<script>
+
+
+</script>
+
+</html>

+ 27 - 6
src/common/popupstockDetail/index.js

@@ -3,7 +3,7 @@ import { connect } from 'react-redux';
 // import { BrowserRouter, Route,Link } from 'react-router-dom';
 
 import { actionCreators } from './store';
-import { message } from 'antd';
+import { message,Tag,Spin } from 'antd';
 
 const error = (msg) => {
   message.error(msg);
@@ -11,10 +11,27 @@ const error = (msg) => {
 
 class lockDetailPopups extends PureComponent {
 
+  getTag(productList) {
+    if(typeof productList==='undefined'){
+      return null
+    }else{
+      return (
+        <>
+            {
+              productList.map((item,index) => {
+                return <Tag color="#886ab5" key={index}>{item}</Tag>
+              })
+            }
+        </>
+      );
+    }
+
+  }
+
   render() {
-    const {locksotreDetail} = this.props;
+    const {locksotreDetail,loading} = this.props;
     let lockDetail2 = locksotreDetail.toJS();
-    // console.log(lockDetail2.key_num)
+    // console.log(lockDetail2)
     return (
       <div className="modal fade" id="lockDetail" role="dialog" aria-hidden="true" data-backdrop="static">
     <div className="modal-dialog modal-xl">
@@ -23,6 +40,7 @@ class lockDetailPopups extends PureComponent {
           <button type="button" className="close" data-dismiss="modal" aria-label="Close">
               <span aria-hidden="true"><i className="fal fa-times"></i></span>
           </button>
+          <Spin size="large" spinning={loading} >
           <div className="sheet-box row m-0">
             <div className="sheet-left-panel">
               <div className="sheet-panel-header d-flex justify-content-between mx-4">
@@ -37,7 +55,7 @@ class lockDetailPopups extends PureComponent {
               <div className="sheet-panel-content">
                 <div className="sheet-panel-form slimScroll1 mx-4">
                   <div className="form-header mt-3">
-                    <div className="d-flex justify-content-between"><span className="text-muted">软件锁</span><span className="text-muted">出库于 2019年5月6日 14:55</span></div>
+                    <div className="d-flex justify-content-between"><span className="text-muted">软件锁</span><span className="text-muted">出库于 {lockDetail2.make_day}</span></div>
                     <legend>{lockDetail2.key_num}</legend>
                   </div>
                   <div className="cldform clearfix">
@@ -52,8 +70,8 @@ class lockDetailPopups extends PureComponent {
                     <div className="cldform-item">
                       <div className="cldform-label">产品</div>
                       <div className="cldform-control">
-                        <div className="cldform-contarl-box cldform-contarl-textareabox cldform-contarl-blank">{lockDetail2.product}</div>
-                        {/* <div className="cldform-contarl-box cldform-contarl-textareabox cldform-contarl-blank"><span className="badge badge-primary mr-1">固化清单全功能</span><span className="badge badge-primary mr-1">全国专业</span><span className="badge badge-primary">全国专业(新定额)</span></div> */}
+                      {/* <Tag color="#886ab5">{lockDetail2.productList}</Tag> */}
+                        <div className="cldform-contarl-box cldform-contarl-textareabox cldform-contarl-blank">{this.getTag(lockDetail2.productList)}</div>
                       </div>
                     </div>
                     <div className="cldform-line"></div>
@@ -188,6 +206,7 @@ class lockDetailPopups extends PureComponent {
               </div>
             </div>
           </div>
+          </Spin>
         </div>
       </div>
     </div>
@@ -208,6 +227,7 @@ class lockDetailPopups extends PureComponent {
 const mapStateToProps = (state) => {
   return {
     locksotreDetail: state.getIn(['popupstock', 'locksotreDetail']),
+    loading: state.getIn(['popupstock', 'loading']),
   }
 }
 
@@ -215,6 +235,7 @@ const mapDispathToProps = (dispatch) => {
   return {
     handlelockDetailPopups(key) {
       //  console.log('dndn');
+      dispatch(actionCreators.changeLoading());
       dispatch(actionCreators.getlocksotreDetail(key,error));
     },
   }

+ 13 - 2
src/common/popupstockDetail/store/actionCreators.js

@@ -4,6 +4,15 @@ import * as config from '../../../common/config.js';
 import axios from '../../axios_auth.js';
 // import axios from 'axios';
 
+//Loading
+export const changeLoading = () => {
+    return (dispatch) => {
+        dispatch({
+            type: constants.CHANGE_LOCK_DETAIL_LOADING,
+            data: true,
+        });
+    }
+}
 
 export const getlocksotreDetail = (key,error) => {
     return (dispatch) => {
@@ -11,15 +20,17 @@ export const getlocksotreDetail = (key,error) => {
         axios.get(config.CLD2API + '/product/longleDetail/'+key).then((res) => {
             const data = res.data;
             if (data.code === 200) {
+                data.data.productList=data.data.product.split("+");
+                //console.log(data.data.productList);
                 dispatch({
                     type: constants.CHANGE_LOCK_DETAIL,
                     data: data.data,
                 });
             } else {
-                error('公司详情请求失败');
+                error('软件锁详情请求失败');
             }
         }).catch((e) => {
-            error('公司详情请求失败');
+            error('软件锁详情请求失败');
         })
     }
 };

+ 1 - 0
src/common/popupstockDetail/store/constants.js

@@ -1,2 +1,3 @@
 export const CHANGE_LOCK_DETAIL = 'lockDetail/change_lock_detail';
 export const CHANGE_INPUT_VALUE = 'lockDetail/value';
+export const CHANGE_LOCK_DETAIL_LOADING = 'lockDetail/change_lock_detail_loading';

+ 5 - 6
src/common/popupstockDetail/store/reducer.js

@@ -4,21 +4,20 @@ import { fromJS } from 'immutable';
 
 
 const defaultState = fromJS({
-    locksotreDetail: {},
+	locksotreDetail: {},
+	loading: true,
 });
 
 
 export default (state = defaultState, action) => {
-	// let locksotreDetail = state.get('locksotreDetail').toJS();
     switch (action.type) {
+		case constants.CHANGE_LOCK_DETAIL_LOADING:
+			return state.set('loading', action.data);
 		case constants.CHANGE_LOCK_DETAIL:
 			return state.merge({
+				loading: false,
 				locksotreDetail: fromJS(action.data)
 			});
-		// case constants.CHANGE_INPUT_VALUE:
-		// 	let condition={[action.data.field]:action.data.value};
-		// 	Object.assign(lockDetail, condition);
-		// 	return state.set('lockDetail', fromJS(lockDetail));
 		default:
 			return state;
 	}

+ 1 - 1
src/product/lock_count/index.js

@@ -10,7 +10,7 @@ class lock_count extends PureComponent {
       const { lockCount } = this.props;
         return (
             <div>
-                <StaffHeader />
+                {/* <StaffHeader /> */}
                 <main id="js-page-content" role="main" className="page-content">
           <div className="row">
             <div className="col-xl-12">

+ 15 - 5
src/product/lock_store/index.js

@@ -2,7 +2,7 @@ import React, { PureComponent } from 'react';
 import { connect } from 'react-redux';
 //import { BrowserRouter, Route,Link } from 'react-router-dom';
 import StaffHeader from '../../common/staffHeader'
-import { Table, Input,Radio } from 'antd';
+import { Table, Input,Radio} from 'antd';
 import 'antd/dist/antd.css';
 import { actionCreators } from './store';
 import Popups from '../../common/popupstockDetail';
@@ -18,7 +18,7 @@ let popupsObj = null;
 
 class lock_store extends PureComponent {
     render() {
-      const {dataSource,columns,pagination,handleLockstoreList,handleSearch,columnsData,columnsNum,handleInputChange,handleColumnsShow,sortField,sort,handleLockstoreSortField,handleLockstoreSort} = this.props;
+      const {dataSource,columns,pagination,handleLockstoreList,loading,handleSearch,columnsData,columnsNum,handleInputChange,handleColumnsShow,sortField,sort,handleLockstoreSortField,handleLockstoreSort} = this.props;
      
         return (
         <div>
@@ -35,6 +35,7 @@ class lock_store extends PureComponent {
                         onSearch={value => handleSearch(pagination.toJS(),this.props,value)}
                         onKeyUp={(e) => handleSearch(pagination.toJS(),this.props,e.target.value,'keyup')}
                         style={{ width: 200 }}
+                        loading={loading}
                       />
                     </div>
                   </div>
@@ -51,7 +52,7 @@ class lock_store extends PureComponent {
                               <li key={index} className="mb-2">
                                 <div className="custom-control custom-switch">
                                   <input type="checkbox" name={index} onChange={(e) => handleInputChange(e, index)} value={item.get('columnsValue')} checked={item.get('columnsValue')} className="custom-control-input" id={"lie" + index} />
-                                  <label onClick={() => handleColumnsShow(index)} htmlFor={"lie" + index} className="custom-control-label" >{item.get('columnsName')}</label>
+                                  <label onClick={() => handleColumnsShow(index,this.props)} htmlFor={"lie" + index} className="custom-control-label" >{item.get('columnsName')}</label>
                                 </div>
                               </li>
                             )
@@ -96,6 +97,7 @@ class lock_store extends PureComponent {
                    <Table
                     onChange={(pagination,sorter) => handleLockstoreList(pagination,this.props)}
                     pagination={pagination.toJS()}
+                    loading={loading}
                     bordered
                     dataSource={dataSource.toJS()}
                     columns={columns.toJS()}
@@ -129,6 +131,7 @@ let delaySwitch = null;
 const mapStateToProps = (state) => {
     return {
       dataSource: state.getIn(['lockstore', 'dataSource']),
+      loading: state.getIn(['lockstore', 'loading']),
       columns: state.getIn(['lockstore', 'columns']),
       pagination: state.getIn(['lockstore', 'pagination']),
       searchValue: state.getIn(['lockstore', 'searchValue']),
@@ -146,28 +149,35 @@ const mapStateToProps = (state) => {
  */
 const mapDispathToProps = (dispatch) => {
     return {
-      handleColumnsShow(index) {
-        dispatch(actionCreators.toggleColumns(index));
+      //列隐藏显示
+      handleColumnsShow(index,support) {
+        dispatch(actionCreators.toggleColumns(index,support));
       },
       initData(){
         dispatch(actionCreators.toggleColumnsAll());
         dispatch(actionCreators.toggleSorter());
       },
+      //获得表格数据
       handleLockstoreList(pagination,support){
         // console.log(support)
+        dispatch(actionCreators.changeLoading());
         dispatch(actionCreators.getLockstoreList(pagination,support));
         
       },
       //排序设置
     handleLockstoreSortField(pagination, support, e) {
+      dispatch(actionCreators.changeLoading());
       dispatch(actionCreators.changeSortField(e.target.value));
       dispatch(actionCreators.getLockstoreList(pagination, support));
     },
     handleLockstoreSort(pagination, support, e) {
+      dispatch(actionCreators.changeLoading());
       dispatch(actionCreators.changeSort(e.target.value));
       dispatch(actionCreators.getLockstoreList(pagination, support));
     },
+    //搜索
       handleSearch(pagination,support,searchValue,keyup){
+        dispatch(actionCreators.changeLoading());
         if(keyup === 'keyup'){
           if(delaySwitch != null){
             clearTimeout(delaySwitch);

+ 19 - 3
src/product/lock_store/store/actionCreators.js

@@ -3,11 +3,12 @@ import { fromJS } from 'immutable';
 import * as config from '../../../common/config.js';
 import axios from '../../../common/axios_auth.js';
 
-export const toggleColumns = (index) => {
+export const toggleColumns = (index,support) => {
     return (dispatch) => {
         dispatch({
             type: constants.TOGGLE_COLUMNS,
             data: index,
+            support:support,
         });
     }
 };
@@ -43,12 +44,22 @@ export const changeSort = (sort) => {
         });
     }
 }
+//Loading
+export const changeLoading = () => {
+    return (dispatch) => {
+        dispatch({
+            type: constants.CHANGE_LOCKSTORE_LOADING,
+            data: true,
+        });
+    }
+}
 
 export const getLockstoreList = (pagination,support,searchValue) =>{
     return(dispatch) =>{
         // console.log('searchValue:'+searchValue);
         // console.log('support:'+searchValue);
         // console.log('typeof:'+typeof searchValue);
+        //console.log(support);
         let sortField = localStorage.getItem("product_lock_store_sortField");
         if(sortField===null){
             sortField = support.sortField;
@@ -60,8 +71,6 @@ export const getLockstoreList = (pagination,support,searchValue) =>{
         if(typeof searchValue === 'undefined'){
             searchValue = support.searchValue;
         }
-        // console.log();
-        // console.log(config.CLD2API + '/contact/company')
         axios.get(config.CLD2API + '/product/longle', {
             params: {
                 current: pagination.current,
@@ -73,6 +82,13 @@ export const getLockstoreList = (pagination,support,searchValue) =>{
             },
         }).then((res) => {
             const data = res.data;
+            //字符串转数组
+            // console.log(data.data[0].product.split("+"));
+            for(var i=0;i < data.data.length;i++){
+                //  console.log(data.data[i].product);
+                //  console.log(data.data[i].product.split("+"));
+                data.data[i].productList=data.data[i].product.split("+");
+            }
             if (data.code === 200) {
                 // console.log(searchValue);
                 dispatch({

+ 2 - 1
src/product/lock_store/store/constants.js

@@ -3,4 +3,5 @@ export const TOGGLE_COLUMNS = 'product/toggle_columns';
 export const TOGGLE_COLUMNS_ALL = 'product/toggle_columns_all';
 export const TOGGLE_SORTER= 'product/toggle_sorter';
 export const CHANGE_LOCKSTORE_SORTFIELD= 'product/change_lockstore_sortField';
-export const CHANGE_LOCKSTORE_SORT= 'product/change_lockstore_sort';
+export const CHANGE_LOCKSTORE_SORT= 'product/change_lockstore_sort';
+export const CHANGE_LOCKSTORE_LOADING= 'product/change_lockstore_loading';

+ 105 - 17
src/product/lock_store/store/reducer.js

@@ -3,6 +3,8 @@ import React from 'react';
 //锁定state不可修改,导致错误y
 import { fromJS } from 'immutable';
 
+import { Tag } from 'antd';
+
 const defaultState = fromJS({
 	pagination: {
 		current: 1,
@@ -10,6 +12,7 @@ const defaultState = fromJS({
 		position: ['bottomCenter'],
 		showSizeChanger: false
 	},
+	loading: false,
 	columnsNum: 0,
 	searchValue: '',
 	dataSource: [],
@@ -88,12 +91,39 @@ export default (state = defaultState, action) => {
 			countFalse = 0;
 			for (var i = 0; i < columnsData.length; i++) {
 				var isAccept = localStorage.getItem("product_lock_store_Column_" + i);
-				if (isAccept === "true") {
+				if (isAccept === "false") {
 					countFalse++;
 				}
 			}
+			columnNumData = columnsData.length - countFalse;
+			// console.log(columnsData);
+			// console.log(columnsData.length);
 			// console.log(countFalse);
-			columnNumData = countFalse;
+			// columnNumData = countFalse;
+			let tagIndex='';
+			columnsBak.forEach((element,value) => {
+				if(element.title==='产品'){
+					tagIndex=value;
+				}
+				//console.log(value)
+			});
+			//console.log(columnsBak);
+			if(tagIndex!==''){
+				columnsBak[tagIndex]=renderTag(columnsBak[tagIndex]);
+			}
+
+			let atextIndex='';
+			columnsBak.forEach((element,value) => {
+				if(element.title==='锁号'){
+					atextIndex=value;
+				}
+				//console.log(value)
+			});
+			//console.log(columnsBak);
+			if(atextIndex!==''){
+				columnsBak[atextIndex]=renderAtext(columnsBak[atextIndex],action);
+			}
+
 			return state.merge({
 				columnsData: fromJS(columnsData),
 				columns: fromJS(columnsBak),
@@ -101,7 +131,6 @@ export default (state = defaultState, action) => {
 			});
 		case constants.TOGGLE_COLUMNS_ALL:
 			countFalse = 0;
-			//console.log(columns.length)
 			for (var i = 0; i <= columnsData.length; i++) {
 				var isAccept = localStorage.getItem("product_lock_store_Column_" + i);
 				if (isAccept === "false") {
@@ -110,23 +139,25 @@ export default (state = defaultState, action) => {
 				}
 			}
 			columnNumData = columnsData.length - countFalse;
+			//console.log(refreshColumns(columnsData));
 			var columnsBak = refreshColumns(columnsData, columns);
 			return state.merge({
-				columnsNum: columnNumData,
 				columnsData: fromJS(columnsData),
+				columnsNum: columnNumData,
+				columns: fromJS(columnsBak),
 			});
 		//排序
 		case constants.TOGGLE_SORTER:
 			var sortField = localStorage.getItem("product_lock_store_sortField");
 			var sort = localStorage.getItem("product_lock_store_sort");
-			if(sortField!==null&&sort!==null){
+			if (sortField !== null && sort !== null) {
 				return state.merge({
 					sortField: sortField,
 					sort: sort
 				});
-			}else if(sortField!==null){
+			} else if (sortField !== null) {
 				return state.set('sortField', sortField);
-			}else if(sort!==null){
+			} else if (sort !== null) {
 				return state.set('sort', sort);
 			}
 		case constants.CHANGE_LOCKSTORE_SORTFIELD:
@@ -136,14 +167,41 @@ export default (state = defaultState, action) => {
 		case constants.CHANGE_LOCKSTORE_SORT:
 			localStorage.setItem('product_lock_store_sort', action.data);
 			return state.set('sort', action.data);
+		case constants.CHANGE_LOCKSTORE_LOADING:
+			return state.set('loading', action.data);
 		//表格
 		case constants.CHANGE_LOCKSTORE_DATA:
-			let columnsDetail={
-				...columns[0],
-				render: (text, record) => <a onClick={() => action.support.handlelockDetailPopups(record.key)} href="#lockDetail" data-toggle="modal" data-target="#lockDetail"  >{text}</a>,
-			}
-			columns[0] = columnsDetail;
-			// console.log(columnsDetail);
+			// console.log(columns[1])
+			// let columnsDetail = {
+			// 	...columns[0],
+			// 	render: (text, record) => <a onClick={() => action.support.handlelockDetailPopups(record.key)} href="#lockDetail" data-toggle="modal" data-target="#lockDetail"  >{text}</a>,
+			// }
+			// columns[0] = columnsDetail;
+			columns[0]=renderAtext(columns[0],action);
+			// let columnsProduct = {
+			// 	...columns[1],
+			// 	render: (text, record) =>(
+			// 		<>
+			// 			{record.productList.map((tag,index) => (
+			// 				<Tag color="#886ab5" key={tag+index}>{tag}</Tag>
+			// 			))}
+			// 		</>
+			// 	)
+			// }
+			// columns[1] = columnsProduct;
+			// if(columns[1].title==='产品'){
+			// 	columns[1]=renderTag(columns[1]);
+			// }
+
+			//console.log(columns)
+			var ti=0;
+			columns.forEach((element,value) => {
+				if(element.title==='产品'){
+					ti=value;
+				}
+			});
+
+			columns[ti]=renderTag(columns[ti]);
 			let pagination = {
 				...action.pagination,
 				total: action.recordsTotal,
@@ -154,14 +212,13 @@ export default (state = defaultState, action) => {
 					columnsData[i].columnsValue = false;
 				}
 			}
-			//var columnsBak = refreshColumns(columnsData, columns);
-			// console.log(columnsBak);
+			var columnsBak = refreshColumns(columnsData, columns);
 			// return state.set('dataSource', action.data);
 			return state.merge({
 				pagination: fromJS(pagination),
 				dataSource: fromJS(action.data),
+				loading: false,
 				searchValue: action.searchValue,
-				// columns: fromJS(columnsBak),
 				columns: fromJS(columns),
 			});
 		default:
@@ -181,4 +238,35 @@ function refreshColumns(columnsData) {
 		}
 	}
 	return columnsBak;
-};
+};
+
+function renderTag(columns){
+	//console.log(columns.title)
+	let columnsProduct=columns;
+	if(columns.title==='产品'){
+		columnsProduct = {
+			...columns,
+			render: (text, record) =>(
+				<>
+					{record.productList.map((tag,index) => (
+						<Tag color="#886ab5" key={tag+index}>{tag}</Tag>
+					))}
+				</>
+			)
+		}
+	}
+	return columnsProduct;
+}
+
+function renderAtext(columns,action){
+	//console.log(columns.title);
+
+	let columnsDetail=columns;
+	if(columns.title==='锁号'){
+		columnsDetail = {
+			...columns,
+			render: (text, record) => <a onClick={() => action.support.handlelockDetailPopups(record.key)} href="#lockDetail" data-toggle="modal" data-target="#lockDetail">{text}</a>,
+		}
+	}
+	return columnsDetail;
+}