king
2020-06-04 113313a0496f958860a156b4330960e0d12522a7
2020-06-04
18个文件已修改
3个文件已添加
601 ■■■■ 已修改文件
package-lock.json 307 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/options.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/options.txt 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/index.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/img/treepage.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/components/header/index.jsx 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/header/index.scss 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/tabview/index.jsx 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/index.js 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/treepage/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/zshare/cardcomponent/index.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/zshare/fileupload/index.jsx 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/tabscomponent/tabform/index.jsx 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/option.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/utils.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login/index.jsx 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mobile/index.jsx 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mobile/index.scss 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/printTemplate/fileupload/index.jsx 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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"
      }
    }
  }
}
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"
      ]
    ]
  },
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'
}
public/options.txt
@@ -1,18 +1,6 @@
service       -- 服务名
appId         -- 云端生成的应用ID
appkey        -- 云端生成的应用密钥
mainSystemApi -- sso系统的接口路径,注:业务系统需要填写,且值为通用接口的完整路径
systemType    -- 业务系统使用此参数,判断系统为测试或正式(official),正式系统开发权限只有系统升级
platTitle     -- 系统标题栏标题
platName      -- 系统名称
favicon       -- 系统标题栏图标
loginlogo     -- 登录页logo
mainlogo      -- 主页logo
bgImage       -- 登录页背景图
copyRight     -- 公司版权及名称等信息
ICP           -- icp备案信息
systemType    -- 业务系统使用此参数,判断系统为测试或正式(official),正式系统开发权限只含有系统升级等限定功能
lineColor     -- 分割线颜色
webSite       -- 公司网址
doclogo       -- 文档管理logo
style         -- 页面风格
filter        -- 页面滤镜,值为'true'时,页面显示为黑白色
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'
    }
src/assets/img/treepage.jpg
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}
        {/* 头像、用户名 */}
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 {
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 {
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'
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 {
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
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;
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 {
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)
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
  },
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位uuid 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
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 {
src/views/mobile/index.jsx
New file
@@ -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)
src/views/mobile/index.scss
New file
@@ -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%;
  }
}
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 {