From 113313a0496f958860a156b4330960e0d12522a7 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 04 六月 2020 17:53:59 +0800
Subject: [PATCH] 2020-06-04

---
 public/options.txt                                           |   14 -
 src/components/tabview/index.jsx                             |    6 
 src/index.js                                                 |   28 +-
 src/tabviews/treepage/index.jsx                              |    2 
 src/components/header/index.scss                             |    6 
 package-lock.json                                            |  307 +++++++++++++++++++++++++++
 src/views/mobile/index.jsx                                   |  121 +++++++++++
 src/components/header/index.jsx                              |    2 
 src/views/printTemplate/fileupload/index.jsx                 |    3 
 src/templates/sharecomponent/tabscomponent/tabform/index.jsx |    8 
 src/assets/img/treepage.jpg                                  |    0 
 src/router/index.js                                          |   16 
 src/tabviews/zshare/cardcomponent/index.scss                 |    3 
 src/views/mobile/index.scss                                  |   26 ++
 src/api/index.js                                             |    3 
 package.json                                                 |   12 +
 src/tabviews/zshare/fileupload/index.jsx                     |    3 
 public/options.js                                            |   12 -
 src/utils/option.js                                          |    3 
 src/utils/utils.js                                           |    8 
 src/views/login/index.jsx                                    |   18 +
 21 files changed, 532 insertions(+), 69 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 005b31c..2ef3c1c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2311,6 +2311,82 @@
         "warning": "4.0.3"
       }
     },
+    "antd-mobile": {
+      "version": "2.3.3",
+      "resolved": "https://registry.npmjs.org/antd-mobile/-/antd-mobile-2.3.3.tgz",
+      "integrity": "sha512-ZBnkWV+9F+CQA1pvt7zzFVTF1SlNQwJCJCnWafVvG5q8OCkOxm9uVHgsNI+v9yDpo03FABZk0Tgq6U8NaybLWw==",
+      "requires": {
+        "array-tree-filter": "2.1.0",
+        "babel-runtime": "6.26.0",
+        "classnames": "2.2.6",
+        "normalize.css": "7.0.0",
+        "rc-checkbox": "2.0.3",
+        "rc-collapse": "1.9.3",
+        "rc-slider": "8.2.0",
+        "rc-swipeout": "2.0.11",
+        "rmc-calendar": "1.1.4",
+        "rmc-cascader": "5.0.3",
+        "rmc-date-picker": "6.0.10",
+        "rmc-dialog": "1.1.1",
+        "rmc-drawer": "0.4.11",
+        "rmc-feedback": "2.0.0",
+        "rmc-input-number": "1.0.5",
+        "rmc-list-view": "0.11.5",
+        "rmc-notification": "1.0.0",
+        "rmc-nuka-carousel": "3.0.1",
+        "rmc-picker": "5.0.10",
+        "rmc-pull-to-refresh": "1.0.12",
+        "rmc-steps": "1.0.0",
+        "rmc-tabs": "1.2.29",
+        "rmc-tooltip": "1.0.1"
+      },
+      "dependencies": {
+        "rc-checkbox": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-2.0.3.tgz",
+          "integrity": "sha1-Q2qdUIlI4iSYDwU16nOLSBd6jyU=",
+          "requires": {
+            "babel-runtime": "6.26.0",
+            "classnames": "2.2.6",
+            "prop-types": "15.7.2",
+            "rc-util": "4.11.0"
+          }
+        },
+        "rc-collapse": {
+          "version": "1.9.3",
+          "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-1.9.3.tgz",
+          "integrity": "sha512-8cG+FzudmgFCC9zRGKXJZA36zoI9Dmyjp6UDi8N80sXUch0JOpsZDxgcFzw4HPpPpK/dARtTilEe9zyuspnW0w==",
+          "requires": {
+            "classnames": "2.2.6",
+            "css-animation": "1.6.1",
+            "prop-types": "15.7.2",
+            "rc-animate": "2.10.0"
+          }
+        },
+        "rc-slider": {
+          "version": "8.2.0",
+          "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-8.2.0.tgz",
+          "integrity": "sha1-rjfRcUTK1g4dpurA7k/8/qCwpug=",
+          "requires": {
+            "babel-runtime": "6.26.0",
+            "classnames": "2.2.6",
+            "prop-types": "15.7.2",
+            "rc-tooltip": "3.7.3",
+            "rc-util": "4.11.0",
+            "shallowequal": "1.1.0",
+            "warning": "3.0.0"
+          }
+        },
+        "warning": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz",
+          "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=",
+          "requires": {
+            "loose-envify": "1.4.0"
+          }
+        }
+      }
+    },
     "anymatch": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
@@ -6906,6 +6982,11 @@
         }
       }
     },
+    "exenv": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz",
+      "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50="
+    },
     "exit": {
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
@@ -11351,6 +11432,11 @@
       "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz",
       "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg=="
     },
+    "normalize.css": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-7.0.0.tgz",
+      "integrity": "sha1-q/sd2CRwZ04DIrU86xqvQSk45L8="
+    },
     "npm-run-path": {
       "version": "2.0.2",
       "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
@@ -13427,6 +13513,14 @@
         "warning": "4.0.3"
       }
     },
