田源
2024-11-01 8c107924ebc49105fa81f13f972f1710b42c1503
首页样式修改
已修改23个文件
已添加8个文件
4483 ■■■■■ 文件已修改
Source/plt-web/plt-web-ui/public/cdn/iconfont/avue/iconfont.css 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/public/cdn/iconfont/plt-web/demo.css 539 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/public/cdn/iconfont/plt-web/demo_index.html 1016 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/public/cdn/iconfont/plt-web/iconfont.css 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/public/cdn/iconfont/plt-web/iconfont.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/public/cdn/iconfont/plt-web/iconfont.json 261 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/public/cdn/iconfont/plt-web/iconfont.ttf 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/public/cdn/iconfont/plt-web/iconfont.woff 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/public/cdn/iconfont/plt-web/iconfont.woff2 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/public/index.html 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/App.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/config/env.js 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/config/iconList.js 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/page/login/userlogin.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/util/func.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/authority/ui/typeAction/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/attributePool/index.vue 584 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/enumType/index.vue 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/lifeCycle/index.vue 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/linkType/index.vue 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/statusPool/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/versioning/index.vue 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/formDialog.vue 202 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue 484 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/queryDefine/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/system/department/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/system/user/option.js 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/systemModel/businessModel/index.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/wel/index.vue 853 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/public/cdn/iconfont/avue/iconfont.css
@@ -1,10 +1,9 @@
@font-face {font-family: "iconfont";
@font-face {
  font-family: "iconfont";
  src: url('iconfont.eot?t=1611236720878'); /* IE9 */
  src: url('iconfont.eot?t=1611236720878#iefix') format('embedded-opentype'), /* IE6-IE8 */
  url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'),
  src: url('iconfont.eot?t=1611236720878#iefix') format('embedded-opentype'), /* IE6-IE8 */ url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAACdsAAsAAAAARRgAACccAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCJfgrxANggATYCJAOBPAtgAAQgBYRtB4Q3G483ZYYYbBwAT2O+eGT//ymBGzLkfWj1qoRW0mhKT02ZrqnpgpjcUUqvpaDH9iscGkeHPe6rEeYUhPBnbS5/sB8WbPCH10XERHGw3xn375gxswC7DaWEovZ+603vpxT9yUxQSCTlER5NoRRCIhRCgpx3JCGpGyLdasqmtM1uOn1TAA2IKTQrG0JCQMGErtAFRGxItRPqiRWVV9ArWBreWSteqbl71NOrKOqVqtiuNHjgudy/iXzPBx0ertEUy6KM4ijCHQBpfo4+VFNtxrILM4LCgGQlLMnUsqFAsBAoGAJFPH92vztfEtgOSZywIQBcwet929RqI74Q260omk1x+rs+/PcYC5AHBLbRJquWrbp+Lsxez97shxBcUCEByiA0hbEYi/90aqInmHhoA83pIWo5aKUW7Ob7HdSdAwn/ETA1taTSt26W0vwZpS67DO/Dw9juyn+nXck+S762kj130te1Uixfk1Ibug+6PAqANwFIsn1F/iZ9KQ2lNJwOS4WBITDwKUwB5DGPTZNxkMaXkbtCt3Uz+jO2fB9ebK1D5YwGFQvRvtj6/33DgLS+LZOXVY3P02YywJwPuxHfV+JTMkayEMXsMAbmRiIZdlkfgM/kyzd/LEESYIUIaHO+/VAsWAn+4rwv3qZ7ufJjwGFH4MAWeNhn7HrzANtkS9R03EeXCHrAAywc6VdKVgmz3GopGY96ystekyJDtlyF6iy3WX3q1z4d1DGd0hld1I9xrQ/Kbl08+Pz6LS9jfDoWUUmrrF34xCPxPGj1r6BZxoPecSbpZJBFzsI5j6Tg/kUfBUDS3EBNU8pYmRFsTA2NrKzt7NVNRIoyCjqyqhJ6Wipy8tJfs9X4fzwzXQslS31tFiYF6D5ZgM0e20MCDJCExABziAIYQLREDQJoQiqAFBQAMIYCAcpQEICBGIAAaQE2kF5iClHYtDCggDYBAFaQCWANmSlpmgVkkbQEAKhDiZQqtBQAiCAPQBHKAMhA2QAFKBegAxUCZKE6gCq0HCABbaaIrPUBQAvqB6hA+wBy0EGAPHQMwEGnANLQGYAtdBGgAf0I4BErAGaIlQBdxDMBFoizAUqI1wEsEQ8C9PGcrtMm2hZ4GhbAwdzOewD/y3f1i9Zj9qpOQs8mOZZFjA3BvSAFYiR6N8nqploBzIiNjI+kgDcWucjYZEMmoD4yhD20pWy4CJU6HQoKORafRffL/ks0VFMIj8V0S8aBigndGlULOUqlfITgSpLyRVJms/ncTGRvvmITrnfAx4k0e4PJe21a4o8hNM/JspRte5dWdtc5BuotQdRFd/GflxvteIOyj6OtHpSlDS/K3blP0cg3RV7giKe9df0Pdqr8Ng0+WISizbBYpk8YZzrVdWX6ABGbsKkDAxbBZn+TBySU4HG/ZkIq1UC3V01Fy3UYChu8x2/0xSL2949YT/TPddjFNt5gufZ3GGCAIMJ3wxaGyI6ZFjWviqJB3W/gDSUX29R+XcZjJfRDtBqj6ftJJHaegnjab4gaBdK3F9ABGFrQrwdVAlRNNJxDBgAvMAXwPVGIeso7hPnmsu7cgF3qiy11Vt471x6NAgy/7LcV1nWGOfqf9xP7ha/q7cCXktqW5WiEJNnferHWwqLPdp1D7ZemUbvtNLWFOh23Zey5k6PR+ePLumZPjMSWTq2c9I4jFJzshf4pjMWJxI+Bk89zt7Nqlnmv7eQLnLuVhcSB1pjgAnu41Hm6sERtqmbj2613UpK0Zltl481NtewO8bn2mrlbffz9SoU7p/VowCSab79mqVL6XVq6sWx7c1ouHHmWrY6JmEPk4cPnUQ/qDi4ePTFmSQRUsdW2kbRsDB19z6kdcU0XRhMLYFHbEvY7wnwvDBIkaLmlC1jwOdiyqqBtWHmwtAv4pG0WHLE9TVzqs51bNDlYhVK6bO/Rxv3NtDo2tOPD4u74bAuLThLnrPiV/t7MLbd2hFfaT+09m4G+jDRWWLQkNLuMFk8/Mr29ucoPyY8/59xsEg6jbcNCo6+zmhJtzRcs8M/21a35hvlQCZkqpFO+QH+0veiANKf55d6EwKJEspkgGC3LRGvypAy0hj4s6BRCkmltzOCtPHNDZzT1qbNFozd1/m7ra/dveRpBtGOAitV4V66WjlUayVC+/lO+9CD8azQUGw8kAJ4SBkJfT98TvncqzCjeI0aEe7kVBpF12LQCSVP29ffWCQXSLV0ZGKq3A90/0LhmD+WPBofjA6YiSt/Q2T8btqG+BgrRVkBXlEQjKck6SQH2JADjTnwQVXwAEP8vZj/wL8hWUw+U673wwX94GBH0YGB81KZanm6hlXa04dgoaitJiCU1Y4HH3EC33+pfxED8MBqxiIIlcomOqncs13Fde2aYlvuZfSKfbA2hrvnbnhgBGC7950urfNI/JU54xzdGProLh6baOnd3FCJw33UYNgWhX8909WN4I4R5d0H3bQgFVfC0fx4ED3zv6PJ9wHZ0UPWoDZFxoGrUxaLBejebsUmo68zKBFWaILYq0eAQdGyFpD77SaOUI6sE5GoYW9KrCe5a1h5jU+EuSxpXYWybBq/O77jGrwfEcoFe6ovEonHv+/i83mjeZHu4gwFysf5tT/soWlp4e8QbnMNgj5l/XjR/e1n37J2N4nn/rYRwg2nAbUofj9SM1VG4NaXahKniUMYKS0Yjxv0pTanawlKlsW0uX1+cL1ZnZil8DF+3779OZ0RVCnW22Mwz9YjMlSoc/q95tVtPt/Nw2q9/my+n/XA7T7t1/d3XCG000HICSb4YJWSdMVzw782mjTBFDuwP3uho3whqK08Gtq8ZkhMqjaXLxJLZXIm7prDVNUJ5D9sItM8QMHnm6GI2l3ti5Ts+husuBYQqnhKjTl500V8G7Y9uAvqdzsedfcY3aQGv+cF1/ZVoOTCtAO2kwfevreMVr1khzlXvFgnz4e534BXvHnm2+kyRrVHm6OCx56+NTf3JgcNcT9/Fl4VjWNBiqjheznAXBosjU4t3fSWEx8dP+tTCqCTB6CxMIv+6UkIzPSUJ9cKGoUQ7tJs8d3fSJZsvCH+EpVtD5XCQqt0YmTu5EXejaR2QT2TAHNfMLRLL2deBa+kxdp7fXBNDnxv/p8Pt544+tbfz+L73j7WePfLknuYjuyeW63cSrU8HarVstcx07+BdoDk6tiFqoNn8epWnxu+A7PHfN0gKxrUgYiBK+kxrNCmrAKiw1yp6FFr6dSFcAvBIqhSeEI3F1sg1PoO/Qr+M0GzBW6wm59o8EjGluIHJAOK/1Hm82bgmEiQQ8Eo4iIDw/G90VlIkoXzX5J8UmruL1OwssXpDhVsIPTG+6CsqR7fVgCnwfH1jDGy2DES7cM/W6Eo9ZfNjtX9b502ardHzzVXdO1pvxi511vbsbH+ZPX6Fwk/29hRO8Zx8ImHNK7LO7QHwiGfhEUzDt1i+l71uCmxQayTJB6ycYWt0nbV9L1eRYop8pJGWpF/m6KskGydvyGW7h/RNmkvQV2SWDiiFDf+YltJ0dQfvs2jwtbzSxz9UWBg+ZPLsKV5I8rcX/RvHL0Lbnf4oadjLhjmavFPOrDFz8byCVZKk3tPEkoq+GJf0BUltxd8vpVcrioWBayt97yrDXaOtxRWUTk6SMemQX89EVXay/V13UYD/fBEQngjDyPTc4OuDH9RHHWQV+z/qf7W67A3w5uyjjww8f2RkOV659PyzQ4/tW/k2tILF+hzc9t/Ywp3lM7c33CyunSvJu2ZL1bKFexDu6kyEsPzkLVmebp4uBBfPwvgZ38YXWqvBzOlhMBXUMBXUTMMQCuqFBschn5s+rMb1eoS68PXeOtJHNl4W7N8uYk0xaBezvekUj3snxCn/5I9BfbKzhqjR9VU3SnHPrDYmZsXKudF51xMw5AdgesuhqbchGE7Z61KVOfEZsOTav28rRe3aSGXIbex8xZLluTncaE2sxz4m/AOHXGb5mJ+0Z6fXbfiDTgU/Ndz+BNmscj+HeyIAt1mMCt0GjQ0qR1udF+zO9lgvusafljm+KLzVekKmG3na50fLeV44d26o8bjJs6OjmpCB5iSByhJJWisrJTyimWbNxQNKkuqoi0+XFvoupc2pGGQWD67cdm6ozd/zpWThwLLs7vjuR2RW8cqlvqUxdzp6mUFnozRfzhwfji6eXNGz7dRYbOHE8k0IdrAXYoBDyO6puUMYoK/vefDecRCGXTACxhUXfjAKYzAcimwVGINcd9tJiCsyj8pYMH8yOB4HKBiETZuPPX5uTNR5rVdrL9651mv38V/XaKxjnr0iBgZOXEr2SptXLuvhJp67KgcHTzbj63bqrw2lqkoCbTg3Bg8ZoWYA8WhMogo3MChrbSrU93VZG2qUReRmskRKxjSxfBBISgVNAx0iCKFKYEUBJlxJIssMonZkQFLM9T7H3FRMV6raCBis0gPKcN2ALECLdSCMRJU1Zz6HvlGUGy4oQKSqGLgiT6lalzZFJTNUReN90KOeMpgCiYKUAg9CNUOePFLnOcd0DjcQlmhWmW4lwkSZjU2eaYmIZAz6PCxgyuktw3+kqDLGfV28IVknRHDuM5Y3mBsFJUVqzSDnWCjlSQ0ZrYDM0dlmijDNrnQ5pYoaJlz4iAIj0iONrTIWaL1qNFBEpoalRFI3uy6hFM0176Ig0xAabQyHuK6wrVfnk1KiCyo+teGrfUEVIXFAJAluEYcbPuwrqkauIUkUkUy24b26rmuolAhs4BUz7cOC596o7g6HvyowBUYiLali3XNgz3FLBYX5o6jw8coC7jMKACLbTBseEUrJ86mip87gN0Uac4mq8B8MTV+gN0v4sZEsk/N4IyWZZoITxhZr+IOmpAjJBJqPqxyZg63cfEZmszmRxPLj5R6JGhjwC32lnJdNlfMQeXvEvmNq4GIAjRGKGoNNKQEQ9HVRAnKb0eViXP2pW9BRDTra4GCSyOPN4GrIqoanfU9IW2DDMg7pgKySAWTQoKKlT5FCEuL7aJJTJDXiP+IUR2HsD77OxZvJmS87D0WBZi4iSpMzBzgWxnDfQEMGmWZQc67yevoFGQqYJoHkmJJ5xj0BIaeyqKBZTQXpVDIAWE6WhKTWRCenYRq5vgRSKQiIBMs8InNWlTIwOUl1LsztaGN8XxMcSOBR0hrV40FkrZHPVCRuPgXCXh8mWTDOuREa2ewC8SjG4jR+ND2anjFGAXSMRQiY2lRPRtwEm/kQ70niSAoel2kyBa+rc9deFoT4DIDPq+uxDfFla9zw4t0VEN1Y2sgBKJS7qPVDfBW2HrsA37yR0aIGIYKXkzkR/Bn5GsJh4OXSGKKs1/PLsjlV89QCJMu92uAdGH99Ezpt4Vy6dGb7ebR80CndOF4ZSx8aq5xIqObwfHvz/jbTF5sBk1fX7PyPDzWG9nVePdFSF2fxYDJ/aGzhAMk1N0ZC4a8X8D5NJLQ+snQKhsJTsCASXdubb0TPiaRnT2L7hiAb9EL/5Gi4aytbFbCGLJIE7Gzp68M4DYUSYiCRWC5GKQExsZYmQJyIDCAkHidUjmiaIohl2ChiJJVyaYamwNUSZH45F0Y6Qo7ZC3mJdUk+tD5wPsKrx/fq+j7LxWwdpo/3E9m93fTGH2+C3vi/OLruU4jcWeW2Zy13pKTzfI8Yr4l3DU7Zr1gG9nRP9F/DytiHa46dcwLtGxzbje2o4P+lbJA4aTiFMFHEynaaXueZ/PnqKE3USl6lchWdS3WlIyuVjsORq6NWX6nRJ6+9bFCVt2nbSlWGyx0l3pLCkpaC8sJyEGd6l87W5dAsVamroHpvuS9HXI70RfiOFgfMURYk6AmP97ySYukcT+XzKlX6gPI71TFwKfKjO1IFjHvzqSQmSbpaatZQFSurZ1RXYXVwfUjWR1KPSsEen1xf3cmp3ny9cWN1t41lFR0S9svjQe7mh6JQUbqNyRqXlwfOnIFwvYGxY8N64FFoxQ98ZtiZ6J88QavW1dTQNhtl+jEyYbtiftXhv7V65guHY9HiORdQVFQCy41nbli6ek0xJAw/LHWjptfPNmMc35HT8/+Bl5k2ygdXQx/VxlyGGRkaeYDATyvYR/5pAZI+mZb8rEjBX8AvErjMGct3ubS79a8tsz64Ll5R5shkIA04XEg/8TBJc9f9c++6da1Xt9ulXbncoxO4eEWChUTR02nJ91bz5uo3wg2wVM/VSt/YMCHFsG2BOlB+dEfvIoaW1vSL6SXMoRM79CLNuh7D7GkbpUfB1C35ZDbpLQuzNzYOBDtCdtbUvJQZ51kTAFJB0Ob/KZuaqhqPUGRm0K46r5Yt8JLZQbRhh0rLBoIcwQNlZQ+EsvCggdKyQ/G19OTFM6vn9/ohg9rTm9HgHrwKOJy1bKSuomnyt+tCqCdbQmHtnh2r0LUrTdWVtscPFXfC74yrDK/8ajfHlxSuOrC+Ea1Ee9ajKsI+zJXQf/z2AqtftsM2d025xBpgHTTNDZh7SGIPsA8yanKwJ6GaMzvg3SmRj9MPj2LKHTEtNk2/gd5Qxdhpn0MEitEL6WORU94N4MyujjgSLtL/RVD5nMb2nfWoDgWMz0WBFP+JhOGXAsDUxAADnl8nzS3Y4IqZm1KeMnR1aWbvguT4zG282ZzM7EMoVXl12uDkU2+9dTzu+CTSujWaRTw+/vCV1ep5KaE/Bfw0uGlGfO52bhFOAknrDJMOxByM3uu351AME03mTF8vrK4WKUj+8fD0EuYxBK/ZofNnLaM707h79/D6anr4LF3+lSrgOyEYkyxHr70KV8DlXlqO3MxyuKJRTDHyNqMSVOz1TrMhrxcVv/3e5soPiEEABmsNAcBdJuHD9+4dVvCACANW22hgPGp85ZVGUxAgWsQH1jziDfIe1VSR2oh4WLRmTREUGBDh8YPy36sGq6xLxGPiQ1PVoAgQhfnUIHUtbpBeoPI1xCs58GH8h8Q1w/gmgA3rAfBTj+CI4ogcnwXF+tE+x7WdzpCcVP1rwymv5y65NtJjeffW8MZruivsLuElOQRGErA+y6g40FNE4K0IgJGkjHAfUGQZ9TgCcfw5EXjMBExjOOJl/5GVZs8mjzmvo9kRsIkCVBPMzjGXGAXcWONtYemG8DZ3H/gP9OB33sGl9AyIU3a8IHh+wIxxi9tQ7W/hUd7w5lqq1lb3LBnGJdS7o3BmvhZ60ZEjyBQvEMhuY8XEEE1LvbnuU018nJDHFWH666Y3TlG3FBa20VMa4hvbFMX5iuTU8NRQMuNSpjB0hmFmhvgDoJL/EvVL76y8Wb3GKCNx2dMja6frB/H7q8IoYd/0vOm9kihxb3FecUL003LCRLN6I6IiMq35OernvobAQwowb++2+eqxmtuaMW7J+WfX/R4OhOiKuHr+F7qzkTemSe6BDwl53tQ9yTvNC7rDwHNJAulP6qWg/eD+X0Ivhd7dv69Z6mE0pGXoOaClMpJaXOYl3YxGoh95AgGpIykARiUTRzQZhBbh18sZNhz4R5eUegaHrBIN4yZbDx4YDrsU+uvBfaCVNJD+QwkS8JSiyE8f95Ky52DIQmoYj9QL9u+9W9mZ+OXgAdAh1ZMa6UQJeA4oKZjtGqElHaQ2kCY7JPRpMOS7ng6SSbxZnVq7dn+iEZwRHyho6rYn2ptDAnEwl5RJQKBERgZTdzcJAoVN3bne8nGQ+P7ZkJbskGoDtdICt1fcsYnUBerITVJZoOzlUkuVoiORHN40QgfRI5uGtEFaIHy+ZEeA9t8Vx2WPd4gIR81gzu7HG5n/lp+AwHBqPRtAhpNJ4cU+bV7Mf/BjqaAwwmGvXrTy6vlVQHIq5PSc1gr3hTmnK1oveE7PvjOeC7P3QGLdvzXBrzJ5c8LWSr/NyVsS/JWkWyr9wdhPXRIcqZokw8KLwtu8HarXOWe84Gp4tXBAKMk3GnXBF4JkKJj2/K7bh+YnCI8I94GRgTXNjYpHisY1a5qsPZ66RDjcf7p/WDksOi0aJtvzDD07Z/fYdysjOjLuWdesoZTZt/5oK1z/uyuz3TTstkMLw6/tNTXZ1CWqwtp6Dcdb+10RdBUXu0qBA0GXm+TQuRneCIHRWu9Mid1YXjtiYzZJGTnh4xBSnNZ6o8AbkXrU1jS1oDq6M8k2sTo/bdm4DQ4X3AltSdGdBdVvfMKad3Pv/In34tfunNwNCXsIv4b3/oTtvpfJGqYtkCw1LdPckgXTWEPG6aldZZFTrNeS6Jk29zXrlMiyrhMu4J2q3/RSWj4IGMVN+q8TduxNTvcXtgZPXRgn7Fs0M3ir0C/d/HZNtjvb43A75gLbpU+axlxqnwpAYmHZ3ufvnG3v5nb2nD3zjXzl8Yti8cXjgwM9eWAeeLXtZZTv1uMUNPhdVAoq9k4Gvh3NFq4FTKnZ0+vf64uWRGdnJSf7to73ediJEzdDsqPQws2bF5aC0IMWur/juBQ1Jza2wtbg6/KP/u1mEX/947kT+EXn/4tV/GAs4RQx+hifYnF0NJLmvZx4b5ecmOTeumLZk+Ux7fEzevGHH2JTegOB7HKSDtSStPbjrcmfg0dG3rghkc2AM/sZH4KG331hvxza3ynVSf2kE8UvsJZcbn2Hx0UjetIvxCNt2b9fEvoY/Pwrzcp9bWufYYZccTcoNUj8qOQH9/vCPgFm+qk0XeI3ope0Hdz/deg/H4f+/+BeyhPit5nMCNDQwDzKBgG880N4PofT6IV0QqGTdGRnlumAeemw2okWdm9eIKEWTnVNNNfJja6JIrVSJ8xraMgrBQ6IdM49qj24TxGl6MNO3GeKMvVhh1tJKT69P0ZwRXVFELP/tBj3gWuveFkvwFgPAWPNEF8wzBeEwZhAfOHaIKQZdFSJJpH/12us2+XisJzqdtvTCK4Krf1sv1XIEuu1BC+9bK5Pa2bJnHlS/agAy5OLwEdkbJNzFkZ0Pcp+iztyzmMeH2P+OsgxFDmknPCLyTnZVnZOyt7KvtsXsUojb3UTvpuZ0gjSc+suZr1yzaqIdb/m2dsy82Qn+8sEJRlJOoK+toWON9vek3JuKoleyFsy8N1bHjJCmjn1ExZkZwOWsJHR5b7fwPTjeotKPO5FTkxkWvSWTnFKF5FN5OMGvH5bR2RlS2VkGh1ueagUj/+mMnZCmn5Lh9jVxeufQ5QTffGBHdpaWWSanDdMUx/ZfHafzT/Haaiur68O0fCq0uc+wvqIHMLH/mYIL177/3nWeQOOaEffZevlJt8y6zIwZfB/rWk835bjXKnNSNl+O7H1a3Va69Hxi1xll4cPG9+7ajx6bvKFj1/3zF40frRDWTT8QikeGDw+IBYNfGPXPxhOXQpcqOKltZWwAq5d64cPXCk1nyzVbTgNl2V8GbEJuWz88imkZQFIW20NUQ2rvsT5g+TSM9akFwW+cV/CRDtzkLHb4Zc838wXd3MDo+Oscfa4JHUQt31SGC/RTBr86UFzojDvKMgZ0QtlZKwultQF6ayZNkaqD9SN9DiOW9l99lpjf1qaUOikHy3x9z/kyZ8MNU1ZNnXZlKZJ22UjQfrgEcNQsD5oCCQ0E1f++edKKcSYQFxxY3qSwmaFhZXV4mXhrvBqfAbAFHAyUbBjOlr22mtNyLjyx6NHLzGXCgouMgPHjm48F4Ga4hJM71p/BOealq7PAyNZBQW5wX9V6MDQzhgba80KeXk0ax3qyVeyg1+/n3W099Jn+dPmwa4uNE+ha25uSGgoKMhhcy5HJ5+HYlKJTy+aHXRBApYk/OT9qYT1kjRpxHxQQg8ZL76hXnaG+No139q1FtZSysc7tMsfkNsm/mD84cKMwjQuFNlrEgsL5mWR+PB/G4i7Pj3R0DUtVaoKhe/NeqPshGuzdVXV2VN3GW1beYdqxQQEN1a8v325W22fuHKfimuwGmSEJ740UE5xczOHGu+uikt+s8zZZdc6BG3mDuONti3OeameS9mLeNEvJlY/3X/+4Z0X695fc+P69rPrNs4KAFZ7QtXIf9J+8r/7VU8ekf3SR7yn6LHJxIyhKvwfYzI9wrPUbx+KXxt/yLTXL4nX7L1Z8SBhDAyuqsSrKYPUmxN8lMXoOQ5UJiFUvIgPLIC/qNFrpfY2gEU8aIG8RXP9KAv1cWDk2z9aNoD0vhT+Fi5fhr+JKymRbU0Jde/2Tct1b7K+Wpa7eIGu0iXeEEBpzL1Wz41L+nQwB7iiWvdPmcc4XaLIa3Bqc5fdbQMf6dPnuCKbwfVChtId2l3DyY3W0bILxG1KkBqp5HNwdJK7VccRiBQ0cui6+ZIa2dxIxnPTfLtFjT4zl9UcX+pBtBZACEqx2RjDCZPV67gGioPq6qGkvlQwIzDx7WsNb9vfP0lXJnK0k/c/NERzVELvidhlq3NlMmurBQB2kmApyZrnwswwxCH0MqZElqmR7wul6+tzgkiCAAJ+bvsUaQ1lm3/CVBLSWp8uTEBqYK6iGGJZoICSmUoYmyvH9IBVK8RyVFoKLRwc0zqO4NAcCP11oQ6t7c0HJyN0PGZlItOgNAAduK79UoZC5d3ucqYkcSUS5GWwmWi3m9VxCaQrdQ9yKa1NLYkGgMnp0L0hNxAKNUSGerOhs7uOxnmT67gcZLkhgmWlHsfFIoUc2wFPlkHgxCV8f7lVQcgTUcBhP6s4cbppq06XQtnBzAdzrTTFytojhUhuQFNYmgsd2U1JLGViIDvlzvaT7f0rwmdAzNQhd/++xlxowLOxhsxaWeHNhHKclw9iQ7mMg/Mwa5MHf2lSKuhGy/0scwm7dztizIDDZIXN9PDlkOLI48hwWeIBYINyrr/QyOODwksN5QS8dorSU0nqd3oaJGiLNoUAEMFxYeUzpyCnTBmggg4kauYFZWrNZyGiolWaaT/3yix72NCpbR3mu/rQSJW8NpeDVvG63A9tn79185sV3cuhh69IPJGIsO5mEWyxN7IJvD1JPYC9kQUyCYvJI/AqgKBHr033x3Z/Ba+fyLi1mnOK1QQA2tp//OQa4qa2u5v1UubSpw9oqH6nJK0lNJqGrCjJUrHvfuAtEPx0SZSBHTkrPqTPpcR+xpWmJX5yFekVDVDUgPowTR8W00q3yW0sNhUrF1goEih+9r8kz3lf5E0jXLRdtIr9vyiBdnGrQRCeRL2/EgrYUiRvN0OGomQOIMQ4Ntq2JU5hRMAAofKwbSngypw6HSTcHA6ubOXC+9iEgExv0zJEaRLkaKDMfAYA2E9RDKK4xhoYrZLJaF2oHisgw2W0elhHQL4aCF8pNQMOYTKVcKmmyBC/6kqTGTr0LBd1QgqayqZqCC5CMgTkMYDI48AVOhpjrc2EckApWo4IAkHEASA2pmJpBnLKGQWh4UKEuSoZ5hC52RYATIytfU4oydEQSI+azKAMcaZFA1KhJxAHhfqrEe2JQTI+5JDRUK6YA4JVIr6DNcNoDg8QCIcDCF0et5fhLOVyaQpzRSRGpj0iQQACQQug3Iq4QTBOmIGgWbcMqnbSFNRM5mEVaY/Qeud+ngHFQr/6UMDnC8Ia+3eF85VCboi/ahwE4cAhAkL/oQVBfERHZ4Iz74AlS0aGQ4KHR0Z+JQGIA47CQid0wEaG4gSEeaDgQPISKblkdPjt4+EuczD/Q8/d4ODh+/cLeJmdAOh+tIQk6RN4a6AeAjh4AMz5wggcvLzRMnjH627UbIpkVg2GlTOp13FSs0sPXB510LgrolBLwBX819/EZYM9eAVfdj+nu7+ffLK1ETQthc/Z3CZvsCvYQrrIV9+RF6qGUvVRQufLZ/S298hbS4VZVF4aGQu1HS+afu05lDErMZ/aKXJOLx0fVDdS4i/M8mRcJxlJEujcVtApZO7Cgmh4lxF2jusQUY900QX54Q04HN/ASUnm6eaqyLvldiIsR+FIrntEiTpByjbEERjjDPPvyCkSJezYc2v08IED7xz8lK+uvZN3JyDppat729ri9o3342tk+NuzFzI1lJgOj81hTObK+ZspWd93R8DvB847FQShWFZ++/YNVc3Dp1N4ozo+Fw9FDMrktxvmjSPjYjIpm+c+hZiQXc44fbERUAurmuaWEQiCcEYVZUrNDz3xsfbSxwUZOrd21UqtW5d5Tpex4IbPERn6c5n6WTFCxrxMiKdk6vLnnyIeP/pIAXvwFHHS5QAkX8HXKvOvqhiUKy+IGNHD6rP46TPiDHH26dOz1ul/9hSfxWeePZtVJeqWJjZlesAcuKISpkdOcK1SsKmhOXKFsDtbDVyVJTPEjzSP/D4lZl0xEpP4+S7SW69D2/y8VJgOK/OgDSZW5qbDUUH/C/6rTxP4PtrHl3xNf11ttwdLxsYe/x8AgLFmD7BXsfEutPOZ79WDw0n2sc+xwv3Kh7ggLvMAncnethFHZZe5d/D8rNf72OUOWohZmK9xB9zBOTytIgyBLcMAsh8YxHFZnzPYmX3iujHtNnoOXpFnHkQ8IFUbyl/nOX+AX3cNJ4A7rAHrwWJREaHeNARWFvq0SeYoLhLNdn/gZHi8xWnczBPzcG/y4XSUeRdD96ibOAPYKpQC5Wv28SoRoMnkzSpzvK23UANYxehuHLuCpyPY1lZsh8x1nETOkXz8f2K0AqfWUG8VS6e+4Iv+YeNdX088UINksS1vVvz9F2vUCIL/y+J5ngsAnxw7VXJ4uTrAV0vK59WCLMjth/hOILcgrU+A/7wYLPspbr7GjE2S9OUOqv3fhhxITtJU9Au3UpBxlSJJN1Laxu3OMyo+gplYAGDtkyIZRV8lK++b5BR9F/3CH1JQ90+KFAMnpb0z8oQZ82AcPtlbUBkqWd4k6khGffnpNPYHLHvVejvJbf+h7XCTXM4WwSe+gaDlEdOd7SpnI00bg/xS9g+8jzK1sQadZy7ndJrPTVzsTMfQe7K3oLJ590qWt46oI5lt56fQF/8Dlr1qU17yqeN/aDt873I5WzCI3yoxvWRTgt3ZrjJiRuJntzHIL8TA626UKb5ZDTrPXA6eTnP0VoZVnVWfD/NNHX0vqx0B2dyiAUGGHAVKKAIqEIbfpER6qVyp1n7o/CA2W+1Ot9cfDEfjyXQ2XyxX6812tz9IXvDuItkbkr0ACa2wUiRavDtcFh3HFKmMH0k547BkW1wAr0jLYdMsn26K4AWyQYlbdu54FNCt71zkGp9HSbCDvFjttkWVxLJCzpw6x6/YqfnuPM1x9ZYZteOGFVUjl8s/NMdLdShxiswlqlgUX+7GFdSDPjDzKyoqEFE1Kjxkn+ajjEaRbXDadKcgdX5hoxvT4qKQeEMTjyzEUrpxDtS0XDnlxeFFAsQylj2+iLXOQ+rEng5AHdeQP16upU0u1yyEKH5WQGJ5rFcUYu2dxepd+zEPr482rvZPtaUk7T2+gUDTqgCPoSPG6Xq3GHeRXTG4HrooDyYvhTvCwqBphOyNHgAA') format('woff2'),
  url('iconfont.woff?t=1611236720878') format('woff'),
  url('iconfont.ttf?t=1611236720878') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
  url('iconfont.svg?t=1611236720878#iconfont') format('svg'); /* iOS 4.1- */
  url('iconfont.ttf?t=1611236720878') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ url('iconfont.svg?t=1611236720878#iconfont') format('svg'); /* iOS 4.1- */
}
.iconfont {
Source/plt-web/plt-web-ui/public/cdn/iconfont/plt-web/demo.css
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,539 @@
/* Logo å­—体 */
@font-face {
  font-family: "iconfont logo";
  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
  url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
  url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
  url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
}
.logo {
  font-family: "iconfont logo";
  font-size: 160px;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* tabs */
.nav-tabs {
  position: relative;
}
.nav-tabs .nav-more {
  position: absolute;
  right: 0;
  bottom: 0;
  height: 42px;
  line-height: 42px;
  color: #666;
}
#tabs {
  border-bottom: 1px solid #eee;
}
#tabs li {
  cursor: pointer;
  width: 100px;
  height: 40px;
  line-height: 40px;
  text-align: center;
  font-size: 16px;
  border-bottom: 2px solid transparent;
  position: relative;
  z-index: 1;
  margin-bottom: -1px;
  color: #666;
}
#tabs .active {
  border-bottom-color: #f00;
  color: #222;
}
.tab-container .content {
  display: none;
}
/* é¡µé¢å¸ƒå±€ */
.main {
  padding: 30px 100px;
  width: 960px;
  margin: 0 auto;
}
.main .logo {
  color: #333;
  text-align: left;
  margin-bottom: 30px;
  line-height: 1;
  height: 110px;
  margin-top: -50px;
  overflow: hidden;
  *zoom: 1;
}
.main .logo a {
  font-size: 160px;
  color: #333;
}
.helps {
  margin-top: 40px;
}
.helps pre {
  padding: 20px;
  margin: 10px 0;
  border: solid 1px #e7e1cd;
  background-color: #fffdef;
  overflow: auto;
}
.icon_lists {
  width: 100% !important;
  overflow: hidden;
  *zoom: 1;
}
.icon_lists li {
  width: 100px;
  margin-bottom: 10px;
  margin-right: 20px;
  text-align: center;
  list-style: none !important;
  cursor: default;
}
.icon_lists li .code-name {
  line-height: 1.2;
}
.icon_lists .icon {
  display: block;
  height: 100px;
  line-height: 100px;
  font-size: 42px;
  margin: 10px auto;
  color: #333;
  -webkit-transition: font-size 0.25s linear, width 0.25s linear;
  -moz-transition: font-size 0.25s linear, width 0.25s linear;
  transition: font-size 0.25s linear, width 0.25s linear;
}
.icon_lists .icon:hover {
  font-size: 100px;
}
.icon_lists .svg-icon {
  /* é€šè¿‡è®¾ç½® font-size æ¥æ”¹å˜å›¾æ ‡å¤§å° */
  width: 1em;
  /* å›¾æ ‡å’Œæ–‡å­—相邻时,垂直对齐 */
  vertical-align: -0.15em;
  /* é€šè¿‡è®¾ç½® color æ¥æ”¹å˜ SVG çš„颜色/fill */
  fill: currentColor;
  /* path å’Œ stroke æº¢å‡º viewBox éƒ¨åˆ†åœ¨ IE ä¸‹ä¼šæ˜¾ç¤º
      normalize.css ä¸­ä¹ŸåŒ…含这行 */
  overflow: hidden;
}
.icon_lists li .name,
.icon_lists li .code-name {
  color: #666;
}
/* markdown æ ·å¼ */
.markdown {
  color: #666;
  font-size: 14px;
  line-height: 1.8;
}
.highlight {
  line-height: 1.5;
}
.markdown img {
  vertical-align: middle;
  max-width: 100%;
}
.markdown h1 {
  color: #404040;
  font-weight: 500;
  line-height: 40px;
  margin-bottom: 24px;
}
.markdown h2,
.markdown h3,
.markdown h4,
.markdown h5,
.markdown h6 {
  color: #404040;
  margin: 1.6em 0 0.6em 0;
  font-weight: 500;
  clear: both;
}
.markdown h1 {
  font-size: 28px;
}
.markdown h2 {
  font-size: 22px;
}
.markdown h3 {
  font-size: 16px;
}
.markdown h4 {
  font-size: 14px;
}
.markdown h5 {
  font-size: 12px;
}
.markdown h6 {
  font-size: 12px;
}
.markdown hr {
  height: 1px;
  border: 0;
  background: #e9e9e9;
  margin: 16px 0;
  clear: both;
}
.markdown p {
  margin: 1em 0;
}
.markdown > p,
.markdown > blockquote,
.markdown > .highlight,
.markdown > ol,
.markdown > ul {
  width: 80%;
}
.markdown ul > li {
  list-style: circle;
}
.markdown > ul li,
.markdown blockquote ul > li {
  margin-left: 20px;
  padding-left: 4px;
}
.markdown > ul li p,
.markdown > ol li p {
  margin: 0.6em 0;
}
.markdown ol > li {
  list-style: decimal;
}
.markdown > ol li,
.markdown blockquote ol > li {
  margin-left: 20px;
  padding-left: 4px;
}
.markdown code {
  margin: 0 3px;
  padding: 0 5px;
  background: #eee;
  border-radius: 3px;
}
.markdown strong,
.markdown b {
  font-weight: 600;
}
.markdown > table {
  border-collapse: collapse;
  border-spacing: 0px;
  empty-cells: show;
  border: 1px solid #e9e9e9;
  width: 95%;
  margin-bottom: 24px;
}
.markdown > table th {
  white-space: nowrap;
  color: #333;
  font-weight: 600;
}
.markdown > table th,
.markdown > table td {
  border: 1px solid #e9e9e9;
  padding: 8px 16px;
  text-align: left;
}
.markdown > table th {
  background: #F7F7F7;
}
.markdown blockquote {
  font-size: 90%;
  color: #999;
  border-left: 4px solid #e9e9e9;
  padding-left: 0.8em;
  margin: 1em 0;
}
.markdown blockquote p {
  margin: 0;
}
.markdown .anchor {
  opacity: 0;
  transition: opacity 0.3s ease;
  margin-left: 8px;
}
.markdown .waiting {
  color: #ccc;
}
.markdown h1:hover .anchor,
.markdown h2:hover .anchor,
.markdown h3:hover .anchor,
.markdown h4:hover .anchor,
.markdown h5:hover .anchor,
.markdown h6:hover .anchor {
  opacity: 1;
  display: inline-block;
}
.markdown > br,
.markdown > p > br {
  clear: both;
}
.hljs {
  display: block;
  background: white;
  padding: 0.5em;
  color: #333333;
  overflow-x: auto;
}
.hljs-comment,
.hljs-meta {
  color: #969896;
}
.hljs-string,
.hljs-variable,
.hljs-template-variable,
.hljs-strong,
.hljs-emphasis,
.hljs-quote {
  color: #df5000;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-type {
  color: #a71d5d;
}
.hljs-literal,
.hljs-symbol,
.hljs-bullet,
.hljs-attribute {
  color: #0086b3;
}
.hljs-section,
.hljs-name {
  color: #63a35c;
}
.hljs-tag {
  color: #333333;
}
.hljs-title,
.hljs-attr,
.hljs-selector-id,
.hljs-selector-class,
.hljs-selector-attr,
.hljs-selector-pseudo {
  color: #795da3;
}
.hljs-addition {
  color: #55a532;
  background-color: #eaffea;
}
.hljs-deletion {
  color: #bd2c00;
  background-color: #ffecec;
}
.hljs-link {
  text-decoration: underline;
}
/* ä»£ç é«˜äº® */
/* PrismJS 1.15.0
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
/**
 * prism.js default theme for JavaScript, CSS and HTML
 * Based on dabblet (http://dabblet.com)
 * @author Lea Verou
 */
code[class*="language-"],
pre[class*="language-"] {
  color: black;
  background: none;
  text-shadow: 0 1px white;
  font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
  text-align: left;
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
  word-wrap: normal;
  line-height: 1.5;
  -moz-tab-size: 4;
  -o-tab-size: 4;
  tab-size: 4;
  -webkit-hyphens: none;
  -moz-hyphens: none;
  -ms-hyphens: none;
  hyphens: none;
}
pre[class*="language-"]::-moz-selection,
pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection,
code[class*="language-"] ::-moz-selection {
  text-shadow: none;
  background: #b3d4fc;
}
pre[class*="language-"]::selection,
pre[class*="language-"] ::selection,
code[class*="language-"]::selection,
code[class*="language-"] ::selection {
  text-shadow: none;
  background: #b3d4fc;
}
@media print {
  code[class*="language-"],
  pre[class*="language-"] {
    text-shadow: none;
  }
}
/* Code blocks */
pre[class*="language-"] {
  padding: 1em;
  margin: .5em 0;
  overflow: auto;
}
:not(pre) > code[class*="language-"],
pre[class*="language-"] {
  background: #f5f2f0;
}
/* Inline code */
:not(pre) > code[class*="language-"] {
  padding: .1em;
  border-radius: .3em;
  white-space: normal;
}
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
  color: slategray;
}
.token.punctuation {
  color: #999;
}
.namespace {
  opacity: .7;
}
.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
  color: #905;
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
  color: #690;
}
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
  color: #9a6e3a;
  background: hsla(0, 0%, 100%, .5);
}
.token.atrule,
.token.attr-value,
.token.keyword {
  color: #07a;
}
.token.function,
.token.class-name {
  color: #DD4A68;
}
.token.regex,
.token.important,
.token.variable {
  color: #e90;
}
.token.important,
.token.bold {
  font-weight: bold;
}
.token.italic {
  font-style: italic;
}
.token.entity {
  cursor: help;
}
Source/plt-web/plt-web-ui/public/cdn/iconfont/plt-web/demo_index.html
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,1016 @@
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8"/>
  <title>iconfont Demo</title>
  <link rel="shortcut icon" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg" type="image/x-icon"/>
  <link rel="icon" type="image/svg+xml" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg"/>
  <link rel="stylesheet" href="https://g.alicdn.com/thx/cube/1.3.2/cube.min.css">
  <link rel="stylesheet" href="demo.css">
  <link rel="stylesheet" href="iconfont.css">
  <script src="iconfont.js"></script>
  <!-- jQuery -->
  <script src="https://a1.alicdn.com/oss/uploads/2018/12/26/7bfddb60-08e8-11e9-9b04-53e73bb6408b.js"></script>
  <!-- ä»£ç é«˜äº® -->
  <script src="https://a1.alicdn.com/oss/uploads/2018/12/26/a3f714d0-08e6-11e9-8a15-ebf944d7534c.js"></script>
  <style>
    .main .logo {
      margin-top: 0;
      height: auto;
    }
    .main .logo a {
      display: flex;
      align-items: center;
    }
    .main .logo .sub-title {
      margin-left: 0.5em;
      font-size: 22px;
      color: #fff;
      background: linear-gradient(-45deg, #3967FF, #B500FE);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }
  </style>
</head>
<body>
  <div class="main">
    <h1 class="logo"><a href="https://www.iconfont.cn/" title="iconfont é¦–页" target="_blank">
      <img width="200" src="https://img.alicdn.com/imgextra/i3/O1CN01Mn65HV1FfSEzR6DKv_!!6000000000514-55-tps-228-59.svg">
    </a></h1>
    <div class="nav-tabs">
      <ul id="tabs" class="dib-box">
        <li class="dib active"><span>Unicode</span></li>
        <li class="dib"><span>Font class</span></li>
        <li class="dib"><span>Symbol</span></li>
      </ul>
      <a href="https://www.iconfont.cn/manage/index?manage_type=myprojects&projectId=4729933" target="_blank" class="nav-more">查看项目</a>
    </div>
    <div class="tab-container">
      <div class="content unicode" style="display: block;">
          <ul class="icon_lists dib-box">
            <li class="dib">
              <span class="icon iconfont">&#xe602;</span>
                <div class="name">UI授权</div>
                <div class="code-name">&amp;#xe602;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe714;</span>
                <div class="name">UI权限</div>
                <div class="code-name">&amp;#xe714;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe62f;</span>
                <div class="name">成员管理</div>
                <div class="code-name">&amp;#xe62f;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe648;</span>
                <div class="name">查询日志</div>
                <div class="code-name">&amp;#xe648;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe643;</span>
                <div class="name">功能模块</div>
                <div class="code-name">&amp;#xe643;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xeb6b;</span>
                <div class="name">系统模块配置</div>
                <div class="code-name">&amp;#xeb6b;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe60f;</span>
                <div class="name">链接类型</div>
                <div class="code-name">&amp;#xe60f;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe625;</span>
                <div class="name">流程模板分类</div>
                <div class="code-name">&amp;#xe625;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe7d5;</span>
                <div class="name">枚举类型</div>
                <div class="code-name">&amp;#xe7d5;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe60d;</span>
                <div class="name">机器密级</div>
                <div class="code-name">&amp;#xe60d;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe606;</span>
                <div class="name">UI定义</div>
                <div class="code-name">&amp;#xe606;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xeb6a;</span>
                <div class="name">流程模板定义</div>
                <div class="code-name">&amp;#xeb6a;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe639;</span>
                <div class="name">流程模板管理</div>
                <div class="code-name">&amp;#xe639;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe60e;</span>
                <div class="name">文件柜管理</div>
                <div class="code-name">&amp;#xe60e;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe641;</span>
                <div class="name">UI建模</div>
                <div class="code-name">&amp;#xe641;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe609;</span>
                <div class="name">日志管理</div>
                <div class="code-name">&amp;#xe609;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe64c;</span>
                <div class="name">密码策略</div>
                <div class="code-name">&amp;#xe64c;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe65f;</span>
                <div class="name">系统配置</div>
                <div class="code-name">&amp;#xe65f;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe66c;</span>
                <div class="name">人员组织管理</div>
                <div class="code-name">&amp;#xe66c;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe62c;</span>
                <div class="name">业务类型</div>
                <div class="code-name">&amp;#xe62c;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe62d;</span>
                <div class="name">安全管理</div>
                <div class="code-name">&amp;#xe62d;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe6d5;</span>
                <div class="name">无权限</div>
                <div class="code-name">&amp;#xe6d5;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe62a;</span>
                <div class="name">角色管理</div>
                <div class="code-name">&amp;#xe62a;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe601;</span>
                <div class="name">版本管理</div>
                <div class="code-name">&amp;#xe601;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe686;</span>
                <div class="name">部门管理</div>
                <div class="code-name">&amp;#xe686;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe61a;</span>
                <div class="name">功能权限管理</div>
                <div class="code-name">&amp;#xe61a;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe656;</span>
                <div class="name">状态池</div>
                <div class="code-name">&amp;#xe656;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe64e;</span>
                <div class="name">生命周期</div>
                <div class="code-name">&amp;#xe64e;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe653;</span>
                <div class="name">数据授权</div>
                <div class="code-name">&amp;#xe653;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe6c3;</span>
                <div class="name">密级管理</div>
                <div class="code-name">&amp;#xe6c3;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe767;</span>
                <div class="name">属性池</div>
                <div class="code-name">&amp;#xe767;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe62b;</span>
                <div class="name">表单定义</div>
                <div class="code-name">&amp;#xe62b;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe62e;</span>
                <div class="name">查询模板定义</div>
                <div class="code-name">&amp;#xe62e;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe614;</span>
                <div class="name">查询模板</div>
                <div class="code-name">&amp;#xe614;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe607;</span>
                <div class="name">对象建模</div>
                <div class="code-name">&amp;#xe607;</div>
              </li>
            <li class="dib">
              <span class="icon iconfont">&#xe71b;</span>
                <div class="name">action管理</div>
                <div class="code-name">&amp;#xe71b;</div>
              </li>
          </ul>
          <div class="article markdown">
          <h2 id="unicode-">Unicode å¼•用</h2>
          <hr>
          <p>Unicode æ˜¯å­—体在网页端最原始的应用方式,特点是:</p>
          <ul>
            <li>支持按字体的方式去动态调整图标大小,颜色等等。</li>
            <li>默认情况下不支持多色,直接添加多色图标会自动去色。</li>
          </ul>
          <blockquote>
            <p>注意:新版 iconfont æ”¯æŒä¸¤ç§æ–¹å¼å¼•用多色图标:SVG symbol å¼•用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)</p>
          </blockquote>
          <p>Unicode ä½¿ç”¨æ­¥éª¤å¦‚下:</p>
          <h3 id="-font-face">第一步:拷贝项目下面生成的 <code>@font-face</code></h3>
<pre><code class="language-css"
>@font-face {
  font-family: 'iconfont';
  src: url('iconfont.woff2?t=1730356989064') format('woff2'),
       url('iconfont.woff?t=1730356989064') format('woff'),
       url('iconfont.ttf?t=1730356989064') format('truetype');
}
</code></pre>
          <h3 id="-iconfont-">第二步:定义使用 iconfont çš„æ ·å¼</h3>
<pre><code class="language-css"
>.iconfont {
  font-family: "iconfont" !important;
  font-size: 16px;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
</code></pre>
          <h3 id="-">第三步:挑选相应图标并获取字体编码,应用于页面</h3>
<pre>
<code class="language-html"
>&lt;span class="iconfont"&gt;&amp;#x33;&lt;/span&gt;
</code></pre>
          <blockquote>
            <p>"iconfont" æ˜¯ä½ é¡¹ç›®ä¸‹çš„ font-family。可以通过编辑项目查看,默认是 "iconfont"。</p>
          </blockquote>
          </div>
      </div>
      <div class="content font-class">
        <ul class="icon_lists dib-box">
          <li class="dib">
            <span class="icon iconfont icon-uishouquan"></span>
            <div class="name">
              UI授权
            </div>
            <div class="code-name">.icon-uishouquan
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-uiquanxian"></span>
            <div class="name">
              UI权限
            </div>
            <div class="code-name">.icon-uiquanxian
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-chengyuanguanli"></span>
            <div class="name">
              æˆå‘˜ç®¡ç†
            </div>
            <div class="code-name">.icon-chengyuanguanli
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-chaxunrizhi"></span>
            <div class="name">
              æŸ¥è¯¢æ—¥å¿—
            </div>
            <div class="code-name">.icon-chaxunrizhi
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-gongnengmokuai"></span>
            <div class="name">
              åŠŸèƒ½æ¨¡å—
            </div>
            <div class="code-name">.icon-gongnengmokuai
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-xitongmokuaipeizhi-copy"></span>
            <div class="name">
              ç³»ç»Ÿæ¨¡å—配置
            </div>
            <div class="code-name">.icon-xitongmokuaipeizhi-copy
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-lianjieleixing"></span>
            <div class="name">
              é“¾æŽ¥ç±»åž‹
            </div>
            <div class="code-name">.icon-lianjieleixing
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-liuchengmobanfenlei"></span>
            <div class="name">
              æµç¨‹æ¨¡æ¿åˆ†ç±»
            </div>
            <div class="code-name">.icon-liuchengmobanfenlei
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-meijvleixing"></span>
            <div class="name">
              æžšä¸¾ç±»åž‹
            </div>
            <div class="code-name">.icon-meijvleixing
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-jiqimiji"></span>
            <div class="name">
              æœºå™¨å¯†çº§
            </div>
            <div class="code-name">.icon-jiqimiji
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-uidingyi"></span>
            <div class="name">
              UI定义
            </div>
            <div class="code-name">.icon-uidingyi
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-liuchengmobandingyi"></span>
            <div class="name">
              æµç¨‹æ¨¡æ¿å®šä¹‰
            </div>
            <div class="code-name">.icon-liuchengmobandingyi
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-liuchengmobanguanli"></span>
            <div class="name">
              æµç¨‹æ¨¡æ¿ç®¡ç†
            </div>
            <div class="code-name">.icon-liuchengmobanguanli
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-wenjianguiguanli"></span>
            <div class="name">
              æ–‡ä»¶æŸœç®¡ç†
            </div>
            <div class="code-name">.icon-wenjianguiguanli
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-uijianmo"></span>
            <div class="name">
              UI建模
            </div>
            <div class="code-name">.icon-uijianmo
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-rizhiguanli"></span>
            <div class="name">
              æ—¥å¿—管理
            </div>
            <div class="code-name">.icon-rizhiguanli
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-mimaceluo"></span>
            <div class="name">
              å¯†ç ç­–ç•¥
            </div>
            <div class="code-name">.icon-mimaceluo
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-xitongpeizhi1"></span>
            <div class="name">
              ç³»ç»Ÿé…ç½®
            </div>
            <div class="code-name">.icon-xitongpeizhi1
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-renyuanzuzhiguanli"></span>
            <div class="name">
              äººå‘˜ç»„织管理
            </div>
            <div class="code-name">.icon-renyuanzuzhiguanli
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-yewuleixing"></span>
            <div class="name">
              ä¸šåŠ¡ç±»åž‹
            </div>
            <div class="code-name">.icon-yewuleixing
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-anquanguanli"></span>
            <div class="name">
              å®‰å…¨ç®¡ç†
            </div>
            <div class="code-name">.icon-anquanguanli
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-wuquanxian"></span>
            <div class="name">
              æ— æƒé™
            </div>
            <div class="code-name">.icon-wuquanxian
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-jiaoseguanli"></span>
            <div class="name">
              è§’色管理
            </div>
            <div class="code-name">.icon-jiaoseguanli
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-banbenguanli"></span>
            <div class="name">
              ç‰ˆæœ¬ç®¡ç†
            </div>
            <div class="code-name">.icon-banbenguanli
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-bumenguanli"></span>
            <div class="name">
              éƒ¨é—¨ç®¡ç†
            </div>
            <div class="code-name">.icon-bumenguanli
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-gongnengquanxianguanli"></span>
            <div class="name">
              åŠŸèƒ½æƒé™ç®¡ç†
            </div>
            <div class="code-name">.icon-gongnengquanxianguanli
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-zhuangtaichi"></span>
            <div class="name">
              çŠ¶æ€æ± 
            </div>
            <div class="code-name">.icon-zhuangtaichi
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-shengmingzhouqi"></span>
            <div class="name">
              ç”Ÿå‘½å‘¨æœŸ
            </div>
            <div class="code-name">.icon-shengmingzhouqi
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-shujushouquan"></span>
            <div class="name">
              æ•°æ®æŽˆæƒ
            </div>
            <div class="code-name">.icon-shujushouquan
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-mijiguanli"></span>
            <div class="name">
              å¯†çº§ç®¡ç†
            </div>
            <div class="code-name">.icon-mijiguanli
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-shuxingchi"></span>
            <div class="name">
              å±žæ€§æ± 
            </div>
            <div class="code-name">.icon-shuxingchi
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-biaodandingyi-01"></span>
            <div class="name">
              è¡¨å•定义
            </div>
            <div class="code-name">.icon-biaodandingyi-01
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-chaxunmobandingyi"></span>
            <div class="name">
              æŸ¥è¯¢æ¨¡æ¿å®šä¹‰
            </div>
            <div class="code-name">.icon-chaxunmobandingyi
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-chaxunmoban"></span>
            <div class="name">
              æŸ¥è¯¢æ¨¡æ¿
            </div>
            <div class="code-name">.icon-chaxunmoban
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-duixiangjianmo"></span>
            <div class="name">
              å¯¹è±¡å»ºæ¨¡
            </div>
            <div class="code-name">.icon-duixiangjianmo
            </div>
          </li>
          <li class="dib">
            <span class="icon iconfont icon-actionguanli"></span>
            <div class="name">
              action管理
            </div>
            <div class="code-name">.icon-actionguanli
            </div>
          </li>
        </ul>
        <div class="article markdown">
        <h2 id="font-class-">font-class å¼•用</h2>
        <hr>
        <p>font-class æ˜¯ Unicode ä½¿ç”¨æ–¹å¼çš„一种变种,主要是解决 Unicode ä¹¦å†™ä¸ç›´è§‚,语意不明确的问题。</p>
        <p>与 Unicode ä½¿ç”¨æ–¹å¼ç›¸æ¯”,具有如下特点:</p>
        <ul>
          <li>相比于 Unicode è¯­æ„æ˜Žç¡®ï¼Œä¹¦å†™æ›´ç›´è§‚。可以很容易分辨这个 icon æ˜¯ä»€ä¹ˆã€‚</li>
          <li>因为使用 class æ¥å®šä¹‰å›¾æ ‡ï¼Œæ‰€ä»¥å½“要替换图标时,只需要修改 class é‡Œé¢çš„ Unicode å¼•用。</li>
        </ul>
        <p>使用步骤如下:</p>
        <h3 id="-fontclass-">第一步:引入项目下面生成的 fontclass ä»£ç ï¼š</h3>
<pre><code class="language-html">&lt;link rel="stylesheet" href="./iconfont.css"&gt;
</code></pre>
        <h3 id="-">第二步:挑选相应图标并获取类名,应用于页面:</h3>
<pre><code class="language-html">&lt;span class="iconfont icon-xxx"&gt;&lt;/span&gt;
</code></pre>
        <blockquote>
          <p>"
            iconfont" æ˜¯ä½ é¡¹ç›®ä¸‹çš„ font-family。可以通过编辑项目查看,默认是 "iconfont"。</p>
        </blockquote>
      </div>
      </div>
      <div class="content symbol">
          <ul class="icon_lists dib-box">
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-uishouquan"></use>
                </svg>
                <div class="name">UI授权</div>
                <div class="code-name">#icon-uishouquan</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-uiquanxian"></use>
                </svg>
                <div class="name">UI权限</div>
                <div class="code-name">#icon-uiquanxian</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-chengyuanguanli"></use>
                </svg>
                <div class="name">成员管理</div>
                <div class="code-name">#icon-chengyuanguanli</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-chaxunrizhi"></use>
                </svg>
                <div class="name">查询日志</div>
                <div class="code-name">#icon-chaxunrizhi</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-gongnengmokuai"></use>
                </svg>
                <div class="name">功能模块</div>
                <div class="code-name">#icon-gongnengmokuai</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-xitongmokuaipeizhi-copy"></use>
                </svg>
                <div class="name">系统模块配置</div>
                <div class="code-name">#icon-xitongmokuaipeizhi-copy</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-lianjieleixing"></use>
                </svg>
                <div class="name">链接类型</div>
                <div class="code-name">#icon-lianjieleixing</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-liuchengmobanfenlei"></use>
                </svg>
                <div class="name">流程模板分类</div>
                <div class="code-name">#icon-liuchengmobanfenlei</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-meijvleixing"></use>
                </svg>
                <div class="name">枚举类型</div>
                <div class="code-name">#icon-meijvleixing</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-jiqimiji"></use>
                </svg>
                <div class="name">机器密级</div>
                <div class="code-name">#icon-jiqimiji</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-uidingyi"></use>
                </svg>
                <div class="name">UI定义</div>
                <div class="code-name">#icon-uidingyi</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-liuchengmobandingyi"></use>
                </svg>
                <div class="name">流程模板定义</div>
                <div class="code-name">#icon-liuchengmobandingyi</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-liuchengmobanguanli"></use>
                </svg>
                <div class="name">流程模板管理</div>
                <div class="code-name">#icon-liuchengmobanguanli</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-wenjianguiguanli"></use>
                </svg>
                <div class="name">文件柜管理</div>
                <div class="code-name">#icon-wenjianguiguanli</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-uijianmo"></use>
                </svg>
                <div class="name">UI建模</div>
                <div class="code-name">#icon-uijianmo</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-rizhiguanli"></use>
                </svg>
                <div class="name">日志管理</div>
                <div class="code-name">#icon-rizhiguanli</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-mimaceluo"></use>
                </svg>
                <div class="name">密码策略</div>
                <div class="code-name">#icon-mimaceluo</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-xitongpeizhi1"></use>
                </svg>
                <div class="name">系统配置</div>
                <div class="code-name">#icon-xitongpeizhi1</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-renyuanzuzhiguanli"></use>
                </svg>
                <div class="name">人员组织管理</div>
                <div class="code-name">#icon-renyuanzuzhiguanli</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-yewuleixing"></use>
                </svg>
                <div class="name">业务类型</div>
                <div class="code-name">#icon-yewuleixing</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-anquanguanli"></use>
                </svg>
                <div class="name">安全管理</div>
                <div class="code-name">#icon-anquanguanli</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-wuquanxian"></use>
                </svg>
                <div class="name">无权限</div>
                <div class="code-name">#icon-wuquanxian</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-jiaoseguanli"></use>
                </svg>
                <div class="name">角色管理</div>
                <div class="code-name">#icon-jiaoseguanli</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-banbenguanli"></use>
                </svg>
                <div class="name">版本管理</div>
                <div class="code-name">#icon-banbenguanli</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-bumenguanli"></use>
                </svg>
                <div class="name">部门管理</div>
                <div class="code-name">#icon-bumenguanli</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-gongnengquanxianguanli"></use>
                </svg>
                <div class="name">功能权限管理</div>
                <div class="code-name">#icon-gongnengquanxianguanli</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-zhuangtaichi"></use>
                </svg>
                <div class="name">状态池</div>
                <div class="code-name">#icon-zhuangtaichi</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-shengmingzhouqi"></use>
                </svg>
                <div class="name">生命周期</div>
                <div class="code-name">#icon-shengmingzhouqi</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-shujushouquan"></use>
                </svg>
                <div class="name">数据授权</div>
                <div class="code-name">#icon-shujushouquan</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-mijiguanli"></use>
                </svg>
                <div class="name">密级管理</div>
                <div class="code-name">#icon-mijiguanli</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-shuxingchi"></use>
                </svg>
                <div class="name">属性池</div>
                <div class="code-name">#icon-shuxingchi</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-biaodandingyi-01"></use>
                </svg>
                <div class="name">表单定义</div>
                <div class="code-name">#icon-biaodandingyi-01</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-chaxunmobandingyi"></use>
                </svg>
                <div class="name">查询模板定义</div>
                <div class="code-name">#icon-chaxunmobandingyi</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-chaxunmoban"></use>
                </svg>
                <div class="name">查询模板</div>
                <div class="code-name">#icon-chaxunmoban</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-duixiangjianmo"></use>
                </svg>
                <div class="name">对象建模</div>
                <div class="code-name">#icon-duixiangjianmo</div>
            </li>
            <li class="dib">
                <svg class="icon svg-icon" aria-hidden="true">
                  <use xlink:href="#icon-actionguanli"></use>
                </svg>
                <div class="name">action管理</div>
                <div class="code-name">#icon-actionguanli</div>
            </li>
          </ul>
          <div class="article markdown">
          <h2 id="symbol-">Symbol å¼•用</h2>
          <hr>
          <p>这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇<a href="">文章</a>
            è¿™ç§ç”¨æ³•其实是做了一个 SVG çš„集合,与另外两种相比具有如下特点:</p>
          <ul>
            <li>支持多色图标了,不再受单色限制。</li>
            <li>通过一些技巧,支持像字体那样,通过 <code>font-size</code>, <code>color</code> æ¥è°ƒæ•´æ ·å¼ã€‚</li>
            <li>兼容性较差,支持 IE9+,及现代浏览器。</li>
            <li>浏览器渲染 SVG çš„æ€§èƒ½ä¸€èˆ¬ï¼Œè¿˜ä¸å¦‚ png。</li>
          </ul>
          <p>使用步骤如下:</p>
          <h3 id="-symbol-">第一步:引入项目下面生成的 symbol ä»£ç ï¼š</h3>
<pre><code class="language-html">&lt;script src="./iconfont.js"&gt;&lt;/script&gt;
</code></pre>
          <h3 id="-css-">第二步:加入通用 CSS ä»£ç ï¼ˆå¼•入一次就行):</h3>
<pre><code class="language-html">&lt;style&gt;
.icon {
  width: 1em;
  height: 1em;
  vertical-align: -0.15em;
  fill: currentColor;
  overflow: hidden;
}
&lt;/style&gt;
</code></pre>
          <h3 id="-">第三步:挑选相应图标并获取类名,应用于页面:</h3>
<pre><code class="language-html">&lt;svg class="icon" aria-hidden="true"&gt;
  &lt;use xlink:href="#icon-xxx"&gt;&lt;/use&gt;
&lt;/svg&gt;
</code></pre>
          </div>
      </div>
    </div>
  </div>
  <script>
  $(document).ready(function () {
      $('.tab-container .content:first').show()
      $('#tabs li').click(function (e) {
        var tabContent = $('.tab-container .content')
        var index = $(this).index()
        if ($(this).hasClass('active')) {
          return
        } else {
          $('#tabs li').removeClass('active')
          $(this).addClass('active')
          tabContent.hide().eq(index).fadeIn()
        }
      })
    })
  </script>
</body>
</html>
Source/plt-web/plt-web-ui/public/cdn/iconfont/plt-web/iconfont.css
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,159 @@
@font-face {
  font-family: "iconfont"; /* Project id 4729933 */
  src: url('iconfont.woff2?t=1730356989064') format('woff2'),
       url('iconfont.woff?t=1730356989064') format('woff'),
       url('iconfont.ttf?t=1730356989064') format('truetype');
}
.iconfont {
  font-family: "iconfont" !important;
  font-size: 16px;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.icon-uishouquan:before {
  content: "\e602";
}
.icon-uiquanxian:before {
  content: "\e714";
}
.icon-chengyuanguanli:before {
  content: "\e62f";
}
.icon-chaxunrizhi:before {
  content: "\e648";
}
.icon-gongnengmokuai:before {
  content: "\e643";
}
.icon-xitongmokuaipeizhi:before {
  content: "\eb6b";
}
.icon-lianjieleixing:before {
  content: "\e60f";
}
.icon-liuchengmobanfenlei:before {
  content: "\e625";
}
.icon-meijvleixing:before {
  content: "\e7d5";
}
.icon-jiqimiji:before {
  content: "\e60d";
}
.icon-uidingyi:before {
  content: "\e606";
}
.icon-liuchengmobandingyi:before {
  content: "\eb6a";
}
.icon-liuchengmobanguanli:before {
  content: "\e639";
}
.icon-wenjianguiguanli:before {
  content: "\e60e";
}
.icon-uijianmo:before {
  content: "\e641";
}
.icon-rizhiguanli:before {
  content: "\e609";
}
.icon-mimaceluo:before {
  content: "\e64c";
}
.icon-xitongpeizhi:before {
  content: "\e65f";
}
.icon-renyuanzuzhiguanli:before {
  content: "\e66c";
}
.icon-yewuleixing:before {
  content: "\e62c";
}
.icon-anquanguanli:before {
  content: "\e62d";
}
.icon-wuquanxian:before {
  content: "\e6d5";
}
.icon-jiaoseguanli:before {
  content: "\e62a";
}
.icon-banbenguanli:before {
  content: "\e601";
}
.icon-bumenguanli:before {
  content: "\e686";
}
.icon-gongnengquanxianguanli:before {
  content: "\e61a";
}
.icon-zhuangtaichi:before {
  content: "\e656";
}
.icon-shengmingzhouqi:before {
  content: "\e64e";
}
.icon-shujushouquan:before {
  content: "\e653";
}
.icon-mijiguanli:before {
  content: "\e6c3";
}
.icon-shuxingchi:before {
  content: "\e767";
}
.icon-biaodandingyi:before {
  content: "\e62b";
}
.icon-chaxunmobandingyi:before {
  content: "\e62e";
}
.icon-chaxunmoban:before {
  content: "\e614";
}
.icon-duixiangjianmo:before {
  content: "\e607";
}
.icon-actionguanli:before {
  content: "\e71b";
}
Source/plt-web/plt-web-ui/public/cdn/iconfont/plt-web/iconfont.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@
window._iconfont_svg_string_4729933='<svg><symbol id="icon-uishouquan" viewBox="0 0 1024 1024"><path d="M650.666667 644.266667c23.466667-12.8 51.2-21.333333 81.066666-21.333334 2.133333 0 4.266667-4.266667 2.133334-6.4-29.866667-27.733333-66.133333-49.066667-104.533334-66.133333h-2.133333c61.866667-44.8 102.4-117.333333 102.4-200.533333C729.6 213.333333 618.666667 102.4 482.133333 102.4S234.666667 213.333333 234.666667 349.866667c0 83.2 40.533333 155.733333 102.4 200.533333h-2.133334c-44.8 19.2-85.333333 46.933333-119.466666 81.066667-34.133333 34.133333-61.866667 74.666667-81.066667 119.466666-19.2 44.8-27.733333 89.6-29.866667 138.666667 0 4.266667 4.266667 8.533333 8.533334 8.533333h59.733333c4.266667 0 8.533333-4.266667 8.533333-8.533333 2.133333-76.8 32-149.333333 87.466667-204.8 55.466667-57.6 132.266667-87.466667 211.2-87.466667 57.6 0 110.933333 14.933333 157.866667 44.8 6.4 4.266667 8.533333 4.266667 12.8 2.133334z m-166.4-121.6c-44.8 0-89.6-17.066667-121.6-51.2-32-32-51.2-74.666667-51.2-121.6s17.066667-89.6 51.2-121.6 74.666667-51.2 121.6-51.2 89.6 17.066667 121.6 51.2c32 32 51.2 74.666667 51.2 121.6s-17.066667 89.6-51.2 121.6c-34.133333 34.133333-76.8 51.2-121.6 51.2z"  ></path><path d="M923.733333 603.733333l-40.533333-40.533333c-2.133333-2.133333-10.666667-2.133333-14.933333 4.266667L635.733333 797.866667l-89.6-89.6c-2.133333-2.133333-6.4-2.133333-10.666666 2.133333l-40.533334 40.533333c-2.133333 2.133333-4.266667 8.533333-2.133333 10.666667l93.866667 93.866667 40.533333 40.533333c2.133333 2.133333 6.4 2.133333 10.666667-2.133333l40.533333-40.533334 241.066667-234.666666c4.266667-6.4 6.4-12.8 4.266666-14.933334z"  ></path></symbol><symbol id="icon-uiquanxian" viewBox="0 0 1024 1024"><path d="M651.818667 344.704a27.392 27.392 0 0 1 27.392 26.88 27.434667 27.434667 0 1 1-27.392-27.434667v0.554667z m0-55.424a82.218667 82.218667 0 0 0-58.154667 140.458667 82.218667 82.218667 0 1 0 116.309333-116.352 82.218667 82.218667 0 0 0-58.154666-24.106667z" fill="#999999" ></path><path d="M651.818667 182.869333a189.098667 189.098667 0 0 1 186.026666 225.962667 189.312 189.312 0 0 1-51.712 96.981333 187.221333 187.221333 0 0 1-133.376 54.869334 190.293333 190.293333 0 0 1-82.261333-18.346667l-35.072-16.64-27.434667 27.434667-56.746666 56.661333-38.656 39.338667 38.826666 38.826666 13.653334 13.738667-37.376 37.546667-13.696-13.696-39.082667-39.253334-38.826667 38.826667-115.370666 116.053333-37.717334-37.717333 287.872-288 27.392-27.434667-16.725333-35.114666a189.226667 189.226667 0 0 1 170.24-270.08z m0-54.869333a243.754667 243.754667 0 0 0-243.413334 229.76 244.053333 244.053333 0 0 0 23.381334 119.424l-287.829334 288a54.058667 54.058667 0 0 0 0 76.672l39.04 38.229333a54.101333 54.101333 0 0 0 76.629334 0l115.285333-116.138666 14.378667 14.378666a54.186667 54.186667 0 0 0 76.629333 0l38.4-38.4a54.869333 54.869333 0 0 0 0-76.629333l-14.122667-14.165333 56.618667-56.618667a246.613333 246.613333 0 0 0 105.386667 23.722667A243.925333 243.925333 0 0 0 896 371.925333 244.181333 244.181333 0 0 0 651.818667 128z" fill="#999999" ></path></symbol><symbol id="icon-chengyuanguanli" viewBox="0 0 1024 1024"><path d="M727.307206 877.92611 291.374672 877.92611l0-0.425695L278.138206 877.500415c0-49.178049 19.125593-95.387487 53.853535-130.114406 25.031093-25.031093 56.029084-41.957601 89.801259-49.458435-35.449373-26.393113-58.490136-68.567655-58.627259-116.02962L72.774979 581.897953l0-0.425695L59.538513 581.472258c0-49.178049 19.125593-95.386464 53.853535-130.11543 25.031093-25.031093 56.029084-41.957601 89.801259-49.458435-35.555797-26.472931-58.627259-68.820412-58.627259-116.455315 0-80.013335 65.095577-145.108912 145.108912-145.108912s145.108912 65.095577 145.108912 145.108912c0 47.01478-22.477944 88.880283-57.246819 115.415636 31.979342 7.443529 60.830437 25.14161 78.4487 45.246507 16.23066-6.291287 33.864272-9.742898 52.289923-9.742898 20.291139 0 39.620369 4.185322 57.174164 11.739369 17.336854-20.821211 46.837748-39.372729 79.676667-47.131437-34.856879-26.52819-57.395198-68.444858-57.395198-115.527177 0-80.013335 65.095577-145.108912 145.109935-145.108912 80.012312 0 145.108912 65.095577 145.108912 145.108912 0 47.458895-22.902616 89.670276-58.234309 116.161626 34.1948 7.375991 65.591881 24.39562 90.892103 49.695842 34.727942 34.728966 53.853535 80.936357 53.853535 130.113383l-12.586666 0 0 0.484024L653.382543 581.897953c-0.1361 47.285956-23.004947 89.322351-58.232263 115.735931 34.1948 7.375991 65.591881 24.39562 90.89108 49.694819 34.727942 34.728966 53.853535 80.93738 53.853535 130.113383l-12.58769 0L727.307206 877.92611zM304.520063 853.366761l409.000138 0C701.950701 777.303388 636.431475 718.732411 557.347303 718.040656c-15.33322 5.526877-31.858592 8.540514-49.072649 8.540514-17.141402 0-33.593096-2.986007-48.872081-8.466835C380.914988 719.42212 316.054771 777.744433 304.520063 853.366761zM508.274654 460.921671c-66.470901 0-120.549563 54.078663-120.549563 120.550587 0 66.470901 54.078663 120.549563 120.549563 120.549563s120.549563-54.078663 120.549563-120.549563C628.824217 515.000334 574.745555 460.921671 508.274654 460.921671zM651.376862 557.338604l286.709931 0c-11.571546-76.063373-77.090772-134.63435-156.174945-135.326105-15.334243 5.526877-31.856545 8.53949-49.070602 8.53949-17.375739 0-34.054607-3.071965-49.510624-8.698103-21.297049-1.261737-44.419675 4.192485-65.354474 15.477506-11.967566 6.450922-22.49841 14.408151-30.323633 22.715351C620.797403 481.790978 644.55141 516.731768 651.376862 557.338604zM85.921393 557.338604l279.252075 0c7.101745-42.25436 32.522718-78.365812 67.793012-99.864452-7.503904-7.368828-17.076934-14.361079-27.801183-20.142759-21.181415-11.419074-44.589544-16.872273-66.110697-15.430434-15.418154 5.595438-32.050973 8.650007-49.377594 8.650007-17.141402 0-33.593096-2.986007-48.872081-8.467859C162.315294 423.393963 97.455077 481.715253 85.921393 557.338604zM732.840222 164.893514c-66.471924 0-120.550587 54.078663-120.550587 120.549563 0 66.470901 54.078663 120.549563 120.550587 120.549563 66.470901 0 120.549563-54.078663 120.549563-120.549563C853.389786 218.972177 799.311123 164.893514 732.840222 164.893514zM289.67496 164.893514c-66.470901 0-120.549563 54.078663-120.549563 120.549563 0 66.470901 54.078663 120.549563 120.549563 120.549563s120.549563-54.078663 120.549563-120.549563C410.224524 218.972177 356.145861 164.893514 289.67496 164.893514z" fill="#231815" ></path></symbol><symbol id="icon-chaxunrizhi" viewBox="0 0 1024 1024"><path d="M665.9072 333.5168a26.1632 26.1632 0 0 0-26.112-25.7024H230.9632a25.7536 25.7536 0 0 0-26.112 25.7024c0 13.7728 11.6736 25.7024 26.112 25.7024h408.7808a25.8048 25.8048 0 0 0 26.1632-25.7024z" fill="#666666" ></path><path d="M153.9584 972.8A51.3024 51.3024 0 0 1 102.4 921.5488V204.8512C102.4 176.5376 125.44 153.6 153.9584 153.6h613.6832C796.1088 153.6 819.2 176.384 819.2 204.8512V409.6h51.2V204.544A102.144 102.144 0 0 0 768.3072 102.4H153.2928A102.1952 102.1952 0 0 0 51.2 204.544v717.312C51.2 978.2784 96.9216 1024 153.2928 1024H512v-51.2H153.9584z" fill="#666666" ></path><path d="M230.5536 461.9264a25.8048 25.8048 0 0 0-25.6512 25.7024c0 13.7728 11.4688 25.7024 25.6512 25.7024h256a25.8048 25.8048 0 0 0 25.6512-25.7024 25.9584 25.9584 0 0 0-25.6512-25.7024h-256zM935.2192 940.6464l-95.6928-95.6928A178.7904 178.7904 0 0 0 870.4 744.192a179.3024 179.3024 0 0 0-179.0976-179.5584c-98.9184 0-179.0976 80.384-179.0976 179.5584s80.1792 179.5584 179.0976 179.5584c43.1104 0 82.688-15.3088 113.6128-40.7552l94.0032 94.0032c10.5472 10.5472 26.4704 10.24 36.5056 0.2048a26.112 26.112 0 0 0-0.2048-36.5568zM691.1488 870.4a128 128 0 1 1 0-255.8976 128 128 0 0 1 0 255.8976zM972.8 307.2V102.2464A102.0928 102.0928 0 0 0 870.7072 0H460.8v51.2h409.6512c28.2624 0 51.1488 22.784 51.1488 51.2512V307.2h51.2z" fill="#666666" ></path><path d="M435.2 0h51.2a25.6 25.6 0 0 1 0 51.2h-51.2a25.6 25.6 0 0 1 0-51.2zM947.2 256a25.6 25.6 0 0 1 25.6 25.6v51.2a25.6 25.6 0 0 1-51.2 0v-51.2a25.6 25.6 0 0 1 25.6-25.6zM844.8 358.4a25.6 25.6 0 0 1 25.6 25.6v51.2a25.6 25.6 0 0 1-51.2 0v-51.2a25.6 25.6 0 0 1 25.6-25.6zM486.4 972.8h51.2a25.6 25.6 0 0 1 0 51.2h-51.2a25.6 25.6 0 0 1 0-51.2z" fill="#666666" ></path></symbol><symbol id="icon-gongnengmokuai" viewBox="0 0 1024 1024"><path d="M354.133333 896c-55.466667-17.066667-102.4-51.2-145.066666-89.6 17.066667-25.6 25.6-51.2 25.6-81.066667 0-81.066667-64-145.066667-145.066667-149.333333-4.266667-21.333333-8.533333-42.666667-8.533333-64 0-38.4 4.266667-72.533333 12.8-106.666667C170.666667 396.8 230.4 332.8 230.4 256c0-17.066667-4.266667-34.133333-8.533333-51.2C264.533333 170.666667 311.466667 145.066667 362.666667 128c25.6 42.666667 72.533333 64 123.733333 64s98.133333-25.6 123.733333-64c51.2 17.066667 98.133333 42.666667 140.8 81.066667-4.266667 17.066667-8.533333 34.133333-8.533333 51.2 0 76.8 59.733333 140.8 136.533333 149.333333 8.533333 34.133333 12.8 72.533333 12.8 106.666667 0 21.333333 0 38.4-4.266666 59.733333h42.666666c4.266667-21.333333 4.266667-38.4 4.266667-59.733333 0-46.933333-8.533333-89.6-21.333333-132.266667-4.266667-8.533333-12.8-17.066667-21.333334-17.066667-59.733333 0-106.666667-46.933333-106.666666-106.666666 0-17.066667 4.266667-34.133333 12.8-46.933334 4.266667-8.533333 0-17.066667-4.266667-25.6-51.2-46.933333-115.2-85.333333-183.466667-102.4-8.533333-4.266667-21.333333 0-25.6 8.533334-17.066667 34.133333-55.466667 59.733333-93.866666 59.733333-38.4 0-76.8-21.333333-93.866667-59.733333-8.533333-12.8-21.333333-17.066667-29.866667-12.8-68.266667 17.066667-132.266667 55.466667-183.466666 102.4-8.533333 8.533333-8.533333 17.066667-4.266667 25.6 4.266667 17.066667 8.533333 29.866667 8.533333 46.933333 0 59.733333-46.933333 106.666667-106.666666 106.666667-12.8 0-17.066667 4.266667-21.333334 17.066666-12.8 42.666667-21.333333 89.6-21.333333 132.266667 0 29.866667 4.266667 59.733333 8.533333 89.6 0 8.533333 12.8 17.066667 21.333334 17.066667h8.533333c59.733333 0 106.666667 46.933333 106.666667 106.666666 0 25.6-8.533333 51.2-25.6 68.266667-8.533333 8.533333-8.533333 21.333333 0 29.866667 55.466667 55.466667 119.466667 98.133333 196.266666 119.466666 17.066667 4.266667 29.866667-4.266667 29.866667-12.8 8.533333-34.133333 38.4-59.733333 68.266667-68.266666v-42.666667c-42.666667 4.266667-81.066667 34.133333-98.133334 76.8z" fill="#666666" ></path><path d="M358.4 512c0-68.266667 59.733333-128 128-128s128 59.733333 128 128c0 21.333333-4.266667 42.666667-17.066667 59.733333h46.933334c8.533333-17.066667 12.8-38.4 12.8-59.733333 0-93.866667-76.8-170.666667-170.666667-170.666667s-170.666667 76.8-170.666667 170.666667c0 81.066667 59.733333 153.6 136.533334 166.4v-42.666667c-51.2-12.8-93.866667-64-93.866667-123.733333z" fill="#666666" ></path><path d="M964.266667 610.133333H524.8c-12.8 0-21.333333 8.533333-21.333333 21.333334s8.533333 21.333333 21.333333 21.333333h439.466667c12.8 0 21.333333-8.533333 21.333333-21.333333s-8.533333-21.333333-21.333333-21.333334zM964.266667 733.866667H524.8c-12.8 0-21.333333 8.533333-21.333333 21.333333s8.533333 21.333333 21.333333 21.333333h439.466667c12.8 0 21.333333-8.533333 21.333333-21.333333s-8.533333-21.333333-21.333333-21.333333zM964.266667 861.866667H524.8c-12.8 0-21.333333 8.533333-21.333333 21.333333s8.533333 21.333333 21.333333 21.333333h439.466667c12.8 0 21.333333-8.533333 21.333333-21.333333s-8.533333-21.333333-21.333333-21.333333z" fill="#666666" ></path></symbol><symbol id="icon-xitongmokuaipeizhi-copy" viewBox="0 0 1024 1024"><path d="M992.6 404.1l-94.7 0c-8.7-31.3-21-61-36.6-88.7l66.9-66.9c12.2-12.2 12.2-32.2 0-44.5L820 95.9c-6.1-6.1-14.2-9.2-22.2-9.2s-16.1 3.1-22.2 9.2l-66.9 66.9c-27.7-15.6-57.4-27.9-88.7-36.6L620 31.4c0-17.3-14.2-31.4-31.4-31.4L435.6 0c-17.3 0-31.4 14.2-31.4 31.4l0 94.7c-31.3 8.7-61 21-88.7 36.6l-66.9-66.9c-6.1-6.1-14.2-9.2-22.2-9.2s-16.1 3.1-22.2 9.2L95.9 204c-12.2 12.2-12.2 32.2 0 44.5l66.9 66.9c-15.6 27.7-27.9 57.4-36.6 88.7L31.4 404.1C14.2 404.1 0 418.3 0 435.6l0 152.9c0 17.3 14.2 31.4 31.4 31.4l94.7 0c8.7 31.3 21 61 36.6 88.7l-66.9 66.9c-12.2 12.2-12.2 32.2 0 44.5L204 928.1c6.1 6.1 14.2 9.2 22.2 9.2s16.1-3.1 22.2-9.2l66.9-66.9c27.7 15.6 57.4 27.9 88.7 36.6l0 94.7c0 17.3 14.2 31.4 31.4 31.4l152.9 0c17.3 0 31.4-14.2 31.4-31.4l0-94.7c31.3-8.7 61-21 88.7-36.6l66.9 66.9c6.1 6.1 14.2 9.2 22.2 9.2s16.1-3.1 22.2-9.2L928.1 820c12.2-12.2 12.2-32.2 0-44.5l-66.9-66.9c15.6-27.7 27.9-57.4 36.6-88.7l94.7 0c17.3 0 31.4-14.2 31.4-31.4L1023.9 435.6C1024 418.3 1009.9 404.1 992.6 404.1zM960 555.9l-62.2 0-48.6 0-13.1 46.8c-7.3 26.3-17.7 51.4-30.7 74.5l-23.9 42.3 34.4 34.4 43.9 43.9-62.1 62.1-43.9-43.9-34.4-34.4-42.3 23.9c-23.1 13-48.2 23.4-74.5 30.7l-46.8 13.1 0 48.6L555.8 960l-87.8 0 0-62.2 0-48.6-46.8-13.1c-26.3-7.3-51.4-17.7-74.5-30.7l-42.3-23.9-34.4 34.4-43.9 43.9-62.1-62.1 43.9-43.9 34.4-34.4-23.9-42.3c-13-23.1-23.4-48.2-30.7-74.5l-13.1-46.8-48.6 0L64 555.8l0-87.8 62.2 0 48.6 0 13.1-46.8c7.3-26.3 17.7-51.4 30.7-74.5l23.9-42.3-34.4-34.4-43.9-43.9 62.1-62.1 43.9 43.9 34.4 34.4 42.3-23.9c23.1-13 48.2-23.4 74.5-30.7l46.8-13.1 0-48.6L468.2 64l87.8 0 0 62.2 0 48.6 46.8 13.1c26.3 7.3 51.4 17.7 74.5 30.7l42.3 23.9 34.4-34.4 43.9-43.9 62.1 62.1-43.9 43.9-34.4 34.4 23.9 42.3c13 23.1 23.4 48.2 30.7 74.5l13.1 46.8 48.6 0L960 468.2 960 555.9z"  ></path><path d="M512 320c-106 0-192 86-192 192 0 106 86 192 192 192 106 0 192-86 192-192C704 406 618 320 512 320zM602.5 602.5C578.3 626.7 546.2 640 512 640c-34.2 0-66.3-13.3-90.5-37.5C397.3 578.3 384 546.2 384 512c0-34.2 13.3-66.3 37.5-90.5 24.2-24.2 56.3-37.5 90.5-37.5 34.2 0 66.3 13.3 90.5 37.5 24.2 24.2 37.5 56.3 37.5 90.5C640 546.2 626.7 578.3 602.5 602.5z"  ></path></symbol><symbol id="icon-lianjieleixing" viewBox="0 0 1024 1024"><path d="M629.43232 195.584l-99.45088 99.45088c-36.47488 36.49536-48.70144 88.08448-36.67968 134.69696l74.5472-74.52672c0.96256-0.98304 1.98656-1.92512 2.99008-2.84672 4.85376-11.07968 11.96032-21.68832 21.27872-30.98624l63.6928-63.71328c35.20512-35.20512 88.43264-38.99392 118.94784-8.4992 30.49472 30.49472 26.7264 83.7632-8.47872 118.96832l-63.6928 63.71328c-9.3184 9.29792-19.90656 16.40448-30.98624 21.23776-0.9216 1.04448-1.88416 2.048-2.90816 3.03104l-74.48576 74.50624c46.592 12.02176 98.16064-0.18432 134.67648-36.70016l99.4304-99.4304c54.94784-54.94784 54.94784-143.9744 0-198.92224C773.44768 140.65664 684.38016 140.65664 629.43232 195.584zM464.36352 660.50048c-2.00704 2.02752-4.096 3.85024-6.2464 5.57056-4.85376 11.38688-12.10368 22.24128-21.62688 31.82592l-63.71328 63.6928c-35.20512 35.2256-88.45312 38.99392-118.96832 8.51968-30.5152-30.49472-26.70592-83.7632 8.4992-118.96832l63.71328-63.71328c9.54368-9.56416 20.41856-16.75264 31.82592-21.64736 1.72032-2.1504 3.60448-4.23936 5.59104-6.2464l70.90176-70.92224c-46.61248-12.02176-98.18112 0.2048-134.69696 36.70016l-99.4304 99.45088c-54.92736 54.94784-54.92736 143.95392 0 198.88128 54.92736 54.94784 143.9744 54.94784 198.92224 0l99.4304-99.40992c36.51584-36.49536 48.72192-88.08448 36.72064-134.67648L464.36352 660.50048zM582.94272 370.3808l-19.92704 19.92704-61.87008 61.87008-44.35968 44.35968-61.87008 61.87008-16.34304 16.36352c-20.95104 20.93056-22.13888 53.71904-2.64192 73.23648 19.49696 19.47648 52.30592 18.35008 73.25696-2.64192l16.34304-16.36352 61.87008-61.8496 44.35968-44.35968 61.8496-61.87008 19.968-19.94752c20.95104-20.95104 22.13888-53.73952 2.64192-73.23648C636.70272 348.22144 603.87328 349.42976 582.94272 370.3808z" fill="#272636" ></path></symbol><symbol id="icon-liuchengmobanfenlei" viewBox="0 0 1024 1024"><path d="M227.629176 382.674824c-16.323765 0-32.225882-6.264471-44.092235-17.709177L97.159529 282.202353l41.622589-43.550118 86.437647 82.763294 156.370823-197.75247 47.826824 36.623059L278.287059 357.677176a64.090353 64.090353 0 0 1-50.657883 24.997648zM306.959059 680.839529H179.019294a64.752941 64.752941 0 0 1-64.63247-64.692705V488.267294c0-35.659294 28.973176-64.692706 64.63247-64.692706h127.939765c35.599059 0 64.632471 29.033412 64.63247 64.692706v127.819294c0 35.659294-28.973176 64.752941-64.63247 64.752941zM179.019294 483.809882a4.457412 4.457412 0 0 0-4.397176 4.457412v127.819294c0 2.469647 1.987765 4.457412 4.397176 4.457412h127.939765c2.409412 0 4.397176-1.987765 4.397176-4.457412V488.267294a4.457412 4.457412 0 0 0-4.397176-4.457412H179.019294zM306.959059 978.944H179.019294a64.692706 64.692706 0 0 1-64.63247-64.572235v-127.87953c0-35.719529 28.973176-64.692706 64.63247-64.692706h127.939765c35.599059 0 64.632471 28.973176 64.63247 64.692706v127.87953c0 35.599059-28.973176 64.572235-64.63247 64.572235z m-127.939765-196.969412a4.457412 4.457412 0 0 0-4.397176 4.457412v127.879529c0 2.349176 1.987765 4.336941 4.397176 4.336942h127.939765c2.409412 0 4.397176-1.987765 4.397176-4.336942v-127.879529a4.457412 4.457412 0 0 0-4.397176-4.457412H179.019294zM463.450353 257.686588h466.462118v58.006588H463.450353zM463.450353 548.261647h466.462118v58.006588H463.450353zM463.450353 838.836706h466.462118v58.006588H463.450353z" fill="#4D4D4D" ></path></symbol><symbol id="icon-meijvleixing" viewBox="0 0 1024 1024"><path d="M893.53216 222.06464L693.20704 21.7344c-6.59456-6.60992-13.8496-9.69216-22.83008-9.69216h-467.456c-43.1872 0-77.01504 33.83296-77.01504 77.02016v845.86496c0 43.19232 33.82784 77.02016 77.01504 77.02016h623.27808c43.1872 0 77.01504-33.82784 77.01504-77.02016V244.88448c0-9.10336-2.99008-16.14848-9.68192-22.81984zM702.8736 122.69568l89.69728 89.69216h-77.67552v-0.00512c-7.75168 0-12.02176-4.26496-12.02176-12.01664v-77.6704z m135.33696 812.24192c0 7.75168-4.26496 12.01664-12.01152 12.01664H202.92096c-7.74656 0-12.01664-4.26496-12.01664-12.01664V89.06752c0-7.75168 4.26496-12.02176 12.01664-12.02176h434.95424v123.32032c0 43.19232 33.82784 77.02016 77.02016 77.02016h123.3152v657.55136z" fill="" ></path><path d="M539.61216 384.93696c0 18.18112 13.19424 31.37536 31.37536 31.37536h160.11264c18.18112 0 31.37536-13.19424 31.37536-31.37536 0-18.176-13.19424-31.37024-31.37536-31.37024h-160.11264c-18.18112 0-31.37536 13.19424-31.37536 31.37024zM477.51168 353.56672H429.4656c-18.18112 0-31.37536 13.19424-31.37536 31.37024 0 18.18112 13.19424 31.37536 31.37536 31.37536h48.04608c18.176 0 31.37024-13.19424 31.37024-31.37536 0-18.176-13.18912-31.37024-31.37024-31.37024zM731.10528 495.85664h-160.11264c-18.18112 0-31.37536 13.19424-31.37536 31.37024s13.19424 31.37024 31.37536 31.37024h160.11264c18.18112 0 31.37536-13.19424 31.37536-31.37024s-13.19936-31.37024-31.37536-31.37024zM477.51168 495.85664H429.4656c-18.18112 0-31.37536 13.19424-31.37536 31.37024s13.19424 31.37024 31.37536 31.37024h48.04608c18.176 0 31.37024-13.19424 31.37024-31.37024s-13.18912-31.37024-31.37024-31.37024zM731.10528 638.15168h-160.11264c-18.18112 0-31.37536 13.19424-31.37536 31.37024s13.19424 31.37024 31.37536 31.37024h160.11264c18.18112 0 31.37536-13.19424 31.37536-31.37024s-13.19936-31.37024-31.37536-31.37024zM477.51168 638.15168H429.4656c-18.18112 0-31.37536 13.19424-31.37536 31.37024s13.19424 31.37024 31.37536 31.37024h48.04608c18.176 0 31.37024-13.19424 31.37024-31.37024s-13.18912-31.37024-31.37024-31.37024zM295.79776 287.74912c0 1.52576-0.04608 4.29568-0.09728 6.97856-0.04096 2.67264-0.08704 5.25824-0.08704 6.59968 0 26.9312 13.68064 41.25696 45.5424 47.85152 1.36192 0.30208 2.7392 0.45568 4.11648 0.45568 9.84064 0 17.55136-7.64928 17.55136-17.41312a17.82784 17.82784 0 0 0-11.52512-16.62976l-1.08544-0.35328c-15.95392-4.39296-15.95392-5.248-15.95392-15.68768 0-1.70496 0.04096-3.99872 0.08704-6.31808 0.0512-2.54464 0.09728-5.12 0.09728-7.08096 0-11.648-3.28704-19.65568-7.98208-25.28256 5.30432-6.44096 7.98208-14.8224 7.98208-25.07776 0-1.96096-0.04608-4.53632-0.09728-7.08096-0.04096-2.31936-0.08704-4.608-0.08704-6.30784 0-10.44992 0-11.30496 15.95392-15.69792l1.07008-0.34816a17.82784 17.82784 0 0 0 11.54048-16.64c0-9.76384-7.71072-17.408-17.55648-17.408-1.36704 0-2.7392 0.1536-3.9168 0.41472-32.06144 6.64576-45.73696 20.9664-45.73696 47.88736 0 1.34144 0.04096 3.93728 0.08704 6.61504 0.0512 2.67776 0.09728 5.44256 0.09728 6.9632 0 8.54016-0.73728 8.5504-8.12544 8.64256-8.43776 0.37376-15.0528 5.1968-17.47968 12.1344l-0.00512 0.01536a18.1248 18.1248 0 0 0-0.57856 2.30912 23.02464 23.02464 0 0 0-0.11776 6.72256c1.408 8.46848 8.63232 14.65344 18.61632 15.11424 6.9632 0.0768 7.69024 0.08704 7.69024 8.62208zM353.36704 760.24832c-7.25504-0.08192-7.69024-0.08192-7.69024-8.6272 0-1.52064 0.04608-4.29056 0.09216-6.9632 0.04096-2.67264 0.08704-5.26848 0.08704-6.60992 0-26.88-13.6704-41.20064-45.696-47.88736a19.26656 19.26656 0 0 0-4.00384-0.41984c-9.81504 0-17.5104 7.64416-17.5104 17.408 0 7.36256 4.6336 14.04416 11.53536 16.63488l1.05984 0.33792c15.9744 4.43392 15.9744 5.28384 15.9744 15.70304 0 1.69984-0.04096 3.98336-0.08192 6.30272-0.04096 2.54976-0.08704 5.12-0.08704 7.08096 0 11.648 3.28704 19.6608 7.97696 25.28256-5.30432 6.44608-7.97696 14.82752-7.97696 25.07264 0 1.95584 0.04608 4.5312 0.08704 7.07072 0.04096 2.31936 0.08192 4.61824 0.08192 6.31808 0 10.40896 0 11.25888-15.97952 15.6928l-1.09568 0.3584a17.85856 17.85856 0 0 0-11.49952 16.6144c0 9.76896 7.68512 17.408 17.49504 17.408 1.34656 0 2.70848-0.13824 3.98848-0.41984 32.0512-6.67648 45.72672-20.99712 45.72672-47.88736 0-1.34656-0.04096-3.93728-0.08704-6.60992s-0.09216-5.44256-0.09216-6.9632c0-8.53504 0.4352-8.54016 8.13568-8.64256 9.3952-0.43008 16.49152-6.5024 17.9712-14.85312 0.384-2.944-0.17408-6.87616-0.36864-8.07936-2.048-7.54688-8.86272-12.91264-18.04288-13.32224z" fill="" ></path></symbol><symbol id="icon-jiqimiji" viewBox="0 0 1024 1024"><path d="M965.811 842.662h-36.727v-57.986c0-10.678-8.653-19.331-19.329-19.331h-77.317c-10.676 0-19.329 8.653-19.329 19.331v57.986h-40.063c-9.408-65.479-65.859-115.977-133.903-115.977h-30.927s-0.143-128.096-0.404-129.367c2.312-28.656-7.444-58.113-29.319-79.988L476.324 415.159l120.973-120.974a81.956 81.956 0 0 0 14.606-19.811h120.023c10.677 0 19.33-8.654 19.33-19.33v-19.326h45.102v19.359a19.328 19.328 0 0 0 9.666 16.739l67.01 38.686a19.303 19.303 0 0 0 9.665 2.591c3.338 0 6.674-0.864 9.664-2.591l67.01-38.687c9.246-5.337 12.414-17.16 7.075-26.404-5.338-9.245-17.162-12.414-26.404-7.075l-57.345 33.105-47.681-27.527v-55.058l47.681-27.527 57.345 33.107c9.246 5.339 21.068 2.17 26.404-7.074 5.339-9.246 2.171-21.068-7.075-26.405l-67.01-38.687a19.323 19.323 0 0 0-19.329 0l-67.01 38.687a19.329 19.329 0 0 0-9.666 16.74v19.359h-45.102v-19.33c0-10.676-8.653-19.329-19.33-19.329H565.824c-28.727-9.789-61.832-3.26-84.703 19.609L340.497 318.633c-52.052 9.217-91.723 54.752-91.723 109.412 0 36.566 17.757 69.059 45.095 89.325a101.55 101.55 0 0 0 11.768 14.135l105.86 105.858v89.322H387.86c-68.043 0-124.493 50.497-133.903 115.977h-40.064v-57.986c0-10.678-8.653-19.331-19.331-19.331h-77.317c-10.676 0-19.33 8.653-19.33 19.331v57.986H61.189c-10.676 0-19.329 8.653-19.329 19.327 0 10.678 8.653 19.331 19.329 19.331H965.81c10.676 0 19.329-8.653 19.329-19.331 0.001-10.674-8.653-19.327-19.328-19.327zM712.595 197.057v38.66h-91.286c-0.063-13.325-3.344-26.635-9.833-38.66h101.119zM175.233 842.662h-38.659v-38.659h38.66v38.659h-0.001z m333.221-637.319c8.215-8.214 19.134-12.738 30.752-12.738 11.619 0 22.538 4.523 30.753 12.738 16.957 16.957 16.957 44.548 0 61.507L459.008 377.805c-13.615-26.749-37.724-47.281-66.884-56.128l116.33-116.334zM287.428 428.045c0-39.968 32.517-72.486 72.485-72.486 39.969 0 72.486 32.519 72.486 72.486s-32.517 72.486-72.486 72.486-72.485-32.518-72.485-72.486z m80.262 110.841c46.786-3.252 85.68-35.569 98.694-78.991l84.772 84.772c24.493 24.494 24.493 64.347 0 88.84-11.868 11.866-27.641 18.399-44.422 18.399-16.779 0-32.555-6.533-44.42-18.399l-94.624-94.621z m201.866 129.876v57.928H450.155v-53.366c17.042 11.454 36.805 17.201 56.58 17.201 22.242-0.004 44.469-7.273 62.821-21.763z m-276.404 173.9c8.981-44.06 48.033-77.317 94.708-77.317h251.282c46.672 0 85.724 33.258 94.708 77.317H293.152z m597.274 0h-38.66v-38.659h38.66v38.659z" fill="#040000" ></path><path d="M359.913 408.714c-10.657 0-19.33 8.672-19.33 19.331 0 10.658 8.672 19.331 19.33 19.331 10.659 0 19.331-8.673 19.331-19.331 0-10.659-8.672-19.331-19.331-19.331z" fill="#040000" ></path></symbol><symbol id="icon-uidingyi" viewBox="0 0 1024 1024"><path d="M704.8704 950.016H319.0784a25.6 25.6 0 0 1 0-51.2h385.792a25.6 25.6 0 0 1 0 51.2zM656.2304 610.3552a25.6 25.6 0 0 1-25.6-25.6V315.2896a25.6 25.6 0 1 1 51.2 0v269.4656a25.6 25.6 0 0 1-25.6 25.6zM425.3184 612.7104h-47.2576a84.6336 84.6336 0 0 1-84.5312-84.5312V315.2896a25.6 25.6 0 0 1 51.2 0v212.8896a33.3824 33.3824 0 0 0 33.3312 33.3312h47.2576a33.3824 33.3824 0 0 0 33.3312-33.3312V315.2896a25.6 25.6 0 0 1 51.2 0v212.8896a84.6336 84.6336 0 0 1-84.5312 84.5312z" fill="#888888" ></path><path d="M897.792 817.9712H126.208A122.1632 122.1632 0 0 1 4.1472 695.9616V213.7088A122.2144 122.2144 0 0 1 126.208 91.648h771.584a122.2144 122.2144 0 0 1 122.0608 122.0608v482.2528a122.1632 122.1632 0 0 1-122.0608 122.0096zM126.208 142.848a70.9632 70.9632 0 0 0-70.8608 70.8608v482.2528a70.912 70.912 0 0 0 70.8608 70.8608h771.584a70.912 70.912 0 0 0 70.8608-70.8608V213.7088a70.912 70.912 0 0 0-70.8608-70.8608z" fill="#888888" ></path></symbol><symbol id="icon-liuchengmobandingyi" viewBox="0 0 1024 1024"><path d="M727.008 487.232l194.016-184.32a99.2 99.2 0 0 0 0-140.288l-48.416-48.416a99.2 99.2 0 0 0-138.464-1.76L544.64 292.384l-184.064-196.64-1.504-1.568a64.832 64.832 0 0 0-91.712-0.384L129.184 231.968a64.8 64.8 0 0 0-1.12 90.144l181.344 193.728-171.456 162.88a99.264 99.264 0 0 0-28.256 49.28l-28.992 123.744a65.632 65.632 0 0 0 82.4 77.92l119.296-35.136a99.744 99.744 0 0 0 40.32-23.232l169.056-160.608 203.616 217.536 1.504 1.568a64.832 64.832 0 0 0 91.712 0.384l138.176-138.176a64.8 64.8 0 0 0 1.12-90.144l-200.896-214.624zM319.424 786.176l-90.112-90.112a31.488 31.488 0 0 0-9.792-6.496L667.104 264.352l94.272 94.272c1.408 1.408 3.168 2.08 4.768 3.168L319.424 786.176zM778.208 158.784a35.2 35.2 0 0 1 49.12 0.64l48.416 48.416c13.76 13.76 13.76 36.032-0.64 50.4l-64.448 61.216c-1.28-2.08-2.24-4.288-4.064-6.112l-93.12-93.12 64.736-61.44zM288.512 399.904c8-0.128 16-3.168 22.112-9.28l48-48a31.968 31.968 0 1 0-45.248-45.248l-48 48a31.68 31.68 0 0 0-8.928 20.256L174.816 278.4c-0.512-0.512-0.512-1.024-0.352-1.152L312.64 139.04c0.128-0.128 0.672-0.128 1.248 0.416l184.384 196.992-142.432 135.328-67.328-71.872zM145.024 868.288a1.6 1.6 0 0 1-2.016-1.92l28.992-123.744c0.992-4.16 2.944-7.968 5.312-11.488a31.808 31.808 0 0 0 6.752 10.144l88.288 88.288a35.072 35.072 0 0 1-8 3.552l-119.328 35.168z m598.336 16.672c-0.128 0.128-0.672 0.128-1.248-0.416l-125.6-134.176a31.232 31.232 0 0 0 14.08-7.712l48-48a31.968 31.968 0 1 0-45.248-45.248l-48 48a31.68 31.68 0 0 0-7.296 11.904l-39.904-42.656 142.432-135.328 200.576 214.304c0.48 0.512 0.48 1.024 0.352 1.152l-138.144 138.176z"  ></path></symbol><symbol id="icon-liuchengmobanguanli" viewBox="0 0 1024 1024"><path d="M988.16 621.568H867.328v-98.304c0-17.408-13.312-30.72-30.72-30.72H545.792v-90.112h120.832c17.408 0 30.72-13.312 30.72-30.72V68.608c0-17.408-13.312-30.72-30.72-30.72H363.52c-17.408 0-30.72 13.312-30.72 30.72v303.104c0 17.408 13.312 30.72 30.72 30.72h120.832v90.112h-296.96c-17.408 0-30.72 13.312-30.72 30.72v98.304H35.84c-17.408 0-30.72 13.312-30.72 30.72v303.104c0 17.408 13.312 30.72 30.72 30.72h303.104c17.408 0 30.72-13.312 30.72-30.72V652.288c0-17.408-13.312-30.72-30.72-30.72H218.112v-67.584h587.776v67.584H685.056c-17.408 0-30.72 13.312-30.72 30.72v303.104c0 17.408 13.312 30.72 30.72 30.72h303.104c17.408 0 30.72-13.312 30.72-30.72V652.288c0-17.408-13.312-30.72-30.72-30.72z m-593.92-522.24h241.664v241.664H394.24V99.328z m-86.016 825.344H66.56V683.008h241.664v241.664z m649.216 0H715.776V683.008h241.664v241.664z" fill="#555555" ></path></symbol><symbol id="icon-wenjianguiguanli" viewBox="0 0 1024 1024"><path d="M191.4 765.1c0 22.6 18.3 41 41 41h158.1c22.6 0 41-18.3 41-41 0-22.6-18.3-41-41-41H232.3c-22.6 0-40.9 18.3-40.9 41zM889.3 855.1h-40.9 16.2c13.8-0.8 24.7-12.2 24.7-26.2v26.2zM141.3 855.2h40.9H166c-13.8-0.8-24.7-12.2-24.7-26.2v26.2zM889.3 549.6h-40.9 16.2c13.8 0.8 24.7 12.2 24.7 26.2v-26.2zM809.6 346.9h-40.9 16.2c13.8 0.8 24.7 12.2 24.7 26.2v-26.2zM141.6 244h40.9-16.2c-13.8 0.8-24.7 12.2-24.7 26.2V244z" fill="#242424" ></path><path d="M906.1 468.1H232.3c-22.6 0-41 18.3-41 41 0 22.6 18.3 41 41 41h657v305.1h-748V244.1h287.3l52.7 81.4a40.98 40.98 0 0 0 36.1 21.5h291.9v63.4c0 22.6 18.3 41 41 41s41-18.3 41-41v-83.2c-3.2-34.7-32.3-61.8-67.8-61.8H769v-0.2H539.9L486 181.9l-0.6-0.9c-7.3-11.3-20-18.9-34.5-18.9H182.3v0.1h-54.5c-37.6 0-68.1 30.5-68.1 68.1v0.5h-0.1v643.6c2.4 32.8 28 59.1 60.5 62.6h787c33.1-1.5 60-26.6 64.3-58.9V529.7c-3.3-33.7-31.1-60.3-65.3-61.6z" fill="#242424" ></path></symbol><symbol id="icon-uijianmo" viewBox="0 0 1024 1024"><path d="M776.446284 615.375002c-48.090232 0-80.183713 32.093481-80.183712 80.183713s32.093481 80.183713 80.183712 80.183712 80.183713-32.093481 80.183713-80.183712-32.093481-80.183713-80.183713-80.183713zM527.996751 398.91897c-23.995126 0-40.091856 15.996751-40.091857 40.091856s15.996751 40.091856 40.091857 40.091856c23.995126 0 40.091856-15.996751 40.091856-40.091856S544.093481 398.91897 527.996751 398.91897zM223.45861 615.375002c-32.093481 0-56.088607 23.995126-56.088607 48.090232 0 32.093481 23.995126 56.088607 56.088607 56.088607s48.090232-23.995126 48.090232-56.088607c0-24.095106-23.995126-48.090232-48.090232-48.090232z m552.987674 208.357677c-72.085358 0-136.17234-56.088607-136.17234-136.272319 0-15.996751 0-32.093481 7.998376-48.090232l-80.183713-120.175589c-7.998375 7.998375-23.995126 15.996751-40.091856 15.99675-23.995126 0-48.090232-7.998375-64.086983-32.093481L319.739053 623.373377c7.998375 15.996751 7.998375 23.995126 7.998375 40.091857 0 56.088607-48.090232 104.178839-104.178838 104.178838s-112.177214-48.090232-112.177214-104.178838 48.090232-104.178839 112.177214-104.178839c23.995126 0 48.090232 7.998375 64.086982 15.996751l144.170715-128.273945v-7.998375c0-48.090232 40.091856-96.180463 96.180464-96.180463s96.180463 40.091856 96.180463 96.180463c0 15.996751 0 23.995126-7.998375 40.091856l80.183712 120.17559c15.996751-23.995126 48.090232-40.091856 80.183713-40.091857 72.085358 0 136.27232 56.088607 136.27232 136.27232-0.09998 72.185337-64.186962 128.273944-136.3723 128.273944z"  ></path><path d="M1017.297361 319.235155c0-36.392608-7.198538-65.586678-21.495633-87.48223-0.699858-2.899411-1.799634-5.598863-3.19935-8.198335C922.116695 93.481012 949.71109 144.070736 881.824879 20.995735c-0.499898-9.59805-5.998781-14.796994-13.797197-17.596425-4.899005-2.999391-10.697827-3.999188-16.29669-2.899412-3.999188-0.299939-8.098355-0.299939-11.997563-0.299939-134.172746-0.199959-519.594457-0.199959-653.867183 0-4.699046 0-9.59805 0.09998-14.397076 0.599879-11.297705-2.499492-21.395654 2.799431-27.294455 13.497258-72.785216 131.873213-42.791308 76.984363-114.576727 209.457454a34.792933 34.792933 0 0 0-3.19935 8.298314c-13.197319 21.095715-19.795979 48.990049-19.795979 83.683002v565.685095c0 101.279428 40.591755 142.271101 141.571243 142.471061 116.476341 0.09998 257.947604 0 374.423945 0 119.475731 0 238.851483 0.299939 358.227235-0.09998 93.580991-0.299939 136.27232-43.091247 136.27232-135.772421 0.299939-189.761455 0.299939-379.32295 0.199959-568.784466z m-148.96974-209.357474l2.799431 5.098964 0.699858 1.299736c20.795776 37.992283 26.194679 47.990252 36.892506 67.586272-9.298111-1.099777-18.596223-1.699655-27.894334-1.699655l-35.892709-0.09998V66.586475c7.598457 14.497055 15.596832 28.894131 23.395248 43.291206z m-55.888648-66.086576V181.963039c-194.56048-0.399919-402.01834-0.399919-596.978738 0V43.791105h102.179244c61.087592 0 383.222158 0.09998 494.799494 0z m-662.065518 72.585256l0.399919-0.599878 3.099371-5.798822c9.79801-18.096324 19.895959-36.092669 29.09409-54.488932v126.574289l-43.691125 0.09998c-8.598253 0-17.096527 0.499898-25.694781 1.399716l36.792526-67.186353z m717.054349 835.730242c-114.776686 0.09998-229.553372 0.09998-344.430038 0-112.877072 0-249.449331 0.09998-362.426382-0.099979-18.996141 0-33.893115-2.399513-45.39078-7.698437l81.18351-140.671426c3.699249-6.3987 1.499695-14.497055-4.899005-18.096324l-5.198944-2.999391c-6.3987-3.699249-14.497055-1.499695-18.096324 4.899005l-76.684424 132.97299c-5.398903-11.697624-7.798416-26.994517-7.798416-46.490557v-545.889116c0.09998-57.088404 20.395857-77.88418 77.084342-77.88418h22.095512v26.894537c0 8.698233 6.998578 15.696812 15.696812 15.696812h1.199756c8.698233 0 15.696812-6.998578 15.696812-15.696812v-26.894537c194.260541-0.09998 402.618218-0.09998 596.978738 0v39.391999c0 8.698233 6.998578 15.696812 15.696812 15.696812h1.299736c8.698233 0 15.696812-6.998578 15.696811-15.696812v-39.391999h22.495431c56.688485 0.09998 76.984363 20.795776 76.984363 78.08414v545.889116c0 20.595816-2.699452 36.492587-8.798213 48.290191l-53.189196-92.081296c-3.699249-6.298721-11.797604-8.498274-18.096324-4.799025l-5.198944 2.99939c-6.3987 3.699249-8.498274 11.797604-4.899005 18.096325l56.888444 98.479996c-11.297705 4.799025-25.79476 6.898599-43.891084 6.998578z"  ></path><path d="M150.673394 115.776483c-16.09673 29.693968 21.995532-40.091856 0 0z m720.453658-0.799838c-21.295674-38.79212 16.896568 31.293643 0 0zM182.866855 342.830363h32.59338v203.658631h-32.59338V342.830363zM812.438973 355.327824H844.932373v203.658632h-32.593379V355.327824zM345.733773 631.271773h260.047178V663.865152H345.733773v-32.593379z"  ></path></symbol><symbol id="icon-rizhiguanli" viewBox="0 0 1024 1024"><path d="M960.3232 933.072H750.19306667c-15.088 0-27.31733333-12.2304-27.31733334-27.31946667V316.40213333c0-4.45226667 1.088-8.83733333 3.168-12.77333333l105.06666667-198.63786667a27.3184 27.3184 0 0 1 48.29653333 0l105.06666667 198.63786667a27.3184 27.3184 0 0 1 3.16906667 12.77333333v589.34933334c0 15.09013333-12.2304 27.32053333-27.31946667 27.32053333zM777.51253333 878.432h155.49226667V323.18186667l-77.7472-146.98773334-77.74613333 146.98773334v555.2512z"  ></path><path d="M855.2576 376.4768c-2.74133333 0-5.48266667-0.41173333-8.1312-1.23733333l-105.06453333-32.7552c-14.40426667-4.49066667-22.44266667-19.808-17.95093334-34.21226667 4.49173333-14.4064 19.80906667-22.4448 34.21333334-17.94986667l96.9344 30.2208 96.9344-30.2208c14.40213333-4.49066667 29.7216 3.5456 34.21333333 17.94986667s-3.54666667 29.7216-17.94986667 34.21226667l-105.06666666 32.7552a27.34293333 27.34293333 0 0 1-8.13226667 1.23733333zM960.3232 815.2064H750.19306667c-15.088 0-27.31733333-12.2304-27.31733334-27.3184s12.22933333-27.31946667 27.31733334-27.31946667h210.1312c15.088 0 27.3184 12.23146667 27.3184 27.31946667s-12.2304 27.3184-27.31946667 27.3184zM642.94186667 933.072H65.08373333c-15.088 0-27.3184-12.2304-27.3184-27.31946667v-787.98933333c0-15.088 12.23146667-27.3184 27.3184-27.3184h577.85813334c15.08906667 0 27.31946667 12.23146667 27.31946666 27.3184v787.98933333c0 15.08906667-12.2304 27.31946667-27.31946666 27.31946667z m-550.53866667-54.63893333h523.2192V145.08373333H92.40213333V878.432z"  ></path><path d="M537.8784 470.4928h-364.01066667c-15.088 0-27.31946667-12.23146667-27.31946666-27.31946667s12.23253333-27.31733333 27.31946666-27.31733333h364.01066667c15.088 0 27.3184 12.2304 27.3184 27.31733333s-12.2304 27.31946667-27.31733333 27.31946667zM537.8784 335.50826667h-364.01066667c-15.088 0-27.31946667-12.23253333-27.31946666-27.31946667s12.23253333-27.3184 27.31946666-27.3184h364.01066667c15.088 0 27.3184 12.23146667 27.3184 27.3184s-12.2304 27.31946667-27.31733333 27.31946667zM537.8784 605.4784h-364.01066667c-15.088 0-27.31946667-12.2304-27.31946666-27.3184s12.23253333-27.31946667 27.31946666-27.31946667h364.01066667c15.088 0 27.3184 12.2304 27.3184 27.31946667s-12.2304 27.31733333-27.31733333 27.31733333zM537.8784 740.464h-364.01066667c-15.088 0-27.31946667-12.2304-27.31946666-27.3184s12.23253333-27.3184 27.31946666-27.3184h364.01066667c15.088 0 27.3184 12.2304 27.3184 27.31733333s-12.2304 27.31946667-27.31733333 27.31946667z"  ></path></symbol><symbol id="icon-mimaceluo" viewBox="0 0 1024 1024"><path d="M869.033043 393.846154a54.136928 54.136928 0 0 1 54.136928 54.136928v467.743061a54.136928 54.136928 0 0 1-54.136928 54.136929H154.966957a54.136928 54.136928 0 0 1-54.136928-54.136929V447.983082a54.136928 54.136928 0 0 1 54.136928-54.136928h714.066086m0-54.136929H154.966957a108.273857 108.273857 0 0 0-108.273856 108.273857v467.743061a108.273857 108.273857 0 0 0 108.273856 108.273857h714.066086a108.273857 108.273857 0 0 0 108.273856-108.273857V447.983082a108.273857 108.273857 0 0 0-108.273856-108.273857z" fill="#231815" ></path><path d="M817.873645 362.71742h-54.136928v-56.843775a251.736717 251.736717 0 1 0-503.473434 0v56.843775h-54.136928v-56.843775a305.873645 305.873645 0 1 1 611.74729 0z" fill="#231815" ></path><path d="M438.644462 520.526566m71.460746 0l3.789584 0q71.460745 0 71.460746 71.460746l0 3.789585q0 71.460745-71.460746 71.460745l-3.789584 0q-71.460745 0-71.460746-71.460745l0-3.789585q0-71.460745 71.460746-71.460746Z" fill="#231815" ></path><path d="M483.036743 567.625694m28.151203 0l1.353423 0q28.151203 0 28.151203 28.151203l0 204.366904q0 28.151203-28.151203 28.151203l-1.353423 0q-28.151203 0-28.151203-28.151203l0-204.366904q0-28.151203 28.151203-28.151203Z" fill="#231815" ></path></symbol><symbol id="icon-xitongpeizhi1" viewBox="0 0 1024 1024"><path d="M214 687c-55.2 0-100 44.8-100 100s44.8 100 100 100 100-44.8 100-100-44.8-100-100-100z m0 150c-27.6 0-50-22.4-50-50s22.4-50 50-50 50 22.4 50 50-22.4 50-50 50z"  ></path><path d="M239 729V25c0-13.8-11.2-25-25-25s-25 11.2-25 25v704h50zM189 846v153c0 13.8 11.2 25 25 25s25-11.2 25-25V846h-50z"  ></path><path d="M517 444c-55.2 0-100 44.8-100 100s44.8 100 100 100 100-44.8 100-100-44.8-100-100-100z m0 150c-27.6 0-50-22.4-50-50s22.4-50 50-50 50 22.4 50 50-22.4 50-50 50z"  ></path><path d="M542 466V25c0-13.8-11.2-25-25-25s-25 11.2-25 25v441h50zM492 617v382c0 13.8 11.2 25 25 25s25-11.2 25-25V617h-50z"  ></path><path d="M910 237c0-55.2-44.8-100-100-100s-100 44.8-100 100 44.8 100 100 100 100-44.8 100-100z m-50 0c0 27.6-22.4 50-50 50s-50-22.4-50-50 22.4-50 50-50 50 22.4 50 50z"  ></path><path d="M835 295v704c0 13.8-11.2 25-25 25s-25-11.2-25-25V295h50zM785 178V25c0-13.8 11.2-25 25-25s25 11.2 25 25v153h-50z"  ></path></symbol><symbol id="icon-renyuanzuzhiguanli" viewBox="0 0 1024 1024"><path d="M451.4 394.1c-16.6 36.4-46.2 72.3-89.2 79.8 8.5 2 17.3 3.2 26.4 3.2 62.7 0 113.8-51 113.8-113.8 0-39.4-20.2-74.2-50.7-94.7 31.1 34.6 18.7 83.7-0.3 125.5zM786.2 379.6c-8.1 17.8-21 35.4-38.6 45.5h0.2c37.6 0 68.1-30.6 68.1-68.1 0-19.9-8.7-37.9-22.4-50.3 11.2 21.8 3.6 49.1-7.3 72.9z" fill="#FFD524" ></path><path d="M747.9 475.6c65.4 0 118.6-53.2 118.6-118.6s-53.2-118.6-118.6-118.6S629.2 291.6 629.2 357s53.3 118.6 118.7 118.6z m0-186.7c17.6 0 33.6 6.8 45.7 17.8C807.3 319.1 816 337 816 357c0 37.6-30.6 68.1-68.1 68.1h-0.2c-37.4-0.1-67.9-30.6-67.9-68.1 0-37.6 30.5-68.1 68.1-68.1zM388.6 541.8c-29.5 0-58.7 3.8-86.9 11.4-13.5 3.6-21.4 17.5-17.8 31 3.6 13.5 17.5 21.4 31 17.8 23.9-6.4 48.7-9.7 73.7-9.7 132.5 0 245.7 90 275.4 218.9 2.7 11.7 13.1 19.6 24.6 19.6 1.9 0 3.8-0.2 5.7-0.7 13.6-3.1 22.1-16.7 19-30.3-35.1-151.9-168.6-258-324.7-258zM218.6 588.4c-2.9 1.7-5.8 3.5-8.6 5.3-11.8 7.5-15.2 23.1-7.7 34.9 4.8 7.6 13 11.7 21.3 11.7 4.6 0 9.3-1.3 13.6-4 2.4-1.5 4.9-3 7.3-4.5 12-7.1 15.9-22.6 8.8-34.6-7.2-12-22.7-15.9-34.7-8.8zM140.5 652.7c-37.5 41.8-64 92.7-76.5 147.2-3.1 13.6 5.4 27.2 19 30.3 1.9 0.4 3.8 0.7 5.7 0.7 11.5 0 21.9-7.9 24.6-19.6 10.6-46.2 33.1-89.4 64.9-124.9 9.3-10.4 8.4-26.4-1.9-35.7-10.5-9.3-26.5-8.4-35.8 2zM959.7 674.3C936 571.5 845.8 499.7 740.2 499.7c-38.7 0-76.9 10-110.4 28.9-12.2 6.8-16.5 22.3-9.6 34.4 6.9 12.2 22.3 16.5 34.4 9.6 26-14.6 55.6-22.4 85.6-22.4 81.9 0 152 55.7 170.3 135.4 2.7 11.7 13.1 19.6 24.6 19.6 1.9 0 3.8-0.2 5.7-0.7 13.5-3 22-16.6 18.9-30.2zM552.9 363.3c0-90.6-73.7-164.3-164.3-164.3s-164.3 73.7-164.3 164.3S298 527.6 388.6 527.6s164.3-73.7 164.3-164.3z m-278.1 0c0-62.8 51.1-113.8 113.8-113.8 23.3 0 45 7.1 63.1 19.1 30.6 20.4 50.7 55.2 50.7 94.7 0 62.8-51.1 113.8-113.8 113.8-9.1 0-17.9-1.2-26.4-3.2-50.1-12-87.4-56.9-87.4-110.6z" fill="#333333" ></path></symbol><symbol id="icon-yewuleixing" viewBox="0 0 1024 1024"><path d="M398.222 398.222h341.334v56.89H398.222v-56.89z m0-170.666h341.334v56.888H398.222v-56.888zM341.333 56.889h455.111v56.889h-455.11v-56.89zM568.89 682.667V568.889h56.889v170.667H398.222V568.889h56.89v113.778h113.777zM341.333 568.889h56.89v56.889H113.777v-56.89h56.889V170.668h56.889v398.222h56.888V227.556h-56.888v-56.89h56.888V56.89h56.89v512z m455.111 0v-512h56.89v512h56.888v56.889H625.778v-56.89h170.666z m56.89 341.333V625.778h56.888V967.11H113.778V625.778h56.889v284.444h682.666z" fill="#333333" ></path></symbol><symbol id="icon-anquanguanli" viewBox="0 0 1024 1024"><path d="M508.78 991c-45.26 0-92.07-13.03-139.15-38.74-36.31-19.83-72.93-47.26-108.84-81.55-60.32-57.58-97.99-114.62-99.56-117.02L156 745.7V229.59c0-48.1 30.68-89.53 74.61-100.76l167.1-42.69c58.46-14.93 98.7-21.05 138.88-21.14 40.27-0.08 80.53 5.89 138.96 20.63l1.66 0.47 130.2 40.39c24.25 6.35 45.98 21.4 61.28 42.46 15.03 20.69 23.31 46.53 23.31 72.74v505.53l-6.84 8.71c-1.87 2.38-46.57 58.92-114.07 116.07-40.1 33.95-80.03 61.11-118.67 80.72-50.07 25.4-98.4 38.28-143.64 38.28zM220.06 726.16c26.61 37.43 150.73 200.82 288.72 200.82 81.22 0 164.95-56.47 220.89-103.83 47.97-40.62 83.9-81.38 98.26-98.45V241.69c0-25.5-15.61-47.94-37.12-53.36l-1.66-0.47-130.11-40.36c-98.32-24.73-146.66-24.56-245.46 0.68l-167.1 42.69c-15.31 3.91-26.42 20.2-26.42 38.73v496.56z" fill="#4D4D4D" ></path><path d="M476.3 686.78L353.6 564.91c-12.54-12.46-12.61-32.72-0.15-45.25 12.45-12.54 32.72-12.61 45.25-0.15l77.45 76.92 188.99-189c12.5-12.5 32.76-12.5 45.25 0 12.5 12.5 12.5 32.76 0 45.25L476.3 686.78z" fill="#4D4D4D" ></path></symbol><symbol id="icon-wuquanxian" viewBox="0 0 1024 1024"><path d="M156.16 987.306667c-1.706667 0-2.56 0-4.266667-0.853334h-57.173333c-46.933333 0-85.333333-38.4-85.333333-85.333333v-46.08c-0.853333-5.12 4.266667-10.24 9.386666-10.24H145.066667V122.026667c0-46.933333 38.4-85.333333 85.333333-85.333334h700.586667c46.933333 0 85.333333 38.4 85.333333 85.333334v104.106666c0 5.973333-4.266667 10.24-10.24 10.24h-139.946667v666.453334c0 40.106667-28.16 75.093333-67.413333 83.626666-0.853333 0.853333-2.56 0.853333-4.266667 0.853334h-2.56c-4.266667 0.853333-7.68 0.853333-11.093333 0.853333H156.16zM29.013333 901.12c0 35.84 29.013333 64.853333 64.853334 64.853333h645.12c-18.773333-16.213333-29.866667-39.253333-29.866667-64.853333v-35.84H29.013333v35.84zM719.36 844.8c5.973333 0 10.24 4.266667 10.24 10.24v46.08c0 34.986667 27.306667 63.146667 62.293333 64.853333 31.573333-5.12 53.76-32.426667 53.76-64V122.026667c0-3.413333 0-6.826667 0.853334-9.386667 0-0.853333 0.853333-3.413333 0.853333-3.413333 0-1.706667 0.853333-4.266667 0.853333-5.973334 0-0.853333 0.853333-2.56 0.853334-3.413333 0.853333-1.706667 0.853333-3.413333 1.706666-5.973333 0-0.853333 0.853333-2.56 0.853334-3.413334l2.56-5.12s0.853333-2.56 1.706666-3.413333c0.853333-1.706667 1.706667-3.413333 3.413334-5.973333 0 0 0.853333-1.706667 1.706666-2.56 1.706667-2.56 3.413333-5.12 5.12-6.826667l0.853334-0.853333c1.706667-2.56 3.413333-4.266667 5.12-5.973334 0.853333-0.853333 3.413333-3.413333 4.266666-3.413333H231.253333c-35.84 0-64.853333 29.013333-64.853333 64.853333V844.8h552.96z m277.333333-629.76v-93.866667c0-35.84-29.013333-64.853333-64.853333-64.853333-35.84 0-64.853333 29.013333-64.853333 64.853333v93.866667h129.706666z"  ></path><path d="M506.026667 744.96c-104.96 0-178.346667-64.853333-178.346667-157.013333V465.92c0-5.973333 4.266667-10.24 10.24-10.24h27.306667v-52.053333c0-77.653333 63.146667-141.653333 141.653333-141.653334 77.653333 0 141.653333 63.146667 141.653333 141.653334v52.053333h25.6c5.973333 0 10.24 4.266667 10.24 10.24v122.026667c0 92.16-73.386667 157.013333-178.346666 157.013333zM348.16 587.946667c0 68.266667 48.64 136.533333 157.866667 136.533333s157.866667-68.266667 157.866666-136.533333V476.16h-315.733333v111.786667z m279.04-132.266667v-52.053333c0-66.56-54.613333-121.173333-121.173333-121.173334s-121.173333 54.613333-121.173334 121.173334v52.053333h27.306667v-52.053333c0-51.2 41.813333-93.013333 93.013333-93.013334s93.013333 41.813333 93.013334 93.013334v52.053333h29.013333z m-48.64 0v-52.053333c0-40.106667-32.426667-72.533333-72.533333-72.533334s-72.533333 32.426667-72.533334 72.533334v52.053333h145.066667z"  ></path><path d="M506.026667 669.866667c-5.973333 0-10.24-4.266667-10.24-10.24V614.4c-23.04-5.12-40.106667-25.6-40.106667-49.493333 0-28.16 23.04-50.346667 50.346667-50.346667s50.346667 23.04 50.346666 50.346667c0 23.893333-17.066667 44.373333-40.106666 49.493333v45.226667c0 5.973333-4.266667 10.24-10.24 10.24z m0-134.826667c-16.213333 0-29.866667 13.653333-29.866667 29.866667s13.653333 29.866667 29.866667 29.866666 29.866667-13.653333 29.866666-29.866666-13.653333-29.866667-29.866666-29.866667zM582.826667 174.933333c-5.973333 0-10.24-4.266667-10.24-10.24s4.266667-10.24 10.24-10.24h17.066666c5.973333 0 10.24 4.266667 10.24 10.24s-4.266667 10.24-10.24 10.24h-17.066666zM497.493333 174.933333c-5.973333 0-10.24-4.266667-10.24-10.24s4.266667-10.24 10.24-10.24h17.066667c5.973333 0 10.24 4.266667 10.24 10.24s-4.266667 10.24-10.24 10.24h-17.066667zM326.826667 174.933333c-5.973333 0-10.24-4.266667-10.24-10.24s4.266667-10.24 10.24-10.24h17.066666c5.973333 0 10.24 4.266667 10.24 10.24s-4.266667 10.24-10.24 10.24h-17.066666zM668.16 174.933333c-5.973333 0-10.24-4.266667-10.24-10.24s4.266667-10.24 10.24-10.24h17.066667c5.973333 0 10.24 4.266667 10.24 10.24s-4.266667 10.24-10.24 10.24h-17.066667zM412.16 174.933333c-5.973333 0-10.24-4.266667-10.24-10.24s4.266667-10.24 10.24-10.24h17.066667c5.973333 0 10.24 4.266667 10.24 10.24s-4.266667 10.24-10.24 10.24h-17.066667z"  ></path></symbol><symbol id="icon-jiaoseguanli" viewBox="0 0 1024 1024"><path d="M232 434.56a82.24 82.24 0 1 0 122.88-72 81.6 81.6 0 0 0-81.92 0 83.52 83.52 0 0 0-40.96 72z"  ></path><path d="M362.56 528.96a9.6 9.6 0 0 0-7.36 0 81.6 81.6 0 0 1-82.56 0 8.96 8.96 0 0 0-7.04 0 182.08 182.08 0 0 0-110.08 126.4 32 32 0 0 0 29.12 38.4h258.56a32 32 0 0 0 29.44-38.4 183.68 183.68 0 0 0-110.08-126.4z"  ></path><path d="M907.52 224H116.48A52.8 52.8 0 0 0 64 277.12v501.76A52.8 52.8 0 0 0 116.48 832h791.04A52.8 52.8 0 0 0 960 778.88V277.12A52.8 52.8 0 0 0 907.52 224z m3.52 554.88a3.52 3.52 0 0 1-3.52 3.52H116.48a3.52 3.52 0 0 1-3.52-3.52V277.12a3.52 3.52 0 0 1 3.52-3.52h791.04a3.52 3.52 0 0 1 3.52 3.52z"  ></path><path d="M907.52 838.4H116.48a59.2 59.2 0 0 1-58.88-59.52V277.12A59.2 59.2 0 0 1 116.48 217.6h791.04a59.2 59.2 0 0 1 58.88 59.52v501.76a59.2 59.2 0 0 1-58.88 59.52zM116.48 230.4A46.4 46.4 0 0 0 70.4 277.12v501.76a46.4 46.4 0 0 0 46.08 46.72h791.04a46.4 46.4 0 0 0 46.08-46.72V277.12a46.4 46.4 0 0 0-46.08-46.72z m791.04 558.4H116.48a9.92 9.92 0 0 1-9.92-9.92V277.12a9.92 9.92 0 0 1 9.92-9.92h791.04a9.92 9.92 0 0 1 9.92 9.92v501.76a9.92 9.92 0 0 1-9.92 9.92z m-788.16-12.8h785.28V280H119.36z"  ></path><path d="M832 393.6h-271.04a24.64 24.64 0 0 0 0 49.28H832a24.64 24.64 0 1 0 0-49.28z m0 109.44h-271.04a24.64 24.64 0 0 0-24.32 24.96 24.32 24.32 0 0 0 24.32 24.64H832a24.32 24.32 0 0 0 24.64-24.64 24.64 24.64 0 0 0-24.64-24.96zM832 608h-271.04a24.96 24.96 0 0 0 0 49.6H832A24.96 24.96 0 0 0 832 608z"  ></path></symbol><symbol id="icon-banbenguanli" viewBox="0 0 1024 1024"><path d="M512 0c21.942857 0 51.2 7.314286 65.828571 21.942857l343.771429 263.314286c36.571429 29.257143 36.571429 73.142857 0 102.4L577.828571 650.971429c-14.628571 14.628571-43.885714 21.942857-65.828571 21.942857s-51.2-7.314286-65.828571-21.942857L102.4 387.657143c-36.571429-29.257143-36.571429-73.142857 0-102.4L446.171429 21.942857c14.628571-14.628571 43.885714-21.942857 65.828571-21.942857z m409.6 460.8c36.571429 29.257143 36.571429 73.142857 0 102.4l-343.771429 263.314286c-21.942857 14.628571-43.885714 21.942857-65.828571 21.942857-21.942857 0-51.2-7.314286-65.828571-21.942857L102.4 563.2c-36.571429-29.257143-36.571429-73.142857 0-102.4l65.828571 51.2L512 775.314286 855.771429 512l65.828571-51.2z m0 175.542857c36.571429 29.257143 36.571429 73.142857 0 102.4l-343.771429 263.314286c-14.628571 14.628571-43.885714 21.942857-65.828571 21.942857-21.942857 0-51.2-7.314286-65.828571-21.942857l-343.771429-263.314286c-36.571429-29.257143-36.571429-73.142857 0-102.4l65.828571 51.2L512 950.857143l343.771429-263.314286 65.828571-51.2zM497.371429 87.771429s7.314286-7.314286 14.628571-7.314286 14.628571 0 14.628571 7.314286l321.828572 248.685714L526.628571 585.142857h-29.257142L168.228571 336.457143l329.142858-248.685714z" fill="#333333" ></path></symbol><symbol id="icon-bumenguanli" viewBox="0 0 1024 1024"><path d="M192 384H64V64h320v320H256v256h128v128h384V512h-128V192h320v320h-128v320H384v128H64v-320h128V384z m128 320H128v192h192v-192z m576-448h-192v192h192V256zM320 128H128v192h192V128z"  ></path></symbol><symbol id="icon-gongnengquanxianguanli" viewBox="0 0 1024 1024"><path d="M311.4 911c-16.9 0-32.6-9.1-40.9-23.8L70 536.8c-8.3-14.4-8.3-32.4 0-46.8l200.1-350.6c8.4-14.7 24.1-23.8 41-23.8l400.1-0.2c16.9 0 32.6 9.1 41 23.8l200.5 350.4c8.3 14.4 8.3 32.4 0 46.8L752.5 887c-8.4 14.7-24.1 23.8-41 23.8l-400.1 0.2z m399.8-755.1l-400.1 0.1c-2.4 0-4.7 1.3-5.9 3.4L105.1 510.1c-1.2 2.1-1.2 4.6 0 6.7l200.5 350.4c1.2 2.1 3.4 3.4 5.8 3.4l400.1-0.2c2.4 0 4.7-1.3 5.9-3.4l200.1-350.6c1.2-2.1 1.2-4.6 0-6.7L717.1 159.3c-1.2-2.1-3.5-3.4-5.9-3.4z" fill="#4F4F4F" ></path><path d="M511.3 521.8c-34.2 0-66.3-13.3-90.5-37.5-24.2-24.2-37.5-56.3-37.6-90.5 0-34.2 13.3-66.4 37.5-90.6 24.2-24.2 56.3-37.5 90.6-37.6h0.1c70.6 0 128 57.4 128.1 128 0 34.2-13.3 66.4-37.5 90.6-24.3 24.3-56.5 37.6-90.7 37.6z m0-215.7c-48.4 0-87.6 39.3-87.6 87.7 0 23.4 9.1 45.4 25.7 62 16.5 16.5 38.5 25.6 61.9 25.6s45.4-9.1 62-25.7c16.5-16.6 25.7-38.6 25.6-62 0-48.3-39.3-87.6-87.6-87.6zM514.3 628.9c-11.2 0-20.2-9-20.2-20.2s9-20.2 20.2-20.2h88.5c11.2 0 20.2 9 20.2 20.2s-9 20.2-20.2 20.2h-88.5z" fill="#4F4F4F" ></path><path d="M511.4 760.8c-11.2 0-20.2-9-20.2-20.2l-0.1-236.8c0-11.2 9-20.2 20.2-20.2s20.2 9 20.2 20.2l0.1 236.8c0 11.1-9 20.2-20.2 20.2z" fill="#4F4F4F" ></path></symbol><symbol id="icon-zhuangtaichi" viewBox="0 0 1025 1024"><path d="M512.149898 1022.80082c-69.252659 0-136.406753-13.390846-199.463648-39.972675-60.958329-25.682444-115.620962-62.357373-162.488924-109.225334-46.867961-46.867961-83.642822-101.430663-109.325266-162.289061C14.290231 648.256856 0.899385 581.302625 0.899385 512.049966c0-69.152728 13.390846-136.20689 39.972675-199.263785 25.682444-60.858398 62.457305-115.421099 109.325266-162.28906C197.065287 103.62916 251.72792 66.954231 312.586318 41.271787c63.056895-26.581829 130.111057-39.972675 199.463648-39.972675 69.252659 0 136.406753 13.390846 199.463648 39.972675 60.958329 25.682444 115.620962 62.357373 162.488923 109.225334 46.967893 46.76803 83.742754 101.430663 109.325266 162.28906 26.581829 63.056895 39.972675 130.011125 39.972675 199.263785 0 69.152728-13.390846 136.20689-39.972675 199.263784-25.682444 60.858398-62.457305 115.421099-109.325266 162.289061C827.134576 920.470772 772.471943 957.145701 711.513614 982.828145c-63.056895 26.481897-130.111057 39.972675-199.363716 39.972675z m0-957.745292c-246.731336 0-447.494096 200.562896-447.494096 446.994438 0 246.531473 200.76276 446.994437 447.494096 446.994437S959.643993 758.481507 959.643993 512.049966c0-246.531473-200.76276-446.994437-447.494095-446.994438z m0 0"  ></path><path d="M743.092027 492.363423c-15.189616 0-26.182102-2.198497-37.074656-8.694056L651.554601 538.232068c8.694057 15.189616 15.189616 32.677662 15.189617 47.867278 0 52.164341-43.570216 95.834488-95.93442 95.834488-52.264272 0-95.93442-43.470284-95.93442-95.834488 0-17.388114 2.198497-28.280668 8.694057-43.470284l-28.380599-26.182102c-8.694057 6.49556-19.686542 8.694057-32.677662 8.694057-15.189616 0-26.182102-2.198497-37.074656-10.792622l-37.074656 36.974724c6.49556 10.892554 8.694057 23.983605 8.694057 34.876159 0 39.173221-34.876159 73.949449-74.049381 73.949448-39.173221 0-74.04938-34.876159-74.04938-73.949448 0-43.470284 34.876159-73.949449 74.04938-73.949449 17.388114 0 32.677662 2.198497 43.570216 10.792622l39.173222-36.974724c-4.297063-8.694057-6.49556-17.388114-6.49556-26.182102 0-36.974724 28.380599-65.355324 65.355323-65.355323 37.074656 0 65.355324 28.280668 65.355324 65.355323 0 10.792622-2.198497 23.983605-8.694057 32.677662l26.182102 23.983605c15.189616-15.189616 37.074656-23.983605 61.058261-23.983605 19.686542 0 39.173221 6.49556 54.562701 17.388113l52.364205-52.16434c-4.297063-10.792622-10.892554-26.182102-10.892554-41.371719 0-39.173221 34.876159-73.949449 74.04938-73.949449 39.173221 0 74.04938 34.876159 78.446375 73.949449 0.199863 41.171855-34.676296 75.948082-73.949449 75.948082z m0 0"  ></path></symbol><symbol id="icon-shengmingzhouqi" viewBox="0 0 1024 1024"><path d="M793.6 563.2a230.4 230.4 0 1 0 230.4 230.4 229.888 229.888 0 0 0-230.4-230.4z m0 409.6a179.2 179.2 0 1 1 179.2-179.2 179.2 179.2 0 0 1-179.2 179.2z"  ></path><path d="M896 768H819.2v-76.8a25.6 25.6 0 0 0-51.2 0v102.4a25.6 25.6 0 0 0 25.6 25.6h102.4a25.6 25.6 0 0 0 0-51.2zM460.8 819.2H102.4V51.2a51.2 51.2 0 0 0-102.4 0v819.2a51.2 51.2 0 0 0 51.2 51.2h409.6a51.2 51.2 0 0 0 0-102.4z"  ></path><path d="M192.512 614.4H204.8a51.2 51.2 0 0 0 51.2-38.912C271.36 507.904 318.464 409.6 358.4 409.6c28.672 0 40.96 11.264 66.048 36.352A184.32 184.32 0 0 0 563.2 512c74.752 0 115.2-83.968 161.792-181.76S834.048 102.4 921.6 102.4a51.2 51.2 0 0 0 0-102.4c-153.6 0-228.352 158.72-289.28 286.208A566.272 566.272 0 0 1 563.2 409.6c-28.672 0-40.96-11.264-66.048-36.352A184.32 184.32 0 0 0 358.4 307.2c-135.68 0-193.024 204.8-204.8 243.712A51.2 51.2 0 0 0 192.512 614.4z"  ></path></symbol><symbol id="icon-shujushouquan" viewBox="0 0 1024 1024"><path d="M950.048305 177.468952v364.178286a490.057143 490.057143 0 0 1-11.629715 133.948952c-43.178667 144.505905-152.624762 228.181333-276.845714 291.547429a1053.037714 1053.037714 0 0 1-97.523809 41.788952 248.393143 248.393143 0 0 1-46.153143 14.628572 153.161143 153.161143 0 0 1-57.07581-15.067429 917.845333 917.845333 0 0 1-133.290666-60.294095C212.061257 880.201143 117.65821 802.450286 81.111162 654.945524a490.25219 490.25219 0 0 1-6.485333-109.714286V127.804952a91.062857 91.062857 0 0 1 2.438095-30.841904 39.545905 39.545905 0 0 1 15.384381-17.822477 108.641524 108.641524 0 0 1 31.085714-7.533714l64.950857-11.995428L511.191162 0a173.32419 173.32419 0 0 1 41.008762 6.851048l73.825524 13.702095 212.260571 39.399619 62.878476 11.654095 25.965715 5.144381a38.497524 38.497524 0 0 1 17.773714 15.067429c8.899048 14.726095 5.144381 61.537524 5.144381 85.650285z m-73.142857 297.033143V141.409524L514.945829 74.264381 147.89059 141.409524v333.019428c0 66.755048-3.949714 140.970667 11.946667 191.488 31.061333 98.669714 107.27619 159.622095 187.977143 208.993524a782.311619 782.311619 0 0 0 122.368 58.514286 247.759238 247.759238 0 0 0 44.080762 15.067428l41.447619-15.067428a615.838476 615.838476 0 0 0 82.383238-37.010286c15.555048-9.118476 31.47581-16.310857 46.470095-25.697524 81.65181-50.980571 152.892952-113.615238 183.53981-215.82019 14.06781-47.079619 8.801524-120.246857 8.801524-180.394667zM729.961448 682.666667a33.792 33.792 0 0 1-23.625143 23.552 34.669714 34.669714 0 0 1-33.109334-9.264762l-198.363428-198.38781a137.532952 137.532952 0 0 1-177.468953-36.352 134.509714 134.509714 0 0 1 189.586286-188.879238 137.874286 137.874286 0 0 1 36.059429 177.225143l27.40419 27.37981 71.363048-71.094858a34.352762 34.352762 0 0 1 48.323047 48.761905L598.767543 526.628571l49.93219 49.932191 23.405715-23.332572a34.182095 34.182095 0 0 1 48.323047 48.347429l-23.844571 23.771429 24.161524 24.161523a33.743238 33.743238 0 0 1 9.216 33.158096zM452.579352 333.775238a67.388952 67.388952 0 1 0 1.048381 96.329143 68.266667 68.266667 0 0 0-1.048381-96.329143z" fill="#333333" ></path></symbol><symbol id="icon-mijiguanli" viewBox="0 0 1024 1024"><path d="M202.34839 485.888h631.296v428.032H202.34839z" fill="#EEEEEE" opacity=".4" ></path><path d="M997.99639 391.168l-100.352-69.12-95.232-65.536-256-175.616c-20.48-13.824-47.616-13.824-67.584 0l-256 175.616-96.256 65.536L26.22039 391.168C4.20439 406.016-5.01161 433.152 2.66839 458.24s30.72 41.984 57.344 41.984h904.192c26.624 0 49.152-16.896 57.344-41.984 7.68-25.088-1.536-52.224-23.552-67.072zM512.10839 136.704l174.08 119.808H338.02839l174.08-119.808zM78.44439 434.688l164.352-112.64h539.136l164.352 112.64H78.44439z" fill="#444444" ></path><path d="M236.14039 953.856c-43.008 0-77.824-34.816-77.824-77.824V505.344c0-36.864 29.696-66.56 66.56-66.56h586.24c36.864 0 66.56 29.696 66.56 66.56v370.688c0 43.008-34.816 77.824-77.824 77.824H236.14039z m563.712-65.536c6.656 0 12.288-5.632 12.288-12.288V505.344c0-0.512-0.512-1.024-1.024-1.024H224.87639c-0.512 0-1.024 0.512-1.024 1.024v370.688c0 6.656 5.632 12.288 12.288 12.288h563.712z" fill="#444444" ></path><path d="M491.11639 737.28v97.28c0 13.312 10.752 26.112 24.064 27.136 15.872 1.536 29.184-11.264 29.184-26.624V737.28c51.712-15.36 80.896-70.656 62.976-121.856-15.872-46.08-65.024-72.704-112.128-61.44-52.736 12.8-83.968 67.072-68.608 118.784 9.216 31.232 33.792 55.296 64.512 64.512z" fill="#444444" ></path></symbol><symbol id="icon-shuxingchi" viewBox="0 0 1024 1024"><path d="M512 972.8c-256 0-460.8-204.8-460.8-460.8s204.8-460.8 460.8-460.8 460.8 204.8 460.8 460.8-204.8 460.8-460.8 460.8z m0-870.4c-225.28 0-409.6 184.32-409.6 409.6s184.32 409.6 409.6 409.6 409.6-184.32 409.6-409.6-184.32-409.6-409.6-409.6z" fill="#808080" ></path><path d="M430.08 322.56h327.68v51.2H430.08zM266.24 322.56h107.52v51.2H266.24zM430.08 486.4h327.68v51.2H430.08zM266.24 486.4h107.52v51.2H266.24zM430.08 650.24h327.68v51.2H430.08zM266.24 650.24h107.52v51.2H266.24z" fill="#808080" ></path></symbol><symbol id="icon-biaodandingyi-01" viewBox="0 0 1024 1024"><path d="M812.15 797.86h-0.1c-10.16 0-19.72 3.95-26.93 11.11-7.2 7.16-11.18 16.68-11.22 26.93-0.11 26.05-18.91 47.31-44.96 47.31H140.92V140.87H543.7l161.1 161.8c7.6 6.82 17.29 10.33 27.6 9.74 10.2-0.54 19.58-5.02 26.41-12.6 13.04-14.48 13.1-36.36-0.27-51.34L582.94 72.04a25.57 25.57 0 0 0-18.14-7.54H102.67c-21.08 0-38.17 17.09-38.17 38.17V921.3c0 21.1 17.1 38.2 38.2 38.2h623.88c68.17-0.06 123.68-55.47 123.74-123.54-0.01-21.01-17.12-38.1-38.17-38.1z"  ></path><path d="M430.11 393.17H231.45c-19.92 0-37.74 14.52-39.67 34.34-2.22 22.73 15.7 41.94 38.02 41.94h198.66c19.91 0 37.74-14.52 39.67-34.34 2.22-22.72-15.7-41.94-38.02-41.94zM430.11 556.59H231.45c-19.91 0-37.74 14.52-39.67 34.34-2.22 22.73 15.7 41.95 38.02 41.95h198.66c19.92 0 37.74-14.52 39.67-34.34 2.22-22.74-15.7-41.95-38.02-41.95zM430.11 229.71H231.45c-19.92 0-37.74 14.52-39.67 34.34-2.22 22.73 15.7 41.94 38.02 41.94h198.66c19.91 0 37.74-14.52 39.67-34.34 2.22-22.73-15.7-41.94-38.02-41.94zM949.84 455.28l-122-121.81c-6.35-6.37-15.15-10.02-24.05-10.02h-0.32c-9 0-17.8 3.65-24.13 10l-296.32 294.6a34.721 34.721 0 0 0-8.7 14.83l-47.38 166.97c-2.55 8.73-1.53 17.93 2.85 25.9 4.38 7.97 11.61 13.76 20.36 16.3 3.1 0.9 6.3 1.35 9.37 1.35h0.52c2.92 0 5.82-0.37 8.77-1.12l169.07-45.65c5.72-1.6 10.97-4.66 15.18-8.86l296.26-294.52c6.49-6.38 10.1-14.9 10.16-23.99s-3.4-17.66-9.64-23.98zM568.02 746.52l-47.33 12.77 13.28-46.76 34.05 33.99z m297.53-267.57L636.32 706.74l-61.99-61.89 229.24-227.77 61.98 61.87z m76.13-16.42z"  ></path></symbol><symbol id="icon-chaxunmobandingyi" viewBox="0 0 1024 1024"><path d="M832 64a128 128 0 0 1 128 128v640a128 128 0 0 1-128 128H192a128 128 0 0 1-128-128V192a128 128 0 0 1 128-128h640z m0 64H192a64 64 0 0 0-63.552 56.512L128 192v640a64 64 0 0 0 56.512 63.552L192 896h640a64 64 0 0 0 63.552-56.512L896 832V192a64 64 0 0 0-56.512-63.552L832 128z" fill="#666666" ></path><path d="M810.368 256c15.424 0 27.968 14.336 27.968 32 0 15.68-9.856 28.8-22.912 31.488L810.24 320H592.448c-15.488 0-28.032-14.336-28.032-32 0-15.68 9.92-28.8 22.976-31.488L592.384 256h217.984zM810.368 448c15.424 0 27.968 14.336 27.968 32 0 15.68-9.856 28.8-22.912 31.488L810.24 512h-136.32c-15.424 0-27.968-14.336-27.968-32 0-15.68 9.92-28.8 22.976-31.488L673.92 448h136.32zM810.368 640c15.424 0 27.968 14.336 27.968 32 0 15.68-9.856 28.8-22.912 31.488l-5.12 0.512h-68.096c-15.488 0-28.032-14.336-28.032-32 0-15.68 9.92-28.8 22.976-31.488l5.056-0.512h68.16zM372.096 259.968l-180.096 448h82.496l42.88-112.256H514.56l42.88 112.256H640l-180.096-448H372.096zM340.48 526.4l74.56-196.352h2.56L491.52 526.4H340.48z" fill="#666666" ></path></symbol><symbol id="icon-chaxunmoban" viewBox="0 0 1024 1024"><path d="M950.864299 0H73.135701A73.235887 73.235887 0 0 0 0 73.135701v877.728598a73.235887 73.235887 0 0 0 73.135701 73.135701h676.555327a36.567851 36.567851 0 0 0 0-73.135701H73.135701V73.135701h877.728598v676.555327a36.567851 36.567851 0 0 0 73.135701 0V73.135701A73.235887 73.235887 0 0 0 950.864299 0z"  ></path><path d="M831.693181 779.997261a238.542608 238.542608 0 1 0-51.69592 51.69592l126.735153 126.735153a36.567851 36.567851 0 1 0 51.69592-51.69592z m-356.261032-140.009784a164.555327 164.555327 0 1 1 164.555328 164.555327 164.755699 164.755699 0 0 1-164.555328-164.555327z m365.678506-411.413365a36.567851 36.567851 0 0 0-36.567851-36.56785H219.407103a36.567851 36.567851 0 1 0 0 73.135701h585.135701a36.567851 36.567851 0 0 0 36.567851-36.567851zM219.407103 409.910576a36.567851 36.567851 0 1 0 0 73.135701h109.703552a36.567851 36.567851 0 1 0 0-73.135701z"  ></path></symbol><symbol id="icon-duixiangjianmo" viewBox="0 0 1024 1024"><path d="M512 64h8.512c30.592 0.32 61.184 2.368 91.584 6.08l14.528 1.92 15.424 2.432 15.104 2.752 7.616 1.536 14.848 3.2c125.248 28.8 212.928 90.24 216.32 171.008l0.064 4.8v508.544c0 83.2-88.704 146.56-216.32 175.808l-14.912 3.2-7.616 1.536-15.104 2.688-15.36 2.432C590.336 957.184 551.808 960 512 960s-78.4-2.816-114.624-8.064l-15.424-2.432-15.104-2.688c-137.088-26.368-235.264-90.24-238.72-175.872L128 766.272V257.728l0.128-4.8C131.456 172.16 219.136 110.72 344.32 81.92l14.848-3.2 7.616-1.536 15.104-2.688 15.36-2.432a787.84 787.84 0 0 1 97.664-7.872L512 64z m145.152 616.448l-15.104 2.688-15.36 2.432c-36.288 5.248-74.816 8.064-114.688 8.064s-78.4-2.816-114.624-8.064l-15.424-2.432-15.104-2.688c-71.488-13.76-132.48-37.76-174.848-69.632v155.456c0 23.744 24.192 48.576 65.088 69.44l9.728 4.736c15.04 7.04 32 13.568 50.56 19.328l12.672 3.776c13.44 3.84 27.008 7.04 40.64 9.856l14.336 2.816 14.72 2.496c10.24 1.6 20.416 2.944 30.592 4.096l15.808 1.6 16 1.28 16.384 0.896c22.336 1.024 44.608 1.024 66.944 0l16.32-0.896 16.064-1.28 15.808-1.6c10.24-1.152 20.416-2.56 30.528-4.096l14.72-2.56 14.4-2.752c14.208-2.88 27.776-6.208 40.64-9.856l12.608-3.776c18.624-5.76 35.584-12.288 50.624-19.328l9.728-4.736c39.36-20.096 63.232-43.776 64.96-66.688l0.128-2.752v-155.52c-42.368 32-103.296 55.936-174.848 69.696zM832 368.64c-40.32 30.336-97.28 53.44-164.224 67.52l-10.624 2.112-15.104 2.688-15.424 2.432c-36.288 5.312-74.752 8.064-114.624 8.064-34.176 0-67.392-2.048-99.008-5.952l-15.68-2.112-15.36-2.432-15.168-2.688C295.296 424.512 234.368 400.576 192 368.64v131.2c0 23.808 24.128 48.64 65.024 69.504l9.792 4.736c15.04 7.04 32 13.568 50.56 19.328l12.672 3.776c13.44 3.776 26.944 7.04 40.576 9.856l14.4 2.816 14.72 2.496c10.24 1.6 20.352 2.944 30.592 4.096l15.744 1.6 16.064 1.28 16.384 0.896c22.272 1.024 44.608 1.024 66.88 0l16.384-0.896 16.064-1.28 15.808-1.6c10.24-1.152 20.352-2.56 30.528-4.096l14.72-2.56 14.4-2.752c14.144-2.88 27.712-6.208 40.576-9.856l12.672-3.776c18.56-5.76 35.584-12.288 50.56-19.328l9.792-4.736c39.296-20.096 63.168-43.776 64.96-66.688L832 499.84V368.64zM512 136.64h-8.448l-12.608 0.32-12.416 0.448-16.32 0.896-16.064 1.28-15.808 1.6c-6.848 0.768-13.696 1.6-20.48 2.56l-10.048 1.536-14.72 2.56-14.4 2.752c-10.368 2.112-20.608 4.48-30.848 7.168l-9.792 2.688-12.608 3.776a425.792 425.792 0 0 0-42.944 15.872l-7.68 3.456-9.728 4.736C216.128 209.152 192 233.92 192 257.728c0 22.784 22.144 46.4 59.84 66.688l5.248 2.752 9.728 4.736c12.544 5.888 26.368 11.392 41.472 16.384l9.152 2.944 12.608 3.776c9.664 2.752 19.712 5.248 30.08 7.68l10.56 2.176 14.336 2.816 14.72 2.496c6.656 1.024 13.44 1.984 20.288 2.88l10.304 1.28 15.808 1.536 16 1.28 16.384 0.896c18.624 0.832 37.248 0.96 55.872 0.448l11.072-0.448 16.32-0.896 16.064-1.28 15.808-1.6c6.912-0.768 13.76-1.664 20.48-2.56l10.048-1.536 14.72-2.56 14.4-2.752c10.368-2.112 20.608-4.48 30.848-7.168l9.792-2.688 12.608-3.776a426.24 426.24 0 0 0 42.944-15.872l7.68-3.456 9.728-4.736C807.872 306.304 832 281.6 832 257.728c0-22.784-22.144-46.4-59.84-66.688l-5.248-2.752-9.728-4.736a391.552 391.552 0 0 0-41.472-16.384l-9.152-2.944-12.608-3.776a560.768 560.768 0 0 0-30.08-7.68l-10.56-2.176-14.336-2.816-14.72-2.496c-6.784-1.088-13.504-2.048-20.288-2.88l-10.304-1.28-15.808-1.536-16-1.28-16.384-0.896c-7.36-0.32-14.72-0.576-22.208-0.64L512 136.576z"  ></path></symbol><symbol id="icon-actionguanli" viewBox="0 0 1024 1024"><path d="M845.824 153.6H178.176a24.576 24.576 0 0 0-24.576 24.576v667.648c0 13.568 11.008 24.576 24.576 24.576h667.648a24.576 24.576 0 0 0 24.576-24.576V178.176a24.576 24.576 0 0 0-24.576-24.576z m-30.72 661.504H208.896V208.896h606.208v606.208zM327.68 620.4416a75.8272 75.8272 0 1 0 151.7568 0v-32.5632h65.024v32.5632a75.8272 75.8272 0 1 0 75.8784-75.8784h-32.5632v-65.024h32.5632a75.8272 75.8272 0 1 0-75.8784-75.8784v32.5632h-65.024v-32.5632a75.8272 75.8272 0 1 0-75.8784 75.776h32.5632v65.024h-32.5632A75.9808 75.9808 0 0 0 327.68 620.4416z m108.4416 0a32.5632 32.5632 0 1 1-32.5632-32.5632h32.5632v32.5632z m151.7568-216.8832a32.5632 32.5632 0 1 1 32.5632 32.5632h-32.5632v-32.5632z m0 184.32h32.5632a32.5632 32.5632 0 1 1-32.5632 32.5632v-32.5632z m-43.4176-108.4416v65.024h-65.024v-65.024h65.024z m-140.9024-43.3152a32.5632 32.5632 0 1 1 32.5632-32.5632v32.5632h-32.5632z"  ></path></symbol></svg>',(h=>{var c=(l=(l=document.getElementsByTagName("script"))[l.length-1]).getAttribute("data-injectcss"),l=l.getAttribute("data-disable-injectsvg");if(!l){var a,i,t,z,v,o=function(c,l){l.parentNode.insertBefore(c,l)};if(c&&!h.__iconfont__svg__cssinject__){h.__iconfont__svg__cssinject__=!0;try{document.write("<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>")}catch(c){console&&console.log(c)}}a=function(){var c,l=document.createElement("div");l.innerHTML=h._iconfont_svg_string_4729933,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(c=document.body).firstChild?o(l,c.firstChild):c.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(a,0):(i=function(){document.removeEventListener("DOMContentLoaded",i,!1),a()},document.addEventListener("DOMContentLoaded",i,!1)):document.attachEvent&&(t=a,z=h.document,v=!1,M(),z.onreadystatechange=function(){"complete"==z.readyState&&(z.onreadystatechange=null,s())})}function s(){v||(v=!0,t())}function M(){try{z.documentElement.doScroll("left")}catch(c){return void setTimeout(M,50)}s()}})(window);
Source/plt-web/plt-web-ui/public/cdn/iconfont/plt-web/iconfont.json
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,261 @@
{
  "id": "4729933",
  "name": "pl-web",
  "font_family": "iconfont",
  "css_prefix_text": "icon-",
  "description": "",
  "glyphs": [
    {
      "icon_id": "10139425",
      "name": "UI授权",
      "font_class": "uishouquan",
      "unicode": "e602",
      "unicode_decimal": 58882
    },
    {
      "icon_id": "23680389",
      "name": "UI权限",
      "font_class": "uiquanxian",
      "unicode": "e714",
      "unicode_decimal": 59156
    },
    {
      "icon_id": "735336",
      "name": "成员管理",
      "font_class": "chengyuanguanli",
      "unicode": "e62f",
      "unicode_decimal": 58927
    },
    {
      "icon_id": "1734976",
      "name": "查询日志",
      "font_class": "chaxunrizhi",
      "unicode": "e648",
      "unicode_decimal": 58952
    },
    {
      "icon_id": "24849343",
      "name": "功能模块",
      "font_class": "gongnengmokuai",
      "unicode": "e643",
      "unicode_decimal": 58947
    },
    {
      "icon_id": "42299374",
      "name": "系统模块配置",
      "font_class": "xitongmokuaipeizhi-copy",
      "unicode": "eb6b",
      "unicode_decimal": 60267
    },
    {
      "icon_id": "1143246",
      "name": "链接类型",
      "font_class": "lianjieleixing",
      "unicode": "e60f",
      "unicode_decimal": 58895
    },
    {
      "icon_id": "1582111",
      "name": "流程模板分类",
      "font_class": "liuchengmobanfenlei",
      "unicode": "e625",
      "unicode_decimal": 58917
    },
    {
      "icon_id": "2366098",
      "name": "枚举类型",
      "font_class": "meijvleixing",
      "unicode": "e7d5",
      "unicode_decimal": 59349
    },
    {
      "icon_id": "2614301",
      "name": "机器密级",
      "font_class": "jiqimiji",
      "unicode": "e60d",
      "unicode_decimal": 58893
    },
    {
      "icon_id": "3442188",
      "name": "UI定义",
      "font_class": "uidingyi",
      "unicode": "e606",
      "unicode_decimal": 58886
    },
    {
      "icon_id": "4118040",
      "name": "流程模板定义",
      "font_class": "liuchengmobandingyi",
      "unicode": "eb6a",
      "unicode_decimal": 60266
    },
    {
      "icon_id": "6193798",
      "name": "流程模板管理",
      "font_class": "liuchengmobanguanli",
      "unicode": "e639",
      "unicode_decimal": 58937
    },
    {
      "icon_id": "6399127",
      "name": "文件柜管理",
      "font_class": "wenjianguiguanli",
      "unicode": "e60e",
      "unicode_decimal": 58894
    },
    {
      "icon_id": "7050563",
      "name": "UI建模",
      "font_class": "uijianmo",
      "unicode": "e641",
      "unicode_decimal": 58945
    },
    {
      "icon_id": "7318486",
      "name": "日志管理",
      "font_class": "rizhiguanli",
      "unicode": "e609",
      "unicode_decimal": 58889
    },
    {
      "icon_id": "7791978",
      "name": "密码策略",
      "font_class": "mimaceluo",
      "unicode": "e64c",
      "unicode_decimal": 58956
    },
    {
      "icon_id": "8220247",
      "name": "系统配置",
      "font_class": "xitongpeizhi",
      "unicode": "e65f",
      "unicode_decimal": 58975
    },
    {
      "icon_id": "8629256",
      "name": "人员组织管理",
      "font_class": "renyuanzuzhiguanli",
      "unicode": "e66c",
      "unicode_decimal": 58988
    },
    {
      "icon_id": "8870954",
      "name": "业务类型",
      "font_class": "yewuleixing",
      "unicode": "e62c",
      "unicode_decimal": 58924
    },
    {
      "icon_id": "10195128",
      "name": "安全管理",
      "font_class": "anquanguanli",
      "unicode": "e62d",
      "unicode_decimal": 58925
    },
    {
      "icon_id": "10319825",
      "name": "无权限",
      "font_class": "wuquanxian",
      "unicode": "e6d5",
      "unicode_decimal": 59093
    },
    {
      "icon_id": "11882433",
      "name": "角色管理",
      "font_class": "jiaoseguanli",
      "unicode": "e62a",
      "unicode_decimal": 58922
    },
    {
      "icon_id": "12072178",
      "name": "版本管理",
      "font_class": "banbenguanli",
      "unicode": "e601",
      "unicode_decimal": 58881
    },
    {
      "icon_id": "12184880",
      "name": "部门管理",
      "font_class": "bumenguanli",
      "unicode": "e686",
      "unicode_decimal": 59014
    },
    {
      "icon_id": "12316640",
      "name": "功能权限管理",
      "font_class": "gongnengquanxianguanli",
      "unicode": "e61a",
      "unicode_decimal": 58906
    },
    {
      "icon_id": "13058362",
      "name": "状态池",
      "font_class": "zhuangtaichi",
      "unicode": "e656",
      "unicode_decimal": 58966
    },
    {
      "icon_id": "14313267",
      "name": "生命周期",
      "font_class": "shengmingzhouqi",
      "unicode": "e64e",
      "unicode_decimal": 58958
    },
    {
      "icon_id": "20889160",
      "name": "数据授权",
      "font_class": "shujushouquan",
      "unicode": "e653",
      "unicode_decimal": 58963
    },
    {
      "icon_id": "21362215",
      "name": "密级管理",
      "font_class": "mijiguanli",
      "unicode": "e6c3",
      "unicode_decimal": 59075
    },
    {
      "icon_id": "26888256",
      "name": "属性池",
      "font_class": "shuxingchi",
      "unicode": "e767",
      "unicode_decimal": 59239
    },
    {
      "icon_id": "27646470",
      "name": "表单定义",
      "font_class": "biaodandingyi",
      "unicode": "e62b",
      "unicode_decimal": 58923
    },
    {
      "icon_id": "34107840",
      "name": "查询模板定义",
      "font_class": "chaxunmobandingyi",
      "unicode": "e62e",
      "unicode_decimal": 58926
    },
    {
      "icon_id": "35089868",
      "name": "查询模板",
      "font_class": "chaxunmoban",
      "unicode": "e614",
      "unicode_decimal": 58900
    },
    {
      "icon_id": "35866294",
      "name": "对象建模",
      "font_class": "duixiangjianmo",
      "unicode": "e607",
      "unicode_decimal": 58887
    },
    {
      "icon_id": "37387825",
      "name": "action管理",
      "font_class": "actionguanli",
      "unicode": "e71b",
      "unicode_decimal": 59163
    }
  ]
}
Source/plt-web/plt-web-ui/public/cdn/iconfont/plt-web/iconfont.ttf
Binary files differ
Source/plt-web/plt-web-ui/public/cdn/iconfont/plt-web/iconfont.woff
Binary files differ
Source/plt-web/plt-web-ui/public/cdn/iconfont/plt-web/iconfont.woff2
Binary files differ
Source/plt-web/plt-web-ui/public/index.html
@@ -2,24 +2,25 @@
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta http-equiv="X-UA-Compatible" content="chrome=1"/>
  <meta name="renderer" content="webkit">
  <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0">
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
  <meta name="format-detection" content="telephone=no">
  <link rel="stylesheet" href="<%= BASE_URL %>cdn/element-ui/2.15.6/theme-chalk/index.css">
  <link rel="stylesheet" href="<%= BASE_URL %>cdn/animate/3.5.2/animate.css">
  <link rel="stylesheet" href="<%= BASE_URL %>cdn/iconfont/index.css">
  <link rel="stylesheet" href="<%= BASE_URL %>cdn/iconfont/avue/iconfont.css">
  <link rel="stylesheet" href="<%= BASE_URL %>cdn/iconfont/saber/iconfont.css">
<!--  <link rel="stylesheet" href="<%= BASE_URL %>cdn/avue/2.9.12/index.css">-->
  <link rel="stylesheet" href="<%= BASE_URL %>cdn/avue/2.12.4/index.css">
  <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  <meta content="IE=edge" http-equiv="X-UA-Compatible">
  <meta content="chrome=1" http-equiv="X-UA-Compatible"/>
  <meta content="webkit" name="renderer">
  <meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" name="viewport">
  <meta content="yes" name="apple-mobile-web-app-capable">
  <meta content="black" name="apple-mobile-web-app-status-bar-style">
  <meta content="telephone=no" name="format-detection">
  <link href="<%= BASE_URL %>cdn/element-ui/2.15.6/theme-chalk/index.css" rel="stylesheet">
  <link href="<%= BASE_URL %>cdn/animate/3.5.2/animate.css" rel="stylesheet">
  <link href="<%= BASE_URL %>cdn/iconfont/index.css" rel="stylesheet">
  <link href="<%= BASE_URL %>cdn/iconfont/avue/iconfont.css" rel="stylesheet">
  <link href="<%= BASE_URL %>cdn/iconfont/saber/iconfont.css" rel="stylesheet">
  <link href="<%= BASE_URL %>cdn/iconfont/plt-web/iconfont.css" rel="stylesheet">
  <!--  <link rel="stylesheet" href="<%= BASE_URL %>cdn/avue/2.9.12/index.css">-->
  <link href="<%= BASE_URL %>cdn/avue/2.12.4/index.css" rel="stylesheet">
  <script src="<%= BASE_URL %>cdn/xlsx/FileSaver.min.js"></script>
  <script src="<%= BASE_URL %>cdn/xlsx/xlsx.full.min.js"></script>
  <link rel="icon" href="<%= BASE_URL %>favicon.png">
  <link href="<%= BASE_URL %>favicon.png" rel="icon">
  <title>PLTWEB平台</title>
  <style>
    html,
@@ -88,7 +89,7 @@
<div id="app">
  <div class="avue-home">
    <div class="avue-home__main">
      <img class="avue-home__loading" src="<%= BASE_URL %>svg/loading-spin.svg" alt="loading">
      <img alt="loading" class="avue-home__loading" src="<%= BASE_URL %>svg/loading-spin.svg">
      <div class="avue-home__title">
        æ­£åœ¨åŠ è½½èµ„æº
      </div>
@@ -102,15 +103,15 @@
  </div>
</div>
<!-- built files will be auto injected -->
<script src="<%= BASE_URL %>util/aes.js" charset="utf-8"></script>
<script src="<%= BASE_URL %>cdn/vue/2.6.10/vue.min.js" charset="utf-8"></script>
<script src="<%= BASE_URL %>cdn/vuex/3.1.1/vuex.min.js" charset="utf-8"></script>
<script src="<%= BASE_URL %>cdn/vue-router/3.0.1/vue-router.min.js" charset="utf-8"></script>
<script src="<%= BASE_URL %>cdn/axios/1.0.0/axios.min.js" charset="utf-8"></script>
<script src="<%= BASE_URL %>cdn/element-ui/2.15.6/index.js" charset="utf-8"></script>
<script charset="utf-8" src="<%= BASE_URL %>util/aes.js"></script>
<script charset="utf-8" src="<%= BASE_URL %>cdn/vue/2.6.10/vue.min.js"></script>
<script charset="utf-8" src="<%= BASE_URL %>cdn/vuex/3.1.1/vuex.min.js"></script>
<script charset="utf-8" src="<%= BASE_URL %>cdn/vue-router/3.0.1/vue-router.min.js"></script>
<script charset="utf-8" src="<%= BASE_URL %>cdn/axios/1.0.0/axios.min.js"></script>
<script charset="utf-8" src="<%= BASE_URL %>cdn/element-ui/2.15.6/index.js"></script>
<!--<script src="<%= BASE_URL %>cdn/avue/2.9.12/avue.min.js" charset="utf-8"></script>-->
<script src="<%= BASE_URL %>cdn/avue/2.12.4/avue.min.js" charset="utf-8"></script>
<script src="<%= BASE_URL %>cdn/nutflow/wf-design-base/index.umd.min.js" charset="utf-8"></script>
<script charset="utf-8" src="<%= BASE_URL %>cdn/avue/2.12.4/avue.min.js"></script>
<script charset="utf-8" src="<%= BASE_URL %>cdn/nutflow/wf-design-base/index.umd.min.js"></script>
</body>
</html>
Source/plt-web/plt-web-ui/src/App.vue
@@ -148,4 +148,18 @@
.el-tree .el-tree-node__loading-icon{
  display: none !important;
}
.el-select{
  width: 100%;
}
.avue-input-icon__item .avue-icon i {
  font-size: 30px !important;
  width: 30px;
  height: 30px;
}
.el-descriptions__header{
  margin-bottom: 10px;
}
</style>
Source/plt-web/plt-web-ui/src/config/env.js
@@ -6,16 +6,16 @@
let codeUrl = `${baseUrl}/code`
const env = process.env
if (env.NODE_ENV === 'development') {
    baseUrl = ``; // å¼€å‘环境地址
  baseUrl = ``; // å¼€å‘环境地址
} else if (env.NODE_ENV === 'production') {
    baseUrl = ``; //生产环境地址
  baseUrl = ``; //生产环境地址
} else if (env.NODE_ENV === 'test') {
    baseUrl = ``; //测试环境地址
  baseUrl = ``; //测试环境地址
}
export {
    baseUrl,
    iconfontUrl,
    iconfontVersion,
    codeUrl,
    env
  baseUrl,
  iconfontUrl,
  iconfontVersion,
  codeUrl,
  env
}
Source/plt-web/plt-web-ui/src/config/iconList.js
@@ -69,8 +69,47 @@
    ]
  },
  {
    label: "系统图标",
    label: "自定义图标",
    list: [
      "iconfont icon-xitongmokuaipeizhi",
      "iconfont icon-xitongpeizhi",
      "iconfont icon-renyuanzuzhiguanli",
      "iconfont icon-mimaceluo",
      "iconfont icon-bumenguanli",
      "iconfont icon-jiaoseguanli",
      "iconfont icon-chengyuanguanli",
      "el-icon-document",
      "iconfont icon-rizhi",
      "iconfont icon-chaxunrizhi",
      "iconfont icon-wenjianguiguanli",
      "iconfont icon-liuchengmobanguanli",
      "iconfont icon-liuchengmobanfenlei",
      "iconfont icon-liuchengmobandingyi",
      "iconfont icon-duixiangjianmo",
      "iconfont icon-meijvleixing",
      "iconfont icon-shuxingchi",
      "iconfont icon-zhuangtaichi",
      "iconfont icon-banbenguanli",
      "iconfont icon-shengmingzhouqi",
      "iconfont icon-chaxunmoban",
      "iconfont icon-yewuleixing",
      "iconfont icon-chaxunmobandingyi",
      "iconfont icon-lianjieleixing",
      "iconfont icon-uijianmo",
      "iconfont icon-actionguanli",
      "iconfont icon-biaodandingyi",
      "iconfont icon-uidingyi",
      "iconfont icon-wuquanxian",
      "iconfont icon-gongnengquanxianguanli",
      "iconfont icon-gongnengmokuai",
      "iconfont icon-anquanguanli",
      "iconfont icon-mijiguanli",
      "iconfont icon-jiqimiji",
      "iconfont icon-quanxian",
      "el-icon-key",
      "iconfont icon-actionguanli",
      "iconfont icon-shujushouquan",
      "iconfont icon-uishouquan",
      "iconfont icon-zhongyingwen",
      "iconfont icon-caidan",
      "iconfont icon-rizhi1",
@@ -88,12 +127,9 @@
      "iconfont icon-iconset0265",
      "iconfont icon-shujuzhanshi2",
      "iconfont icon-tuichuquanping",
      "iconfont icon-rizhi",
      "iconfont icon-cuowutishitubiao",
      "iconfont icon-debug",
      "iconfont icon-iconset0216",
      "iconfont icon-quanxian",
      "iconfont icon-quanxian",
      "iconfont icon-shuaxin",
      "iconfont icon-bofangqi-suoping",
      "iconfont icon-quanping",
@@ -109,7 +145,6 @@
      "iconfont icon-biaoge",
      "iconfont icon-baidu1",
      "iconfont icon-tubiao",
      "iconfont icon-souhu",
      "iconfont icon-msnui-360",
      "iconfont icon-iframe",
      "iconfont icon-huanyingye",
Source/plt-web/plt-web-ui/src/page/login/userlogin.vue
@@ -7,17 +7,6 @@
           status-icon
  >
    <!--      <el-form-item prop="selectInput">-->
    <!--        <el-select v-model="loginForm.value" placeholder="请选择组织" style="width: 326px" @change="selectchange">-->
    <!--          <i slot="prefix" class="el-icon-s-operation"/>-->
    <!--          <el-option-->
    <!--            v-for="(item,index) in loginForm.region"-->
    <!--            :key="index"-->
    <!--            :label="item.TENANT_NAME"-->
    <!--            :value="item.TENANT_ID">-->
    <!--          </el-option>-->
    <!--        </el-select>-->
    <!--      </el-form-item>-->
    <el-form-item prop="username">
      <el-input v-model="loginForm.username"
                :placeholder="$t('login.username')"
Source/plt-web/plt-web-ui/src/util/func.js
@@ -37,15 +37,15 @@
   */
  static rowClickHandler(row, CrudRef, lastIndex, setLastIndex, setSelectList) {
    if (lastIndex === row.$index) {
    /*if (lastIndex === row.$index) {
      setSelectList();
      CrudRef.clearSelection();
    } else {
      setSelectList();
      CrudRef.clearSelection();
      CrudRef.toggleRowSelection(row);
    }
    }*/
    CrudRef.toggleRowSelection(row);
    setLastIndex(row.$index);
  }
Source/plt-web/plt-web-ui/src/views/authority/ui/typeAction/index.vue
@@ -73,7 +73,7 @@
      selectList: [],
      option: {
        ...basicOption,
        calcHeight: -50,
        calcHeight: -35,
        addBtn: false,
        editBtn: false,
        delBtn: false,
Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/attributePool/index.vue
@@ -37,16 +37,16 @@
        </avue-crud>
      </basic-container>
    </el-main>
    <!-- å³ä¾§ä¿¡æ¯   -->
    <!-- å³ä¾§ä¿¡æ¯ -->
    <el-aside width="30%">
      <basic-container>
        <div style="height: 85vh; overflow-y: auto">
          <el-descriptions :column="1" border size="medium" title="属性项">
          <el-descriptions :column="1" border size="medium" title="属性项" :labelStyle="{width:'120px'}">
            <el-descriptions-item>
              <template slot="label">
                åç§°
              </template>
              <div style="width: 330px">
              <div>
                {{ lastItem.id }}
              </div>
            </el-descriptions-item>
@@ -54,16 +54,16 @@
              <template slot="label">
                æ ‡ç­¾
              </template>
              <div style="width: 330px">
                {{ lastItem.name }}
              <div>
              {{ lastItem.name }}
              </div>
            </el-descriptions-item>
            <el-descriptions-item>
              <template slot="label">
                æè¿°
              </template>
              <div style="width: 330px">
                {{ lastItem.description }}
              <div>
              {{ lastItem.description }}
              </div>
            </el-descriptions-item>
            <el-descriptions-item>
@@ -75,17 +75,17 @@
          </el-descriptions>
          <!-- å€¼åŸŸ -->
          <el-descriptions v-if="!isSpecialDataType" :column="1" :title="lastItem.attributeDataType" border
          <el-descriptions v-if="!isSpecialDataType" :column="1" :title="lastItem.attributeDataType || 'VTString'" border
                           class="margin-top"
                           size="medium">
                           size="medium"  :labelStyle="{width:'120px'}">
            <el-descriptions-item>
              <template slot="label">
                å…è®¸ä¸ºç©º
              </template>
              <div style="width: 330px">
                <el-tag :type="lastItem.nullableFlag ? 'success' : 'danger'">
                  {{ lastItem.nullableFlag ? '是' : '否' }}
                </el-tag>
              <div>
              <el-tag :type="lastItem.nullableFlag ? 'success' : 'danger'">
                {{ lastItem.nullableFlag ? '是' : '否' }}
              </el-tag>
              </div>
            </el-descriptions-item>
            <el-descriptions-item v-if="accuracy">
@@ -98,127 +98,124 @@
              <template slot="label">
                é•¿åº¦
              </template>
              <div style="width: 330px">
                {{ lastItem.attrLength }}
              <div>
              {{ lastItem.attrLength }}
              </div>
            </el-descriptions-item>
            <el-descriptions-item>
              <template slot="label">
                é»˜è®¤å€¼
              </template>
              <div style="width: 330px">
                {{ lastItem.defaultValue }}
              <div>
              {{ lastItem.defaultValue }}
              </div>
            </el-descriptions-item>
          </el-descriptions>
          <!--   VTString  -->
          <el-descriptions v-if="lastItem.attributeDataType === 'VTString' || !lastItem.attributeDataType"
                           :column="1" border class="margin-top" size="medium" title="值域">
                           :column="1" border class="margin-top" size="medium" title="值域"  :labelStyle="{width:'120px'}">
            <el-descriptions-item>
              <template slot="label">
                å½“前类型
              </template>
              <div style="width: 345px">
                {{ lastItem.version ? '链接类型' : '业务类型' }}
              <div>
              {{ lastItem.version ? '链接类型' : '业务类型' }}
              </div>
            </el-descriptions-item>
            <el-descriptions-item>
              <template slot="label">
                å½“前类型值
              </template>
              <div style="width: 345px">
                {{ lastItem.version ? lastItem.linkTypeName : lastItem.btmTypeId }}
              <div>
              {{ lastItem.version ? lastItem.linkTypeName : lastItem.btmTypeId }}
              </div>
            </el-descriptions-item>
            <el-descriptions-item v-if="lastItem.version">
              <template slot="label">
                å½“前版本次
              </template>
              <div style="width: 345px">
                {{ lastItem.version }}
              <div>
              {{ lastItem.version }}
              </div>
            </el-descriptions-item>
            <el-descriptions-item>
              <template slot="label">
                ä½¿ç”¨æžšä¸¾
              </template>
              <div style="width: 345px">
                <el-tag :type="lastItem.enumId ? 'success' : 'danger'">
                  {{ lastItem.enumId ? '是' : '否' }}
                </el-tag>
              <div>
              <el-tag :type="lastItem.enumId ? 'success' : 'danger'">
                {{ lastItem.enumId ? '是' : '否' }}
              </el-tag>
              </div>
            </el-descriptions-item>
            <el-descriptions-item>
              <template slot="label">
                å½“前枚举类型
              </template>
              <div style="width: 345px">
                {{ lastItem.enumId }}
              <div>
              {{ lastItem.enumId }}
              </div>
            </el-descriptions-item>
            <el-descriptions-item>
              <template slot="label">
                å–值范围
              </template>
              <div style="width: 330px; height: 80px;overflow: auto">
                <el-tag v-for="item in rangeList" plain style="margin: 5px">{{ item }}</el-tag>
              <div>
                <el-tag v-for="item in rangeList" plain style="margin: 3px 10px 3px 0">{{ item }}</el-tag>
              </div>
            </el-descriptions-item>
          </el-descriptions>
          <!-- VTInteger && VTInteger  -->
          <el-descriptions
            v-if="lastItem.attributeDataType === 'VTInteger' || lastItem.attributeDataType === 'VTInteger'"
            :column="1" border class="margin-top" size="medium" title="值域">
            :column="1" border class="margin-top" size="medium" title="值域"  :labelStyle="{width:'120px'}">
            <el-descriptions-item>
              <template slot="label">
                ä½¿ç”¨æžšä¸¾
              </template>
              <div style="width: 330px">
                <el-tag :type="lastItem.enumFlag ? 'success' : 'danger'">
                  {{ lastItem.enumFlag ? '是' : '否' }}
                </el-tag>
              <div>
              <el-tag :type="lastItem.enumFlag ? 'success' : 'danger'">
                {{ lastItem.enumFlag ? '是' : '否' }}
              </el-tag>
              </div>
            </el-descriptions-item>
            <el-descriptions-item>
              <template slot="label">
                æžšä¸¾ç±»åž‹
              </template>
              <div style="width: 330px">
                {{ lastItem.enumFlag }}
              <div>
              {{ lastItem.enumFlag }}
              </div>
            </el-descriptions-item>
            <el-descriptions-item>
              <template slot="label">
                å–值范围
              </template>
              <div style="width: 345px; height: 80px;overflow: auto">
                <el-tag v-for="item in rangeList" plain style="margin: 5px">{{ item }}</el-tag>
              <div>
                <el-tag v-for="item in rangeList" plain style="margin: 3px 10px 3px 0">{{ item }}</el-tag>
              </div>
            </el-descriptions-item>
          </el-descriptions>
          <!-- VTDouble -->
          <el-descriptions v-if="lastItem.attributeDataType === 'VTDouble'"
                           :column="1" border class="margin-top" size="medium" title="值域">
                           :column="1" border class="margin-top" size="medium" title="值域"  :labelStyle="{width:'120px'}">
            <el-descriptions-item>
              <template slot="label">
                å–值范围
              </template>
              <div style="width: 330px; height: 80px;overflow: auto">
                <el-tag v-for="item in rangeList" plain style="margin: 5px">{{ item }}</el-tag>
              <div>
                <el-tag v-for="item in rangeList" plain style="margin: 3px 10px 3px 0">{{ item }}</el-tag>
              </div>
            </el-descriptions-item>
          </el-descriptions>
          <!--      VTDate VTTime VTDateTime VTNote VTFilePath VTClob均不显示 VTBoolean不显示值域 åªæ˜¾ç¤ºç±»åž‹   -->
        </div>
      </basic-container>
    </el-aside>
    <!-- æ–°å¢žå¯¹è¯æ¡†    -->
    <!-- æ–°å¢žå¯¹è¯æ¡† -->
    <el-dialog
      v-dialogDrag
      v-loading="addLoading"
@@ -226,112 +223,138 @@
      :visible.sync="addVisible"
      append-to-body="true"
      class="avue-dialog"
      width="65%"
      width="1200px"
      @close="addEscHandler"
    >
      <div style="height: 650px">
        <el-form ref="form" :model="form" :rules="rules" label-width="120px" size="small">
          <el-row>
            <div class="addDialog">
              <div>
                <h3>属性项</h3>
                <el-col :span="12">
                  <el-form-item label="名称:" prop="id">
                    <el-input v-model="form.id"></el-input>
      <div style="height: 550px;">
        <el-form ref="form" :model="form" :rules="rules" label-width="120px" size="small" style="max-height: 600px;">
          <div class="addDialog">
            <h3 style="border-bottom: 1px solid #eee;margin: -10px 0 20px;line-height: 40px">属性项</h3>
            <el-col :span="8">
              <el-form-item label="名称:" prop="id">
                <el-input v-model="form.id" :disabled="dialogTitle !== 'add'"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="标签:" prop="name">
                <el-input v-model="form.name"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="属性类型:" prop="attributeDataType">
                <el-select v-model="form.attributeDataType" placeholder="请选择属性类型" @change="attributeDataTypeChange">
                  <el-option v-for="item in typeSelectList" :label="item" :value="item"></el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="24">
              <el-form-item label="描述:" prop="description">
                <el-input v-model="form.description" :rows="2" type="textarea"></el-input>
              </el-form-item>
            </el-col>
            <!--  VTString   -->
            <div v-if="form.attributeDataType === 'VTString'" style="clear: both">
              <h3 style="border-bottom: 1px solid #eee;margin: -10px 0 20px;line-height: 40px">{{ form.attributeDataType }}</h3>
              <el-col :span="8">
                <el-form-item label="长度:" prop="attrLength">
                  <el-input-number v-model="form.attrLength" controls-position="right" :min="0"></el-input-number>
                </el-form-item>
              </el-col>
              <el-col :span="8">
                <el-form-item v-if="form.enumSwitch" label="默认值:"  prop="defaultValue">
                  <el-select v-model="form.defaultValue">
                    <el-option v-for="(item,index) in enumAddListChange" :key="index" :label="item.replace('=','')"
                               :value="item.replace('=','')"></el-option>
                  </el-select>
                </el-form-item>
                <el-form-item v-else label="默认值:"  prop="defaultValue">
                  <el-input v-model="form.defaultValue"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="8">
                <el-form-item label="允许为空:" prop="nullableFlag">
                  <el-switch v-model="form.nullableFlag"></el-switch>
                </el-form-item>
              </el-col>
              <h3 style="border-bottom: 1px solid #eee;margin: -10px 0 20px;line-height: 40px;clear: both">值域</h3>
              <el-col :span="8">
                <el-form-item label="当前值域类型:" prop="attributeSelectType">
                  <el-select v-model="form.attributeSelectType" placeholder="请选择属性类型"
                             @change="attributeSelectTypeChange">
                    <el-option label="业务类型" value="business"></el-option>
                    <el-option label="链接类型" value="link"></el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="8">
                <el-form-item label="选择参照类型:" prop="referValue">
                  <el-input v-model="form.referValue" @focus="referFormFocusHandler" :clearable="true"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="8">
                <el-form-item v-if="form.attributeSelectType === 'link'" label="版本次:" prop="version">
                  <el-select v-model="form.version" placeholder="请选择版本次">
                    <el-option :value="1" label="当前版本次"></el-option>
                    <el-option :value="3" label="最新版本次"></el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <div v-if="!form.referValue" style="clear: both">
                <el-col :span="8">
                  <el-form-item label="使用枚举:" prop="enumSwitch">
                    <el-switch v-model="form.enumSwitch" @change="switchEnumChange"></el-switch>
                  </el-form-item>
                </el-col>
                <el-col :span="12">
                  <el-form-item label="标签:" prop="name">
                    <el-input v-model="form.name"></el-input>
                  </el-form-item>
                </el-col>
                <el-col :span="12">
                  <el-form-item label="属性类型:" prop="attributeDataType">
                    <el-select v-model="form.attributeDataType" placeholder="请选择属性类型" @change="attributeDataTypeChange">
                      <el-option v-for="item in typeSelectList" :label="item" :value="item"></el-option>
                <el-col :span="8">
                  <el-form-item :label="form.enumSwitch ? '枚举选择:' : '添加值域:'" prop="enumSwitch">
                    <el-select v-if="form.enumSwitch" v-model="form.enumId" placeholder="请选择枚举类型"  @change="enumSelectChange">
                      <el-option v-for="(item,index) in attributeDataTypePickList" :key="index" :label="item.key"
                                 :value="item.key"></el-option>
                    </el-select>
                    <el-input v-if="!form.enumSwitch" v-model="form.enumAddValue"></el-input>
                  </el-form-item>
                </el-col>
                <el-col :span="12">
                  <el-form-item label="描述:" prop="description">
                    <el-input v-model="form.description" :rows="2" type="textarea"></el-input>
                <el-col :span="8">
                  <el-form-item v-if="!form.enumSwitch" label-width="10px" labeldd="运算符:">
                    <div>
                      <el-button size="mini" @click="enumAddHandler"> = </el-button>
                    </div>
                  </el-form-item>
                </el-col>
                <el-col :span="24" v-if="form.rangeValue && form.rangeValue.length>0">
                  <el-form-item :label="form.enumSwitch ? '当前枚举值:' : '当前值域:'" prop="rangeValue">
                    <el-tag  :key="item" v-for="item in form.rangeValue.split('\n')" plain :closable="!form.enumSwitch" type="success" @close="handleRangeValueDel(item)" style="margin: 0 10px 5px 0">{{ item }}</el-tag>
                    <el-input v-model="form.rangeValue" :readonly="form.enumSwitch" type="textarea" :rows="2" style="width: 0;height:0;overflow: hidden"></el-input>
                  </el-form-item>
                </el-col>
              </div>
              <div v-if="!hideType" class="addDialogBottom">
                <div class="left">
                  <h3>{{ form.attributeDataType }}</h3>
                  <el-form-item
                    v-if="form.attributeDataType !== 'VTInteger' && form.attributeDataType !== 'VTLong'
                  && form.attributeDataType !== 'VTDouble' && form.attributeDataType !== 'VTBoolean'"
                    label="长度:" prop="attrLength">
                    <el-input v-model="form.attrLength"></el-input>
                  </el-form-item>
                  <el-form-item v-if="form.attributeDataType === 'VTDouble'" label="精度:" prop="precisionLength">
                    <el-input v-model="form.precisionLength"></el-input>
                  </el-form-item>
                  <el-form-item v-if="form.attributeDataType === 'VTDouble'" label="长度:" prop="scaleLength">
                    <el-input v-model="form.scaleLength"></el-input>
                  </el-form-item>
                  <el-form-item v-if="form.attributeDataType !== 'VTBoolean' && !form.enumSwitch" label="默认值:"
                                prop="defaultValue">
                    <el-input v-model="form.defaultValue"></el-input>
                  </el-form-item>
                  <el-form-item v-if="form.attributeDataType === 'VTBoolean'" label="默认值:" prop="defaultValue">
                    <el-select v-model="form.defaultValue">
                      <el-option label="false" value="false"></el-option>
                      <el-option label="true" value="true"></el-option>
                    </el-select>
                  </el-form-item>
                  <el-form-item v-if="form.attributeDataType !== 'VTBoolean' && form.enumSwitch" label="默认值:"
                                prop="defaultValue">
                    <el-select v-model="form.defaultValue">
                      <el-option v-for="(item,index) in rangeOptionValue" :key="index" :label="item"
                                 :value="item"></el-option>
                    </el-select>
                  </el-form-item>
                  <el-form-item label="允许为空:" prop="nullableFlag">
                    <el-switch v-model="form.nullableFlag"></el-switch>
                  </el-form-item>
                </div>
                <el-divider direction="vertical"></el-divider>
                <!--  VTString   -->
                <div v-if="form.attributeDataType === 'VTString'" class="right">
                  <h3>值域</h3>
                  <el-form-item label="当前值域类型:" prop="attributeSelectType">
                    <el-select v-model="form.attributeSelectType" placeholder="请选择属性类型"
                               @change="attributeSelectTypeChange">
                      <el-option label="业务类型" value="business"></el-option>
                      <el-option label="链接类型" value="link"></el-option>
                    </el-select>
                  </el-form-item>
                  <el-form-item v-if="form.attributeSelectType === 'link'" label="版本次:" prop="version">
                    <el-select v-model="form.version" placeholder="请选择版本次">
                      <el-option :value="1" label="当前版本次"></el-option>
                      <el-option :value="3" label="最新版本次"></el-option>
                    </el-select>
                  </el-form-item>
                  <el-form-item label="选择参照类型:" prop="referValue">
                    <el-input v-model="form.referValue" @focus="referFormFocusHandler"></el-input>
                  </el-form-item>
                  <span v-if="!form.referValue">
            </div>
            <!--  VTInteger VTLong   -->
            <div v-else-if="form.attributeDataType === 'VTInteger' || form.attributeDataType === 'VTLong' " style="clear: both">
              <h3 style="border-bottom: 1px solid #eee;margin: -10px 0 20px;line-height: 40px">{{ form.attributeDataType }}</h3>
              <el-col :span="8">
                <el-form-item v-if="form.enumSwitch" label="默认值:"  prop="defaultValue">
                  <el-select v-model="form.defaultValue">
                    <el-option v-for="(item,index) in enumAddListChange" :key="index" :label="item.replace('=','')"
                               :value="item.replace('=','')"></el-option>
                  </el-select>
                </el-form-item>
                <el-form-item v-else label="默认值:"  prop="defaultValue">
                  <el-input-number v-model="form.defaultValue" controls-position="right"></el-input-number>
                </el-form-item>
              </el-col>
              <el-col :span="8">
                <el-form-item label="允许为空:" prop="nullableFlag">
                  <el-switch v-model="form.nullableFlag"></el-switch>
                </el-form-item>
              </el-col>
              <h3 style="border-bottom: 1px solid #eee;margin: -10px 0 20px;line-height: 40px;clear: both">值域</h3>
              <el-col :span="8">
                <el-form-item label="使用枚举:" prop="enumSwitch">
                  <el-switch v-model="form.enumSwitch" @change="switchEnumChange"></el-switch>
                </el-form-item>
              </el-col>
              <el-col :span="8">
                <el-form-item :label="form.enumSwitch ? '枚举选择:' : '添加值域:'" prop="enumSwitch">
                  <el-select v-if="form.enumSwitch" v-model="form.enumId" placeholder="请选择枚举类型"
                             @change="enumSelectChange">
@@ -341,84 +364,102 @@
                  <el-input v-if="!form.enumSwitch" v-model="form.enumAddValue">
                  </el-input>
                </el-form-item>
                <el-form-item v-if="!form.enumSwitch" label="运算符:">
              </el-col>
              <el-col :span="8">
                <el-form-item v-if="!form.enumSwitch" label-width="10px" labeldd="运算符:">
                  <div>
                    <el-button size="mini" @click="enumAddHandler"> = </el-button>
                    <el-button size="mini" @click="operationHandler('>')"> ></el-button>
                    <el-button size="mini" @click="operationHandler('<')"> <</el-button>
                    <el-button size="mini" @click="operationHandler('>=')"> >=</el-button>
                    <el-button size="mini" @click="operationHandler('<=')"> <=</el-button>
                    <el-button size="mini" @click="operationHandler('=')"> =</el-button>
                    <el-button size="mini" @click="operationHandler('!=')"> !=</el-button>
                    <el-button size="mini" @click="operationHandler('()')"> ([])</el-button>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="24" v-if="form.rangeValue && form.rangeValue.length>0">
                <el-form-item :label="form.enumSwitch ? '当前枚举值:' : '当前值域:'" prop="rangeValue">
                  <textarea v-model="form.rangeValue" :readonly="form.enumSwitch"
                            style="width: 330px; height: 80px; border: 1px solid #DCDFE6; overflow: auto; text-align: left;resize: none;">
                  </textarea>
                  <el-tag  :key="item" v-for="item in form.rangeValue.split('\n')" plain :closable="!form.enumSwitch" type="success" @close="handleRangeValueDel(item)" style="margin: 0 10px 5px 0">{{ item }}</el-tag>
                  <el-input v-model="form.rangeValue" :readonly="form.enumSwitch" type="textarea" :rows="2" style="width: 0;height:0;overflow: hidden"></el-input>
                </el-form-item>
                </span>
                </div>
                <!--  VTInteger VTLong   -->
                <div v-if="form.attributeDataType === 'VTInteger' || form.attributeDataType === 'VTLong' "
                     class="right">
                  <h3>值域</h3>
                  <el-form-item label="使用枚举:" prop="enumSwitch">
                    <el-switch v-model="form.enumSwitch" @change="switchEnumChange"></el-switch>
                  </el-form-item>
                  <el-form-item :label="form.enumSwitch ? '枚举选择:' : '添加值域:'" prop="enumSwitch">
                    <el-select v-if="form.enumSwitch" v-model="form.enumId" placeholder="请选择枚举类型"
                               @change="enumSelectChange">
                      <el-option v-for="(item,index) in attributeDataTypePickList" :key="index" :label="item.key"
                                 :value="item.key"></el-option>
                    </el-select>
                    <el-input v-if="!form.enumSwitch" v-model="form.enumAddValue">
                    </el-input>
                  </el-form-item>
                  <el-form-item v-if="!form.enumSwitch" label="运算符:">
                    <div>
                      <el-button size="mini" @click="operationHandler('>')"> ></el-button>
                      <el-button size="mini" @click="operationHandler('<')"> <</el-button>
                      <el-button size="mini" @click="operationHandler('>=')"> >=</el-button>
                      <el-button size="mini" @click="operationHandler('<=')"> <=</el-button>
                      <el-button size="mini" @click="operationHandler('=')"> =</el-button>
                      <el-button size="mini" @click="operationHandler('!=')"> !=</el-button>
                      <el-button size="mini" @click="operationHandler('()')"> ([])</el-button>
                    </div>
                  </el-form-item>
                  <el-form-item :label="form.enumSwitch ? '当前枚举值:' : '当前值域:'" prop="rangeValue">
                  <textarea v-model="form.rangeValue" :readonly="form.enumSwitch"
                            style="width: 330px; height: 80px; border: 1px solid #DCDFE6; overflow: auto; text-align: left;resize: none;">
                  </textarea>
                  </el-form-item>
                </div>
                <!--   VTDouble    -->
                <div v-if="form.attributeDataType === 'VTDouble'" class="right">
                  <h3>值域</h3>
                  <el-form-item :label="form.enumSwitch ? '枚举选择:' : '添加值域:'" prop="enumAddValue">
                    <el-input v-model="form.enumAddValue">
                    </el-input>
                  </el-form-item>
                  <el-form-item label="运算符:">
                    <div>
                      <el-button size="mini" @click="operationHandler('>')"> ></el-button>
                      <el-button size="mini" @click="operationHandler('<')"> <</el-button>
                      <el-button size="mini" @click="operationHandler('>=')"> >=</el-button>
                      <el-button size="mini" @click="operationHandler('<=')"> <=</el-button>
                      <el-button size="mini" @click="operationHandler('=')"> =</el-button>
                      <el-button size="mini" @click="operationHandler('!=')"> !=</el-button>
                      <el-button size="mini" @click="operationHandler('()')">([])</el-button>
                    </div>
                  </el-form-item>
                  <el-form-item :label="form.enumSwitch ? '当前枚举值:' : '当前值域:'" prop="rangeValue">
                  <textarea v-model="form.rangeValue"
                            style="width: 330px; height: 80px; border: 1px solid #DCDFE6; overflow: auto; text-align: left;resize: none;">
                  </textarea>
                  </el-form-item>
                </div>
              </div>
              </el-col>
            </div>
          </el-row>
            <!--   VTDouble    -->
            <div v-else-if="form.attributeDataType === 'VTDouble'" style="clear: both">
              <h3 style="border-bottom: 1px solid #eee;margin: -10px 0 20px;line-height: 40px">{{ form.attributeDataType }}</h3>
              <el-col :span="8">
                <el-form-item label="精度:" prop="precisionLength">
                  <el-input-number v-model="form.precisionLength" controls-position="right" :precision="0" :step="1" :min="0"></el-input-number>
                </el-form-item>
              </el-col>
              <el-col :span="8">
                <el-form-item label="长度:" prop="scaleLength">
                  <el-input-number v-model="form.scaleLength" controls-position="right"  :precision="0" :step="1" :min="0"></el-input-number>
                </el-form-item>
              </el-col>
              <el-col :span="8">
                <el-form-item v-if="form.enumSwitch" label="默认值:"  prop="defaultValue">
                  <el-select v-model="form.defaultValue">
                    <el-option v-for="(item,index) in enumAddListChange" :key="index" :label="item.replace('=','')"
                               :value="item.replace('=','')"></el-option>
                  </el-select>
                </el-form-item>
                <el-form-item v-else label="默认值:"  prop="defaultValue">
                  <el-input-number v-model="form.defaultValue" controls-position="right" :precision="form.precisionLength"></el-input-number>
                </el-form-item>
              </el-col>
              <el-col :span="8">
                <el-form-item label="允许为空:" prop="nullableFlag">
                  <el-switch v-model="form.nullableFlag"></el-switch>
                </el-form-item>
              </el-col>
              <h3 style="border-bottom: 1px solid #eee;margin: -10px 0 20px;line-height: 40px;clear: both">值域</h3>
              <el-col :span="8">
                <el-form-item :label="form.enumSwitch ? '枚举选择:' : '添加值域:'" prop="enumAddValue">
                  <el-input v-model="form.enumAddValue">  </el-input>
                </el-form-item>
              </el-col>
              <el-col :span="16">
                <el-form-item label="运算符:">
                  <div>
                    <el-button size="mini" @click="operationHandler('>')"> ></el-button>
                    <el-button size="mini" @click="operationHandler('<')"> <</el-button>
                    <el-button size="mini" @click="operationHandler('>=')"> >=</el-button>
                    <el-button size="mini" @click="operationHandler('<=')"> <=</el-button>
                    <el-button size="mini" @click="operationHandler('=')"> =</el-button>
                    <el-button size="mini" @click="operationHandler('!=')"> !=</el-button>
                    <el-button size="mini" @click="operationHandler('()')">([])</el-button>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="24" v-if="form.rangeValue && form.rangeValue.length>0">
                <el-form-item :label="form.enumSwitch ? '当前枚举值:' : '当前值域:'" prop="rangeValue">
                  <el-tag  :key="item" v-for="item in form.rangeValue.split('\n')" plain closable type="success" @close="handleRangeValueDel(item)" style="margin: 0 10px 5px 0">{{ item }}</el-tag>
                  <el-input v-model="form.rangeValue" type="textarea" :rows="2" style="width: 0;height:0;overflow: hidden"></el-input>
                </el-form-item>
              </el-col>
            </div>
            <div v-else-if="form.attributeDataType === 'VTBoolean'" style="clear: both">
              <h3 style="border-bottom: 1px solid #eee;margin: -10px 0 20px;line-height: 40px">{{ form.attributeDataType }}</h3>
              <el-col :span="8">
                <el-form-item label="默认值:" prop="defaultValue">
                  <el-select v-model="form.defaultValue">
                    <el-option label="false" value="false"></el-option>
                    <el-option label="true" value="true"></el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="8">
                <el-form-item label="允许为空:" prop="nullableFlag">
                  <el-switch v-model="form.nullableFlag"></el-switch>
                </el-form-item>
              </el-col>
            </div>
          </div>
        </el-form>
        <!-- ä¸šåŠ¡ç±»åž‹å¯¹è¯æ¡†      -->
        <!-- ä¸šåŠ¡ç±»åž‹å¯¹è¯æ¡† -->
        <el-dialog
          v-dialogDrag
          :visible.sync="businessVisible"
@@ -438,13 +479,13 @@
          >
          </avue-crud>
          <span slot="footer" class="dialog-footer">
         <el-button type="primary" @click="businessSaveHandler">ç¡® å®š</el-button>
          <el-button @click="businessEmpty">清 ç©º</el-button>
         <el-button @click="businessVisible = false">取 æ¶ˆ</el-button>
         <el-button type="primary" @click="businessSaveHandler">ç¡® å®š</el-button>
        </span>
        </el-dialog>
        <!-- é“¾æŽ¥ç±»åž‹å¯¹è¯æ¡†      -->
        <!-- é“¾æŽ¥ç±»åž‹å¯¹è¯æ¡† -->
        <el-dialog
          v-dialogDrag
          :visible.sync="linkTypeVisible"
@@ -471,14 +512,14 @@
        </el-dialog>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="addEscHandler">取 æ¶ˆ</el-button>
        <el-button type="primary" @click="addSaveHandler">ç¡® å®š</el-button>
        <el-button @click="addEscHandler">取 æ¶ˆ</el-button>
      </span>
    </el-dialog>
    <!--导入    -->
    <upload-file ref="upload" :fileType="upFileType" :fileUrl="fileUrl" :tipList="tipList" title="导入"
                 @updata="getTableList"></upload-file>
    <!-- æŸ¥çœ‹ä½¿ç”¨èŒƒå›´    -->
    <!-- æŸ¥çœ‹ä½¿ç”¨èŒƒå›´ -->
    <el-dialog
      v-dialogDrag
      v-loading="checkViewLoading"
@@ -495,7 +536,6 @@
        @search-change="checkHandleSearch"
        @search-reset="checkHandleReset"
      >
      </avue-crud>
    </el-dialog>
  </el-container>
@@ -627,6 +667,7 @@
        searchMenuSpan: 8,
        refreshBtn: false,
        selection: false,
        header:false,
        column: [
          {
            label: '名称',
@@ -654,6 +695,8 @@
        description: "",
        nullableFlag: true,
        attrLength: 50,
        precisionLength:2,//精度
        scaleLength:20,//长度
        enumFlag: false,
        enumId: "",
        enumSwitch: false,
@@ -665,7 +708,7 @@
        referValue: "",
        btmTypeId: "",
        linkTypeName: "",
        rangeValue: ""
        rangeValue: [] //当前值域\当前枚举值
      },
      typeSelectList: ['VTString', 'VTInteger', 'VTLong', 'VTDouble', 'VTBoolean', 'VTDate', 'VTTime', 'VTDateTime', 'VTNote', 'VTFilePath', 'VTClob'],
@@ -710,15 +753,6 @@
        this.form.attributeDataType === 'VTClob' ||
        this.form.attributeDataType === 'VTDateTime' ||
        this.form.attributeDataType === 'VTFilePath';
    },
    rangeOptionValue() {
      let values = this.form.rangeValue.split('\n');
      // å¤„理每个值,去除等号前的部分,只保留等号后的部分
      return values.map(value => {
        let parts = value.split('=');
        return parts.length > 1 ? parts[1].trim() : value.trim();
      });
    }
  },
  watch: {},
@@ -872,6 +906,7 @@
      })
    },
    // æŸ¥çœ‹ä½¿ç”¨èŒƒå›´æŸ¥è¯¢
    checkHandleSearch(params, done) {
      const {source} = params;
@@ -880,14 +915,12 @@
        this.checkViewData = this.checkViewDataSearch;
        return done();
      }
      ;
      this.checkViewData = this.checkViewData.filter(item => {
        return item.source && item.source.includes(source);
      });
      done();
    },
    // æŸ¥çœ‹ä½¿ç”¨èŒƒå›´é‡ç½®
@@ -915,21 +948,20 @@
        this.form.attributeSelectType = 'business'
        this.form.referValue = row.btmTypeId;
      }
      // console.log(row);
      this.getEnumMapByTypeHandler(this.form.attributeDataType);
      this.addVisible = true;
      this.lastIndex=-1;//防止触发行点击事件后清除选中项
    },
    // å±žæ€§ç±»åž‹ä¸‹æ‹‰æ¡†change
    attributeDataTypeChange(val) {
      this.form.rangeValue = null;
      this.form.nullableFlag=true;
      this.getEnumMapByTypeHandler(val);
      this.form.enumSwitch = false;
      if (val === 'VTBoolean') {
        this.form.defaultValue = 'false';
      } else {
      } else{
        this.form.defaultValue = '';
      }
    },
@@ -959,7 +991,8 @@
    enumSelectChange(val) {
      const list = this.attributeDataTypePickList.find(item => item.key === val).values;
      this.form.rangeValue = list.join('\n');
      this.form.defaultValue = this.rangeOptionValue[0];
      this.enumAddListChange=list;
      this.form.defaultValue = list[0].replace('=','');
    },
    // ä½¿ç”¨æžšä¸¾switch滑块change事件
@@ -968,15 +1001,17 @@
        this.form.enumId = this.attributeDataTypePickList[0].key;
        const list = this.attributeDataTypePickList[0].values;
        this.form.rangeValue = list.join('\n');
        this.form.defaultValue = this.rangeOptionValue[0];
        this.enumAddListChange=list;
        this.form.defaultValue = list[0].replace('=','');
      } else {
        this.form.defaultValue = "";
        this.form.rangeValue = "";
        this.enumAddListChange=[];
        this.enumId = "";
      }
    },
    // ä¸ä½¿ç”¨æžšä¸¾ æ‰‹åŠ¨æ·»åŠ æžšä¸¾å€¼
    // ä¸ä½¿ç”¨æžšä¸¾ æ‰‹åŠ¨æ·»åŠ æžšä¸¾å€¼ VTString
    enumAddHandler() {
      // æ£€æŸ¥å’Œè½¬æ¢ this.form.range ä¸ºæ•°ç»„,同时排除空值
      let currentRangeArray = this.form.rangeValue ? this.form.rangeValue.split('\n').filter(item => item.trim() !== '') : [];
@@ -1007,8 +1042,6 @@
        let lastValue = this.form.enumAddValue[(this.form.enumAddValue.length - 1)];
        // åˆ‡å‰² enumAddValue çš„逗号
        let values = this.form.enumAddValue.split(regex).map(item => item.trim()).filter(item => item !== "");
        ;
        // æ£€æŸ¥æ˜¯å¦æœ‰æœ‰æ•ˆçš„值
        if (values.length < 2 || values.some(item => item === '')) {
@@ -1056,7 +1089,10 @@
        '=': '=',
        '!=': '!='
      };
      if (isNaN(this.form.enumAddValue.trim())) {
        this.$message.error('请输入有效的数字值!');
        return;
      }
      // åˆ›å»ºæ–°çš„值
      let newValue = operatorMap[val] + this.form.enumAddValue.trim();
@@ -1072,7 +1108,12 @@
      this.form.rangeValue = currentRangeArray.join('\n');
      this.form.enumAddValue = "";
    },
    //删除值域
    handleRangeValueDel(val) {
      let currentRangeArray = this.form.rangeValue ? this.form.rangeValue.split('\n').filter(item => item.trim() !== val) : [];
      this.enumAddListChange =currentRangeArray;
      this.form.rangeValue = currentRangeArray.join('\n');
    },
    // å€¼åŸŸç±»åž‹åˆ‡æ¢
    attributeSelectTypeChange() {
      this.$forceUpdate(); // å¼ºåˆ¶æ›´æ–°form组件
@@ -1175,7 +1216,6 @@
      this.form.referValue = this.businessRow.name;
      this.businessVisible = false;
    },
    // ä¸šåŠ¡ç±»åž‹æ¸…ç©º
@@ -1206,9 +1246,8 @@
      this.linkTypeVisible = false;
    },
    // æ–°å¢žå¯¹è¯æ¡† å–消事件
    // å…³é—­æ–°å¢žå¯¹è¯æ¡†
    addEscHandler() {
      this.$refs.form.resetFields(); // å¯¹æ•´ä¸ªè¡¨å•进行重置,将所有字段值重置为初始值并移除校验结果
      this.addVisible = false;
      const form = {
        id: "",
@@ -1217,6 +1256,8 @@
        description: "",
        nullableFlag: true,
        attrLength: 50,
        precisionLength:2,//精度
        scaleLength:20,//长度
        enumFlag: false,
        enumId: "",
        enumSwitch: false,
@@ -1224,68 +1265,43 @@
        range: "",
        attributeSelectType: "business",
        version: 1,
        defaultValue: "",
        defaultValue: "",//默认值
        referValue: "",
        btmTypeId: "",
        linkTypeName: "",
        rangeValue: ""
      };
      this.form = form;
      this.$refs.form.clearValidate(); // å¯¹æ•´ä¸ªè¡¨å•进行重置,将所有字段值重置为初始值并移除校验结果
    },
    // æ–°å¢žä¿å­˜
    addSaveHandler() {
      const form = {
        id: "",
        name: "",
        attributeDataType: "VTString",
        description: "",
        nullableFlag: true,
        attrLength: 50,
        enumFlag: false,
        enumId: "",
        enumSwitch: false,
        enumAddValue: "",
        range: "",
        attributeSelectType: "business",
        version: 1,
        defaultValue: "",
        referValue: "",
        btmTypeId: "",
        linkTypeName: "",
        rangeValue: ""
      };
      this.$refs.form.validate((valid) => {
        if (valid) {
          this.form.range = this.form.rangeValue ? this.form.rangeValue.replace(/\n/g, ';') : '';
          if (this.form.attributeSelectType === 'business') {
            this.form.btmTypeId = this.form.referValue;
            this.form.linkTypeName="";
          } else {
            this.form.linkTypeName = this.form.referValue;
            this.form.btmTypeId="";
          }
          if (this.dialogTitle === 'add') {
            this.form.range = this.form.rangeValue ? this.form.rangeValue.replace(/\n/g, ';') : '';
            if (this.form.attributeSelectType === 'business') {
              this.form.btmTypeId = this.form.referValue;
            } else {
              this.form.linkTypeName = this.form.referValue;
            }
            addAttribute(this.form).then(res => {
              if (res.data.code === 200) {
                this.$message.success(res.data.obj);
                this.getTableList();
                this.form = form;
                this.addVisible = false;
                this.addEscHandler();
              }
            })
          }
          if (this.dialogTitle === 'edit') {
            this.form.range = this.form.rangeValue ? this.form.rangeValue.replace(/\n/g, ';') : '';
            if (this.form.attributeSelectType === 'business') {
              this.form.btmTypeId = this.form.referValue;
            } else {
              this.form.linkTypeName = this.form.referValue;
            }
            updateAttribute(this.form).then(res => {
              if (res.data.code === 200) {
                this.$message.success(res.data.obj);
                this.getTableList();
                this.form = form;
                this.addVisible = false;
                this.addEscHandler();
              }
            })
          }
@@ -1330,6 +1346,11 @@
</script>
<style lang="scss" scoped>
::v-deep {
  .el-input-number--small {
    width: 100%;
  }
}
.margin-top {
  margin-top: 25px;
}
@@ -1347,14 +1368,15 @@
}
.addDialogBottom {
  margin-top: 30px;
  width: 100%;
  display: flex;
  flex-direction: row;
}
.addDialogBottom > .el-divider--vertical {
  width: 2px;
  height: 78%;
  width: 1px;
  height: 70%;
  position: absolute;
  top: 50%;
  left: 50%;
Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue
@@ -30,11 +30,11 @@
          <el-button icon="el-icon-circle-plus-outline" plain size="small" type="primary" @click="indexClickHandler">创建索引</el-button>
          <el-button icon="el-icon-menu" plain size="small" type="primary" @click="checkClickHandler">一致性检查</el-button>
          <el-button icon="el-icon-delete" plain size="small" type="danger" @click="checkClickHandler">删除数据</el-button>
          <el-button plain size="small" type="danger" @click="checkClickHandler">删除全部类型</el-button>
          <el-button plain size="small" type="primary" @click="checkViewClickHandler">查看使用范围</el-button>
          <el-button icon="el-icon-delete" plain size="small" type="danger" @click="checkClickHandler">删除全部类型</el-button>
          <el-button icon="el-icon-view" plain size="small" type="primary" @click="checkViewClickHandler">查看使用范围</el-button>
        </div>
        <div style="display: flex;justify-content: center; height: 230px;margin-top: 10px;">
          <div class="descBox" style="max-height: 100px">
        <div style="display: flex;justify-content:left;margin-top: 15px;">
          <div class="descBox">
            <el-descriptions :column="1" border class="margin-top" size="medium" title="属性信息">
              <el-descriptions-item :contentStyle="descriptionOption.contentStyle"
                                    :labelStyle="descriptionOption.labelStyle">
@@ -57,8 +57,7 @@
                </template>
                <el-tooltip v-if="nodeRow.implClass" :content="nodeRow.implClass" class="item" effect="dark"
                            placement="top-start">
                  <el-tag style="max-width: 250px;overflow: hidden">{{ nodeRow.implClass }}
                  </el-tag>
                  <el-tag style="max-width: 100%;overflow: hidden;display: block">{{ nodeRow.implClass }}</el-tag>
                </el-tooltip>
              </el-descriptions-item>
              <el-descriptions-item :contentStyle="descriptionOption.contentStyle"
@@ -134,8 +133,8 @@
            </el-descriptions>
          </div>
        </div>
        <div style="margin-top: 30px">
          <h3>属性列表</h3>
        <div style="margin-top: 25px;position: relative">
          <h3 style="margin: 0;position: absolute;top:0;z-index: 1000;">属性列表</h3>
          <avue-crud
            :data="attrData"
            :option="attrOption">
@@ -153,7 +152,7 @@
      class="avue-dialog"
      width="75%"
      @close="addDialogClose">
      <el-form ref="form" :model="form" :rules="rules" label-width="95px">
      <el-form ref="form" :model="form" :rules="rules" label-width="95px" size="small">
        <div class="dialogForm">
          <div class="leftForm">
            <el-form-item label="类型名称:" prop="id">
@@ -264,7 +263,7 @@
        </div>
      </el-form>
      <div class="bottomForm">
        <h3>属性池列表</h3>
        <h3 style="margin-bottom: 10px;">属性池列表</h3>
        <avue-crud
          :data="dialogAttrData"
          :option="dialogAttrOption"
@@ -274,9 +273,9 @@
          </template>
        </avue-crud>
      </div>
      <span slot="footer" class="dialog-footer">
         <el-button @click="addDialogClose">取 æ¶ˆ</el-button>
      <span slot="footer" class="dialog-footer avue-dialog__footer">
         <el-button type="primary" @click="addDialogSavaHandler">ç¡® å®š</el-button>
         <el-button @click="addDialogClose">取 æ¶ˆ</el-button>
        </span>
    </el-dialog>
@@ -387,8 +386,8 @@
          </span>
      </avue-tree>
      <span slot="footer" class="dialog-footer">
         <el-button @click="inheritClose">取 æ¶ˆ</el-button>
         <el-button type="primary" @click="inheritSaveClickHandler">ç¡® å®š</el-button>
         <el-button @click="inheritClose">取 æ¶ˆ</el-button>
        </span>
    </el-dialog>
@@ -431,8 +430,8 @@
        :table-loading="conCheckLoading">
      </avue-crud>
      <span slot="footer" class="dialog-footer">
         <el-button @click="conCheckVisible = false">取 æ¶ˆ</el-button>
         <el-button type="primary" @click="repairClickHandler">ä¿® å¤</el-button>
         <el-button @click="conCheckVisible = false">取 æ¶ˆ</el-button>
        </span>
    </el-dialog>
@@ -491,13 +490,13 @@
          :option="indexAttrOption"
          @row-click="indexAttrRowClick"></avue-crud>
        <span slot="footer" class="dialog-footer">
         <el-button @click="indexAttrVisible = false">取 æ¶ˆ</el-button>
         <el-button type="primary" @click="indexAttrClickAddHandler">ç¡® å®š</el-button>
         <el-button @click="indexAttrVisible = false">取 æ¶ˆ</el-button>
        </span>
      </el-dialog>
      <span slot="footer" class="dialog-footer">
         <el-button @click="indexDialogClose">取 æ¶ˆ</el-button>
         <el-button type="primary" @click="indexClickAddHandler">保 å­˜</el-button>
         <el-button @click="indexDialogClose">取 æ¶ˆ</el-button>
        </span>
    </el-dialog>
@@ -640,6 +639,7 @@
        searchMenuSpan: 8,
        refreshBtn: false,
        selection: false,
        header:false,
        column: [
          {
            label: '名称',
@@ -753,6 +753,7 @@
        highlightCurrentRow: true,
        height: 450,
        searchMenuSpan: 8,
        header: false,
        column: [
          {
            label: '属性名',
@@ -764,6 +765,7 @@
            label: '属性类型',
            prop: 'attributeDataType',
            sortable: true,
            width:150,
          },
          {
            label: '初始值',
@@ -800,6 +802,7 @@
        selection: false,
        height: 210,
        addBtn: false,
        menuWidth:100,
        // index:false,
        column: [
          {
@@ -817,11 +820,13 @@
            label: '属性类型',
            prop: 'attributeDataType',
            sortable: true,
            width:150,
          },
          {
            label: '初始值',
            prop: 'defaultValue',
            sortable: true,
            width:150,
          },
          {
            label: '说明',
@@ -1656,11 +1661,16 @@
  .el-form-item .el-select {
    width: 100%;
  }
  .el-tag{
    line-height:22px;
    height: 24px;
  }
}
.descBox {
  width: 32%;
  margin-left: 20px;
  margin-right: 20px;
}
.dialogForm {
Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/enumType/index.vue
@@ -41,13 +41,13 @@
          :visible.sync="dialogVisible"
          append-to-body="true"
          class="avue-dialog"
          width="70%"
          width="1000px"
          @close="dialogClose"
        >
          <el-form ref="form" :model="form" :rules="rules" label-width="80px">
          <el-form ref="form" :model="form" :rules="rules" size="small" label-width="100px">
            <el-row>
              <el-col :span="12">
                <el-form-item label="名称:" prop="id">
                <el-form-item label="枚举名称:" prop="id">
                  <el-input v-model="form.id"></el-input>
                </el-form-item>
              </el-col>
@@ -58,7 +58,7 @@
              </el-col>
              <el-col :span="12">
                <el-form-item label="类型:">
                  <el-select v-model="form.enumValueDataType" placeholder="请选择类型">
                  <el-select v-model="form.enumValueDataType" placeholder="请选择类型" style="width: 376px;">
                    <el-option label="String" value="String"></el-option>
                    <el-option label="Integer" value="Integer"></el-option>
                  </el-select>
@@ -66,7 +66,7 @@
              </el-col>
              <el-col :span="12">
                <el-form-item label="长度:">
                  <el-input-number v-model="form.length" :max="999" :min="1" label="描述文字"></el-input-number>
                  <el-input-number v-model="form.length" :max="999" :min="1" label="描述文字" style="width: 376px;"></el-input-number>
                </el-form-item>
              </el-col>
              <el-col :span="24">
@@ -82,10 +82,9 @@
              </el-col>
            </el-row>
          </el-form>
          <span slot="footer" class="dialog-footer">
            <el-button @click="dialogVisible = false">取 æ¶ˆ</el-button>
            <el-button type="primary" @click="rowSaveHandler">ç¡® å®š</el-button>
            <el-button @click="dialogVisible = false">取 æ¶ˆ</el-button>
          </span>
        </el-dialog>
@@ -116,9 +115,9 @@
      </basic-container>
    </el-main>
    <el-aside width="30%">
    <el-aside width="35%">
      <basic-container>
        <el-descriptions :column="1" border size="medium" style="margin-bottom: 20px" title="枚举信息">
        <el-descriptions :column="1" border size="medium" style="margin-bottom: 20px" title="枚举信息" :labelStyle="{width:'150px'}">
          <el-descriptions-item>
            <template slot="label">
              åç§°
@@ -183,6 +182,8 @@
        refreshBtn: false,
        selection: false,
        index: false,
        header:false,
        calcHeight: -40,
        column: [
          {
            label: '枚举项名称',
@@ -246,11 +247,13 @@
        calcHeight: 50,
        refreshBtn: false,
        selection: false,
        dialogWidth:500,
        column: [
          {
            label: '枚举项名',
            prop: 'name',
            sortable: true,
            span:24,
            rules: [
              {
                required: true,
@@ -263,6 +266,7 @@
            label: '枚举值',
            prop: 'value',
            sortable: true,
            span:24,
            rules: [
              {
                required: true,
@@ -274,13 +278,13 @@
          {
            label: '描述',
            prop: 'description',
            sortable: true,
            span:24
          },
        ]
      },
      rules: {
        id: [
          {required: true, message: '请输入枚举项名', trigger: 'blur'},
          {required: true, message: '请输入枚举名称', trigger: 'blur'},
          {validator: this.validateEnglishOnly, trigger: 'blur'}
        ],
      },
@@ -295,11 +299,12 @@
      tableData: [],
      option: {
        ...basicOption,
        calcHeight: -60,
        calcHeight: -40,
        searchMenuSpan: 8,
        addBtn: false,
        editBtn: false,
        delBtn: false,
        menuWidth:160,
        column: [
          {
            label: '枚举名称',
@@ -316,6 +321,7 @@
            label: '返回类型',
            prop: 'enumValueDataTypeText',
            sortable: true,
            width:130
          }
        ]
      },
Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/lifeCycle/index.vue
@@ -1,6 +1,6 @@
<template>
  <el-container>
    <el-aside>
    <el-aside style="width:310px;">
      <basic-container>
        <div ref="TreeBox" style="height: calc(100vh - 144px);!important;">
          <div class="headerCon">
@@ -14,7 +14,7 @@
            </el-button>
            <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="uploadClickHandler">导入
            </el-button>
            <el-button class="smallBtn" plain size="small" type="primary" @click="checkViewClickHandler">查看使用范围
            <el-button icon="el-icon-view" plain size="small" type="primary" @click="checkViewClickHandler">查看使用范围
            </el-button>
          </div>
          <!-- å·¦ä¾§æ ‘ -->
@@ -99,6 +99,7 @@
        searchMenuSpan: 8,
        refreshBtn: false,
        selection: false,
        header:false,
        column: [
          {
            label: '名称',
@@ -421,13 +422,5 @@
    overflow: auto !important;
  }
}
.smallBtn {
  width: 77px !important;
  //font-size: 11px !important;
  text-align: center  !important;
  padding-left: 1px  !important;
}
</style>
Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/linkType/index.vue
@@ -147,8 +147,8 @@
          </el-descriptions>
        </div>
        <div style="margin-top: 30px">
          <h3>属性池列表</h3>
        <div style="margin-top: 30px;position: relative">
          <h3 style="margin: 0;position: absolute;top:0;z-index: 1000;">属性列表</h3>
          <avue-crud
            :data="tableData"
            :option="tableOption"
@@ -167,7 +167,7 @@
      width="70%"
      @close="addDialogClose"
    >
      <el-form ref="form" :model="form" :rules="rules" label-width="90px">
      <el-form ref="form" :model="form" :rules="rules" label-width="90px" size="small">
        <div class="dialogForm">
          <div class="leftForm">
            <el-form-item label="名称:" prop="name">
@@ -288,7 +288,7 @@
      </el-form>
      <div class="bottomForm">
        <h3>属性池列表</h3>
        <h3 style="margin-bottom: 10px;">属性池列表</h3>
        <avue-crud
          :data="dialogBottomData"
          :option="dialogBottomOption"
@@ -301,8 +301,8 @@
        </avue-crud>
      </div>
      <span slot="footer" class="dialog-footer">
         <el-button @click="addDialogClose">取 æ¶ˆ</el-button>
         <el-button type="primary" @click="addDialogSavaHandler">ç¡® å®š</el-button>
         <el-button @click="addDialogClose">取 æ¶ˆ</el-button>
        </span>
      <!-- å±žæ€§æ± åˆ—表 -->
@@ -331,8 +331,8 @@
        >
        </avue-crud>
        <span slot="footer" class="dialog-footer">
         <el-button @click="dialogAttrClose">取 æ¶ˆ</el-button>
         <el-button type="primary" @click="dialogAttrAddClickHandler">ç¡® å®š</el-button>
         <el-button @click="dialogAttrClose">取 æ¶ˆ</el-button>
        </span>
      </el-dialog>
    </el-dialog>
@@ -512,6 +512,7 @@
        highlightCurrentRow: true,
        height: 450,
        searchMenuSpan: 8,
        header:false,
        column: [
          {
            label: '属性名',
@@ -613,7 +614,7 @@
        // index:false,
        addBtn: false,
        menu: false,
        calcHeight: -40,
        calcHeight: -55,
        column: [
          {
            label: '属性名',
@@ -1154,6 +1155,10 @@
  .el-form-item .el-select {
    width: 100%;
  }
  .el-tag{
    line-height:22px;
    height: 24px;
  }
}
.dialogForm {
Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/statusPool/index.vue
@@ -21,8 +21,7 @@
        </el-button>
        <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="uploadClickHandler">导入
        </el-button>
        <el-button icon="el-icon-check" plain size="small" type="primary"
                   @click="checkViewClickHandler">查看使用范围
        <el-button icon="el-icon-view" plain size="small" type="primary"  @click="checkViewClickHandler">查看使用范围
        </el-button>
      </template>
@@ -141,6 +140,7 @@
        searchMenuSpan: 8,
        refreshBtn: false,
        selection: false,
        header:false,
        column: [
          {
            label: '名称',
Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/versioning/index.vue
@@ -37,7 +37,7 @@
    >
      <el-form ref="form" size="small" :model="form" :rules="rules" label-width="95px">
        <el-row>
          <el-col :span="12">
          <el-col :span="24">
            <el-form-item label="名称:" prop="id">
              <el-input v-model="form.id"></el-input>
            </el-form-item>
@@ -189,6 +189,7 @@
        searchMenuSpan: 8,
        refreshBtn: false,
        selection: false,
        header:false,
        column: [
          {
            label: '名称',
@@ -460,40 +461,8 @@
  .el-scrollbar__wrap {
    overflow: auto !important;
  }
  .headerCon {
    .el-button {
      width: 82px;
    }
  .el-input-number--small {
    width: 100%;
  }
}
.headerCon {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 5px;
  .el-button + .el-button {
    margin-left: 5px;
  }
  .el-button {
    margin-top: 5px;
  }
}
.headerCon > .el-button:nth-child(4) {
  margin-left: 0;
}
.headerCon > .el-button:nth-child(7) {
  margin-left: 0;
}
.smallBtn {
  width: 82px;
  text-align: center;
  padding-left: 4.5px;
}
</style>
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/formDialog.vue
@@ -1,23 +1,23 @@
<template>
  <el-dialog v-dialogDrag
             :append-to-body="true"
             :close-on-click-modal="false"
             :destroy-on-close="true"
             :title="dialog.title"
             :visible.sync="dialog.showDialog"
             width="1620px"
             :append-to-body="true"
             class="avue-dialog"
             :destroy-on-close="true"
             :close-on-click-modal="false"
             width="1620px"
             @close="cancelDialog">
    <div style="min-height: 665px;max-height: 85vh;padding-bottom: 50px;">
      <basic-form key="linkQueryForm" style="margin-bottom: 0"
                  ref="form"
                  :span="4"
                  :formItems="formItems"
      <basic-form key="linkQueryForm" ref="form"
                  :formData="form"
                  :formItems="formItems"
                  :span="4"
                  style="margin-bottom: 0"
                  @getFormData="getFormData">
      </basic-form>
      <avue-crud  ref="crud" title="设置排序"
                  :data="orderInfoList" :option="crudOption">
      <avue-crud ref="crud" :data="orderInfoList"
                 :option="crudOption" title="设置排序">
        <template slot="menuLeft" slot-scope="scope">
          <el-button icon="el-icon-plus" size="small" type="primary" @click="addRow">创建</el-button>
        </template>
@@ -27,17 +27,17 @@
        </template>
      </avue-crud>
      <el-dialog v-dialogDrag
                 title="创建"
                 :visible.sync="crudDialog.showDialog"
                 width="500px"
                 :append-to-body="true"
                 class="avue-dialog"
                 :destroy-on-close="true"
                 :close-on-click-modal="false"
                 :destroy-on-close="true"
                 :visible.sync="crudDialog.showDialog"
                 class="avue-dialog"
                 title="创建"
                 width="500px"
                 @close="crudDialog.showDialog=false">
        <avue-form ref="tableForm" :option="tableFormOption" v-model="tableForm"></avue-form>
        <avue-form ref="tableForm" v-model="tableForm" :option="tableFormOption"></avue-form>
        <div class="dialog-footer avue-dialog__footer">
          <el-button type="primary" plain size="small" @click="rowSave" >保 å­˜</el-button>
          <el-button plain size="small" type="primary" @click="rowSave">保 å­˜</el-button>
        </div>
      </el-dialog>
      <el-container style="margin-top: 10px;">
@@ -46,8 +46,11 @@
            <legend>&nbsp;候选条件&nbsp;</legend>
            <div>
              æŸ¥è¯¢æ¨¡æ¿å®šä¹‰
              <avue-select @change="businessQueryDefineChange" class="el-input--small" v-model="businessQueryDefineForm" placeholder="请选择内容" type="tree" :dic="businessQueryDefineDic" style="width: 240px;"></avue-select>
              <avue-tree style="height: 265px" :data="businessTreeData" :option="treeOption"  @node-drag-start="handleDragStart" @node-drag-end="handleDragEnd">
              <avue-select v-model="businessQueryDefineForm" :dic="businessQueryDefineDic" class="el-input--small"
                           placeholder="请选择内容" style="width: 240px;" type="tree"
                           @change="businessQueryDefineChange"></avue-select>
              <avue-tree :data="businessTreeData" :option="treeOption" style="height: 265px"
                         @node-drag-start="handleDragStart" @node-drag-end="handleDragEnd">
              </avue-tree>
            </div>
          </fieldset>
@@ -56,10 +59,10 @@
          <fieldset style="margin: 0 10px">
            <legend>&nbsp;查询条件&nbsp;</legend>
            <form-query-dialog ref="formQuery"
                               style="height: 300px;"
                               :levelFlag.sync="form.levelFlag"
                               :queryCondition="queryCondition"
                               :queryTree="queryTree"
                               :levelFlag.sync="form.levelFlag"
                               style="height: 300px;"
                               @queryHandler="queryHandler"
            ></form-query-dialog>
          </fieldset>
@@ -67,21 +70,22 @@
      </el-container>
    </div>
    <div class="dialog-footer avue-dialog__footer">
      <el-button type="primary" plain size="small" @click="submitDialog" >保 å­˜</el-button>
      <el-button plain size="small" type="primary" @click="submitDialog">保 å­˜</el-button>
      <el-button size="small" @click="cancelDialog">取 æ¶ˆ</el-button>
    </div>
  </el-dialog>
</template>
<script>
import {btmSave,getBizTypeQTDs,getCriteriaBtm} from "@/api/queryTemplate/businessTypeQuery";
import {btmSave, getBizTypeQTDs, getCriteriaBtm} from "@/api/queryTemplate/businessTypeQuery";
import basicOption from "@/util/basic-option";
import {queryTemplateListByAttr} from "@/api/queryTemplate/queryDefine";
import formQueryDialog from "@/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue";
export default {
  name: "formDialog",
  components:{formQueryDialog},
  data(){
  components: {formQueryDialog},
  data() {
    return {
      dialog: {
        showDialog: false,
@@ -96,22 +100,22 @@
        submitTxt: "保存",
        submitIcon: "el-icon-check",
      },
      formItems:[{
      formItems: [{
        label: '查询模板名称',
        prop: 'qtName',
        type: 'input',
        span:5,
        span: 5,
        rules: [{
          required: true,
          message: "请输入查询模板名称",
          trigger: "blur"
        }]
      }],
      form:{
        btmName:'',
      form: {
        btmName: '',
        qtName: '',
        levelFlag:0,//0:普通查询模板; 1:高级查询模板"
        queryTemplate:{}
        levelFlag: 0,//0:普通查询模板; 1:高级查询模板"
        queryTemplate: {}
      },
      //已有排序列表配置
      crudOption: {
@@ -128,10 +132,10 @@
        }, {
          label: '排序方式',
          prop: 'orderMode',
          formatter:function (row, value) {
          formatter: function (row, value) {
            if (row.orderMode == 'ASC') {
              return '升序'
            }else{
            } else {
              return '降序'
            }
          }
@@ -141,25 +145,25 @@
        }]
      },
      //已有排序
      orderInfoList:[],
      orderInfoList: [],
      //设置排序弹窗表单数据
      tableForm:{
        orderField:'',
        orderMode:'ASC',
        level:''
      tableForm: {
        orderField: '',
        orderMode: 'ASC',
        level: ''
      },
      //设置排序弹窗所有可排序字段
      orderFieldList:[],
      orderFieldList: [],
      //设置排序弹窗表单配置
      tableFormOption: {
        menuBtn: false,
        submitBtn: false,
        emptyBtn: false,
        span:24,
        span: 24,
        column: [{
          label: '排序字段',
          prop: 'orderField',
          type:'select',
          type: 'select',
          props: {
            label: 'id',
            value: 'id'
@@ -185,7 +189,7 @@
          label: '优先级',
          prop: 'level',
          type: 'number',
          min:1,
          min: 1,
          rules: [{
            required: true,
            message: "请输入优先级",
@@ -193,40 +197,39 @@
          }]
        }]
      },
      treeOption:{
        defaultExpandAll:true,
      treeOption: {
        defaultExpandAll: true,
        menu: false,
        addBtn: false,
        filter:false,
        filter: false,
        draggable: true,
        allowDrop: () => {
          return false;
        },
        allowDrag: (dropNode) => {
          if (dropNode.data.attrs && dropNode.data.attrs.length>0) {
          if (dropNode.data.attrs && dropNode.data.attrs.length > 0) {
            return false;
          } else {
            return true;
          }
        },
        props:{
          label:'name',
          value:'name',
          children:'attrs'
        props: {
          label: 'name',
          value: 'name',
          children: 'attrs'
        }
      },
      businessQueryDefineForm:'',//业务类型查询模板定义选中值
      businessQueryDefineDic:[],//业务类型查询模板定义下拉数据
      businessQueryDefineForm: '',//业务类型查询模板定义选中值
      businessQueryDefineDic: [],//业务类型查询模板定义下拉数据
      //业务类型查询模板定义选中项属性
      businessTreeData: [],
      //高级查询条件
      queryTree:{},
      queryTree: {},
      //普通查询条件
      queryCondition:[],
      queryCondition: [],
    };
  },
  watch: {
  },
  watch: {},
  methods: {
    openDialog(btmName, title, mode, data) {
      this.dialog.title = title;
@@ -240,20 +243,20 @@
        if (data.selectData.queryTemplate.orderInfoList && data.selectData.queryTemplate.orderInfoList.length > 0) {
          this.orderInfoList = JSON.parse(JSON.stringify(data.selectData.queryTemplate.orderInfoList));//已有排序
        }
        this.queryCondition=this.selectData.queryTemplate.condition;
        this.queryTree=this.selectData.tree;
        this.form.levelFlag=this.selectData.levelFlag;
        this.queryCondition = this.selectData.queryTemplate.condition;
        this.queryTree = this.selectData.tree;
        this.form.levelFlag = this.selectData.levelFlag;
      } else {
        this.selectData = {};
        this.orderInfoList = [];
        this.queryCondition=[];
        this.queryTree={
          connector:'并且',
          child:[]
        this.queryCondition = [];
        this.queryTree = {
          connector: '并且',
          child: []
        };
      }
      this.dialog.showDialog = true;
      this.treeOption.defaultExpandedKeys=[data.treeData.label]
      this.treeOption.defaultExpandedKeys = [data.treeData.label]
      this.getTemp(data.treeData.label)
      this.getAllAttr();
    },
@@ -264,26 +267,26 @@
        this.form = {
          btmName: '',
          qtName: '',
          levelFlag:0,
          levelFlag: 0,
          queryTemplate: {}
        };
        this.orderInfoList =[];
        this.businessQueryDefineForm='';
        this.linkQueryDefineForm='';
        this.orderInfoList = [];
        this.businessQueryDefineForm = '';
        this.linkQueryDefineForm = '';
        this.$refs.form.clearValidate();
      });
    },
    submitDialog() {
      this.$refs.form.validate((valid) => {
        if (valid) {
          const formData=this.initFormData();
          const formData = this.initFormData();
          console.log(formData)
          btmSave(formData).then(res => {
            if (res.data.success) {
              this.$message.success("保存成功");
              this.cancelDialog();
              this.$emit("refresh");
            }else {
            } else {
              this.$refs.form.clearValidate();
            }
          });
@@ -304,6 +307,7 @@
      if (formData.levelFlag == 1) {
        //高级
        let that = this;
        function initValue(nodeChild) {
          let children = [];
          if (nodeChild) {
@@ -342,11 +346,11 @@
    },
    // è¡Œåˆ é™¤
    rowDeleteHandler(data) {
      this.orderInfoList.splice(data.index,1);
      this.orderInfoList.splice(data.index, 1);
      this.orderFieldList.unshift({
        id: data.row.orderField
      });
      this.tableFormOption.column[0].dicData= this.orderFieldList
      this.tableFormOption.column[0].dicData = this.orderFieldList
    },
    //获取排序设置中所有排序字段
    getAllAttr() {
@@ -360,16 +364,16 @@
            dicData.push(item);
          }
        })
        this.tableFormOption.column[0].dicData=dicData;
        this.orderFieldList=dicData;
        this.tableFormOption.column[0].dicData = dicData;
        this.orderFieldList = dicData;
      })
    },
    //排序设置保存
    rowSave() {
      this.$refs.tableForm.validate((valid) => {
        if(valid){
        if (valid) {
          this.orderInfoList.push(JSON.parse(JSON.stringify(this.tableForm)));
          this.crudDialog.showDialog=false;
          this.crudDialog.showDialog = false;
          const orderInfoStr = JSON.stringify(this.orderInfoList);
          const dicData = [];
          this.orderFieldList.forEach(item => {
@@ -377,9 +381,9 @@
              dicData.push(item);
            }
          })
          this.tableFormOption.column[0].dicData=dicData;
          this.orderFieldList=dicData;
          this.tableForm= {
          this.tableFormOption.column[0].dicData = dicData;
          this.orderFieldList = dicData;
          this.tableForm = {
            orderField: '',
            orderMode: 'ASC',
            level: ''
@@ -390,14 +394,14 @@
    //获取查询模板定义下拉
    getTemp(btmName) {
      if (btmName) {
        queryTemplateListByAttr({btmName: btmName,linkFlag:false}).then(res => {
        queryTemplateListByAttr({btmName: btmName, linkFlag: false}).then(res => {
          const data = res.data.data.map(item => {
            item.label = item.name + '-' + item.btmName;
            item.value = item.name;
            return item;
          });
            this.businessQueryDefineDic=data;
            data.length>0 && (this.businessQueryDefineForm= data[0].value);
          this.businessQueryDefineDic = data;
          data.length > 0 && (this.businessQueryDefineForm = data[0].value);
        })
      }
    },
@@ -413,26 +417,40 @@
    handleDragStart(node, ev) {
      // ä½¿ç”¨ setData æ–¹æ³•设置数据
      ev.dataTransfer.setData('item', JSON.stringify(node.data));
      if(this.form.levelFlag==1){
        this.$refs.formQuery.$refs.tree.$emit('tree-node-drag-start', ev,{node:this.$refs.formQuery.initItem(node)});
      if (this.form.levelFlag == 1) {
        this.$refs.formQuery.$refs.tree.$emit('tree-node-drag-start', ev, {node: this.$refs.formQuery.initItem(node)});
      }
    },
    handleDragEnd(draggingNode,endNode,position,ev){
      if(this.form.levelFlag==1) {
    handleDragEnd(draggingNode, endNode, position, ev) {
      if (this.form.levelFlag == 1) {
        this.$refs.formQuery.$refs.tree.$emit('tree-node-drag-end', ev);
      }
    },
    //查询
    queryHandler(){
    queryHandler() {
      this.$refs.form.validate((valid) => {
        if (valid) {
          this.$refs.formQuery.queryResultDialog.loading=true;
          const formData=this.initFormData();
          this.$refs.formQuery.queryResultDialog.loading = true;
          const formData = this.initFormData();
          getCriteriaBtm(formData).then(res => {
            if (res.data.success) {
              this.resultData=res.data.data;
              this.$refs.formQuery.queryResultDialog.showDialog=true;
              this.$refs.formQuery.queryResultDialog.loading=false;
              const data = res.data.data;
              const result = data.map(item => {
                const filteredAttrs = item.hisAttrValList.filter(attr =>
                  attr.attrName === "OID" || attr.attrName === "REVISIONOID" || attr.attrName === "BTMNAME" || attr.attrName === "NAMEOID"
                );
                const newObj = filteredAttrs.reduce((acc, attr) => {
                  acc[attr.attrName] = attr.attrVal;
                  return acc;
                }, {});
                return newObj;
              });
              this.$refs.formQuery.resultData = result;
              this.$refs.formQuery.queryResultDialog.showDialog = true;
              this.$refs.formQuery.queryResultDialog.loading = false;
            }
          });
        } else {
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue
@@ -1,112 +1,149 @@
<template>
  <div style="padding: 0 10px">
    <div style="text-align: center;margin-bottom: 10px">
      <avue-radio v-model="radioForm" :disabled ="readOnly" :dic="radioDic" style="margin: 0 20px 0 0;display: inline-block"></avue-radio>
      <el-button  v-if="!readOnly" plain size="mini" type="primary" @click="clearValue">清空值</el-button>
      <el-button  v-if="!readOnly" plain size="mini" type="primary" @click="delAll">删除全部条件</el-button>
      <avue-radio v-model="radioForm" :dic="radioDic" :disabled="readOnly"
                  style="margin: 0 20px 0 0;display: inline-block"></avue-radio>
      <el-button v-if="!readOnly" plain size="mini" type="primary" @click="clearValue">清空值</el-button>
      <el-button v-if="!readOnly" plain size="mini" type="primary" @click="delAll">删除全部条件</el-button>
    </div>
    <div v-if="radioForm==0" @drop="drop" @dragover.prevent style="height: 220px;text-align: center;">
      <div v-for="(condition,index) in conditionList" :key="index" class="el-input--small" style="margin-bottom: 5px; text-align:left">
        <span style="width: 200px;display: inline-block;text-align: right" :title="condition.clause">{{condition.clause}}</span>
        <avue-select :disabled ="readOnly" v-model="condition.operator" type="tree" :dic="condition.operatorDic" :clearable="false" style="width: 80px;margin: 0 5px;"></avue-select>
        <el-date-picker :disabled ="readOnly" v-if="condition.type=='VTDate'" v-model="condition.ordinaryValue" style="width:300px;margin-right: 5px;display: inline-block;" value-format="YYYY-MM-DD"
                        type="date">
    <div v-if="radioForm==0" style="height: 220px;text-align: center;" @drop="drop" @dragover.prevent>
      <div v-for="(condition,index) in conditionList" :key="index" class="el-input--small"
           style="margin-bottom: 5px; text-align:left">
        <span :title="condition.clause"
              style="width: 200px;display: inline-block;text-align: right">{{ condition.clause }}</span>
        <avue-select v-model="condition.operator" :clearable="false" :dic="condition.operatorDic" :disabled="readOnly"
                     style="width: 80px;margin: 0 5px;" type="tree"></avue-select>
        <el-date-picker v-if="condition.type=='VTDate'" v-model="condition.ordinaryValue" :disabled="readOnly"
                        style="width:300px;margin-right: 5px;display: inline-block;" type="date"
                        value-format="YYYY-MM-DD">
        </el-date-picker>
        <el-date-picker :disabled ="readOnly" v-else-if="condition.type=='VTDateTime'" v-model="condition.ordinaryValue" style="width:300px;margin-right: 5px;display: inline-block;"
        <el-date-picker v-else-if="condition.type=='VTDateTime'" v-model="condition.ordinaryValue" :disabled="readOnly"
                        style="width:300px;margin-right: 5px;display: inline-block;"
                        type="datetime">
        </el-date-picker>
        <el-time-select :disabled ="readOnly" v-else-if="condition.type=='VTTime'" v-model="condition.ordinaryValue" value-format="HH:mm:ss" style="width:300px;margin-right: 5px;display: inline-block;">
        <el-time-select v-else-if="condition.type=='VTTime'" v-model="condition.ordinaryValue" :disabled="readOnly"
                        style="width:300px;margin-right: 5px;display: inline-block;" value-format="HH:mm:ss">
        </el-time-select>
        <avue-input-number :disabled ="readOnly" v-else-if="condition.type=='VTInteger'" precision="0" v-model="condition.ordinaryValue" style="width:300px;margin-right: 5px;display: inline-block;"></avue-input-number>
        <avue-input-number :disabled ="readOnly" v-else-if="condition.type=='VTLong' || condition.type=='VTDouble'" v-model="condition.ordinaryValue" style="width:300px;margin-right: 5px;display: inline-block;"></avue-input-number>
        <avue-input :disabled ="readOnly" v-else v-model="condition.ordinaryValue" placeholder="" style="width: 300px;margin-right: 5px;"></avue-input>
        <el-button v-if="!readOnly"  plain size="mini" type="primary" @click="checkTemp(index)">选择查询模板</el-button>
        <el-button v-if="!readOnly"  size="mini" type="danger" icon="el-icon-delete" @click="delCondition(index)" style="padding: 7px 8px"></el-button>
        <avue-input-number v-else-if="condition.type=='VTInteger'" v-model="condition.ordinaryValue"
                           :disabled="readOnly"
                           precision="0"
                           style="width:300px;margin-right: 5px;display: inline-block;"></avue-input-number>
        <avue-input-number v-else-if="condition.type=='VTLong' || condition.type=='VTDouble'"
                           v-model="condition.ordinaryValue"
                           :disabled="readOnly"
                           style="width:300px;margin-right: 5px;display: inline-block;"></avue-input-number>
        <avue-input v-else v-model="condition.ordinaryValue" :disabled="readOnly" placeholder=""
                    style="width: 300px;margin-right: 5px;"></avue-input>
        <el-button v-if="!readOnly" plain size="mini" type="primary" @click="checkTemp(index)">选择查询模板</el-button>
        <el-button v-if="!readOnly" icon="el-icon-delete" size="mini" style="padding: 7px 8px" type="danger"
                   @click="delCondition(index)"></el-button>
      </div>
    </div>
    <div v-else @drop="drop" @dragover.prevent style="height: 220px;text-align: left">
      <avue-tree ref="tree" @node-drag-end="handleDragEnd" @node-drag-leave="handleDragLeave"  @node-drag-over="handleDragOver"
                  style="height: 220px" :data="treeData" :option="treeOption"  @node-click="nodeClick" node-key="value"></avue-tree>
    <div v-else style="height: 220px;text-align: left" @drop="drop" @dragover.prevent>
      <avue-tree ref="tree" :data="treeData" :option="treeOption"
                 node-key="value"
                 style="height: 220px" @node-drag-end="handleDragEnd" @node-drag-leave="handleDragLeave"
                 @node-drag-over="handleDragOver"
                 @node-click="nodeClick"></avue-tree>
    </div>
    <div v-if="!readOnly" style="text-align: right;margin-top: 10px;">
      <el-button v-if="radioForm==1"  plain size="mini" type="primary" @click="addHandler">增加逻辑</el-button>
      <el-button v-if="radioForm==1"  plain size="mini" type="primary" @click="editHandler">修改条件</el-button>
      <el-button v-if="radioForm==1"  plain size="mini" type="primary" @click="delHandler">删除</el-button>
      <el-button  plain size="mini" type="primary" @click="queryHandler">查询</el-button>
      <el-button  plain size="mini" type="primary" @click="">取消</el-button>
      <el-button v-if="radioForm==1" plain size="mini" type="primary" @click="addHandler">增加逻辑</el-button>
      <el-button v-if="radioForm==1" plain size="mini" type="primary" @click="editHandler">修改条件</el-button>
      <el-button v-if="radioForm==1" plain size="mini" type="primary" @click="delHandler">删除</el-button>
      <el-button plain size="mini" type="primary" @click="queryHandler">查询</el-button>
      <el-button plain size="mini" type="primary" @click="">取消</el-button>
    </div>
    <!--修改条件-->
    <el-dialog v-dialogDrag
               :append-to-body="true"
               :close-on-click-modal="false"
               :destroy-on-close="true"
               :title="dialog.title"
               :visible.sync="dialog.showDialog"
               width="550px"
               :append-to-body="true"
               class="avue-dialog"
               :destroy-on-close="true"
               :close-on-click-modal="false"
               width="550px"
               @close="dialog.showDialog=false">
      <div style="height: 200px;">
        {{clickNode.showLabel}}
        <avue-select v-if="['VTInteger','VTDouble','VTLong'].includes(clickNode.type)" v-model="clickNode.operator" type="tree" :dic="operatorIntDic" :clearable="false" style="width: 80px;margin: 0 5px;"></avue-select>
        <avue-select v-else-if="['VTDateTime','VTDate','VTTime'].includes(clickNode.type)" v-model="clickNode.operator" type="tree" :dic="operatorDateDic" :clearable="false" style="width: 80px;margin: 0 5px;"></avue-select>
        <avue-select v-else v-model="clickNode.operator" type="tree" :dic="operatorDic" :clearable="false" style="width: 80px;margin: 0 5px;"></avue-select>
        <el-date-picker v-if="clickNode.type=='VTDate'" v-model="clickNode.inputValue" style="width:300px;display: inline-block;" value-format="YYYY-MM-DD"
          type="date">
        {{ clickNode.showLabel }}
        <avue-select v-if="['VTInteger','VTDouble','VTLong'].includes(clickNode.type)" v-model="clickNode.operator"
                     :clearable="false" :dic="operatorIntDic" style="width: 80px;margin: 0 5px;"
                     type="tree"></avue-select>
        <avue-select v-else-if="['VTDateTime','VTDate','VTTime'].includes(clickNode.type)" v-model="clickNode.operator"
                     :clearable="false" :dic="operatorDateDic" style="width: 80px;margin: 0 5px;"
                     type="tree"></avue-select>
        <avue-select v-else v-model="clickNode.operator" :clearable="false" :dic="operatorDic"
                     style="width: 80px;margin: 0 5px;"
                     type="tree"></avue-select>
        <el-date-picker v-if="clickNode.type=='VTDate'" v-model="clickNode.inputValue"
                        style="width:300px;display: inline-block;" type="date"
                        value-format="YYYY-MM-DD">
        </el-date-picker>
        <el-date-picker v-else-if="clickNode.type=='VTDateTime'" v-model="clickNode.inputValue" style="width:350px;display: inline-block;"
          type="datetime">
        <el-date-picker v-else-if="clickNode.type=='VTDateTime'" v-model="clickNode.inputValue"
                        style="width:350px;display: inline-block;"
                        type="datetime">
        </el-date-picker>
        <el-time-select v-else-if="clickNode.type=='VTTime'" v-model="clickNode.inputValue" value-format="HH:mm:ss" style="width:300px;display: inline-block;">
        <el-time-select v-else-if="clickNode.type=='VTTime'" v-model="clickNode.inputValue"
                        style="width:300px;display: inline-block;"
                        value-format="HH:mm:ss">
        </el-time-select>
        <avue-input-number v-else-if="clickNode.type=='VTInteger'" precision="0" v-model="clickNode.inputValue" style="width:300px;display: inline-block;"></avue-input-number>
        <avue-input-number v-else-if="clickNode.type=='VTLong' || clickNode.type=='VTDouble'" v-model="clickNode.inputValue" style="width:300px;display: inline-block;"></avue-input-number>
        <avue-input v-else v-model="clickNode.inputValue" type="textarea" style="width: 300px;margin-right: 5px;vertical-align: top;"></avue-input>
        <avue-input-number v-else-if="clickNode.type=='VTInteger'" v-model="clickNode.inputValue" precision="0"
                           style="width:300px;display: inline-block;"></avue-input-number>
        <avue-input-number v-else-if="clickNode.type=='VTLong' || clickNode.type=='VTDouble'"
                           v-model="clickNode.inputValue"
                           style="width:300px;display: inline-block;"></avue-input-number>
        <avue-input v-else v-model="clickNode.inputValue" style="width: 300px;margin-right: 5px;vertical-align: top;"
                    type="textarea"></avue-input>
      </div>
      <div class="dialog-footer avue-dialog__footer">
        <el-button size="small" @click="checkTemp" v-if="!['VTInteger','VTDouble','VTLong','VTDateTime','VTDate','VTTime'].includes(clickNode.type)">选择查询模板</el-button>
        <el-button type="primary" plain size="small" @click="submitDialog" >保 å­˜</el-button>
        <el-button v-if="!['VTInteger','VTDouble','VTLong','VTDateTime','VTDate','VTTime'].includes(clickNode.type)"
                   size="small"
                   @click="checkTemp">
          é€‰æ‹©æŸ¥è¯¢æ¨¡æ¿
        </el-button>
        <el-button plain size="small" type="primary" @click="submitDialog">保 å­˜</el-button>
        <el-button size="small" @click="dialog.showDialog=false">取 æ¶ˆ</el-button>
      </div>
    </el-dialog>
    <el-dialog v-dialogDrag
               :append-to-body="true"
               :close-on-click-modal="false"
               :destroy-on-close="true"
               :title="queryDialog.title"
               :visible.sync="queryDialog.showDialog"
               width="800px"
               :append-to-body="true"
               class="avue-dialog"
               :destroy-on-close="true"
               :close-on-click-modal="false"
               width="800px"
               @close="cancleQueryDialog">
      <div class="el-input--small">
        è¾“入查询字段:<avue-input v-model="queryField" style="width: 500px;margin-bottom: 10px"></avue-input>
        <avue-crud  ref="crud" :data="crudData" :option="crudOption"
                    :page.sync="page"
                    :table-loading="tableLoading"
                    @selection-change="selectionChange"
                    @row-click="rowClick"
                    @size-change="sizeChange"
                    @current-change="currentChange">
        è¾“入查询字段:
        <avue-input v-model="queryField" style="width: 500px;margin-bottom: 10px"></avue-input>
        <avue-crud ref="crud" :data="crudData" :option="crudOption"
                   :page.sync="page"
                   :table-loading="tableLoading"
                   @selection-change="selectionChange"
                   @row-click="rowClick"
                   @size-change="sizeChange"
                   @current-change="currentChange">
        </avue-crud>
      </div>
      <div class="dialog-footer avue-dialog__footer">
        <el-button type="primary" plain size="small" @click="submitQueryDialog" >ç¡® å®š</el-button>
        <el-button plain size="small" type="primary" @click="submitQueryDialog">ç¡® å®š</el-button>
        <el-button size="small" @click="cancleQueryDialog">取 æ¶ˆ</el-button>
      </div>
    </el-dialog>
    <!--查询-->
    <el-dialog v-dialogDrag
               :append-to-body="true"
               :close-on-click-modal="false"
               :destroy-on-close="true"
               :title="queryResultDialog.title"
               :visible.sync="queryResultDialog.showDialog"
               width="900px"
               :append-to-body="true"
               class="avue-dialog"
               :destroy-on-close="true"
               :close-on-click-modal="false"
               width="900px"
               @close="queryResultDialog.showDialog=false">
      <div class="el-input--small">
        <avue-crud  ref="crud" :data="resultData" :option="resultOption"
                    :table-loading="queryResultDialog.loading">
        <avue-crud ref="crud" :data="resultData" :option="resultOption"
                   :table-loading="queryResultDialog.loading">
        </avue-crud>
      </div>
    </el-dialog>
@@ -118,8 +155,9 @@
import {getAllQTs} from "@/api/queryTemplate/queryDefine";
import {getCriteria} from "@/api/queryTemplate/linkTypeQuery";
import {dateFormat} from "@/util/date"
export default {
name: "formQueryDialog",
  name: "formQueryDialog",
  props: {
    queryCondition: {
      type: Array,
@@ -129,13 +167,13 @@
      type: Object,
      default: {}
    },
    levelFlag:{
    levelFlag: {
      type: Number,
      default: 0
    },
    readOnly:{
      type:Boolean,
      default:false
    readOnly: {
      type: Boolean,
      default: false
    }
  },
  data() {
@@ -162,13 +200,13 @@
        label: '高级',
        value: 1
      }],
      conditionList:[],
      treeData:[],
      treeOption:{
        defaultExpandAll:true,
      conditionList: [],
      treeData: [],
      treeOption: {
        defaultExpandAll: true,
        menu: false,
        addBtn: false,
        filter:false,
        filter: false,
        draggable: true,
        allowDrop: (draggingNode, dropNode, type) => {
          debugger;
@@ -189,7 +227,7 @@
        total: 0,
        pageSizes: [10, 30, 50, 100],
      },
      crudData:[],
      crudData: [],
      crudOption: {
        ...basicOption,
        addBtn: false,
@@ -197,7 +235,7 @@
        delBtn: false,
        tip: false,
        header: false,
        height: window.innerHeight-220,
        height: window.innerHeight - 220,
        menu: false,
        column: [{
          label: '查询模板名称',
@@ -210,9 +248,9 @@
        }]
      },
      tableLoading: false,
      selectionRow:[],
      queryField:'',
      resultData:[],
      selectionRow: [],
      queryField: '',
      resultData: [],
      resultOption: {
        ...basicOption,
        addBtn: false,
@@ -220,21 +258,29 @@
        delBtn: false,
        tip: false,
        header: false,
        height: window.innerHeight-220,
        height: window.innerHeight - 220,
        menu: false,
        column: [{
          label: 'OID',
          prop: 'OID',
        }, {
          label: 'CREATOR',
          prop: 'CREATOR'
        }, {
          label: 'CREATETIME',
          prop: 'CREATETIME'
        }]
        column: [
          {
            label: 'OID',
            prop: 'OID',
          },
          {
            label: 'REVISIONOID',
            prop: 'REVISIONOID'
          },
          {
            label: 'NAMEOID',
            prop: 'NAMEOID'
          },
          {
            label: 'BTMNAME',
            prop: 'BTMNAME'
          }
        ]
      },
      clickNode:{},
      operatorIntDic:[{
      clickNode: {},
      operatorIntDic: [{
        label: '=',
        value: '='
      }, {
@@ -262,7 +308,7 @@
        label: '<',
        value: '<'
      }],
      operatorDateDic : [{
      operatorDateDic: [{
        label: '=',
        value: '='
      }, {
@@ -281,7 +327,7 @@
        label: '<=',
        value: '<='
      }],
      operatorDic : [{
      operatorDic: [{
        label: '=',
        value: '='
      }, {
@@ -300,7 +346,7 @@
    }
  },
  computed: {
    radioForm:{
    radioForm: {
      get() {
        return this.levelFlag;
      },
@@ -310,12 +356,12 @@
    }
  },
  watch: {
    queryCondition:{
    queryCondition: {
      handler(val) {
        if(val && val.cIMap){
          let list=[];
          let that=this;
          let getValue =function(queryTemplate,item) {
        if (val && val.cIMap) {
          let list = [];
          let that = this;
          let getValue = function (queryTemplate, item) {
            for (let key in queryTemplate.condition.cIMap) {
              if (queryTemplate.condition.cIMap[key].leaf) {
                item.clause += '.' + queryTemplate.condition.cIMap[key].leafInfo.clause;
@@ -323,13 +369,13 @@
                  getValue(queryTemplate.condition.cIMap[key].leafInfo.value.queryTemplate, item)
                } else {
                  item.ordinaryValue = queryTemplate.condition.cIMap[key].leafInfo.value.ordinaryValue;
                  item.type=queryTemplate.condition.cIMap[key].leafInfo.type;
                  if(['VTInteger','VTDouble','VTLong'].includes(item.type)){
                    item.operatorDic=that.operatorIntDic;
                  }else if(['VTDateTime','VTDate','VTTime'].includes(item.type)){
                    item.operatorDic=that.operatorDateDic;
                  }else{
                    item.operatorDic=that.operatorDic;
                  item.type = queryTemplate.condition.cIMap[key].leafInfo.type;
                  if (['VTInteger', 'VTDouble', 'VTLong'].includes(item.type)) {
                    item.operatorDic = that.operatorIntDic;
                  } else if (['VTDateTime', 'VTDate', 'VTTime'].includes(item.type)) {
                    item.operatorDic = that.operatorDateDic;
                  } else {
                    item.operatorDic = that.operatorDic;
                  }
                }
              }
@@ -337,105 +383,107 @@
          }
          for (let key in val.cIMap) {
            if (this.queryCondition.cIMap[key].leaf) {
              let clause=this.queryCondition.cIMap[key].leafInfo.clause;
              let operator= this.queryCondition.cIMap[key].leafInfo.operator;
              let item={
              let clause = this.queryCondition.cIMap[key].leafInfo.clause;
              let operator = this.queryCondition.cIMap[key].leafInfo.operator;
              let item = {
                clause: clause,
                operator: operator,
                ordinaryValue: '',
                operatorDic :[]
                operatorDic: []
              }
              if(this.queryCondition.cIMap[key].leafInfo.value.queryTemplate) {
              if (this.queryCondition.cIMap[key].leafInfo.value.queryTemplate) {
                getValue(this.queryCondition.cIMap[key].leafInfo.value.queryTemplate, item)
              }else {
                item.ordinaryValue=this.queryCondition.cIMap[key].leafInfo.value.ordinaryValue;
                item.type=this.queryCondition.cIMap[key].leafInfo.type;
                if(['VTInteger','VTDouble','VTLong'].includes(item.type)){
                  item.operatorDic=that.operatorIntDic;
                }else if(['VTDateTime','VTDate','VTTime'].includes(item.type)){
                  item.operatorDic=that.operatorDateDic;
                }else{
                  item.operatorDic=that.operatorDic;
              } else {
                item.ordinaryValue = this.queryCondition.cIMap[key].leafInfo.value.ordinaryValue;
                item.type = this.queryCondition.cIMap[key].leafInfo.type;
                if (['VTInteger', 'VTDouble', 'VTLong'].includes(item.type)) {
                  item.operatorDic = that.operatorIntDic;
                } else if (['VTDateTime', 'VTDate', 'VTTime'].includes(item.type)) {
                  item.operatorDic = that.operatorDateDic;
                } else {
                  item.operatorDic = that.operatorDic;
                }
              }
              list.push(item)
            }
          }
          this.conditionList= list;
        }else{
          this.conditionList=[]
          this.conditionList = list;
        } else {
          this.conditionList = []
        }
      },
      immediate: true,
      deep:true
      deep: true
    },
    queryTree:{
    queryTree: {
      handler(val) {
        this.treeIndex=0;
        if(val && Object.keys(val).length>0){
        this.treeIndex = 0;
        if (val && Object.keys(val).length > 0) {
          let treeData = [];
          let that=this;
          let that = this;
          function initValue(nodeChild) {
            let children=[];
            if(nodeChild){
              nodeChild.forEach((item,index)=>{
            let children = [];
            if (nodeChild) {
              nodeChild.forEach((item, index) => {
                that.treeIndex++;
                if(item.column !=null && item.column != undefined){
                  const values= item.column.split(' ');
                  let inputValue='';
                  let operator='';
                  let showLabel=''
                  if(item.column.indexOf('not in')!=-1){
                    operator='not in';
                    if(values.length>3){
                      inputValue=values[3];
                if (item.column != null && item.column != undefined) {
                  const values = item.column.split(' ');
                  let inputValue = '';
                  let operator = '';
                  let showLabel = ''
                  if (item.column.indexOf('not in') != -1) {
                    operator = 'not in';
                    if (values.length > 3) {
                      inputValue = values[3];
                    }
                  }else{
                    if(values.length>1){
                      operator=values[1];
                      if(values.length>2){
                        inputValue=values[2];
                  } else {
                    if (values.length > 1) {
                      operator = values[1];
                      if (values.length > 2) {
                        inputValue = values[2];
                      }
                    }
                  }
                  if(values[0].indexOf('.')!=-1){
                    const labels=values[0].split('.')
                    showLabel=labels[labels.length-1];
                  }else {
                    showLabel=values[0];
                  if (values[0].indexOf('.') != -1) {
                    const labels = values[0].split('.')
                    showLabel = labels[labels.length - 1];
                  } else {
                    showLabel = values[0];
                  }
                  children.push({
                    label:item.column,
                    value:item.column+that.treeIndex,
                    type:item.type,
                    valueIndex:'v'+that.treeIndex,
                    inputValue:inputValue,
                    operator:operator,
                    showLabel:showLabel
                    label: item.column,
                    value: item.column + that.treeIndex,
                    type: item.type,
                    valueIndex: 'v' + that.treeIndex,
                    inputValue: inputValue,
                    operator: operator,
                    showLabel: showLabel
                  })
                }else {
                } else {
                  children.push({
                    label:item.connector,
                    value:item.connector+that.treeIndex,
                    valueIndex:'v'+that.treeIndex,
                    children:initValue(item.child)
                    label: item.connector,
                    value: item.connector + that.treeIndex,
                    valueIndex: 'v' + that.treeIndex,
                    children: initValue(item.child)
                  })
                }
              })
            }
            return children;
          }
          const node={
            label:val.connector,
            value:val.connector+this.treeIndex,
            valueIndex:'v'+this.treeIndex,
            children:initValue(val.child)
          const node = {
            label: val.connector,
            value: val.connector + this.treeIndex,
            valueIndex: 'v' + this.treeIndex,
            children: initValue(val.child)
          }
          treeData.push(node)
          this.treeData = treeData;
        }else {
          this.treeData=[{
        } else {
          this.treeData = [{
            label: '并且',
            value: '并且' + this.treeIndex,
            valueIndex: 'v' + this.treeIndex,
@@ -445,7 +493,7 @@
        }
      },
      immediate: true,
      deep:true
      deep: true
    }
  },
  created() {
@@ -463,15 +511,15 @@
          ordinaryValue: ''
        }
        if (data.vtDataType == 'VTInteger' || data.vtDataType == 'VTDouble' || data.vtDataType == 'VTLong') {
          params.operatorDic =JSON.parse(JSON.stringify(this.operatorIntDic)) ;
          params.operatorDic = JSON.parse(JSON.stringify(this.operatorIntDic));
        } else if (data.vtDataType == 'VTDateTime' || data.vtDataType == 'VTDate' || data.vtDataType == 'VTTime') {
          params.operatorDic = JSON.parse(JSON.stringify(this.operatorDateDic))
        } else {
          params.operatorDic = JSON.parse(JSON.stringify(this.operatorDic))
        }
        params.type=data.vtDataType;
        params.type = data.vtDataType;
        this.conditionList.push(params)
      }else {
      } else {
        if (this.clickNode.label != '并且' && this.clickNode.label != '或者') {
          this.$message.error('请选中逻辑条件添加查询项');
          return;
@@ -479,26 +527,26 @@
        this.$refs.tree.append(this.initItem(data), this.clickNode);
      }
    },
    initItem(data){
    initItem(data) {
      this.treeIndex++;
      let item={
      let item = {
        label: data.name,
        value: data.name + this.treeIndex,
        valueIndex: 'v' + this.treeIndex,
        type:data.vtDataType,
        type: data.vtDataType,
        children: [],
        inputValue:'',
        operator:'=',
        showLabel:data.name
        inputValue: '',
        operator: '=',
        showLabel: data.name
      };
      let showLabel='';
      if(data.name.indexOf('.')!=-1){
        const labels=data.name.split('.')
        showLabel=labels[labels.length-1];
      }else {
        showLabel=data.name;
      let showLabel = '';
      if (data.name.indexOf('.') != -1) {
        const labels = data.name.split('.')
        showLabel = labels[labels.length - 1];
      } else {
        showLabel = data.name;
      }
      item.showLabel=showLabel;
      item.showLabel = showLabel;
      return item
    },
    handleDragEnd(draggingNode, dropNode, dropType, ev) {
@@ -526,19 +574,19 @@
        })
        this.conditionList = this.conditionList
      } else {
        if(this.treeData[0] && this.treeData[0].children) {
        if (this.treeData[0] && this.treeData[0].children) {
          this.clearTreeValue(this.treeData[0].children)
        }
      }
    },
    clearTreeValue(nodes){
      nodes.forEach((node,index)=>{
        if(node.children){
    clearTreeValue(nodes) {
      nodes.forEach((node, index) => {
        if (node.children) {
          this.clearTreeValue(node.children)
        }else {
          if(node.label.indexOf('not in')!=-1){
            node.label=node.label.split(' ')[0]+' not in'
          }else {
        } else {
          if (node.label.indexOf('not in') != -1) {
            node.label = node.label.split(' ')[0] + ' not in'
          } else {
            let values = node.label.split(' ');
            if (values.length > 2) {
              node.label = values[0] + ' ' + values[1];
@@ -554,7 +602,7 @@
      } else {
        this.treeIndex = 0;
        this.treeData = [];
        this.clickNode={};
        this.clickNode = {};
      }
    },
    nodeClick(data) {
@@ -562,7 +610,7 @@
    },
    //树 å¢žåŠ é€»è¾‘æ¡ä»¶
    addHandler() {
      if (Object.keys(this.clickNode).length>0) {
      if (Object.keys(this.clickNode).length > 0) {
        if (this.clickNode.label == '并且' || this.clickNode.label == '或者') {
          this.treeIndex++;
          this.$refs.tree.append({
@@ -575,7 +623,7 @@
          this.$message.error("只能对逻辑条件增加逻辑条件");
        }
      } else {
        if(this.treeData.length==0){
        if (this.treeData.length == 0) {
          this.treeIndex = 0;
          this.treeData = [{
            label: '并且',
@@ -584,14 +632,14 @@
            connector: '并且',
            children: []
          }]
        }else {
        } else {
          this.$message.warning("请选择查询条件");
        }
      }
    },
    //树 ä¿®æ”¹æ¡ä»¶
    editHandler() {
      if (Object.keys(this.clickNode).length>0) {
      if (Object.keys(this.clickNode).length > 0) {
        if (this.clickNode.label == '并且') {
          this.clickNode.label = '或者'
        } else if (this.clickNode.label == '或者') {
@@ -605,7 +653,7 @@
    },
    //树 åˆ é™¤æ¡ä»¶
    delHandler() {
      if (Object.keys(this.clickNode).length>0) {
      if (Object.keys(this.clickNode).length > 0) {
        this.$confirm('您确定要删除所选择的条件吗?', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
@@ -619,35 +667,35 @@
      }
    },
    //查询
    queryHandler(){
    queryHandler() {
      this.$emit('queryHandler');
    },
    //选择查询模板
    checkTemp(index) {
      if(index>=0){
        if(['VTInteger','VTDouble','VTLong','VTDateTime','VTDate','VTTime'].includes(this.conditionList[index].type)){
      if (index >= 0) {
        if (['VTInteger', 'VTDouble', 'VTLong', 'VTDateTime', 'VTDate', 'VTTime'].includes(this.conditionList[index].type)) {
          return false;
        }
      }
      this.queryIndex=index;
      this.queryDialog.showDialog=true;
      this.$nextTick(()=>{
      this.queryIndex = index;
      this.queryDialog.showDialog = true;
      this.$nextTick(() => {
        this.$refs.crud.doLayout();
      });
    },
    //查询条件保存
    submitDialog() {
      const values= this.clickNode.label.split(' ');
      this.clickNode.label = values[0]+' '+this.clickNode.operator+' '+this.clickNode.inputValue;
      try{
        if(['VTDateTime'].includes(this.clickNode.type)){
          this.clickNode.label = values[0]+' '+this.clickNode.operator+' '+dateFormat(this.clickNode.inputValue);
        }else  if(['VTDate'].includes(this.clickNode.type)){
          this.clickNode.label = values[0]+' '+this.clickNode.operator+' '+dateFormat(this.clickNode.inputValue ,'yyyy-MM-dd');
        }else  if(['VTTime'].includes(this.clickNode.type)){
          this.clickNode.label = values[0]+' '+this.clickNode.operator+' '+dateFormat(this.clickNode.inputValue ,'hh:mm:ss');
      const values = this.clickNode.label.split(' ');
      this.clickNode.label = values[0] + ' ' + this.clickNode.operator + ' ' + this.clickNode.inputValue;
      try {
        if (['VTDateTime'].includes(this.clickNode.type)) {
          this.clickNode.label = values[0] + ' ' + this.clickNode.operator + ' ' + dateFormat(this.clickNode.inputValue);
        } else if (['VTDate'].includes(this.clickNode.type)) {
          this.clickNode.label = values[0] + ' ' + this.clickNode.operator + ' ' + dateFormat(this.clickNode.inputValue, 'yyyy-MM-dd');
        } else if (['VTTime'].includes(this.clickNode.type)) {
          this.clickNode.label = values[0] + ' ' + this.clickNode.operator + ' ' + dateFormat(this.clickNode.inputValue, 'hh:mm:ss');
        }
      }catch (e) {
      } catch (e) {
      }
@@ -691,11 +739,11 @@
      }
      this.cancleQueryDialog();
    },
    cancleQueryDialog(){
    cancleQueryDialog() {
      this.queryDialog.showDialog = false;
      this.selectionClear();
      this.queryField='';
      this.queryIndex=null;
      this.queryField = '';
      this.queryIndex = null;
    },
    sizeChange(val) {
      this.page.pageSize = val;
@@ -712,7 +760,7 @@
</script>
<style scoped>
::v-deep .el-input--small .el-input__inner{
::v-deep .el-input--small .el-input__inner {
  height: 28px;
  line-height: 28px;
}
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/queryDefine/index.vue
@@ -3,7 +3,7 @@
    <el-aside>
      <basic-container>
        <div ref="TreeBox" style="height: calc(100vh - 154px);!important;">
          <div class="headerCon">
          <div class="headerCon" style="display: flex;justify-content: center">
            <avue-radio v-model="radioForm"  :dic="radioDic" style="margin: 10px 0 5px"></avue-radio>
          </div>
          <!-- å·¦ä¾§æ ‘         -->
@@ -23,7 +23,7 @@
    <el-main>
      <basic-container>
        æ¨¡æ¿åˆ—表:<avue-select v-model="templateForm" placeholder="请选择模板" type="tree" :dic="templateData" @change="changeTemp"></avue-select>
        æ¨¡æ¿åˆ—表:<avue-select v-model="templateForm" placeholder="请选择模板" type="tree" :dic="templateData" @change="changeTemp" style="width:300px;"></avue-select>
        <h3>查询属性</h3>
        <avue-crud  ref="queryCrud"
          :data="attrData" :option="attrOption" :table-loading="tableLoading" style="margin-top: 10px">
Source/plt-web/plt-web-ui/src/views/system/department/index.vue
@@ -103,7 +103,7 @@
        gridBtn: false,
        menuWidth:280,
        highlightCurrentRow: true,
        calcHeight: -60,
        calcHeight: -50,
        column: column
      },
      tableLoading: false,
Source/plt-web/plt-web-ui/src/views/system/user/option.js
@@ -17,6 +17,7 @@
    prop: 'name',
    search:true,
    sortable:true,
    overHidden: true,
    rules: [
      {
        required: true,
@@ -132,12 +133,19 @@
    prop: 'isDeptLeader',
    sortable:true,
    display:false,
    width: 95,
    formatter:function (row, value){
      if(value=='不是'){
        return "否"
      }
      return value
    }
  },
  {
    label: '所属密级',
    prop: 'secretGradeText',
    width: 80,
    sortable: true,
    width: 100,
    sortable:true,
    type: 'select',
    dicUrl: 'api/webEnumController/getEnum?comboxKey=usersecurityenum',
    props: {
Source/plt-web/plt-web-ui/src/views/systemModel/businessModel/index.vue
@@ -89,8 +89,9 @@
          <el-form-item label="序号:">
            <el-input v-model="form.sort" :disabled="!editStatus && !addStatus" placeholder="数字,描述该模块在其父模块下的显示顺序"></el-input>
          </el-form-item>
          <el-form-item label="简图:">
            <el-input v-model="form.source" :disabled="!editStatus && !addStatus"></el-input>
          <el-form-item label="图标:">
              <avue-input-icon v-model="form.source" :disabled="!editStatus && !addStatus" :icon-list="iconList" placeholder="请选择图标">
              </avue-input-icon>
          </el-form-item>
          <el-form-item label="描述:">
            <el-input v-model="form.remark" :disabled="!editStatus && !addStatus" :rows="3" placeholder="请输入描述" type="textarea"></el-input>
@@ -175,11 +176,13 @@
} from "@/api/systemModel/mangeModel/api"
import func from "@/util/func";
import basicOption from "@/util/basic-option";
import iconList from "@/config/iconList";
export default {
  name: "index",
  data() {
    return {
      iconList: iconList,
      tipList: [],
      upFileType: ['xls', 'xlsx'],
      fileUrl: 'api/hmSysModConfigController/importModule',
Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue
@@ -3,7 +3,8 @@
    <el-aside>
      <basic-container>
        <div style="max-height: calc(100vh - 150px);overflow: auto">
          <avue-tree :key="refresh" node-key="id" ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick">
          <avue-tree :key="refresh" ref="tree" :data="treeData" :option="treeOption" node-key="id"
                     @node-click="nodeClick">
          <span slot-scope="{ node, data }" class="el-tree-node__label">
           <span style="font-size: 15px">
              <i class="el-icon-s-promotion"></i>
@@ -56,7 +57,7 @@
          <el-button v-if="editStatus" icon="el-icon-check" plain size="small"
                     type="success" @click="editSaveClickHandler">保存
          </el-button>
          <el-button  icon="el-icon-close" plain size="small"
          <el-button icon="el-icon-close" plain size="small"
                     type="danger" @click="addStatus=false;editStatus=false;">取消
          </el-button>
        </div>
@@ -75,25 +76,33 @@
            <el-input v-model="form.alias" :disabled="!editStatus && !addStatus" placeholder="模块别名用来记录日志使用"></el-input>
          </el-form-item>
            <el-form-item label="C/S:">
            <el-input v-model="form.pathC" :disabled="!editStatus && !addStatus" :rows="2" placeholder="请输入C/S路径" type="textarea"></el-input>
            <el-input v-model="form.pathC" :disabled="!editStatus && !addStatus" :rows="2" placeholder="请输入C/S路径"
                      type="textarea"></el-input>
          </el-form-item>
          <el-form-item label="B/S:">
            <el-input v-model="form.path" :disabled="!editStatus && !addStatus" :rows="2" placeholder="请输入B/S路径" type="textarea"></el-input>
            <el-input v-model="form.path" :disabled="!editStatus && !addStatus" :rows="2" placeholder="请输入B/S路径"
                      type="textarea"></el-input>
          </el-form-item>
          <el-form-item label=".NET:">
            <el-input v-model="form.resourceDotNet" :disabled="!editStatus && !addStatus" :rows="2" placeholder="请输入.NET" type="textarea"></el-input>
            <el-input v-model="form.resourceDotNet" :disabled="!editStatus && !addStatus" :rows="2"
                      placeholder="请输入.NET" type="textarea"></el-input>
          </el-form-item>
          <el-form-item label="Mobile:">
            <el-input v-model="form.resourceMobile" :disabled="!editStatus && !addStatus" :rows="2" placeholder="请输入Mobile" type="textarea"></el-input>
            <el-input v-model="form.resourceMobile" :disabled="!editStatus && !addStatus" :rows="2"
                      placeholder="请输入Mobile" type="textarea"></el-input>
          </el-form-item>
          <el-form-item label="序号:">
            <el-input v-model="form.sort" :disabled="!editStatus && !addStatus" placeholder="数字,描述该模块在其父模块下的显示顺序"></el-input>
            <el-input v-model="form.sort" :disabled="!editStatus && !addStatus"
                      placeholder="数字,描述该模块在其父模块下的显示顺序"></el-input>
          </el-form-item>
          <el-form-item label="简图:">
            <el-input v-model="form.source" :disabled="!editStatus && !addStatus"></el-input>
          <el-form-item label="图标:">
<!--            <el-input v-model="form.source" :disabled="!editStatus && !addStatus"></el-input>-->
             <avue-input-icon v-model="form.source" :disabled="!editStatus && !addStatus" :icon-list="iconList" placeholder="请选择图标">
             </avue-input-icon>
          </el-form-item>
          <el-form-item label="描述:">
            <el-input v-model="form.remark" :disabled="!editStatus && !addStatus" :rows="3" placeholder="请输入描述" type="textarea"></el-input>
            <el-input v-model="form.remark" :disabled="!editStatus && !addStatus" :rows="3" placeholder="请输入描述"
                      type="textarea"></el-input>
          </el-form-item>
          <el-form-item label="是否有效:">
            <el-switch
@@ -155,7 +164,7 @@
        </span>
    </el-dialog>
    <!--导入    -->
    <upload-file ref="upload" fileName="files" :fileType="upFileType" :fileUrl="fileUrl" :tipList="tipList" title="导入"
    <upload-file ref="upload" :fileType="upFileType" :fileUrl="fileUrl" :tipList="tipList" fileName="files" title="导入"
                 @updata="resetFormValue"></upload-file>
  </el-container>
</template>
@@ -175,11 +184,13 @@
} from "@/api/systemModel/mangeModel/api"
import func from "@/util/func";
import basicOption from "@/util/basic-option";
import iconList from "@/config/iconList";
export default {
  name: "index",
  data() {
    return {
      iconList: iconList,
      tipList: [],
      upFileType: ['xls', 'xlsx'],
      fileUrl: 'api/hmSysModConfigController/importModule',
@@ -192,7 +203,7 @@
        addBtn: false,
        menu: false,
        height: 500,
        header:false,
        header: false,
        column: [
          {
            label: '操作分类',
@@ -208,7 +219,7 @@
      addStatus: false,
      editStatus: false,
      nodeRow: {},
      currentClickNode:null,
      currentClickNode: null,
      form: {},
      treeData: [],
      treeOption: {
@@ -262,7 +273,7 @@
  },
  methods: {
    // æ ‘行点击
    nodeClick(row,node) {
    nodeClick(row, node) {
      console.log(row.childType);
      this.form = {...row};
      this.nodeRow = {...row};
@@ -412,12 +423,12 @@
    addMethodsClickHandler() {
      this.methodsLoading = true;
      getSysModelTreeMenuByPID({parentId: 'operateNode'}).then(res => {
        if (res.data.code === 200 && res.data.data.length>0) {
        if (res.data.code === 200 && res.data.data.length > 0) {
          this.methodsVisble = true;
          const data = res.data.data;
          this.methodsData = data;
          this.methodsLoading = false;
        }else {
        } else {
          this.$message.error('未找到可增加的操作类型');
        }
      })
@@ -506,17 +517,17 @@
    },
    handleRefreshTree(type) {
      //type:add\edit\del
      if(type=="del"){
      if (type == "del") {
        this.$refs.tree.remove(this.currentClickNode);
        this.currentClickNode=null;
        this.form={};
      }else{
        this.currentClickNode = null;
        this.form = {};
      } else {
        if (this.currentClickNode) {
          let node = this.currentClickNode.parent;
          node.loaded = false;
          node.expand();
          this.$refs.tree.setCurrentNode(this.currentClickNode);
        }else {
        } else {
          this.refresh = Math.random(); // åˆ·æ–°å·¦ä¾§æ ‘
        }
      }
@@ -534,7 +545,8 @@
.btnBox {
  display: flex;
  justify-content:left;
  justify-content: left;
  margin-bottom: 15px;
}
</style>
Source/plt-web/plt-web-ui/src/views/wel/index.vue
@@ -1,19 +1,22 @@
<template>
  <div>
    <!--<el-row>
      <el-col :span="24">
        <third-register></third-register>
      </el-col>
    </el-row>-->
    <!--    <el-row>-->
    <!--      <el-col :span="24">-->
    <!--        <third-register></third-register>-->
    <!--      </el-col>-->
    <!--    </el-row>-->
    <el-row>
      <el-col :span="24">
        <basic-container>
          <p style="text-align: center">
            <img src="https://img.shields.io/badge/Release-V3.0.1-green.svg" alt="Downloads"/>
            <img src="https://img.shields.io/badge/JDK-1.8+-green.svg" alt="Build Status"/>
            <img src="https://img.shields.io/badge/Spring%20Cloud-2021-blue.svg" alt="Coverage Status"/>
            <img src="https://img.shields.io/badge/Spring%20Boot-2.7-blue.svg" alt="Downloads"/>
          </p>
        <basic-container v-loading="loading">
          <!--          <div style="display: flex">-->
          <!--            <div style="height: 80px; width: 50px; overflow: hidden;margin-right: 20px">-->
          <!--              <img src="../../../public/img/mainTop.png" style="height: 100%; width: 100%; object-fit: contain;" />-->
          <!--            </div>-->
          <!--            <avue-text-ellipsis :text="text" :height="80" :width="1600" use-tooltip placement="top">-->
          <!--              <small slot="more">...</small>-->
          <!--            </avue-text-ellipsis>-->
          <!--          </div>-->
          <avue-data-tabs :option="topOption"></avue-data-tabs>
        </basic-container>
      </el-col>
    </el-row>
@@ -21,62 +24,29 @@
      <el-col :span="16">
        <basic-container>
          <el-collapse v-model="activeNames" @change="handleChange">
            <el-collapse-item title="欢迎使用Saber" name="1">
              <div>1.Saber是BladeX前端UI系统</div>
              <div>2.对现有的avue2.0、element-ui库进行二次封装</div>
              <div>3.100%兼容原生element-ui库</div>
              <div>4.基于json驱动的模块配置,打造最好用的vuejs中后台脚手架</div>
              <div>5.使用Saber可以大幅度提升开发效率,不再为重复工作发愁</div>
            <el-collapse-item name="1" title="欢迎使用PLT-WEB平台">
              <div>
                1、北京宏博远达科技有限公司(以下简称“宏博远达”)长期专注于制造业信息化建设,为客户提供企业信息化整体解决方案及相关软件研发、咨询及实施服务。宏博远达客户群体涵盖航空、航天、船舶、兵器、汽车、通用机械、电子等制造行业,通过与客户深度合作,承担了多项国家级软件研发与技术服务项目,拥有多项具有自主知识产权的软件产品。
              </div>
              <div>
                2、为了给客户提供更多的技术创新能力及相应的企业级管理支撑平台,宏博远达研发了具有自主知识产权的企业级信息化整体解决方案,同时针对客户的特定需求,提供了高度可定制的专业应用。为了进一步提升技术服务能力,宏博远达投入专门力量在前沿技术方面进行探索,在企业私有云计算和大数据等领域不断取得突破。随着新一代业务与管理技术平台的推出,更增强了公司为客户提供高质量、全方位、深层次服务的技术能力。
              </div>
              <div>3、宏博远达一直秉承“用智慧为客户创造价值”的宗旨,愿以“诚信负责”的态度和专业化的服务,在企业信息化发展的道路上,与客户一起成长,共同见证成功!</div>
            </el-collapse-item>
            <el-collapse-item title="什么是BladeX" name="2">
              <div>1.BladeX是一款精心设计的微服务架构,提供 SpringCloud å…¨å¥—解决方案</div>
              <div>2.开源中国首批完美集成 SpringCloud Alibaba ç³»åˆ—组件的微服务架构</div>
              <div>3.基于稳定生产的商业项目升级优化而来,更加贴近企业级的需求</div>
              <div>4.追求企业开发更加高效,部署更加方便,生产更加稳定</div>
              <div>5.GVP-码云最有价值开源项目</div>
              <div>6.BladeX授权地址:<a target="_blank" href="https://bladex.vip/#/vip">点击授权</a></div>
            </el-collapse-item>
            <el-collapse-item title="为何需要BladeX" name="3">
              <div>1.经历过较长的线上生产,积累了很多企业痛点的解决方案</div>
              <div>2.一套代码兼容MySql、Oracle、PostgreSQL、SqlServer、达梦,适应企业各种不同场景的需求</div>
              <div>3.集成了很多企业急切所需的例如多租户、Oauth2授权认证、工作流、分布式事务等等功能</div>
              <div>4.深度定制了Flowable工作流,完美支持SpringCloud分布式服务的场景,以远程调用的方式进行操作</div>
              <div>5.升级了核心驱动,新功能完全可以开箱即用,而开源版需要自己再花时间进行集成,需要花掉更多的时间成本</div>
              <div>6.拥抱微服务时代,很多企业由于项目转型或升级,传统的技术已然不能满足,反而会花更多成本,而BladeX就是为此而生</div>
              <div>7.同时提供SpringCloud版本和SpringBoot版本,两个版本的api可以与Sword和Saber无缝对接,为小型项目至大型项目保驾护航</div>
              <div>8.授权购买即永久,源码没有混淆,完全开放,后续升级完全免费。企业只需花很少的钱即可获得一整套成熟的解决方案,你还在等什么?</div>
            </el-collapse-item>
            <el-collapse-item title="拥有的核心功能" name="4">
              <div>1.前后端分离-采用前后端分离模式,前端提供两套架构,Sword基于React,Saber基于Vue</div>
              <div>2. åˆ†å¸ƒå¼å•体式后端架构-提供两套后端架构,基于SpringCloud的分布式架构以及基于SpringBoot的单体式架构</div>
              <div>3.API完全兼容-两套后端架构与两套前端架构,共四套架构可以任意组合,所有API完全兼容</div>
              <div>4.前后端代码生成-定制针对两套前端与后端的代码生成模板,轻松生成整个模块的前后端代码,减少重复工作量</div>
              <div>5.组件化、插件化架构-针对功能深度定制各个starter,引入开箱即用,为整个架构解耦,提升效率</div>
              <div>6.Nacos-集成阿里巴巴的Nacos完成统一的服务注册与配置</div>
              <div>7.Sentinel-集成Sentinel从流量控制、熔断降级、系统负载等多个维度保护服务的稳定性</div>
              <div>8.Dubbo-完美集成Dubbo最新版,支持远程RPC调用</div>
              <div>9.多租户系统-完整的SaaS多租户架构</div>
              <div>10.Oauth2-集成Oauth2协议,完美支持多终端的接入与认证授权</div>
              <div>11.工作流-深度定制SpringCloud分布式场景的Flowable工作流,为复杂流程保驾护航。同时提供SpringBoot集成版本</div>
              <div>12.独立流程设计器-提供独立的完全汉化的流程设计器,轻松定制流程模型</div>
              <div>13.动态网关-集成基于Nacos的轻量级、高拓展性动态网关</div>
              <div>14.动态聚合文档-实现基于Nacos的Swagger SpringCloud聚合文档</div>
              <div>15.分布式文件服务-集成minio、qiniu、alioss等优秀的第三方,提供便捷的文件上传与管理</div>
              <div>16.多租户对象存储系统-在SaaS系统中,各租户可自行配置文件上传至自己的私有OSS</div>
              <div>17.权限管理-精心设计的权限管理方案,角色权限精确到按钮</div>
              <div>18.动态数据权限-高度灵活的动态数据权限,提供注解+Web可视化两种配置方式,Web配置无需重启直接生效</div>
              <div>19.动态接口权限-高度灵活的动态接口权限,提供注解+Web可视化两种配置方式,Web配置无需重启直接生效</div>
              <div>20.多租户顶部菜单配置-提供给每个租户独立的顶部菜单配置模块,可以自定义顶部菜单切换</div>
              <div>21.主流数据库兼容-一套代码完全兼容Mysql、Postgresql、Oracle三大主流数据库</div>
              <div>22.动态网关鉴权-基于Nacos的动态网关鉴权,可在线配置,实时生效</div>
              <div>23.全能代码生成器-支持自定义模型、模版 ã€ä¸šåŠ¡å»ºæ¨¡ï¼Œæ”¯æŒå¤šç§æ¨¡æ¿å¼•æ“Žï¼Œåœ¨çº¿é…ç½®ã€‚å¤§å¹…åº¦æå‡å¼€å‘æ•ˆçŽ‡ï¼Œä¸å†ä¸ºé‡å¤å·¥ä½œå‘æ„</div>
              <div>24.Seata分布式事务-定制集成Seata,支持分布式事务,无代码侵入,不失灵活与简洁</div>
              <div>25.未完待续...</div>
            </el-collapse-item>
            <el-collapse-item title="软件定制开发合作" name="5">
              <div>1.接BladeX系列架构的定制服务</div>
              <div>2.接3个月以内工期的react、vue、springboot、springcloud、app、小程序等软件定制服务</div>
              <div>3.有意向请联系唯一指定QQ:1272154962</div>
            <el-collapse-item name="2" title="服务计划制定">
              <div>
                1、根据客户实际需求,宏博远达将与客户共同制定年度服务计划,商定具体的服务对象、服务内容、定期维护的服务时间、技术交流的主题、具体的维护人员安排等服务细节。
              </div>
              <div>
                2、客户可通过电话、电子邮件、函件等方式取得系统技术支持。对于系统以外的问题,我们会尽力协助客户找到解决途径。
              </div>
              <div>
                3、对于远程无法解决的故障(问题),宏博远达工程师将在合同规定的时间内到达客户现场进行故障诊断及处理,做好相应的记录。必要时需要重新收集系统信息,并归档。对于非系统的原因而引起的故障(问题),宏博远达将关心和协助客户解决故障(问题)。
              </div>
              <div>
                4、在其他情形下,宏博远达也可提供必要的现场服务。如为客户获得的合法操作系统进行升级服务、为客户安装必要的软件等的服务、配合客户做主机系统方面的测试、为客户的应用调整提供系统方面的支持等等。
              </div>
            </el-collapse-item>
          </el-collapse>
        </basic-container>
@@ -85,670 +55,24 @@
        <el-row>
          <basic-container>
            <div class="el-font-size">
              <span>产品名称</span>
              <el-divider direction="vertical"/>
              <span><el-tag>BladeX企业级微服务开发平台</el-tag></span>
              <span><el-tag>PLT-WEB平台</el-tag></span>
              <el-divider content-position="right"><i class="el-icon-star-off"/></el-divider>
              <span>账号密码</span>
              <span>当前用户</span>
              <el-divider direction="vertical"/>
              <el-tag type="info" effect="plain">人事(hr)</el-tag>
              <el-divider direction="vertical"/>
              <el-tag type="success" effect="plain">经理(manager)</el-tag>
              <el-divider direction="vertical"/>
              <el-tag type="warning" effect="plain">老板(boss)</el-tag>
              <span><el-tag type="success">{{ userInfo.userName }}</el-tag></span>
              <el-divider content-position="right"><i class="el-icon-star-off"/></el-divider>
              <span>官网地址</span>
              <span>说明文档</span>
              <el-divider direction="vertical"/>
              <span><el-link href="https://bladex.vip" target="_blank"
                             type="primary">https://bladex.vip</el-link></span>
              <el-divider content-position="right"><i class="el-icon-star-off"/></el-divider>
              <span>社区地址</span>
              <el-divider direction="vertical"/>
              <span><el-link href="https://sns.bladex.vip" target="_blank"
                             type="primary">https://sns.bladex.vip</el-link></span>
              <el-divider content-position="right"><i class="el-icon-star-off"/></el-divider>
              <span>获取文档</span>
              <el-divider direction="vertical"/>
              <span class="tag-group">
                <el-tag type="success" style="cursor: pointer"
                        onclick="window.open('https://sns.bladex.vip/note/view/1.html')">免费版</el-tag>
                <el-divider direction="vertical"/>
                <el-tooltip class="item" effect="dark" content="前往商业群文件免费下载,每份授权有一个名额入群" placement="top">
                  <el-tag type="danger" style="cursor: pointer">收费版</el-tag>
                </el-tooltip>
              </span>
              <el-divider content-position="right"><i class="el-icon-star-off"/></el-divider>
              <span>获取源码</span>
              <el-divider direction="vertical"/>
              <span class="tag-group">
                <el-tag type="success" effect="dark" style="cursor: pointer"
                        onclick="window.open('https://gitee.com/smallc/SpringBlade')">开源版</el-tag>
                <el-divider direction="vertical"/>
                <el-tag type="danger" effect="dark" style="cursor: pointer"
                        onclick="window.open('https://bladex.vip/#/vip')">商业版</el-tag>
              </span>
            </div>
          </basic-container>
        </el-row>
        <el-row>
          <basic-container>
            <el-collapse v-model="logActiveNames" @change="handleChange">
              <el-collapse-item title="3.0.1.RELEASE发布,代码生成功能全面升级" name="28">
                <div>1.[新增]数据模型在线配置</div>
                <div>2.[新增]代码生成表单组件在线配置</div>
                <div>3.[新增]Saber风格的单表生成模版</div>
                <div>4.[新增]Saber风格的主子表生成模版</div>
                <div>5.[新增]Saber风格的树表生成模版</div>
                <div>6.[新增]ElementUI风格的单表生成模版</div>
                <div>7.[新增]ElementUI风格的主子表生成模版</div>
                <div>8.[新增]ElementUI风格的树表生成模版</div>
              </el-collapse-item>
              <el-collapse-item title="3.0.0.RELEASE发布,系统架构升级至 SpringCloud 2021" name="27">
                <div>1.[升级]SpringCloud è‡³ 2021.0.3</div>
                <div>2.[升级]SpringBoot è‡³ 2.7.1</div>
                <div>3.[升级]SpringBootAdmin è‡³ 2.7.1</div>
                <div>4.[升级]AlibabaCloud è‡³ 2021.0.1.0</div>
                <div>5.[升级]Mybatis-Plus è‡³ 3.5.2</div>
                <div>6.[升级]Mybatis-Plus-Generator è‡³ 3.5.3</div>
                <div>7.[升级]Nacos è‡³ 2.1.0</div>
                <div>8.[升级]Seata è‡³ 1.5.2</div>
                <div>9.[升级]Log4J è‡³ 2.18.0</div>
                <div>10.[升级]JackSon è‡³ 2.13.3</div>
                <div>11.[升级]FastJson è‡³ 1.2.83</div>
                <div>12.[升级]Avue è‡³ 2.9.12</div>
                <div>13.[新增]基于Oauth2的单点登录</div>
                <div>14.[新增]灰度服务发布与调用</div>
                <div>15.[新增]代码生成增加element和feign模版</div>
                <div>16.[优化]自动装配模块采用新版@AutoConfiguration注解</div>
                <div>17.[优化]TencentCosTemplate避免oom的情况</div>
                <div>18.[优化]TreeNodeç±»</div>
                <div>19.[优化]Gateway鉴权逻辑</div>
                <div>20.[修复]BladeRedis incr方法失效的问题</div>
                <div>21.[修复]租户产品包更新后缓存未刷新的问题</div>
                <div>22.[修复]绑定租户产品包后普通管理员权限配置丢失按钮选项的问题</div>
                <div>23.[修复]流程设计器监听无法删除的问题</div>
                <div>24.[修复]用户excel导出条件为空的判断逻辑</div>
                <div>25.[删除]Hystrix接入以Sentinel取代</div>
                <div>26.[删除]Ribbon接入以LoadBalancer取代</div>
                <div>27.[删除]Zipkin接入</div>
                <div>28.[删除]Turbine接入</div>
                <div>29.[替代]后续版本将对接SkyWalking取代Zipkin与Turbine</div>
              </el-collapse-item>
              <el-collapse-item title="2.9.1.RELEASE发布,新增达梦数据库支持,集成NutFlow流程设计器" name="26">
                <div>1.[升级]Mybatis-Plus è‡³ 3.5.1</div>
                <div>2.[升级]Mybatis-Plus-Generator è‡³ 3.5.2</div>
                <div>3.[升级]Nacos è‡³ 2.0.4</div>
                <div>4.[升级]Log4j2 è‡³ 2.17.2</div>
                <div>5.[升级]FastJson è‡³ 1.2.80</div>
                <div>6.[升级]Sentinel è‡³ 1.8.3</div>
                <div>7.[升级]EasyExcel è‡³ 2.2.11</div>
                <div>8.[升级]JuatAuth è‡³ 1.16.5</div>
                <div>9.[升级]OkHttp è‡³ 4.9.3</div>
                <div>10.[升级]AliyunOss è‡³ 3.14.0</div>
                <div>11.[升级]Minio è‡³ 8.3.7</div>
                <div>12.[升级]Qiniu è‡³ 7.9.4</div>
                <div>13.[升级]TencentCOS è‡³ 5.6.69</div>
                <div>14.[升级]HuaweiOss è‡³ 3.21.12</div>
                <div>15.[升级]Avue è‡³ 2.9.4</div>
                <div>16.[升级]ElementUI è‡³ 2.15.6</div>
                <div>17.[新增]达梦数据库支持</div>
                <div>18.[新增]NutFlow流程设计器集成</div>
                <div>19.[新增]Sword升级至AntdV4版本</div>
                <div>20.[优化]租户全局数据源拦截器逻辑</div>
                <div>21.[优化]单人在线模式RefreshToken的处理逻辑</div>
                <div>22.[优化]单元测试支持读取服务名不同环境的配置</div>
                <div>23.[优化]租户产品包支持配置清空</div>
                <div>24.[优化]配置解决oracle更新null值报错的问题</div>
                <div>25.[优化]适配oss与sms操作栏不换行</div>
                <div>26.[优化]提升excel导出功能的用户体验</div>
                <div>27.[优化]主页部门切换逻辑</div>
                <div>28.[修复]用户解封增加空数据判断逻辑</div>
                <div>29.[修复]流程用户查询增加租户ID筛选</div>
                <div>30.[修复]Oauth2授权码模式失效</div>
                <div>31.[修复]登录锁定逻辑</div>
                <div>32.[修复]通知公告日期段查询报错</div>
              </el-collapse-item>
              <el-collapse-item title="2.9.0.RELEASE发布,新增租户菜单产品包功能" name="25">
                <div>1.[升级]SpringCloud è‡³ Hoxton.SR12</div>
                <div>2.[升级]AlibabaCloud è‡³ 2.2.7.RELEASE</div>
                <div>3.[升级]Nacos è‡³ 2.0.3</div>
                <div>4.[升级]Log4j2 è‡³ 2.17.0</div>
                <div>5.[升级]Druid è‡³ 1.2.8</div>
                <div>6.[升级]FastJson è‡³ 1.2.78</div>
                <div>7.[升级]Lombok è‡³ 1.18.22</div>
                <div>8.[升级]Avue è‡³ 2.8.25</div>
                <div>9.[升级]阿里云仓库为最新地址</div>
                <div>10.[新增]租户菜单产品包功能</div>
                <div>11.[新增]部门角色在线切换功能</div>
                <div>12.[新增]登录错误次数支持从参数管理读取</div>
                <div>13.[新增]管理端手动解锁用户功能</div>
                <div>14.[新增]actuator接口增加内网放行外网认证功能</div>
                <div>15.[新增]pg数据库int类型条件查询处理示例</div>
                <div>16.[新增]Lemon平台代码生成模板</div>
                <div>17.[优化]角色删除增加子节点判断</div>
                <div>18.[优化]流程条件查询增加租户过滤</div>
                <div>19.[优化]流程列表增加名称查询</div>
                <div>20.[优化]登录成功时清除错误次数</div>
                <div>21.[优化]适配cloud最新版异常处理</div>
                <div>22.[优化]数据权限新增成功后清空表单数据</div>
                <div>23.[修复]修复用户导入部门数据为null时保存报错的问题</div>
                <div>24.[修复]修复刷新token导致多部门id被覆盖的问题</div>
                <div>25.[修复]修复登录界面多部门选择弹框出现后直接刷新就能进入主页的问题</div>
                <div>26.[修复]修复通知公告分页未带入查询条件的问题</div>
              </el-collapse-item>
              <el-collapse-item title="2.8.2.RELEASE发布,增强用户登录方案" name="24">
                <div>1.[升级]SpringBoot è‡³ 2.3.12</div>
                <div>2.[升级]SpringBootAdmin è‡³ 2.3.1</div>
                <div>3.[升级]Knife4j è‡³ 2.0.9</div>
                <div>4.[升级]Nacos è‡³ 2.0.2</div>
                <div>5.[升级]Seata è‡³ 1.4.2</div>
                <div>6.[回滚]MybatisPlus è‡³ 3.4.2</div>
                <div>7.[升级]DynamicDatasource è‡³ 3.3.6</div>
                <div>8.[升级]Druid è‡³ 1.2.6</div>
                <div>9.[升级]Avue è‡³ 2.8.18</div>
                <div>10.[新增]用户登录错误次数锁定功能</div>
                <div>11.[新增]多部门多角色用户在登录时增加下拉选项</div>
                <div>12.[新增]新增用户多条件查询接口</div>
                <div>13.[新增]Ribbon组件权重读取逻辑</div>
                <div>14.[新增]ExcelUtil新增WriteHandler参数</div>
                <div>15.[新增]CacheUtil增加指定tenantId清空方法</div>
                <div>16.[优化]手机短信校验逻辑,增加手机号强制判断</div>
                <div>17.[优化]短信调试功能增加资源编号读取</div>
                <div>18.[优化]多租户切面逻辑</div>
                <div>19.[优化]多租户缓存清空逻辑</div>
                <div>20.[优化]ISqlInjector支持自定义覆盖</div>
                <div>21.[优化]优化日志对于租户id的判断</div>
                <div>22.[优化]Menu类重写hashCode方法</div>
                <div>23.[优化]MySql脚本将long类型字段改为bigint(20)</div>
                <div>24.[修复]用户中心字段绑定相反的问题</div>
                <div>25.[修复]关闭验证码模式后首页仍调用验证码接口的问题</div>
              </el-collapse-item>
              <el-collapse-item title="2.8.1.RELEASE发布,适配Nacos2支持长链接特性" name="23">
                <div>1.[升级]SpringCloud è‡³ Hoxton.SR11</div>
                <div>2.[升级]Avue è‡³ 2.8.12</div>
                <div>3.[升级]Lombok è‡³ 1.18.18</div>
                <div>4.[升级]Nacos è‡³ 2.0.1</div>
                <div>5.[升级]JustAuth è‡³ 1.16.1</div>
                <div>6.[新增]JustAuth支持基于redis的state缓存</div>
                <div>7.[新增]服务内部调用文件上传的工具类</div>
                <div>8.[新增]插件市场目录说明</div>
                <div>9.[新增]全新布局的字典管理模块</div>
                <div>10.[优化]Dockerfile初始镜像改为固化的openjdk8-openj9含字体版本</div>
                <div>11.[优化]SmsResponse返回字段message为msg</div>
                <div>12.[优化]Feign熔断加载逻辑</div>
                <div>13.[优化]Sql打印插件增加java8时间处理</div>
                <div>14.[优化]多数据源环境下生效Sql打印插件的配置</div>
                <div>15.[优化]校验短信验证码时与手机号关联验证</div>
                <div>16.[优化]Request包装逻辑支持配置跳过</div>
                <div>17.[优化]Mybatis-plus的SQLServerDialect逻辑</div>
                <div>18.[优化]ObjectMapper支持可配</div>
                <div>19.[优化]增加跨域请求头以防独立swagger服务出现跨域</div>
                <div>20.[优化]数据权限与接口权限的缓存改为全局</div>
                <div>21.[优化]Xss过滤逻辑</div>
                <div>22.[优化]角色配置逻辑</div>
                <div>23.[优化]菜单配置逻辑</div>
                <div>24.[修复]ImageUtil宽高反转的bug</div>
                <div>25.[修复]树组件未全选导致父节点没有入库从而引发顶部菜单生成的bug</div>
                <div>26.[修复]字典通用接口未返回id与parentId产生的bug</div>
                <div>27.[脚本]启动脚本增加jvm配置</div>
                <div>28.[脚本]修复report脚本部署逻辑</div>
                <div>29.[移除]过时的BladeRedisCache,请用BladeRedis取代</div>
              </el-collapse-item>
              <el-collapse-item title="2.8.0.RELEASE发布,集成Prometheus全方位监控方案" name="22">
                <div>1.[升级]SpringCloud è‡³ Hoxton.SR10</div>
                <div>2.[升级]AlibabaCloud è‡³ 2.2.5.RELEASE</div>
                <div>3.[升级]FastJson è‡³ 1.2.75</div>
                <div>4.[升级]Druid è‡³ 1.2.5</div>
                <div>5.[升级]EasyExcel è‡³ 1.2.7</div>
                <div>6.[升级]JustAuth è‡³ 1.15.9</div>
                <div>7.[升级]Avue è‡³ 2.8.1</div>
                <div>8.[升级]ElementUI è‡³ 2.15.1</div>
                <div>9.[升级]Oss与Sms升级依赖并适配最新版</div>
                <div>10.[新增]基于宝塔系统的部署方案</div>
                <div>11.[新增]Prometheus全方位监控方案</div>
                <div>12.[新增]blade-admin服务支持prometheus对nacos的服务发现</div>
                <div>13.[新增]BladeX对接Prometheus部署脚本</div>
                <div>14.[新增]Saber远程部署推送脚本</div>
                <div>15.[新增]基于Sentinel的服务熔断方案</div>
                <div>16.[新增]Mybatis-Plus添加OptimizeJoin配置参数</div>
                <div>17.[优化]将oss-starter系列合并为一</div>
                <div>18.[优化]将sms-starter系列合并为一</div>
                <div>19.[优化]增强优化Url通配符匹配逻辑</div>
                <div>20.[优化]数据权限缓存逻辑</div>
                <div>21.[优化]blade-auto封装</div>
                <div>22.[优化]SqlLogInterceptor配置</div>
              </el-collapse-item>
              <el-collapse-item title="2.7.2.RELEASE发布,重构升级常用功能,优化使用体验" name="21">
                <div>1.[升级]SpringBoot è‡³ 2.2.13.RELEASE</div>
                <div>2.[升级]AlibabaCloud è‡³ 2.2.5</div>
                <div>3.[升级]Mybatis-Plus è‡³ 3.4.2</div>
                <div>4.[升级]Dynamic-Datasource è‡³3.3.1</div>
                <div>5.[升级]Avue è‡³ 2.7.8</div>
                <div>6.[升级]适配 Knife4j 2.0.8</div>
                <div>7.[重构]Swagger聚合网关迁移至全新的blade-swagger服务</div>
                <div>8.[重构]Sql日志打印采用druid底层实现展示完整带参SQL</div>
                <div>9.[新增]LocalFile的domain字段</div>
                <div>10.[新增]Sign模式鉴权timestamp在10秒内的合法时间段判断</div>
                <div>11.[新增]开启租户插件后使用@TenantIgnore注解精准关闭租户过滤逻辑</div>
                <div>12.[新增]Swagger公共信息配置</div>
                <div>13.[新增]Saber矢量图标离线化</div>
                <div>14.[新增]菜单管理isOpen字段控制左侧菜单是否可以使用新tab打开外链</div>
                <div>15.[新增]Mybatis-Plus的Page合并工具类</div>
                <div>16.[优化]阿里云短信返回成功判断逻辑</div>
                <div>17.[优化]Token过期时间处理</div>
                <div>18.[优化]Redis加载逻辑</div>
                <div>19.[优化]用户登录逻辑</div>
                <div>20.[优化]多租户角色创建逻辑</div>
                <div>21.[优化]Dockerfile加速字体构建</div>
                <div>22.[优化]Nacos Shared Config配置API改为最新版</div>
                <div>23.[优化]Saber授权类型字段改为checkbox</div>
                <div>24.[修复]RequestLog遇到MultipartFile.[]类型序列化报错的问题</div>
                <div>25.[修复]顶级字典更新后未同步更新下属字典的编号</div>
                <div>26.[修复]Saber退出后未刷新浏览器顶部title路由的问题</div>
                <div>27.[修复]菜单机构模块关闭编辑界面再打开新增界面数据没有清空的问题</div>
              </el-collapse-item>
              <el-collapse-item title="2.7.1.RELEASE发布,重构钉钉监控通知,升级依赖适配最新API" name="20">
                <div>1.[升级]SpringBoot è‡³ 2.2.12.RELEASE</div>
                <div>2.[升级]SpringCloud è‡³ Hoxton.SR9</div>
                <div>3.[升级]Knife4j è‡³ 2.0.8</div>
                <div>4.[升级]Druid è‡³ 1.2.4</div>
                <div>5.[升级]Seata è‡³ 1.4.1</div>
                <div>6.[升级]Jackson è‡³ 2.11.4</div>
                <div>7.[升级]Mybatis-Plus è‡³ 3.4.1</div>
                <div>8.[升级]Dynamic-Datasource è‡³3.2.1</div>
                <div>9.[升级]Avue è‡³ 2.7.5</div>
                <div>10.[新增]Secure模块动态签名认证特性</div>
                <div>11.[新增]Redis序列化方式的配置</div>
                <div>12.[新增]用户导入导出的用户平台字段</div>
                <div>13.[修改]日志路径默认优先级,支持配置覆盖</div>
                <div>14.[修改]Report模块包路径,新增Core目录</div>
                <div>15.[重构]blade-admin,钉钉监控通知实现</div>
                <div>16.[优化]blade-admin,增加账号密码登录</div>
                <div>17.[优化]RefreshToken刷新逻辑</div>
                <div>18.[优化]租户新增逻辑,业务字典支持无限层级复制</div>
                <div>19.[优化]Ribbon组件,支持Feign调用配置</div>
                <div>20.[修复]流程名搜索失效的问题</div>
                <div>21.[修复]附件管理租户隔离问题</div>
                <div>22.[修复]数据权限分配模块的sqlserver兼容性</div>
                <div>23.[修复]系统字典缓存刷新逻辑</div>
                <div>24.[修复]Swagger文档出现Locale参数的问题</div>
                <div>25.[删除]spring-cloud-stream依赖,按需引入</div>
              </el-collapse-item>
              <el-collapse-item title="2.7.0.RELEASE发布,更新Hoxton.SR8,全面升级底层驱动" name="19">
                <div>1.[升级]SpringBoot è‡³ 2.2.11.RELEASE</div>
                <div>2.[升级]SpringCloud è‡³ Hoxton.SR8</div>
                <div>3.[升级]AlibabaCloud è‡³ 2.2.3.RELEASE</div>
                <div>4.[升级]SpringBootAdmin è‡³ 2.2.4</div>
                <div>5.[升级]Knife4j è‡³ 2.0.6</div>
                <div>6.[升级]Swagger è‡³ 2.10.5</div>
                <div>7.[升级]SwaggerModel è‡³ 1.6.2</div>
                <div>8.[升级]SpringPlugin è‡³ 2.2.0.RELEASE</div>
                <div>9.[升级]Druid è‡³ 1.2.1</div>
                <div>10.[升级]JustAuth è‡³ 1.15.8</div>
                <div>11.[升级]Dubbo è‡³ 2.7.8</div>
                <div>12.[升级]Guava è‡³ 30.0-jre</div>
                <div>13.[升级]Avue è‡³ 2.7.0</div>
                <div>14.[优化]Swagger封装以支持Knife4j最新API</div>
                <div>15.[优化]引入Knife4j增强配置,生产环境将完全隔离文档访问</div>
                <div>16.[修复]未引入租户插件后,自定义类空指针的问题</div>
                <div>17.[删除]Zipkin模块,推荐使用官方独立模式运行服务</div>
              </el-collapse-item>
              <el-collapse-item title="2.6.1.RELEASE发布,增加全局上下文系统,增加用户平台拓展模块" name="18">
                <div>1.[升级]SpringBoot è‡³ 2.1.17.RELEASE</div>
                <div>2.[升级]Mybatis-Plus è‡³ 3.4.0</div>
                <div>3.[升级]Knife4j è‡³ 2.0.5</div>
                <div>4.[升级]JJWT è‡³ 0.11.2</div>
                <div>5.[升级]FastJson è‡³ 1.2.74</div>
                <div>6.[新增]上下文核心包,优化全局上下文配置</div>
                <div>7.[新增]secure模块的basic认证功能</div>
                <div>8.[新增]用户平台拓展模块</div>
                <div>9.[优化]重构增强cloud模块</div>
                <div>10.[优化]request核心至boot模块</div>
                <div>11.[优化]增强mybatis-plus的分页防注入功能</div>
                <div>12.[优化]sms返回结果,去掉验证码序列化</div>
                <div>13.[优化]数据权限插件支持最新版mybatis-plus</div>
                <div>14.[优化]增强sql日志拦截器</div>
                <div>15.[优化]增强令牌,新增对用户平台的判断逻辑</div>
                <div>16.[优化]代码生成增加对sqlserver的支持</div>
                <div>17.[优化]自定义mapper的api</div>
                <div>18.[修复]Kv类克隆强转问题</div>
                <div>19.[修复]elk配置无法读取项目名的问题</div>
                <div>20.[修复]区划字段level为regionLevel以防oracle报错</div>
              </el-collapse-item>
              <el-collapse-item title="2.6.0.RELEASE发布,租户数据库隔离、报表管理、SqlServer兼容" name="17">
                <div>1.[升级]Avue è‡³ 2.6.15</div>
                <div>2.[升级]SpringBoot è‡³ 2.1.16.RELEASE</div>
                <div>3.[升级]Seata è‡³ 1.3.0</div>
                <div>4.[升级]Nacos è‡³ 1.3.2</div>
                <div>5.[升级]FastJson è‡³ 1.2.73</div>
                <div>6.[升级]Knife4j è‡³ 2.0.4</div>
                <div>7.[升级]EasyExcel è‡³ 2.2.6</div>
                <div>8.[升级]JustAuth è‡³ 1.15.6</div>
                <div>9.[新增]多租户数据库隔离、动态数据源特性</div>
                <div>10.[新增]SqlServer兼容</div>
                <div>11.[新增]UReport2报表管理模块</div>
                <div>12.[新增]对象存储附件表功能</div>
                <div>13.[优化]LocalFile支持序列化</div>
                <div>14.[优化]MinioTemplate增加ContentType配置</div>
                <div>15.[优化]LogBack-Elk的配置</div>
                <div>16.[优化]流程状态变更的返回信息</div>
                <div>17.[优化]顶部菜单配置接口,支持大容量数据传输</div>
                <div>18.[优化]User密码字段序列化</div>
                <div>19.[优化]序列化additionalInformation,解决非null值报错的问题</div>
                <div>20.[修复]启用Token有状态模式下刷新Token的问题</div>
                <div>21.[修复]日志表无法入库TenantId的问题</div>
                <div>22.[修复]flowable-oracle脚本运行错误的问题</div>
              </el-collapse-item>
              <el-collapse-item title="2.5.1.RELEASE发布,增加第三方登录、行政区划、API报文加密" name="16">
                <div>1.[升级]Avue è‡³ 2.6.1、ElementUI è‡³ 2.13.2</div>
                <div>2.[升级]SpringBoot è‡³ 2.1.14.RELEASE</div>
                <div>3.[升级]SpringCloud è‡³ Greenwich.SR6</div>
                <div>4.[升级]SpringCloud Alibaba è‡³ 2.1.2.RELEASE</div>
                <div>5.[升级]Seata è‡³ 1.2.0</div>
                <div>6.[升级]FastJson è‡³ 1.2.70</div>
                <div>7.[升级]Knife4j è‡³ 2.0.3</div>
                <div>8.[升级]MybatisPlus è‡³3.3.2</div>
                <div>9.[升级]EasyExcel è‡³ 2.2.4</div>
                <div>10.[新增]第三方系统登录,集成拓展JustAuth</div>
                <div>11.[新增]行政区划功能模块</div>
                <div>12.[新增]API报文加密工具</div>
                <div>13.[新增]Token配置,支持有状态模式,支持一人在线或多人在线</div>
                <div>14.[新增]Secure配置,支持配置请求方法类型、请求路径、请求表达式匹配</div>
                <div>15.[新增]Jackson配置,支持大数字转字符串模式,支持null转空值模式</div>
                <div>16.[新增]租户账号授权码保护机制,防止私有部署客户篡改数据库越权</div>
                <div>17.[优化]字典模块,增加树形结构</div>
                <div>18.[优化]新增租户逻辑,新增时同步超管配置的默认业务字典数据</div>
                <div>19.[优化]用户导入逻辑,只有超管才可以定义租户编号</div>
                <div>20.[优化]部门列表逻辑,非超管角色只可看到本级及以下部门数据</div>
                <div>21.[优化]字典模块,增加枚举类,统一入口</div>
                <div>22.[优化]DictCache缓存加载逻辑</div>
                <div>23.[优化]租户缓存刷新逻辑</div>
                <div>24.[优化]角色配置逻辑,同步取消子角色对应的菜单权限</div>
                <div>25.[优化]顶部菜单,增加排序功能</div>
                <div>26.[优化]INode,支持泛型</div>
                <div>27.[优化]代码结构,为bean统一加上final关键字修饰</div>
                <div>28.[优化]Nacos动态刷新配置</div>
                <div>29.[优化]Dockerfile,采用Openj9基础镜像,大幅度降低内存占用</div>
                <div>30.[优化]工程启动逻辑,关闭Flowable自动建表功能,需要手动导入流程sql</div>
                <div>31.[修复]SpringBootAdmin读取actuator路径配置</div>
                <div>32.[修复]用户导入逻辑,修正密码加密规则</div>
                <div>33.[修复]Boot版本Xss默认配置路径</div>
              </el-collapse-item>
              <el-collapse-item title="2.5.0.RELEASE发布,增加岗位管理,增加用户导入导出" name="15">
                <div>1.[升级]Avue è‡³ 2.5.0</div>
                <div>2.[升级]SpringBoot è‡³ 2.1.13</div>
                <div>3.[升级]FastJson è‡³ 1.2.68</div>
                <div>4.[升级]Druid è‡³ 1.1.22</div>
                <div>5.[升级]Knife4j è‡³ 2.0.2</div>
                <div>6.[升级]Taobao-Sdk è‡³ 20200415</div>
                <div>7.[升级]docker-maven-plugin è‡³ dockerfile-maven-plugin</div>
                <div>8.[新增]验证码开关</div>
                <div>9.[新增]数据权限全局开关</div>
                <div>10.[新增]岗位管理模块</div>
                <div>11.[新增]用户Excel导入导出功能</div>
                <div>12.[新增]用户绑定岗位功能</div>
                <div>13.[新增]EasyExcel封装工具ExcelUtil</div>
                <div>14.[新增]Feign内部线程传递</div>
                <div>15.[新增]Mybatis-Plus配置,支持配置最大分页数</div>
                <div>16.[新增]Gateway在多团队协作模式灵活指向本地服务的配置</div>
                <div>17.[新增]Sms模块的sendMessage接口及SmsResponse响应类</div>
                <div>18.[新增]CacheUtil租户缓存隔离功能</div>
                <div>19.[优化]CacheUtil缓存重载逻辑,返回bean不为null但数据全为空将不入缓存</div>
                <div>20.[优化]缓存清除逻辑,@CacheEvict统一修改为CacheUtil.clear</div>
                <div>21.[优化]登录逻辑,前端对密码加密后再传递至鉴权接口</div>
                <div>22.[优化]Oss上传接口,返回domain字段</div>
                <div>23.[优化]BladeRedisCache命名为BladeRedis</div>
                <div>24.[优化]控制台日志打印功能,规避MultipartFile读取报错</div>
                <div>25.[优化]配置关键字enable统一为enabled</div>
                <div>26.[优化]keyword日期处理</div>
                <div>27.[优化]代码生成sql脚本默认在工作台菜单下</div>
                <div>28.[优化]Jwt获取Token逻辑</div>
                <div>29.[优化]Token返回,增加岗位ID</div>
                <div>30.[优化]TokenGranter,采用更简洁的拓展方式</div>
                <div>31.[优化]日志管理展现方式</div>
                <div>32.[优化]新建租户逻辑,增加参数读取来设置新建租户的配置</div>
                <div>33.[优化]流程签收接口,支持多角色操作</div>
                <div>34.[优化]动态网关,支持读取自定义namespace配置</div>
                <div>35.[优化]删除租户逻辑,同时删除对应的用户</div>
                <div>36.[优化]树形懒加载,支持局部实时刷新功能</div>
                <div>37.[优化]多租户插件新增修改逻辑,若指定tenantId为空则不进行操作</div>
                <div>38.[优化]SmsBuilder、OssBuilder</div>
                <div>39.[优化]Sentinel配置</div>
                <div>40.[优化]XssFilter为全局的BladeRequestFilte</div>
                <div>41.[优化]BladeX开发手册Linux部署章节讲解</div>
                <div>42.[优化]Saber相关配置,以适配Avue最新版API</div>
                <div>43.[优化]Saber相关配置内done与loading的顺序</div>
                <div>44.[修复]用户基本信息修改的bug</div>
                <div>45.[修复]QiniuTemplate的putFile循环调用的bug</div>
                <div>46.[修复]日志框架获取RequestBody为空的bug</div>
                <div>47.[修复]Saber组件被复用导致没有刷新的bug</div>
                <div>48.[删除]过时的BladeSecureUrlProperties</div>
                <div>49.[删除]过时的XssUrlProperties</div>
                <div>50.[删除]过时的RedisUtil</div>
              </el-collapse-item>
              <el-collapse-item title="2.4.0.RELEASE发布,增加多租户短信服务,升级Seata1.1" name="14">
                <div>1.[新增]集成七牛、阿里云、腾讯云、云片等短信服务,支持多租户配置</div>
                <div>2.[新增]对象存储模块的资源编号字段,可根据编号指定oss配置的服务</div>
                <div>3.[新增]对象存储、短信配置模块的调试功能,可在线调试配置是否可用</div>
                <div>4.[新增]超管启用租户过滤的配置</div>
                <div>5.[升级]SpringBoot 2.1.12,SpringCloud SR5</div>
                <div>6.[升级]兼容 Seata 1.1</div>
                <div>7.[优化]对象存储的模块使用体验</div>
                <div>8.[优化]兼容Oracle模糊查询的写法</div>
                <div>9.[优化]超管权限,不受租户过期时间影响</div>
                <div>10.[优化]mybatis-plus相关过期注解</div>
                <div>11.[优化]xxl-job模块的配置文件</div>
                <div>12.[优化]INode支持序列化接口</div>
                <div>13.[优化]统一Oss模块命名</div>
                <div>14.[优化]部署脚本,升级相关版本</div>
                <div>15.[修复]数据权限部门过滤已删除对象</div>
                <div>16.[修复]业务字典缓存bug,增加租户过滤</div>
                <div>17.[修复]占位符解析器的bug</div>
              </el-collapse-item>
              <el-collapse-item title="2.3.1.RELEASE发布,流程增加租户定制,登录增加验证码" name="13">
                <div>1.[新增]登录验证码功能</div>
                <div>2.[新增]Oauth2自定义TokenGranter</div>
                <div>3.[新增]工作流绑定租户功能,支持通用流程和定制流程</div>
                <div>4.[新增]Condition类的自定义参数排除入口</div>
                <div>5.[增强]租户插件功能,新增操作可根据自定义的tenantId值进行覆盖</div>
                <div>6.[增强]超管权限,不受数据权限插件影响</div>
                <div>7.[升级]mybatis-plus至3.3.1</div>
                <div>8.[优化]mybatis-plus封装,提升分页可拓展性</div>
                <div>9.[优化]lib分离打包逻辑</div>
                <div>10.[优化]CacheUtil初始化逻辑</div>
                <div>11.[优化]HttpUtil,采用最新封装逻辑</div>
                <div>12.[优化]角色信息获取逻辑为实时,不受开源版、单体版缓存影响</div>
                <div>13.[优化]日志打印工具判断空逻辑</div>
                <div>14.[修复]BeanUtil的class类型判断逻辑</div>
                <div>15.[删除]基于zookeeper体验不佳的分布式锁</div>
              </el-collapse-item>
              <el-collapse-item title="2.3.0.RELEASE发布,租户增强,底层架构插件全面增强" name="12">
                <div>1.[新增]swagger-bootstrap-ui全新升级为knife4j</div>
                <div>2.[新增]saber升级至avue2.3.7版本</div>
                <div>3.[新增]saber树表懒加载模式</div>
                <div>4.[新增]腾讯云存储封装</div>
                <div>5.[新增]xxl-job集成,支持分布式任务调度</div>
                <div>6.[新增]kafka、rabbitmq、cloudstream集成</div>
                <div>7.[新增]redis分布式锁插件</div>
                <div>8.[新增]高性能http调用模块</div>
                <div>9.[新增]PropertySource注册逻辑,提高安全性</div>
                <div>10.[新增]Param参数缓存工具类</div>
                <div>11.[新增]租户操作,增加创建对应的租户管理员账号、菜单权限</div>
                <div>12.[新增]租户插件,超管可查看所有租户数据的逻辑</div>
                <div>13.[新增]租户功能,绑定域名、系统背景、账号额度、过期时间</div>
                <div>14.[新增]登录、创建用户操作绑定租户配置</div>
                <div>15.[优化]租户插件判断逻辑,增加flowable相关表的租户过滤排除</div>
                <div>16.[优化]xss过滤逻辑,提高性能</div>
                <div>17.[优化]本地文件上传逻辑</div>
                <div>18.[优化]oss配置,修改后及时生效无需点击启用</div>
                <div>19.[优化]请求日志展示功能</div>
                <div>20.[修复]前端关闭租户模式导致的新增用户失效问题</div>
                <div>21.[修复]OSS相关bucket命名的问题</div>
                <div>22.[修复]ribbon组件由降级引起的问题</div>
              </el-collapse-item>
              <el-collapse-item title="2.2.2.RELEASE发布,增强字典管理,用户管理增加左树右表" name="11">
                <div>1.[优化]拆分出系统字典表与业务字典表,字典键值改为string类型</div>
                <div>2.[优化]用户管理增加左树右表功能</div>
                <div>3.[优化]租户新增增加租户默认类型</div>
                <div>4.[优化]多租户表对应实体继承TenantEntity</div>
                <div>5.[优化]用于本地上传的BladeFile类更名为LocalFile防止冲突</div>
                <div>6.[优化]菜单新增逻辑</div>
                <div>7.[优化]mybatis-plus默认配置的处理</div>
                <div>8.[优化]租户过滤判断逻辑,删除多余的类</div>
                <div>9.[优化]alioss生成地址的逻辑</div>
                <div>10.[优化]redisTemplate加载逻辑</div>
                <div>11.[优化]租户处理,简化配置,自动识别需要过滤的租户表</div>
                <div>12.[优化]数据权限表单用户体验</div>
                <div>13.[修复]数据权限插件不兼容的问题</div>
                <div>14.[修复]数据权限树勾选显示问题</div>
                <div>15.[修复]windows平台elk开关失效的问题</div>
                <div>16.[修复]租户bean加载逻辑</div>
                <div>17.[修复]saber代码生成驼峰路径导致的问题</div>
                <div>18.[修复]docker脚本nginx端口匹配问题</div>
                <div>19.[修复]机构模块提交未删除缓存的问题</div>
                <div>20.[修复]oss缓存获取未加租户判断的问题</div>
                <div>21.[修复]blade-auth在java11下无法运行的问题</div>
              </el-collapse-item>
              <el-collapse-item title="2.2.1.RELEASE发布,集成ELK,增加分布式日志追踪" name="10">
                <div>1.[新增]集成最新版ELK,增加分布式日志追踪功能</div>
                <div>2.[新增]增加ELK一键部署docker脚本</div>
                <div>3.[新增]抽象封装日志管理逻辑</div>
                <div>4.[新增]BladeX-Biz增加easypoi的demo工程</div>
                <div>5.[新增]BladeX-Biz增加websocket的demo工程</div>
                <div>6.[优化]minio文件策略</div>
                <div>7.[新增]Sql条件构建类去除分页字段</div>
                <div>8.[优化]sql打印功能</div>
                <div>9.[优化]wrapper逻辑</div>
                <div>10.[新增]CommonConstant拆分出LauncherConstant</div>
              </el-collapse-item>
              <el-collapse-item title="2.2.0.RELEASE发布,增加集群监控,链路追踪" name="9">
                <div>1.[新增]turbine集群监控服务</div>
                <div>2.[新增]zipkin分布式链路追踪</div>
                <div>3.[升级]seata版本至0.9.0,解决分布式事务遇到的bug</div>
                <div>4.[新增]Launcher的nacos配置改为sharedIds,提升子工程配置优先级</div>
                <div>5.[新增]增加changeStatus方法,方便修改业务状态字段</div>
                <div>6.[新增]saber代码模板增加刷新事件</div>
                <div>7.[新增]saber底层架构升级</div>
                <div>8.[新增]saber支持tab切换保存页面状态</div>
                <div>9.[新增]添加bom统一版本配置</div>
                <div>10.[新增]添加trace starter</div>
                <div>11.[新增]blade-admin排除seata服务</div>
                <div>12.[新增]oss敏感操作增加权限校验</div>
                <div>13.[新增][修复]dict、role不选择父节点报错</div>
                <div>14.[新增]动态网关设置启动加载</div>
                <div>15.[新增]字典增加封存功能</div>
              </el-collapse-item>
              <el-collapse-item title="2.1.0.RELEASE发布,全面增强底层驱动" name="8">
                <div>1.[升级]springboot 2.1.8、springcloud greenwich sr3</div>
                <div>2.[新增]集成seata,提供最简集成方案</div>
                <div>3.[新增]blade-admin增加nacos动态监听</div>
                <div>4.[新增]增加alioss集成,强化oss返回信息</div>
                <div>5.[新增]获取令牌操作增加空判断</div>
                <div>6.[新增]拆分数据库依赖、增强mybatis、增加yml自定义配置读取</div>
                <div>7.[新增]各模块增加默认的yml配置,不占用application.yml</div>
                <div>8.[新增]增加ribbon组件,可自定义lb优先选择的ip段,解决团队网关调试需求</div>
                <div>9.[优化]feign的bean加载逻辑</div>
                <div>10.[增强]condition条件</div>
                <div>11.[优化]日志打印效果</div>
                <div>12.[重构]redis模块,增加redis限流功能</div>
                <div>13.[优化]beanutil性能</div>
                <div>14.[优化]去掉调试用的RouteEndpoint,增强安全性</div>
                <div>15.[优化]部门新增逻辑</div>
              </el-collapse-item>
              <el-collapse-item title="2.0.7.RELEASE发布,增加网关鉴权,强化代码生成" name="7">
                <div>1.[新增]增加基于Nacos的动态网关鉴权</div>
                <div>2.[新增]代码生成增加多数据源选择,强化单表代码生成</div>
                <div>3.[新增]增加个人信息修改、头像上传、密码更新功能</div>
                <div>4.[优化]新建角色逻辑</div>
                <div>5.[修复]若干issue</div>
              </el-collapse-item>
              <el-collapse-item title="2.0.6.RELEASE发布,兼容三大主流数据库" name="6">
                <div>1.[新增]一套代码兼容Mysql、Oracle、PostgreSQL三大主流数据库</div>
                <div>2.[升级]flowable 6.4.2</div>
                <div>3.[新增]超管默认拥有所有菜单权限</div>
                <div>4.[修复]权限配置数据长度过大的bug</div>
                <div>5.[新增]增加租户信息获取</div>
                <div>6.[优化]命令行启动顺序</div>
                <div>7.[升级]alibaba cloud毕业版本</div>
                <div>8.[新增]日志监听增加自定义配置</div>
                <div>9.[升级]swagger-bootstrap-ui版本</div>
                <div>10.[新增]saber表格自适应、增加loading</div>
                <div>11.[新增]saber通知公告模块增加富文本编辑器</div>
              </el-collapse-item>
              <el-collapse-item title="2.0.5.RELEASE发布,升级分布式接口权限系统" name="5">
                <div>1.[升级]为分布式接口权限系统</div>
                <div>2.[新增]增加多租户自定义顶部菜单功能</div>
                <div>3.[升级]greenwich SR2,mybatis-plus 3.1.2</div>
                <div>4.[新增]swagger排序规则采用最新注解</div>
                <div>5.[新增]数据权限增加可见字段配置</div>
                <div>6.[新增]数据权限增加分布式服务支持</div>
                <div>7.[新增]增加远程调用分页的例子,解决mybatis-plus传递IPage反序化出现的bug</div>
                <div>8.[优化]租户接口权限规则</div>
                <div>9.[新增]SqlKeyword增加条件判断</div>
                <div>10.[修复]部分模块包名分层的问题</div>
              </el-collapse-item>
              <el-collapse-item title="2.0.4.RELEASE发布,增加动态数据权限系统" name="4">
                <div>1.[新增]注解+web可视化配置的动态数据权限系统</div>
                <div>2.[升级]部门管理为机构管理,增加机构类型</div>
                <div>3.[新增]解决mybatis-plus排序字段的sql注入问题</div>
                <div>4.[新增]create_dept统一业务字段</div>
                <div>5.[新增]swagger ui页面设置Authorize é»˜è®¤å…¨å±€å‚æ•°</div>
                <div>6.[新增]jsonutil增加封装方法,去掉devtools依赖</div>
                <div>7.[新增]数据库连接适配mysql8</div>
                <div>8.[新增]docker-compose脚本增加时区</div>
                <div>9.[新增]oauth申请token可支持自定义表</div>
                <div>10.[修复]代码生成sql缺失主键的问</div>
                <div>11.[新增]boot版本重构登录逻辑,增强可拓展性</div>
              </el-collapse-item>
              <el-collapse-item title="2.0.3.RELEASE发布,优化多租户oss系统,优化业务架构" name="3">
                <div>1.[新增]gateway增加动态文档配置,可通过配置nacos动态刷新</div>
                <div>2.[优化]修正blade_menu代码生成模块删除api的地址</div>
                <div>3.[优化]mysql依赖</div>
                <div>4.[新增]LauncherService增加排序功能</div>
                <div>5.[优化]hystrixfeign加载</div>
                <div>6.[优化]多租户oss系统逻辑,使之更加易用</div>
                <div>7.tenant_code字段统一为tenant_id</div>
              </el-collapse-item>
              <el-collapse-item title="2.0.2.RELEASE发布,增加多租户oss管理系统" name="2">
                <div>1.[新增]增加minio封装</div>
                <div>2.[新增]增加qiniu封装</div>
                <div>3.[新增]增加oss统一接口</div>
                <div>4.[新增]集成minio、qiniu,进行统一管理的多租户oss系统</div>
                <div>5.[优化]blade-core-cloud逻辑</div>
                <div>6.[新增]badex-biz增加不同包名的swagger、mybatis配置demo</div>
                <div>7.[新增]badex-biz增加nacos自定义注册文件demo</div>
                <div>8.[新增]bladex-biz增加nacos参数动态刷新demo</div>
              </el-collapse-item>
              <el-collapse-item title="2.0.1.RELEASE发布,系统优化版本" name="1">
                <div>1.[新增]兼容jdk11</div>
                <div>2.[新增]支持refresh_token功能</div>
                <div>3.[新增]增加minio封装,支持多租户模式的oss对象存储</div>
                <div>4.[新增]集成dubbo最新版本,支持rpc远程调用</div>
                <div>5.[新增]定制基于nacos的gateway动态网关</div>
                <div>6.[优化]聚合网关配置,使之更加轻巧</div>
                <div>7.[新增]CacheUtil增加缓存清除方法</div>
                <div>8.[优化]日志文件格式</div>
                <div>9.[新增]Secure拦截器支持自定义加载</div>
              </el-collapse-item>
              <el-collapse-item title="2.0.0.RELEASE发布,完美定制的微服务开发平台" name="0">
                <div>1.[新增]Swagger提供list形式配置扫描包</div>
                <div>2.[新增]DictCache、UserCache、SysCache缓存工具类</div>
                <div>3.[新增]重新设计EntityWrapper结构,使之更加简单易用</div>
                <div>4.[新增]强化部分敏感数据的删除校验</div>
                <div>5.[新增]Condition类的sql条件构造器</div>
                <div>6.[修复]工作流分页bug</div>
                <div>7.[优化]docker配置</div>
                <div>8.[优化]多租户逻辑</div>
                <div>9.[优化]request打印日志逻辑</div>
                <div>10.[修复]getIp的bug</div>
                <div>11.[优化]saber代码生成模板</div>
                <div>12.[新增]saber更新至element-ui 2.8.2版本</div>
                <div>13.[修复]saber分页bug</div>
                <div>14.[新增]crud组件提交报错后恢复按钮状态</div>
                <div>15.[新增]字典管理表单调整</div>
                <div>16.[升级]springboot 2.1.5</div>
              </el-collapse-item>
            </el-collapse>
          </basic-container>
        </el-row>
@@ -758,30 +82,79 @@
</template>
<script>
  import {mapGetters} from "vuex";
import {mapGetters} from "vuex";
import {getLogListByContion} from "@/api/system/log/logBasic";
  export default {
    name: "wel",
    data() {
      return {
        activeNames: ['1', '2', '3', '5'],
        logActiveNames: ['28']
      };
    },
    computed: {
      ...mapGetters(["userInfo"]),
    },
    methods: {
      handleChange(val) {
        window.console.log(val);
export default {
  name: "wel",
  data() {
    return {
      loading:false,
      text: '北京宏博远达科技有限公司(以下简称“宏博远达”)长期专注于制造业信息化建设,为客户提供企业信息化整体解决方案及相关软件研发、咨询及实施服务。宏博远达客户群体涵盖航空、航天、船舶、兵器、汽车、通用机械、电子等制造行业,通过与客户深度合作,承担了多项国家级软件研发与技术服务项目,拥有多项具有自主知识产权的软件产品。为了给客户提供更多的技术创新能力及相应的企业级管理支撑平台,宏博远达研发了具有自主知识产权的企业级信息化整体解决方案,同时针对客户的特定需求,提供了高度可定制的专业应用。为了进一步提升技术服务能力,宏博远达投入专门力量在前沿技术方面进行探索,在企业私有云计算和大数据等领域不断取得突破。随着新一代业务与管理技术平台的推出,更增强了公司为客户提供高质量、全方位、深层次服务的技术能力。宏博远达一直秉承“用智慧为客户创造价值”的宗旨,愿以“诚信负责”的态度和专业化的服务,在企业信息化发展的道路上,与客户一起成长,共同见证成功!',
      activeNames: ['1', '2', '3', '5'],
      logActiveNames: ['28'],
      topOption: {
        data: []
      }
    };
  },
  computed: {
    ...mapGetters(["userInfo"]),
  },
  created() {
    this.getLogHandler();
  },
  methods: {
    handleChange(val) {
      window.console.log(val);
    },
  };
    getLogHandler() {
      this.loading = true;
      const logTypes = ["4", "1", "3"]; // æ“ä½œæ—¥å¿—、登录日志、授权日志的 logType
      const logNames = ["操作日志统计", "登录日志统计", "授权日志统计"]; // å¯¹åº”的日志名称
      const textList = ["当前登录日志总记录数", "当前授权日志总记录数", "当前操作日志总记录数"];
      const color = ['rgb(27, 201, 142)', 'rgb(230, 71, 88)', 'rgb(178, 159, 255)']
      const router = ['/LogOperateMain?logType=4&roleType=2', '/LogInfoMain?logType=1&roleType=2', '/LogAuthorizeMain?logType=3&roleType=2']
      const roleType = "2";
      const requests = logTypes.map(logType => getLogListByContion(1, -1, {logType, roleType}));
      Promise.all(requests).then(responses => {
        // console.log('responses', responses);
        // è®¡ç®—总和
        const allcount = responses.reduce((sum, res) => sum + (res.data.total || 0), 0);
        this.topOption.data = responses.map((res, index) => {
          return {
            title: logNames[index],
            text: textList[index],
            color: color[index],
            subtitle: '实时',
            count: res.data.total,
            allcount: '日志总数:' + allcount,
            key: '日志',
            click: () => {
              this.$router.push({path:router[index]});
            },
          };
        });
        this.loading = false;
      }).catch(error => {
        console.error("An error occurred:", error);
      });
    }
  },
};
</script>
<style>
  .el-font-size {
    font-size: 14px;
  }
.el-font-size {
  font-size: 14px;
}
.avue-text-ellipsis__text {
  font-size: 14px !important;
}
</style>