+    "rc-gesture": {
+      "version": "0.0.22",
+      "resolved": "https://registry.npmjs.org/rc-gesture/-/rc-gesture-0.0.22.tgz",
+      "integrity": "sha512-6G6qrCE0MUTXyjh/powj91XkjRjoFL4HiJLPU5lALXHvGX+/efcUjGYUrHrrw0mwQdmrmg4POqnY/bibns+G3g==",
+      "requires": {
+        "babel-runtime": "6.26.0"
+      }
+    },
     "rc-hammerjs": {
       "version": "0.6.9",
       "resolved": "https://registry.npmjs.org/rc-hammerjs/-/rc-hammerjs-0.6.9.tgz",
@@ -13565,6 +13659,17 @@
         "classnames": "2.2.6",
         "lodash": "4.17.15",
         "prop-types": "15.7.2"
+      }
+    },
+    "rc-swipeout": {
+      "version": "2.0.11",
+      "resolved": "https://registry.npmjs.org/rc-swipeout/-/rc-swipeout-2.0.11.tgz",
+      "integrity": "sha512-d37Lgn4RX4OOQyuA2BFo0rGlUwrmZk5q83srH3ixJ1Y1jidr2GKjgJDbNeGUVZPNfYBL91Elu6+xfVGftWf4Lg==",
+      "requires": {
+        "babel-runtime": "6.26.0",
+        "classnames": "2.2.6",
+        "rc-gesture": "0.0.22",
+        "react-native-swipeout": "2.3.6"
       }
     },
     "rc-switch": {
@@ -14024,6 +14129,16 @@
       "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
       "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
     },
+    "react-native-swipeout": {
+      "version": "2.3.6",
+      "resolved": "https://registry.npmjs.org/react-native-swipeout/-/react-native-swipeout-2.3.6.tgz",
+      "integrity": "sha512-t9suUCspzck4vp2pWggWe0frS/QOtX6yYCawHnEes75A7dZCEE74bxX2A1bQzGH9cUMjq6xsdfC94RbiDKIkJg==",
+      "requires": {
+        "create-react-class": "15.6.3",
+        "prop-types": "15.7.2",
+        "react-tween-state": "0.1.5"
+      }
+    },
     "react-redux": {
       "version": "7.1.1",
       "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.1.1.tgz",
@@ -14088,6 +14203,15 @@
         "json2mq": "0.2.0",
         "lodash.debounce": "4.0.8",
         "resize-observer-polyfill": "1.5.1"
+      }
+    },
+    "react-tween-state": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/react-tween-state/-/react-tween-state-0.1.5.tgz",
+      "integrity": "sha1-6YsGZVHvuTy5LdG+FJlcLj3q4zk=",
+      "requires": {
+        "raf": "3.4.1",
+        "tween-functions": "1.2.0"
       }
     },
     "read-pkg": {
@@ -14555,6 +14679,64 @@
         "inherits": "2.0.4"
       }
     },
+    "rmc-align": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/rmc-align/-/rmc-align-1.0.0.tgz",
+      "integrity": "sha512-3gEa5/+hqqoEVoeQ25KoRc8DOsXIdSaVpaBq1zQFaV941LR3xvZIRTlxTDT/IagYwoGM1KZea/jd7cNMYP34Rg==",
+      "requires": {
+        "babel-runtime": "6.26.0",
+        "dom-align": "1.10.2",
+        "rc-util": "4.11.0"
+      }
+    },
+    "rmc-calendar": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/rmc-calendar/-/rmc-calendar-1.1.4.tgz",
+      "integrity": "sha512-xxQZaPFDnpHt4IFO8mukYrXSgC1W8LcNVp+EoX4iyeOJFimungOKB/iP5/cy+st8yXq8lUgk9TXsHNtM6Xo6ZA==",
+      "requires": {
+        "babel-runtime": "6.26.0",
+        "rc-animate": "2.10.0",
+        "rmc-date-picker": "6.0.10"
+      }
+    },
+    "rmc-cascader": {
+      "version": "5.0.3",
+      "resolved": "https://registry.npmjs.org/rmc-cascader/-/rmc-cascader-5.0.3.tgz",
+      "integrity": "sha512-PxDhMjWViDdG4SMZqoXtAthGwgDyYnyxxZEE17IDDYsiCHpWtOhoIL8nsI+/hZ212UT/XF2LpqCsOlMoJiYk+w==",
+      "requires": {
+        "array-tree-filter": "2.1.0",
+        "babel-runtime": "6.26.0",
+        "rmc-picker": "5.0.10"
+      }
+    },
+    "rmc-date-picker": {
+      "version": "6.0.10",
+      "resolved": "https://registry.npmjs.org/rmc-date-picker/-/rmc-date-picker-6.0.10.tgz",
+      "integrity": "sha512-/9+I6lm3EDEl6M7862V6++zFuxwsM0UEq8wSHbotYIPPmyB/65gx1cviblghOv2QfB0O9+U2w3qEJlRP/WsMrA==",
+      "requires": {
+        "babel-runtime": "6.26.0",
+        "rmc-picker": "5.0.10"
+      }
+    },
+    "rmc-dialog": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/rmc-dialog/-/rmc-dialog-1.1.1.tgz",
+      "integrity": "sha512-28aJqtPTX6v13Z/aU1WBy1AFIXkE74PxZXde7JvtEIy9hQDTjH8fqOi822BpzAbXCyNE7jF9iFomy3H2ClsDJA==",
+      "requires": {
+        "babel-runtime": "6.26.0",
+        "rc-animate": "2.10.0"
+      }
+    },
+    "rmc-drawer": {
+      "version": "0.4.11",
+      "resolved": "https://registry.npmjs.org/rmc-drawer/-/rmc-drawer-0.4.11.tgz",
+      "integrity": "sha512-YfB9XEJ8iM0MMuLWAK4313uOxSM8NAljC8Cqun1KamXutglYTuRviUuTLNSOzV8HHPp5kNpsVduvPCGLWXvThw==",
+      "requires": {
+        "babel-runtime": "6.26.0",
+        "classnames": "2.2.6",
+        "prop-types": "15.7.2"
+      }
+    },
     "rmc-feedback": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/rmc-feedback/-/rmc-feedback-2.0.0.tgz",
@@ -14562,6 +14744,118 @@
       "requires": {
         "babel-runtime": "6.26.0",
         "classnames": "2.2.6"
+      }
+    },
+    "rmc-input-number": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/rmc-input-number/-/rmc-input-number-1.0.5.tgz",
+      "integrity": "sha512-prPkEtoOVde77GnEnEaBeWjBobMOPgGqU5bd0gxfp1kt1pUN740mMpVAcH7uxpJjVfmw+kuGWtiz4S7CueagSg==",
+      "requires": {
+        "babel-runtime": "6.26.0",
+        "classnames": "2.2.6",
+        "rmc-feedback": "2.0.0"
+      }
+    },
+    "rmc-list-view": {
+      "version": "0.11.5",
+      "resolved": "https://registry.npmjs.org/rmc-list-view/-/rmc-list-view-0.11.5.tgz",
+      "integrity": "sha512-eMOC5394tLNawcdEEhF7boMpQgpjJGDdL5lS+LblAWdBec7Q4EYkUdnrKNbt+O9k5RGM6nSLAGZK5oB4FN85Lg==",
+      "requires": {
+        "babel-runtime": "6.26.0",
+        "classnames": "2.2.6",
+        "fbjs": "0.8.17",
+        "prop-types": "15.7.2",
+        "warning": "3.0.0",
+        "zscroller": "0.4.8"
+      },
+      "dependencies": {
+        "warning": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz",
+          "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=",
+          "requires": {
+            "loose-envify": "1.4.0"
+          }
+        }
+      }
+    },
+    "rmc-notification": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/rmc-notification/-/rmc-notification-1.0.0.tgz",
+      "integrity": "sha512-9sPxjltFvtRLt2v312Hu7OXwk53pHkBYgINRDmnJ3A5NF1qtJeCCcdN0Xr0fzJ6sbQvtGju822tWHdzYA9u7Vw==",
+      "requires": {
+        "babel-runtime": "6.26.0",
+        "classnames": "2.2.6",
+        "prop-types": "15.7.2",
+        "rc-animate": "2.10.0",
+        "rc-util": "4.11.0"
+      }
+    },
+    "rmc-nuka-carousel": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/rmc-nuka-carousel/-/rmc-nuka-carousel-3.0.1.tgz",
+      "integrity": "sha512-w2EPTERMUUZqcUSKFuejjin7xsMlhrLrtS0A/igTXpFJGq3kemDKcRi7q3pSYDuZBHYBl5iV4UqsLLkjdFtrYA==",
+      "requires": {
+        "exenv": "1.2.2",
+        "raf": "3.4.1"
+      }
+    },
+    "rmc-picker": {
+      "version": "5.0.10",
+      "resolved": "https://registry.npmjs.org/rmc-picker/-/rmc-picker-5.0.10.tgz",
+      "integrity": "sha512-KZ70+WjcaZHnG5GyCxWCPFWAZ12s6NqyrbW73LeqH0WEqaTMMs0sOrk2f4mQAZ/CGT0XcFN6VZLw7Ozoxfn7LA==",
+      "requires": {
+        "babel-runtime": "6.26.0",
+        "classnames": "2.2.6",
+        "rmc-dialog": "1.1.1",
+        "rmc-feedback": "2.0.0"
+      }
+    },
+    "rmc-pull-to-refresh": {
+      "version": "1.0.12",
+      "resolved": "https://registry.npmjs.org/rmc-pull-to-refresh/-/rmc-pull-to-refresh-1.0.12.tgz",
+      "integrity": "sha512-OQPRY5RzhRNi0amyvwIrENqQHQRJh7bF8Hdcn/wqTSKsC5Cn1pGJ4bNG1+iL9w1N+PoKt+ESvL2ap8fVqwuH1w==",
+      "requires": {
+        "babel-runtime": "6.26.0",
+        "classnames": "2.2.6"
+      }
+    },
+    "rmc-steps": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/rmc-steps/-/rmc-steps-1.0.0.tgz",
+      "integrity": "sha512-VuQEPC2P4PQ7DdZDCIbGfFTfzzTwLAyey+fSJUolc4qheIE7bN4oogH2xDZurM2TTpAQHg2aMMv4E6JYyVbUqA==",
+      "requires": {
+        "babel-runtime": "6.26.0",
+        "classnames": "2.2.6"
+      }
+    },
+    "rmc-tabs": {
+      "version": "1.2.29",
+      "resolved": "https://registry.npmjs.org/rmc-tabs/-/rmc-tabs-1.2.29.tgz",
+      "integrity": "sha512-wiJS9WSJi9JH9GQO+FqncX+zaHP31qHa/S8nDW9UXUx0qbCX294QcJEnvfB+WmsfUws7rXjs6sOQp5EDiObnHg==",
+      "requires": {
+        "babel-runtime": "6.26.0",
+        "rc-gesture": "0.0.22"
+      }
+    },
+    "rmc-tooltip": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/rmc-tooltip/-/rmc-tooltip-1.0.1.tgz",
+      "integrity": "sha512-fSDArf2BlMVrHExmBiqb2TkCRJHshvXFJQ/7tMraLellwaJLNiwrxtWpW329k3S+zTtoVG8UxFS1TjBGEsMzRg==",
+      "requires": {
+        "babel-runtime": "6.26.0",
+        "rmc-trigger": "1.0.12"
+      }
+    },
+    "rmc-trigger": {
+      "version": "1.0.12",
+      "resolved": "https://registry.npmjs.org/rmc-trigger/-/rmc-trigger-1.0.12.tgz",
+      "integrity": "sha512-AccQniX7PX7Pm8hBhHEsnf3JU6CA61Xc7fAt2WbO+oXrGaI/jqN8C3COhhOXG54S5iTOjLS26j858zshwAxR9A==",
+      "requires": {
+        "babel-runtime": "6.26.0",
+        "rc-animate": "2.10.0",
+        "rc-util": "4.11.0",
+        "rmc-align": "1.0.0"
       }
     },
     "rsvp": {
@@ -16187,6 +16481,11 @@
         "safe-buffer": "5.1.2"
       }
     },
+    "tween-functions": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/tween-functions/-/tween-functions-1.2.0.tgz",
+      "integrity": "sha1-GuOlDnxguz3vd06scHrLynO7w/8="
+    },
     "tweetnacl": {
       "version": "0.14.5",
       "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
@@ -17465,6 +17764,14 @@
       "version": "4.1.2",
       "resolved": "https://registry.npmjs.org/zrender/-/zrender-4.1.2.tgz",
       "integrity": "sha512-MJYEo1ZOVesjxYsfcGtPXnUREmh4ACMV08QZLGZ3S7D1xOd96iz3O6nf6pv5PHb5NSHkbizr7ChSIgtAGwncvA=="
+    },
+    "zscroller": {
+      "version": "0.4.8",
+      "resolved": "https://registry.npmjs.org/zscroller/-/zscroller-0.4.8.tgz",
+      "integrity": "sha512-G5NiNLKx2+QhhvZi2yV1jjVXY50otktxkseX2hG2N/eixohOUk0AY8ZpbAxNqS9oJS/NxItCsowupy2tsXxAMw==",
+      "requires": {
+        "babel-runtime": "6.26.0"
+      }
     }
   }
 }
diff --git a/package.json b/package.json
index c53b0cd..5b0c255 100644
--- a/package.json
+++ b/package.json
@@ -11,6 +11,7 @@
     "@typescript-eslint/eslint-plugin": "1.13.0",
     "@typescript-eslint/parser": "1.13.0",
     "antd": "^3.23.2",
+    "antd-mobile": "^2.3.3",
     "axios": "^0.19.0",
     "babel-eslint": "10.0.2",
     "babel-jest": "^24.8.0",
@@ -163,7 +164,16 @@
         {
           "libraryName": "antd",
           "style": "css"
-        }
+        },
+        "pc"
+      ],
+      [
+        "import",
+        {
+          "libraryName": "antd-mobile",
+          "style": "css"
+        },
+        "mobile"
       ]
     ]
   },
diff --git a/public/options.js b/public/options.js
index ef760b8..6d4ba86 100644
--- a/public/options.js
+++ b/public/options.js
@@ -1,20 +1,8 @@
 window.GLOB = {
-  service: 'mkwms',
   appId: '201912040924165801464FF1788654BC5AC73',
   appkey: '20191106103859640976D6E924E464D029CF0',
   mainSystemApi: 'http://cloud.mk9h.cn/webapi/dostars',
   systemType: '',
-  platTitle: '',
-  platName: '',
-  favicon: '',
-  loginlogo: '',
-  mainlogo: '',
-  bgImage: '',
-  copyRight: '',
-  ICP: '',
   lineColor: '',
-  webSite: '',
-  doclogo: '',
-  style: '',
   filter: 'false'
 }
\ No newline at end of file
diff --git a/public/options.txt b/public/options.txt
index 21a57dc..c3248c7 100644
--- a/public/options.txt
+++ b/public/options.txt
@@ -1,18 +1,6 @@
-service       -- 鏈嶅姟鍚�
 appId         -- 浜戠鐢熸垚鐨勫簲鐢↖D
 appkey        -- 浜戠鐢熸垚鐨勫簲鐢ㄥ瘑閽�
 mainSystemApi -- sso绯荤粺鐨勬帴鍙h矾寰勶紝娉細涓氬姟绯荤粺闇�瑕佸~鍐欙紝涓斿�间负閫氱敤鎺ュ彛鐨勫畬鏁磋矾寰�
-systemType    -- 涓氬姟绯荤粺浣跨敤姝ゅ弬鏁帮紝鍒ゆ柇绯荤粺涓烘祴璇曟垨姝e紡锛坥fficial锛夛紝姝e紡绯荤粺寮�鍙戞潈闄愬彧鏈夌郴缁熷崌绾�
-platTitle     -- 绯荤粺鏍囬鏍忔爣棰�
-platName      -- 绯荤粺鍚嶇О
-favicon       -- 绯荤粺鏍囬鏍忓浘鏍�
-loginlogo     -- 鐧诲綍椤祃ogo
-mainlogo      -- 涓婚〉logo
-bgImage       -- 鐧诲綍椤佃儗鏅浘
-copyRight     -- 鍏徃鐗堟潈鍙婂悕绉扮瓑淇℃伅
-ICP           -- icp澶囨淇℃伅
+systemType    -- 涓氬姟绯荤粺浣跨敤姝ゅ弬鏁帮紝鍒ゆ柇绯荤粺涓烘祴璇曟垨姝e紡锛坥fficial锛夛紝姝e紡绯荤粺寮�鍙戞潈闄愬彧鍚湁绯荤粺鍗囩骇绛夐檺瀹氬姛鑳�
 lineColor     -- 鍒嗗壊绾块鑹�
-webSite       -- 鍏徃缃戝潃
-doclogo       -- 鏂囨。绠$悊logo
-style         -- 椤甸潰椋庢牸
 filter        -- 椤甸潰婊ら暅锛屽�间负'true'鏃讹紝椤甸潰鏄剧ず涓洪粦鐧借壊
\ No newline at end of file
diff --git a/src/api/index.js b/src/api/index.js
index 6b34396..1867953 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -54,9 +54,8 @@
 
 class Api {
   constructor() {
-    let service = window.GLOB.service ? (/\/$/.test(window.GLOB.service) ? window.GLOB.service : window.GLOB.service + '/') : ''
     if (process.env.NODE_ENV === 'production') {
-      axios.defaults.baseURL = document.location.origin + '/' + service
+      axios.defaults.baseURL = document.location.origin + '/' + window.GLOB.service
     } else {
       // axios.defaults.baseURL = 'http://127.0.0.1:8888'
     }
diff --git a/src/assets/img/treepage.jpg b/src/assets/img/treepage.jpg
new file mode 100644
index 0000000..13bfae3
--- /dev/null
+++ b/src/assets/img/treepage.jpg
Binary files differ
diff --git a/src/components/header/index.jsx b/src/components/header/index.jsx
index 5ecb8a8..1654fe2 100644
--- a/src/components/header/index.jsx
+++ b/src/components/header/index.jsx
@@ -248,6 +248,7 @@
       if (options.systemType !== 'cloud' && window.GLOB.systemType !== 'official') {
         _param.linkurl = window.GLOB.linkurl
       }
+
       Api.getSystemConfig(_param).then(result => {
         let mainMenu = null
         if (result && result.status) {
@@ -677,6 +678,7 @@
         {this.props.editLevel === 'level4' ? <Button className="level4-close" type="primary" onClick={this.exitManage}>閫�鍑�</Button> : null}
         {/* 杩涘叆缂栬緫鎸夐挳 */}
         {this.props.editState && !this.props.editLevel ? <Icon onClick={this.enterEdit} className="edit-check" type="edit" /> : null}
+        {/* {this.props.editState && !this.props.editLevel ? <a href="#/mobile" target="blank" className="mobile" type="edit"> 绉诲姩绔�</a> : null} */}
         {/* 缂栬緫鑿滃崟 */}
         {this.props.editLevel === 'level1' ? <EditMenu menulist={this.state.menulist} reload={this.reload} exitEdit={this.exitEdit}/> : null}
         {/* 澶村儚銆佺敤鎴峰悕 */}
diff --git a/src/components/header/index.scss b/src/components/header/index.scss
index 1dad49d..9c7d09a 100644
--- a/src/components/header/index.scss
+++ b/src/components/header/index.scss
@@ -180,6 +180,12 @@
       background: rgba(0, 0, 0, 0);
     }
   }
+  .mobile {
+    position: absolute;
+    top: 100px;
+    right: 50px;
+    color: #1890ff;
+  }
 }
 .header-dropdown {
   li {
diff --git a/src/components/tabview/index.jsx b/src/components/tabview/index.jsx
index 25a6af6..587c42a 100644
--- a/src/components/tabview/index.jsx
+++ b/src/components/tabview/index.jsx
@@ -29,12 +29,12 @@
 const TabForm = asyncComponent(() => import('@/tabviews/tabform'))
 const FormTab = asyncComponent(() => import('@/tabviews/formtab'))
 
-let service = window.GLOB.service ? (/\/$/.test(window.GLOB.service) ? window.GLOB.service : window.GLOB.service + '/') : ''
+let service = ''
 
 if (process.env.NODE_ENV === 'production') {
-  service = document.location.origin + '/' + service + 'zh-CN/'
+  service = document.location.origin + '/' + window.GLOB.service + 'zh-CN/'
 } else {
-  service = 'http://qingqiumarket.cn/' + service + 'zh-CN/'
+  service = window.GLOB.location + window.GLOB.service + 'zh-CN/'
 }
 
 class Header extends Component {
diff --git a/src/index.js b/src/index.js
index 3dc43e3..9b58aac 100644
--- a/src/index.js
+++ b/src/index.js
@@ -59,16 +59,17 @@
   try {
     _systemMsg = JSON.parse(window.decodeURIComponent(window.atob(_systemMsg)))
 
-    window.GLOB.platTitle = _systemMsg.platTitle || window.GLOB.platTitle
-    window.GLOB.platName = _systemMsg.platName || window.GLOB.platName
-    window.GLOB.favicon = _systemMsg.favicon || window.GLOB.favicon
-    window.GLOB.loginlogo = _systemMsg.loginlogo || window.GLOB.loginlogo
-    window.GLOB.copyRight = _systemMsg.copyRight || window.GLOB.copyRight
-    window.GLOB.ICP = _systemMsg.ICP || window.GLOB.ICP
-    window.GLOB.mainlogo = _systemMsg.mainlogo || window.GLOB.mainlogo
-    window.GLOB.doclogo = _systemMsg.doclogo || window.GLOB.doclogo
-    window.GLOB.webSite = _systemMsg.webSite || window.GLOB.webSite
-
+    window.GLOB.platTitle = _systemMsg.platTitle
+    window.GLOB.platName = _systemMsg.platName
+    window.GLOB.favicon = _systemMsg.favicon
+    window.GLOB.loginlogo = _systemMsg.loginlogo
+    window.GLOB.copyRight = _systemMsg.copyRight
+    window.GLOB.ICP = _systemMsg.ICP
+    window.GLOB.bgImage = _systemMsg.bgImage
+    window.GLOB.mainlogo = _systemMsg.mainlogo
+    window.GLOB.doclogo = _systemMsg.doclogo
+    window.GLOB.webSite = _systemMsg.webSite
+    window.GLOB.style = _systemMsg.style
 
     if (window.GLOB.favicon) {
       let link = document.querySelector("link[rel*='icon']") || document.createElement('link')
@@ -82,7 +83,7 @@
   }
 }
 
-document.title = window.GLOB.platTitle
+document.title = window.GLOB.platTitle || ''
 
 if (window.GLOB.filter === 'true') {
   let html = document.getElementsByTagName('html')[0]
@@ -93,11 +94,14 @@
 }
 
 if (process.env.NODE_ENV === 'production') { // 鐢ㄤ簬鏍¢獙鏄惁瀛樺湪寮�鍙戞潈闄�
+  let _service = window.location.href.split('/index.html')[0].replace(new RegExp(document.location.origin + '/?', 'ig'), '')
   window.GLOB.linkurl = window.location.href.split('#')[0]
+  window.GLOB.service = _service ? _service + '/' : ''
 } else {
   window.GLOB.linkurl = ''
+  window.GLOB.location = 'http://qingqiumarket.cn/'
+  window.GLOB.service = 'mkwms/'
 }
-
 
 const option = {
   white: 'mk-white'
diff --git a/src/router/index.js b/src/router/index.js
index 2960566..9cc1088 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -5,17 +5,19 @@
 import asyncComponent from '@/utils/asyncComponent'
 import asyncLoadComponent from '@/utils/asyncLoadComponent'
 
-const main = asyncLoadComponent(() => import('@/views/main'))
-const PrintTemplate = asyncLoadComponent(() => import('@/views/printTemplate'))
-const login = asyncLoadComponent(() => import('@/views/login'))
+const Main = asyncLoadComponent(() => import('@/views/main'))
+const Login = asyncLoadComponent(() => import('@/views/login'))
 const NotFound = asyncComponent(() => import('@/views/404'))
+const Mobile = asyncLoadComponent(() => import('@/views/mobile'))
+const PrintT = asyncLoadComponent(() => import('@/views/printTemplate'))
 
 const routers = [
-  {path: '/login', name: 'login', component: login, auth: false},
-  {path: '/print/:param', name: 'print', component: PrintTemplate, auth: false},
+  {path: '/login', name: 'login', component: Login, auth: false},
+  {path: '/print/:param', name: 'print', component: PrintT, auth: false},
   {path: '/ssologin/:param', name: 'ssologin', auth: true},
-  {path: '/main', name: 'main', component: main, auth: true},
-  {path: '/main/:param', name: 'pmain', component: main, auth: true}
+  {path: '/main', name: 'main', component: Main, auth: true},
+  {path: '/mobile', name: 'mobile', component: Mobile, auth: true},
+  {path: '/main/:param', name: 'pmain', component: Main, auth: true}
 ]
 
 export default class RouteConfig extends Component {
diff --git a/src/tabviews/treepage/index.jsx b/src/tabviews/treepage/index.jsx
index 1f29603..b25f051 100644
--- a/src/tabviews/treepage/index.jsx
+++ b/src/tabviews/treepage/index.jsx
@@ -130,7 +130,7 @@
 
       config.tabgroups.forEach(group => {
         let _group = fromJS(group).toJS()
-        _group.sublist = _group.sublist.filter(tab => !tab.level)
+        _group.sublist = _group.sublist.filter(tab => tab.level === 0)
 
         if (_group.sublist.length > 0) {
           _tabActive[_group.uuid] = _group.sublist[0].uuid
diff --git a/src/tabviews/zshare/cardcomponent/index.scss b/src/tabviews/zshare/cardcomponent/index.scss
index 75c7e06..4f63e95 100644
--- a/src/tabviews/zshare/cardcomponent/index.scss
+++ b/src/tabviews/zshare/cardcomponent/index.scss
@@ -9,6 +9,9 @@
       margin-right: 0px;
     }
   }
+  > .chart-card-box {
+    margin-bottom: 20px;
+  }
 
   .chart-card-box:not(.ant-col) {
     display: inline-block;
diff --git a/src/tabviews/zshare/fileupload/index.jsx b/src/tabviews/zshare/fileupload/index.jsx
index ca939be..479a886 100644
--- a/src/tabviews/zshare/fileupload/index.jsx
+++ b/src/tabviews/zshare/fileupload/index.jsx
@@ -5,10 +5,9 @@
 import Api from '@/api'
 import './index.scss'
 
-let service = window.GLOB.service ? (/\/$/.test(window.GLOB.service) ? window.GLOB.service : window.GLOB.service + '/') : ''
 let Url = '/Upload'
 if (process.env.NODE_ENV === 'production') {
-  Url = document.location.origin + '/' + service + 'zh-CN/Home/Upload'
+  Url = document.location.origin + '/' + window.GLOB.service + 'zh-CN/Home/Upload'
 }
 
 class FileUpload extends Component {
diff --git a/src/templates/sharecomponent/tabscomponent/tabform/index.jsx b/src/templates/sharecomponent/tabscomponent/tabform/index.jsx
index 60b183a..cb93c5b 100644
--- a/src/templates/sharecomponent/tabscomponent/tabform/index.jsx
+++ b/src/templates/sharecomponent/tabscomponent/tabform/index.jsx
@@ -1,6 +1,6 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
-import { Form, Row, Col, Input, Select, Icon, Tooltip, Radio, InputNumber } from 'antd'
+import { Form, Row, Col, Input, Select, Icon, Tooltip, Radio, InputNumber, notification } from 'antd'
 import { formRule } from '@/utils/option.js'
 import Utils from '@/utils/utils.js'
 import './index.scss'
@@ -272,6 +272,12 @@
           }
           if (values.level === undefined) {
             values.level = ''
+          } else if (values.supMenu && values.level === 0) {
+            notification.warning({
+              top: 92,
+              message: '瀛樺湪涓婄骇鏍囩锛屼笖璁剧疆鏄剧ず绾у埆涓�0鏃讹紝浼氶�犳垚瀛愯〃涓寜閽笉鍙敤锛�',
+              duration: 5
+            })
           }
 
           resolve(values)
diff --git a/src/utils/option.js b/src/utils/option.js
index 769ea29..2624b2c 100644
--- a/src/utils/option.js
+++ b/src/utils/option.js
@@ -2,6 +2,7 @@
 import enUS from '@/locales/en-US/share.js'
 import nortable from '@/assets/img/normaltable.jpg'
 import mainsubtable from '@/assets/img/mainsubtable.jpg'
+import treepage from '@/assets/img/treepage.jpg'
 import rolemanage from '@/assets/img/rolemanage.jpg'
 
 const _dict =  sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS
@@ -64,7 +65,7 @@
   {
     title: '鏍戝舰椤甸潰',
     type: 'TreePage',
-    url: mainsubtable,
+    url: treepage,
     baseconfig: '',
     isSystem: true
   },
diff --git a/src/utils/utils.js b/src/utils/utils.js
index dd981d9..8b14dfd 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -2,8 +2,6 @@
 import md5 from 'md5'
 import options from '@/store/options.js'
 
-const service = window.GLOB.service ? (/\/$/.test(window.GLOB.service) ? window.GLOB.service : window.GLOB.service + '/') : ''
-
 export default class Utils {
   /**
    * @description 鐢熸垚32浣島uid string + 鏃堕棿
@@ -553,9 +551,9 @@
 
     let baseurl = ''
     if (process.env.NODE_ENV === 'production') {
-      baseurl = document.location.origin + '/' + service
+      baseurl = document.location.origin + '/' + window.GLOB.service
     } else {
-      baseurl = 'http://qingqiumarket.cn/' + service
+      baseurl = window.GLOB.location + window.GLOB.service
     }
     // if (!/Content\/images\/upload\//.test(url)) {
     //   baseurl = baseurl + 'Content/images/upload/'
@@ -576,7 +574,7 @@
     if (options.cloudServiceApi) {
       baseurl = options.cloudServiceApi.replace(/webapi(.*)$/, '')
     } else {
-      baseurl = document.location.origin + '/' + service
+      baseurl = document.location.origin + '/' + window.GLOB.service
     }
 
     return url.match(/^http/) || url.match(/^\/\//) ? url : baseurl + url
diff --git a/src/views/login/index.jsx b/src/views/login/index.jsx
index 19b26f1..5b0d9b9 100644
--- a/src/views/login/index.jsx
+++ b/src/views/login/index.jsx
@@ -24,13 +24,13 @@
     dict: iszhCN ? zhCN : enUS,
     isDisabled: false,
     auth: false,
-    loginlogo: window.GLOB.loginlogo,
-    bgImage: window.GLOB.bgImage,
-    platName: window.GLOB.platName,
-    copyRight: window.GLOB.copyRight,
-    ICP: window.GLOB.ICP,
-    lineColor: window.GLOB.lineColor,
-    webSite: window.GLOB.webSite,
+    loginlogo: window.GLOB.loginlogo || '',
+    bgImage: window.GLOB.bgImage || '',
+    platName: window.GLOB.platName || '',
+    copyRight: window.GLOB.copyRight || '',
+    ICP: window.GLOB.ICP || '',
+    lineColor: window.GLOB.lineColor || '',
+    webSite: window.GLOB.webSite || '',
     langList: [],
     loaded: false,
     syncApp: false,
@@ -189,9 +189,13 @@
           ICP: res.ICP || '',
           mainlogo: res.indexlogo || '',
           doclogo: res.doclogo || '',
+          style: res.CSS || '',
           webSite: res.WebSite || ''
         }
 
+        // url鏍囬
+        document.title = systemMsg.platTitle
+
         try {
           localStorage.setItem(_url, window.btoa(window.encodeURIComponent(JSON.stringify(systemMsg))))
         } catch {
diff --git a/src/views/mobile/index.jsx b/src/views/mobile/index.jsx
new file mode 100644
index 0000000..db6243f
--- /dev/null
+++ b/src/views/mobile/index.jsx
@@ -0,0 +1,121 @@
+import React, {Component} from 'react'
+import {connect} from 'react-redux'
+// import { message, Modal } from 'antd'
+import { Flex, WhiteSpace } from 'antd-mobile'
+
+// import Api from '@/api'
+import zhCN from '@/locales/zh-CN/login.js'
+import enUS from '@/locales/en-US/login.js'
+// import asyncComponent from '@/utils/asyncComponent'
+// import asyncLoadComponent from '@/utils/asyncLoadComponent'
+import './index.scss'
+
+
+const PlaceHolder = ({ className = '', ...restProps }) => (
+  <div className={`${className} placeholder`} {...restProps}>Block</div>
+)
+
+class Mobile extends Component {
+  state = {
+    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
+  }
+
+  /**
+   * @description 缁勪欢閿�姣侊紝娓呴櫎state鏇存柊
+   */
+  componentWillUnmount () {
+    this.setState = () => {
+      return
+    }
+  }
+
+  render () {
+    // const {  } = this.state
+
+    return (
+      <div className="mobile-container">
+        <div className="flex-container">
+          <div className="sub-title">Basic</div>
+          <Flex>
+            <Flex.Item><PlaceHolder /></Flex.Item>
+            <Flex.Item><PlaceHolder /></Flex.Item>
+          </Flex>
+          <WhiteSpace size="lg" />
+          <Flex>
+            <Flex.Item><PlaceHolder /></Flex.Item>
+            <Flex.Item><PlaceHolder /></Flex.Item>
+            <Flex.Item><PlaceHolder /></Flex.Item>
+          </Flex>
+          <WhiteSpace size="lg" />
+          <Flex>
+            <Flex.Item><PlaceHolder /></Flex.Item>
+            <Flex.Item><PlaceHolder /></Flex.Item>
+            <Flex.Item><PlaceHolder /></Flex.Item>
+            <Flex.Item><PlaceHolder /></Flex.Item>
+          </Flex>
+          <WhiteSpace size="lg" />
+
+          <div className="sub-title">Wrap</div>
+          <Flex wrap="wrap">
+            <PlaceHolder className="inline" />
+            <PlaceHolder className="inline" />
+            <PlaceHolder className="inline" />
+            <PlaceHolder className="inline" />
+            <PlaceHolder className="inline" />
+            <PlaceHolder className="inline" />
+            <PlaceHolder className="inline" />
+          </Flex>
+          <WhiteSpace size="lg" />
+
+          <div className="sub-title">Align</div>
+          <Flex justify="center">
+            <PlaceHolder className="inline" />
+            <PlaceHolder className="inline" />
+            <PlaceHolder className="inline" />
+          </Flex>
+          <WhiteSpace />
+          <Flex justify="end">
+            <PlaceHolder className="inline" />
+            <PlaceHolder className="inline" />
+            <PlaceHolder className="inline" />
+          </Flex>
+          <WhiteSpace />
+          <Flex justify="between">
+            <PlaceHolder className="inline" />
+            <PlaceHolder className="inline" />
+            <PlaceHolder className="inline" />
+          </Flex>
+
+          <WhiteSpace />
+          <Flex align="start">
+            <PlaceHolder className="inline" />
+            <PlaceHolder className="inline small" />
+            <PlaceHolder className="inline" />
+          </Flex>
+          <WhiteSpace />
+          <Flex align="end">
+            <PlaceHolder className="inline" />
+            <PlaceHolder className="inline small" />
+            <PlaceHolder className="inline" />
+          </Flex>
+          <WhiteSpace />
+          <Flex align="baseline">
+            <PlaceHolder className="inline" />
+            <PlaceHolder className="inline small" />
+            <PlaceHolder className="inline" />
+          </Flex>
+        </div>
+      </div>
+    )
+  }
+}
+
+const mapStateToProps = () => {
+  return {}
+}
+
+const mapDispatchToProps = () => {
+  return {}
+}
+
+export default connect(mapStateToProps, mapDispatchToProps)(Mobile)
\ No newline at end of file
diff --git a/src/views/mobile/index.scss b/src/views/mobile/index.scss
new file mode 100644
index 0000000..10d6527
--- /dev/null
+++ b/src/views/mobile/index.scss
@@ -0,0 +1,26 @@
+.mobile-container {
+  .flex-container {
+    margin: 0 15px;
+  }
+  .flex-container .inline {
+    width: 80px!important;
+    margin: 9px 9px 9px 0;
+  }
+  .flex-container .small {
+    height: 20px!important;
+    line-height: 20px!important;
+  }
+  .sub-title {
+    color: #888;
+    font-size: 14px;
+    padding: 30px 0 18px 0;
+  }
+  .placeholder {
+    background-color: #ebebef;
+    color: #bbb;
+    text-align: center;
+    height: 30px;
+    line-height: 30px;
+    width: 100%;
+  }
+}
diff --git a/src/views/printTemplate/fileupload/index.jsx b/src/views/printTemplate/fileupload/index.jsx
index 682498f..d94c5cd 100644
--- a/src/views/printTemplate/fileupload/index.jsx
+++ b/src/views/printTemplate/fileupload/index.jsx
@@ -4,10 +4,9 @@
 import Api from '@/api'
 import './index.scss'
 
-let service = window.GLOB.service ? (/\/$/.test(window.GLOB.service) ? window.GLOB.service : window.GLOB.service + '/') : ''
 let Url = '/Upload'
 if (process.env.NODE_ENV === 'production') {
-  Url = document.location.origin + '/' + service + 'zh-CN/Home/Upload'
+  Url = document.location.origin + '/' + window.GLOB.service + 'zh-CN/Home/Upload'
 }
 
 class FileUpload extends Component {

--
Gitblit v1.8.0