Compare commits

..
404 Commits
Author SHA1 Message Date
seaheart 7c4a1431c4 upgrade version 2026-02-14 23:10:07 +08:00
seaheart 81712dd62d Support chunk upload and breakpoint resume feature 2026-02-08 16:45:08 +08:00
seaheart 8371133228 merge v4.1.0 2025-02-23 16:49:20 +08:00
yinyuchen d7fe343455 upgrade version 2024-10-19 14:57:53 +08:00
yinyuchen 0533dd2c56 change log 2024-07-27 23:54:38 +08:00
yinyuchen 447eb14200 feat: search file dfs 2024-07-27 23:39:32 +08:00
yinyuchen b0b5a5ca35 feat: add space bin 2024-07-27 18:05:11 +08:00
yinyuchen 19e6503da0 feat: add space recycle bin 2024-07-24 22:58:51 +08:00
yinyuchen bc7737cd0e feat: space member batch create 2024-07-20 15:25:06 +08:00
yinyuchen db31b4f204 fix: USER role file size error 2024-07-20 12:41:25 +08:00
Simba fbfc9b7c83 Merge pull request #49 from shih6/bugfix/upload-progress-freeze
fix upload Progress freeze
2024-06-30 22:12:37 +08:00
yinyuchen dd7fbe762e update dingding qrcode 2024-06-26 22:50:51 +08:00
yinyuchen 2a78050f6b fix: share overview problem 2024-04-29 22:57:05 +08:00
yinyuchen 16e79ac4cf fix: dir problrm 2024-03-26 23:15:50 +08:00
seaheart db2efc5ab7 change version 2023-11-12 15:35:09 +08:00
seaheart dd29b890a8 fix: search file bug 2023-11-12 15:33:58 +08:00
seaheart 1809bc4e09 fix some safety problem and add copy share feature 2023-11-09 23:40:44 +08:00
seaheart 59a4bfcbb3 feat: remove matter dir copy link change 2023-11-09 22:43:45 +08:00
zhenbin e92b1f374b fix upload Progress freeze 2023-10-27 11:06:34 +08:00
seaheart 7c1c379bcb add previewer change 2023-08-12 21:22:14 +08:00
seaheart 714c506b49 fix: space list bug 2023-08-12 21:12:42 +08:00
seaheart 83d3db1000 change preference scan edit 2023-08-12 21:09:08 +08:00
seaheart 648eb9429a feat: change img previewer 2023-08-12 16:36:17 +08:00
seaheart 35b0c8194b feat: add preview style change 2023-08-12 14:33:20 +08:00
seaheart 2787c95916 upgrade image previewer 2023-08-12 12:42:00 +08:00
seaheart 46957d317e add space role handle limit 2023-07-22 20:28:45 +08:00
lishuang 51d4ae089f feat: change the new Space 2023-07-22 20:17:55 +08:00
seaheart 9c79130cea change style 2023-07-22 19:51:22 +08:00
seaheart e29943f8ad space list ui change 2023-07-22 19:48:35 +08:00
seaheart cb386d484d add permission 2023-07-22 19:36:00 +08:00
seaheart bb124b171c Merge branch 'v3.2.0' of github.com:eyebluecn/tank-front into v3.2.0 2023-07-22 19:05:56 +08:00
seaheart 6f9938100d fix some matter panel logic 2023-07-22 19:05:42 +08:00
lishuang 9a637a8edd feat: add the upload user info. 2023-07-22 18:51:53 +08:00
seaheart d64231f9cb add bin matter panel 2023-07-22 18:24:30 +08:00
seaheart a4191e7d77 add crawl description 2023-07-22 16:25:04 +08:00
seaheart e77efc4613 add crawl file 2023-07-22 16:07:45 +08:00
seaheart 1e89f8f706 add paste upload file 2023-07-11 23:03:30 +08:00
seaheart 48deb4cda0 fix share matter bug 2023-07-08 21:29:17 +08:00
seaheart 85aefeaa4b Merge branch 'v3.2.0' of github.com:eyebluecn/tank-front into v3.2.0 2023-07-08 20:32:10 +08:00
seaheart 66182572a6 fix share problem 2023-07-08 20:31:54 +08:00
lishuang ce734f6809 feat: fix the tag for space. 2023-07-08 19:56:56 +08:00
seaheart 1cd930fa08 change share preview api 2023-07-08 18:55:53 +08:00
seaheart 475fc05e72 change matter share preview and download 2023-07-08 18:51:46 +08:00
seaheart 3a07e6e42b change share matter page 2023-07-08 17:26:15 +08:00
seaheart b7fdf0d0c1 remove space share feature 2023-07-08 16:33:21 +08:00
seaheart 1e1c1c1fc9 add space upload matter map 2023-07-08 16:19:29 +08:00
seaheart 1f120407d7 add user space edit change 2023-07-08 14:59:37 +08:00
seaheart cd33a867fc add input size widget change 2023-07-08 13:53:03 +08:00
seaheart 6c33075e44 feat: add move api upgrade 2023-06-29 23:11:59 +08:00
seaheart ff159a7669 upgrade modal style 2023-06-28 23:06:20 +08:00
seaheart 2b07588a2f add space empty hint 2023-06-28 22:47:43 +08:00
seaheart 173bce9474 add delete batch add soft delete batch api change 2023-06-26 23:59:34 +08:00
seaheart 29da312337 matter delete api change 2023-06-26 23:16:22 +08:00
seaheart a1a1b03e14 Merge branch 'v3.2.0' of github.com:eyebluecn/tank-front into v3.2.0 2023-06-25 23:33:51 +08:00
seaheart c927a78e95 upgrade matter detail 2023-06-25 23:33:30 +08:00
lishuang b5acd8d167 Merge remote-tracking branch 'origin/master' into v3.2.0 2023-06-25 22:36:13 +08:00
seaheart 43c3a8b936 upload update 2023-06-25 22:26:28 +08:00
seaheart 498f101352 fix create matter directory 2023-06-25 22:01:33 +08:00
seaheart 792bb5ddaf add space file list 2023-06-16 23:03:07 +08:00
seaheart 73122e8c9b change dingding qrcode 2023-06-11 15:46:51 +08:00
seaheart 57237c254a feat: add space member 2023-06-01 23:24:29 +08:00
seaheart b553c82083 add space del logic 2023-05-27 14:33:18 +08:00
seaheart 641ebcbd33 add space crud 2023-05-27 12:33:30 +08:00
lishuang 03c6b3a572 style: endOfLine. 2023-05-13 19:21:52 +08:00
seaheart 6c019c6e03 prettier files 2023-05-13 19:13:24 +08:00
seaheart 4f25004331 add simple 2023-05-13 19:09:06 +08:00
seaheart 90b96456c1 fix: drag style 2023-05-13 15:31:34 +08:00
seaheart b39b36a8bc remove about menu in pc ua 2023-05-13 12:45:24 +08:00
lishuang 67aa157d10 style: reformat the codes. 2023-05-13 12:38:12 +08:00
simba 68ec19ebf7 change dingtalk qrcode 2022-06-30 23:26:16 +08:00
Simba 74a764b870 format util 2022-05-12 10:39:18 +08:00
simba 93b6d82770 3.1.6 2022-05-01 18:18:17 +08:00
simba 46a03a1877 remove prettier 2022-05-01 18:00:10 +08:00
simba bf595384d8 v3.1.6 2022-05-01 18:00:10 +08:00
lishuang fb8d60c09f Refine the format. 2022-04-28 18:38:32 +08:00
lishuang 5ad5cf04d6 Add support for jetbrains. 2022-04-28 18:38:32 +08:00
simba 1dd369fbb1 display capacity of exist 2022-04-10 22:27:58 +08:00
simba 16c84631fe fix mobile style 2022-04-10 20:58:53 +08:00
simba 0baa50ca30 fix some preview bug 2022-04-10 20:55:53 +08:00
simba 90603d5566 optimize the error tip of upload over limit size 2022-04-10 20:41:22 +08:00
simba 7d80a99e0e beautify the error tip of upload directory 2022-04-10 19:37:40 +08:00
lishuang a5a4062a9f Fix the demo host. 2022-04-04 21:48:56 +08:00
lishuang 711c7f89e8 Release v 3.1.5 2022-03-21 15:26:31 +08:00
lishuang 34e15b7634 Fix bug of TAG. ready to release v3.1.5 2022-03-21 15:25:31 +08:00
赋苏 c9b03ca8da Fix the bug of date-cell. 2022-03-20 18:50:02 +08:00
lishuang aeb7eff8bc Add default port and LICENSE. 2022-03-20 18:16:29 +08:00
lishuang 42377193db Fix the layout bug. 2022-03-20 16:05:40 +08:00
lishuang 4cedeaeb9b Ready to release version 3.1.4 2022-03-20 16:01:01 +08:00
simba 42e9c5ad2e fix: craco less warning 2022-03-19 20:24:40 +08:00
lishuang 98f2d3885a Fix the svg image cannot show bug. 2022-03-19 18:36:26 +08:00
lishuang f3d81e0739 Fix the svg image cannot show bug. 2022-03-19 18:35:15 +08:00
lishuang 08a0178d7b Update the webpack template. 2022-03-19 17:57:05 +08:00
lishuang 51ec423c9c Merge remote-tracking branch 'origin/master' into v3.1.4
# Conflicts:
#	README.md
2022-03-19 09:57:27 +08:00
eyeblue 267b106d1f Merge pull request #43 from eyebluecn/dependabot/npm_and_yarn/follow-redirects-1.14.9
Bump follow-redirects from 1.13.2 to 1.14.9
2022-03-19 09:55:52 +08:00
dependabot[bot] 231478738d Bump follow-redirects from 1.13.2 to 1.14.9
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.13.2 to 1.14.9.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.13.2...v1.14.9)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-19 01:45:22 +00:00
eyeblue 7eeee7e4df Merge pull request #42 from eyebluecn/dependabot/npm_and_yarn/color-string-1.9.0
Bump color-string from 1.5.4 to 1.9.0
2022-03-19 09:45:15 +08:00
eyeblue 1ff7de0878 Merge pull request #41 from eyebluecn/dependabot/npm_and_yarn/url-parse-1.5.10
Bump url-parse from 1.4.7 to 1.5.10
2022-03-19 09:44:54 +08:00
eyeblue c2ee104581 Merge pull request #37 from eyebluecn/dependabot/npm_and_yarn/path-parse-1.0.7
Bump path-parse from 1.0.6 to 1.0.7
2022-03-19 09:44:36 +08:00
eyeblue b21c05c6fa Merge pull request #36 from eyebluecn/dependabot/npm_and_yarn/merge-deep-3.0.3
Bump merge-deep from 3.0.2 to 3.0.3
2022-03-19 09:44:25 +08:00
eyeblue 510b1fbcfe Merge pull request #35 from eyebluecn/dependabot/npm_and_yarn/ws-6.2.2
Bump ws from 6.2.1 to 6.2.2
2022-03-19 09:44:01 +08:00
dependabot[bot] d3ec091d64 Bump path-parse from 1.0.6 to 1.0.7
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-19 01:43:50 +00:00
eyeblue f9c05133cd Merge pull request #34 from eyebluecn/dependabot/npm_and_yarn/dns-packet-1.3.4
Bump dns-packet from 1.3.1 to 1.3.4
2022-03-19 09:43:41 +08:00
dependabot[bot] a094c2c46e Bump ws from 6.2.1 to 6.2.2
Bumps [ws](https://github.com/websockets/ws) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/commits)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-19 01:43:32 +00:00
eyeblue 9d075514a5 Merge pull request #32 from eyebluecn/dependabot/npm_and_yarn/ssri-6.0.2
Bump ssri from 6.0.1 to 6.0.2
2022-03-19 09:43:16 +08:00
dependabot[bot] 0cad8d6bb3 Bump dns-packet from 1.3.1 to 1.3.4
Bumps [dns-packet](https://github.com/mafintosh/dns-packet) from 1.3.1 to 1.3.4.
- [Release notes](https://github.com/mafintosh/dns-packet/releases)
- [Changelog](https://github.com/mafintosh/dns-packet/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mafintosh/dns-packet/compare/v1.3.1...v1.3.4)

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-19 01:43:09 +00:00
dependabot[bot] 741493c012 Bump color-string from 1.5.4 to 1.9.0
Bumps [color-string](https://github.com/Qix-/color-string) from 1.5.4 to 1.9.0.
- [Release notes](https://github.com/Qix-/color-string/releases)
- [Changelog](https://github.com/Qix-/color-string/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Qix-/color-string/compare/1.5.4...1.9.0)

---
updated-dependencies:
- dependency-name: color-string
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-19 01:42:53 +00:00
eyeblue 61e05602c2 Merge pull request #29 from eyebluecn/dependabot/npm_and_yarn/react-dev-utils-11.0.4
Bump react-dev-utils from 10.2.1 to 11.0.4
2022-03-19 09:42:37 +08:00
eyeblue 71b677337e Merge pull request #28 from eyebluecn/dependabot/npm_and_yarn/axios-0.21.1
Bump axios from 0.19.2 to 0.21.1
2022-03-19 09:42:21 +08:00
lishuang 756904082e Change the version in readme. 2022-03-18 22:21:14 +08:00
lishuang aa5dfe53ec Finish the sqlite feature. 2022-03-18 22:18:44 +08:00
lishuang 205056591f Upgrade the gorm version. 2022-03-15 02:18:13 +08:00
赋苏 d2ae467685 Change the dingding. 2022-03-10 11:48:25 +08:00
lishuang 31a831ea88 Upgrade the base64 url and fix a bug. 2022-03-10 09:46:04 +08:00
dependabot[bot] c9f28294db Bump url-parse from 1.4.7 to 1.5.10
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.4.7 to 1.5.10.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.4.7...1.5.10)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-27 11:25:04 +00:00
eyeblue be40ed1f70 Merge pull request #39 from biuaxia/master
Feat add {b64Url} extension to the preview engine
2021-11-26 17:39:34 +08:00
biuaxia 62488d7742 Feat add {b64Url} extension to the preview engine 2021-11-19 09:49:40 +08:00
dependabot[bot] 284fe35bad Bump merge-deep from 3.0.2 to 3.0.3
Bumps [merge-deep](https://github.com/jonschlinkert/merge-deep) from 3.0.2 to 3.0.3.
- [Release notes](https://github.com/jonschlinkert/merge-deep/releases)
- [Commits](https://github.com/jonschlinkert/merge-deep/compare/3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: merge-deep
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-08 12:59:06 +00:00
dependabot[bot] ce5a66a15b Bump ssri from 6.0.1 to 6.0.2
Bumps [ssri](https://github.com/npm/ssri) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/npm/ssri/releases)
- [Changelog](https://github.com/npm/ssri/blob/v6.0.2/CHANGELOG.md)
- [Commits](https://github.com/npm/ssri/compare/v6.0.1...v6.0.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-20 02:47:17 +00:00
dependabot[bot] e5b9f7c3db Bump react-dev-utils from 10.2.1 to 11.0.4
Bumps [react-dev-utils](https://github.com/facebook/create-react-app/tree/HEAD/packages/react-dev-utils) from 10.2.1 to 11.0.4.
- [Release notes](https://github.com/facebook/create-react-app/releases)
- [Changelog](https://github.com/facebook/create-react-app/blob/master/CHANGELOG-1.x.md)
- [Commits](https://github.com/facebook/create-react-app/commits/HEAD/packages/react-dev-utils)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-12 15:08:40 +00:00
dependabot[bot] 42f0aa921c Bump axios from 0.19.2 to 0.21.1
Bumps [axios](https://github.com/axios/axios) from 0.19.2 to 0.21.1.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.19.2...v0.21.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-04 16:00:23 +00:00
Simba 1f6d6ccf3c remove sass loader and add yarn lock file. 2021-02-04 23:59:29 +08:00
zicla ab12cf138c Revert the change. 2021-01-19 16:24:24 +08:00
zicla 50aee9e176 Upgrade the ant-design version. 2021-01-19 16:21:08 +08:00
Simba 100a64f221 change user search text. 2021-01-05 23:18:00 +08:00
Simba a643366ddc transform class arrow function to class method function. 2021-01-05 23:18:00 +08:00
Simba 419789401f transform matter pages class arrow function to class method function. 2021-01-05 23:18:00 +08:00
Simba 2c835ea42f v3.1.2 2021-01-04 22:08:36 +08:00
Simba 666783e11e upload cancel. 2021-01-04 22:06:27 +08:00
lishuang 2894434ae8 Refine the variable scope. 2021-01-04 22:06:27 +08:00
lishuang 2b28317a8f Fix the large file upload bug. 2021-01-04 22:06:27 +08:00
lishuang 31ce6dca15 Fix the upload bug. 2021-01-04 22:06:27 +08:00
Simba c9a5fee48a upload matters. 2021-01-04 22:06:27 +08:00
lishuang b31cd37109 Fix the sort bug. 2021-01-04 22:06:27 +08:00
Simba 8786e2b427 matter list sort. 2021-01-04 22:06:27 +08:00
Simba 87cce788a5 preference recycle bin zero keep-day setting. 2021-01-04 22:06:27 +08:00
Simba 8165c13128 change soft del and hard del order. 2021-01-04 22:06:27 +08:00
Simba b7f4d87236 add scan immediately. 2021-01-04 22:06:27 +08:00
Simba 91ffc11b90 a little optimization. 2021-01-04 22:06:27 +08:00
Simba e2ad3d1caf matter list delete option soft or hard. 2021-01-04 22:06:27 +08:00
Simba 9bd725fc8e upload matter promote to global. 2021-01-02 14:37:13 +08:00
Simba affd0d0325 all-files menu navigate to all files index. 2021-01-02 14:05:21 +08:00
Simba b9402649c6 user role can not update sizeLimit and totalSizeLimit by self. 2021-01-02 13:47:56 +08:00
Simba 02298f9361 remove js-cookie. 2020-12-09 23:41:01 +08:00
Simba f698bdd6b0 mobile initial hide menu. 2020-11-26 23:24:43 +08:00
Simba ef85fda048 change version 2020-09-16 09:13:37 +08:00
Simba 27816d9303 release 3.1.1 2020-09-08 00:22:26 +08:00
Simba 52189867ea del useless component 2020-09-08 00:11:53 +08:00
Simba c127440207 declare dom file type 2020-09-08 00:03:52 +08:00
Simba d856e81c5f del upload directory tooltip 2020-09-07 23:55:46 +08:00
lishuang 36d4c81dd5 Rm the testing lib. 2020-09-07 23:52:31 +08:00
Simba 254bde20b9 change file type 2020-09-07 23:23:38 +08:00
Simba 153270fe9a fix share detail page refresh login 2020-09-06 15:32:19 +08:00
Simba 9fa6462bcd fix unlogin user open share file 2020-09-06 14:30:57 +08:00
Simba bb16ed3b21 support upload directory 2020-09-06 01:41:35 +08:00
Simba 32c881a875 update share detail responsive 2020-07-27 22:35:56 +08:00
Simba 5859dd5113 feat: share matter login not required 2020-07-26 21:45:24 +08:00
eyeblue 214b34ed28 Update SideLayout.tsx
Rm a import.
2020-07-21 10:40:54 +08:00
eyeblue ab7c915140 Update package.json
Fix the antd version.
2020-07-21 10:40:07 +08:00
Simba 0e8c223cfa add readme 2020-07-18 16:29:47 +08:00
lishuang e1838a5fac Fix the display for url. 2020-07-18 15:16:06 +08:00
Simba 813e9c9ae3 preference previewEngine default url 2020-07-18 15:14:04 +08:00
Simba 7bddd1e1c8 matter recovery 2020-07-18 15:04:48 +08:00
lishuang 392fd860f2 Fix the useless console log feature. 2020-07-18 14:52:39 +08:00
Simba 17a674d956 change bin list 2020-07-18 14:42:25 +08:00
lishuang 71bc7ebe8e Fix some style for about modal. 2020-07-18 14:40:17 +08:00
lishuang 18db3f5cae Fix some details. 2020-07-16 02:00:52 +08:00
Simba 9901920bc7 add recovery matter 2020-07-15 09:22:32 +08:00
Simba 0296d2f345 add recycle bin list 2020-07-14 23:08:31 +08:00
lishuang d880fc0487 Fix the share root uuid. 2020-07-12 23:32:31 +08:00
lishuang 058498093a Change the dashboard color. 2020-07-12 23:13:53 +08:00
lishuang 2ac3e24e7a Fix the response feature. 2020-07-12 23:10:59 +08:00
Simba f7f0351505 fix share detail preview and download problem 2020-07-12 23:09:53 +08:00
lishuang 8b9b6f6bd4 Fix the preview engine. 2020-07-12 22:08:55 +08:00
lishuang 4bcc3555ca Fix the share empty hint. 2020-07-12 21:49:49 +08:00
Simba e003175a02 preference add deletedKeepDays 2020-07-12 18:33:01 +08:00
Simba 46db40780a add default preview engines 2020-07-12 17:39:18 +08:00
lishuang 5b5f0d05c4 Fix the data error for dashboard. 2020-07-12 16:31:21 +08:00
Simba 93691bdb4f fix scan edit problem 2020-07-12 15:26:32 +08:00
Simba 00429b1f73 preference scan edit complete 2020-07-12 01:59:32 +08:00
lishuang b0029661e0 No longer need eslint. 2020-07-12 00:08:32 +08:00
lishuang 5325637deb Remove the service worker. 2020-07-12 00:06:15 +08:00
lishuang aee4a75428 Remove the service worker. 2020-07-12 00:02:47 +08:00
lishuang 820801af20 Add a field into matter. 2020-07-11 23:59:13 +08:00
lishuang e60cbd853f Finish the dashboard feature. 2020-07-11 22:16:10 +08:00
lishuang e61ff77284 Fix the lang time. 2020-07-11 21:58:51 +08:00
lishuang 4ec3c9f9ab Change some styles for the matter detail page. 2020-07-11 21:16:09 +08:00
Simba 202f6e54b7 preview engine 2020-07-11 21:07:13 +08:00
lishuang c3c5adffd7 Add etl feature. 2020-07-11 21:05:32 +08:00
Simba 7ff2e70853 fix user detail style problem 2020-07-11 18:06:33 +08:00
Simba 9981b2f56d Merge branch 'master' of github.com:eyebluecn/tank-front 2020-07-11 17:42:19 +08:00
Simba cbc1cbe9f4 add mobile user list 2020-07-11 17:42:08 +08:00
lishuang 99eca5420e Add the physic. 2020-07-11 17:38:56 +08:00
Simba eb072dc5a9 matter list refresh code upgrade 2020-07-02 18:51:37 +08:00
Simba 14bf34fbc6 use template string instead of common string 2020-07-01 17:38:44 +08:00
Simba 5d6d11aa7d add webpack theme change and dynamic antd style import 2020-07-01 15:16:26 +08:00
Simba ec90f66d94 add polyfill 2020-06-30 15:35:42 +08:00
Simba 7d8e245e14 fix a breadcrumb bug 2020-06-24 00:49:37 +08:00
Simba 65456dfccc some internationalization 2020-06-24 00:08:29 +08:00
Simba 7bfc98a0ff add about modal 2020-06-23 23:58:57 +08:00
Simba 061ade451a fix a share bug 2020-06-21 21:39:53 +08:00
Simba 85810b5767 preference engines style 2020-06-21 21:23:12 +08:00
Simba 7bb3d6fe3b preference engines internationalization 2020-06-21 20:46:22 +08:00
Simba 3b7da44cc7 preference index engines 2020-06-21 19:34:16 +08:00
lishuang 9d8d3d35da Remove some useless things. 2020-06-21 18:06:18 +08:00
lishuang 62466ff1d4 Add the url remark. 2020-06-21 17:38:03 +08:00
lishuang 8e9ee8df71 Finish the preview. 2020-06-21 17:32:11 +08:00
lishuang 08f5a9f186 Finish the preview. 2020-06-21 17:21:14 +08:00
Simba 49413436c1 batch move style 2020-06-21 16:10:59 +08:00
Simba 6afbc93199 add infoCell 2020-06-21 15:01:41 +08:00
Simba 41b5b44403 add some icon 2020-06-21 14:09:25 +08:00
lishuang b34f66ad8c Finish the Rough preview engine feature. 2020-06-21 03:33:27 +08:00
lishuang 1d8eb74ba7 Ready to reuse the Form.Item. 2020-06-21 03:13:04 +08:00
Simba 0dc139c087 matter and share tooltips 2020-06-21 02:51:24 +08:00
lishuang 92eb82e207 Add the preview config and engine model. 2020-06-21 02:41:36 +08:00
Simba 2f76483d05 matter and share internationalization 2020-06-21 02:20:48 +08:00
Simba 3ae906b07e drag matter complete 2020-06-21 01:02:59 +08:00
lishuang e41ae5e5b5 Finish the System cleanup feature. 2020-06-21 00:12:29 +08:00
lishuang 43ab1290f5 Finish the user delete feature. 2020-06-21 00:04:43 +08:00
lishuang 13a3020633 Finish the Breadcrumb panel. 2020-06-20 21:26:43 +08:00
Simba 9e505f2003 matter image 2020-06-20 21:25:38 +08:00
lishuang 7803fd0dba Finish the Breadcrumb feature for all files. 2020-06-20 21:10:01 +08:00
lishuang 7f9425fc61 Reformat the matter List view. 2020-06-20 20:27:05 +08:00
lishuang dc377984ff Finish the I18N work for install module. 2020-06-20 18:13:35 +08:00
lishuang 057feb28e2 Refine the Lang module. 2020-06-20 17:40:46 +08:00
lishuang 5681238cd0 Ready to migrate lang from Moon to Lang. 2020-06-20 17:35:21 +08:00
lishuang 43f3712f54 Finish the i18n for user model. 2020-06-20 17:28:28 +08:00
Simba 736d0120b7 share detail complete 2020-06-20 17:13:12 +08:00
lishuang 5483b99376 Finish the i18n work for preference and dashboard. 2020-06-20 16:18:31 +08:00
lishuang f13543c54e Add the i18n frame. 2020-06-20 15:17:47 +08:00
lishuang 00a9e71de9 Ready to refine the global i18n feature. 2020-06-20 14:11:22 +08:00
lishuang f058642d69 Fix the copyright and record feature. 2020-06-20 13:46:40 +08:00
lishuang 7fd650024e Fix the responsive feature for the Layout. 2020-06-20 01:52:19 +08:00
lishuang edc6c9c562 Finish the rough frame layout. 2020-06-20 01:37:42 +08:00
lishuang 65b8de8db0 Finish the main layout. 2020-06-20 01:10:24 +08:00
lishuang eada6b5005 Ready to refine the whole frame. 2020-06-20 00:30:16 +08:00
lishuang bb397d0639 Fix the log and favicon feature. 2020-06-20 00:05:31 +08:00
Simba 86852f6714 matter list share 2020-06-19 23:35:39 +08:00
Simba 7b1af51fe6 share operation alpha 2020-06-19 17:59:52 +08:00
simba 61746f5ebf test github account 2020-06-19 10:08:44 +08:00
Simba 231d89ae5c complete share list 2020-06-18 23:58:13 +08:00
Simba a1fb2f9ba5 use sun global router 2020-06-18 22:42:27 +08:00
simba 9782fd929a share components begin 2020-06-18 18:39:49 +08:00
simba d0dab0894c mobile matter detail cache handles expanding 2020-06-17 11:57:25 +08:00
Simba 422f716d36 use velocity-react instead of cssTransitionGroup and velocity-animate 2020-06-17 09:28:19 +08:00
simba 1fa200e0fd mobile matter list handles expanding 2020-06-16 18:19:21 +08:00
Simba c83edd2209 matter list mobile handles visible without transition 2020-06-16 00:10:50 +08:00
Simba 328946944d download token 2020-06-15 21:32:29 +08:00
simba 700a2eff60 share model 2020-06-15 18:18:02 +08:00
Simba 8871c7873d matter detail 2020-06-14 18:29:18 +08:00
Simba 47faafa27d complete file page 2020-06-13 21:06:07 +08:00
Simba f0aac156a2 search file 2020-06-13 16:53:04 +08:00
Simba 148a0052e3 complete move batch 2020-06-13 16:33:42 +08:00
Simba 68d6fa0176 alpha move batch 2020-06-13 01:06:17 +08:00
lishuang cc8d2c8729 Finis the preview feature. 2020-06-13 00:44:56 +08:00
lishuang 34ef6e4ec9 Finish the pdf preview. 2020-06-13 00:35:34 +08:00
Simba 3c97f38c5e prepare batchMove 2020-06-12 08:56:09 +08:00
simba 750478036c change native button to Button 2020-06-11 18:15:24 +08:00
simba 9a0f787484 use launchUpload with reactComponent 2020-06-10 17:06:26 +08:00
Simba 9e99a5f30a complete file upload progress 2020-06-10 00:17:46 +08:00
Simba f471691292 complete file upload 2020-06-08 23:07:35 +08:00
lishuang dd20af4c19 Finish all the work for installing. 2020-06-07 22:16:31 +08:00
lishuang 3902a657ee Finish the Install UI. 2020-06-07 21:58:53 +08:00
lishuang 84cfc03d29 Add a line. 2020-06-07 21:37:46 +08:00
lishuang af41bbe7a3 Finish the first install pipeline work. 2020-06-07 21:29:18 +08:00
Simba ea4c9428a1 Merge remote-tracking branch 'origin/react-refine' into react-refine 2020-06-07 21:28:24 +08:00
Simba 328bc4c712 matter list some function complete 2020-06-07 21:28:00 +08:00
lishuang 17b4dbb191 Finish the separate work for SetAdmin panel. 2020-06-07 21:02:18 +08:00
lishuang 7569ca9c87 Finish all the feature of CreateTablePanel. 2020-06-07 20:14:12 +08:00
lishuang 754c86a7c5 Finish the MysqlPanel. 2020-06-07 19:36:20 +08:00
lishuang 023bb4a3a1 Add tabs for install. 2020-06-07 17:56:42 +08:00
lishuang 16adebaebf Add the frame for install. 2020-06-07 17:43:02 +08:00
lishuang 7ae8dd128f Refine the MessageBox usage. 2020-06-07 17:20:47 +08:00
lishuang e9863403fe Ready to do the install work. 2020-06-07 17:00:31 +08:00
Simba 260462465e matter goto directory 2020-06-07 16:55:39 +08:00
lishuang de63f1e3d4 Add the dashboard hint. 2020-06-07 16:36:59 +08:00
lishuang 33b48e0e2d Finish all the dashboard view. 2020-06-07 16:33:29 +08:00
lishuang d62192fa39 Finish the card and line charts. 2020-06-07 16:19:48 +08:00
lishuang 62c183470a Import the echarts. Ready to combine the dashboard data. 2020-06-07 16:00:19 +08:00
lishuang 3819c8e24e Add the card dashboard feature. 2020-06-07 15:37:58 +08:00
lishuang cca1a55647 Add placeholder of Dashboard. Add ImagePreviewer. 2020-06-07 15:19:58 +08:00
lishuang a4ae20f458 Finish all the UserList feature. 2020-06-07 14:33:04 +08:00
lishuang 7009d94648 Finish the ImagePreviewer module. 2020-06-07 00:54:59 +08:00
lishuang d227d231db Fix the user/detail page. Add the Authentication login method. 2020-06-07 00:46:39 +08:00
Simba b8cd2e5d4d matter simple handle complete 2020-06-07 00:24:17 +08:00
lishuang 422b5bda20 Finish the transfiguration feature. 2020-06-07 00:23:15 +08:00
lishuang 5f0455c676 Add the change password and reset password feature. 2020-06-07 00:11:50 +08:00
Simba e4b9e58a41 add rename matter 2020-06-06 23:43:04 +08:00
lishuang 8babfa9d67 Add the User Detail page. 2020-06-06 21:59:18 +08:00
lishuang 30b2a5ba09 Finish the Image Resize feature. 2020-06-06 21:31:33 +08:00
Simba 290eab243b feat: axios return promise 2020-06-06 21:18:46 +08:00
lishuang 9bab8765c4 Try to use the old html. 2020-06-06 21:13:27 +08:00
Simba e3d34dde82 some matter change 2020-06-06 19:22:21 +08:00
lishuang 3e9533a624 Ready to add the UserDetail page. 2020-06-06 19:04:11 +08:00
lishuang 41df6e08ed Finish the create feature of user. 2020-06-06 18:54:53 +08:00
lishuang 3e0fe86a4b Add the Edit. 2020-06-06 18:22:41 +08:00
lishuang 469d3d93f9 Finish the rough feature of PreferenceForm. 2020-06-06 17:13:06 +08:00
lishuang d07a7d229c Refine the form of Preference. 2020-06-06 17:04:35 +08:00
Simba 2eddd832e8 add matter model 2020-06-06 15:08:08 +08:00
lishuang c7ffa53463 Change the images. 2020-06-06 14:52:14 +08:00
lishuang be436f6679 Add the UserList. 2020-06-06 14:39:12 +08:00
lishuang 8e17ad1c5f Finish the Preference Index and Edit page. 2020-06-06 14:26:35 +08:00
lishuang 622b8129fb Finish the Preference index page. 2020-06-06 14:06:28 +08:00
lishuang b8599d15d0 Fix the crash error. 2020-06-06 12:20:41 +08:00
Simba 2fa3fca071 fix some problems 2020-06-06 12:17:05 +08:00
lishuang a67e0e1e23 Refine some golbal. 2020-06-06 12:07:46 +08:00
Simba 67ace29f28 add some utils 2020-06-06 12:06:07 +08:00
lishuang 31011d65ed Change Bamboo to Tank. 2020-06-06 11:57:14 +08:00
lishuang f9ed88b84f Add the placeholder for preference. 2020-06-06 11:49:44 +08:00
lishuang 7bf0fc6c77 Finish the login page. 2020-06-06 01:07:59 +08:00
lishuang 5b7d29de4d Finish the Login page. 2020-06-06 00:51:11 +08:00
lishuang bc01b42182 Use TankComponent. 2020-06-06 00:33:45 +08:00
lishuang 9ca77eb501 Find reactComponent back. 2020-06-06 00:33:13 +08:00
lishuang 36a890ceb4 Add the feature. 2020-06-06 00:24:22 +08:00
lishuang 232c63af60 Remove the reactComponent. 2020-06-06 00:20:11 +08:00
Simba 686ff1dcde transfer some dependency to devDenpendency 2020-06-06 00:18:20 +08:00
lishuang 7bad1db7e6 Commit the matter. 2020-06-06 00:05:24 +08:00
lishuang 3a2a5bab2a Add the main frame. 2020-06-06 00:04:03 +08:00
lishuang ddbc94e854 Change the port. 2020-06-05 23:45:01 +08:00
lishuang 7332a1807d add the bamboo demo 2020-06-05 23:26:14 +08:00
lishuang 03bb3f4881 Finish the first version of tank from bamboo. 2020-06-05 23:21:18 +08:00
lishuang 397cc7af58 Remove the jest tests. Add the support for less. Keep the class name. Add antd. 2020-06-05 22:47:36 +08:00
lishuang 2afa8c6f0f run eject 2020-06-05 22:31:58 +08:00
lishuang 9894b3196f Let's refine tank by react+antd. 2020-06-05 22:26:59 +08:00
lishuang 094d6961e2 Add the custom api for office preview. 2020-05-09 02:20:49 +08:00
lishuang 4e5796159f Finish the charset for mysql. 2020-05-06 02:21:29 +08:00
zicla 2409817980 Remove the package-lock.json 2020-03-11 00:52:42 +08:00
eyeblue 641830255f Merge pull request #20 from eyebluecn/dependabot/npm_and_yarn/mixin-deep-1.3.2
Bump mixin-deep from 1.3.1 to 1.3.2
2020-03-11 00:46:50 +08:00
eyeblue 347598abac Merge pull request #21 from eyebluecn/dependabot/npm_and_yarn/lodash.defaultsdeep-4.6.1
Bump lodash.defaultsdeep from 4.6.0 to 4.6.1
2020-03-11 00:46:32 +08:00
dependabot[bot] f010f8a709 Bump lodash.defaultsdeep from 4.6.0 to 4.6.1
Bumps [lodash.defaultsdeep](https://github.com/lodash/lodash) from 4.6.0 to 4.6.1.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.6.0...4.6.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-03-10 16:46:14 +00:00
eyeblue 26f6e00d15 Merge pull request #22 from eyebluecn/dependabot/npm_and_yarn/lodash-4.17.15
Bump lodash from 4.17.11 to 4.17.15
2020-03-11 00:45:10 +08:00
dependabot[bot] 8720c172b0 Bump lodash from 4.17.11 to 4.17.15
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.11 to 4.17.15.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.11...4.17.15)

Signed-off-by: dependabot[bot] <support@github.com>
2020-03-10 16:44:36 +00:00
dependabot[bot] 4922ba1082 Bump mixin-deep from 1.3.1 to 1.3.2
Bumps [mixin-deep](https://github.com/jonschlinkert/mixin-deep) from 1.3.1 to 1.3.2.
- [Release notes](https://github.com/jonschlinkert/mixin-deep/releases)
- [Commits](https://github.com/jonschlinkert/mixin-deep/compare/1.3.1...1.3.2)

Signed-off-by: dependabot[bot] <support@github.com>
2020-03-10 16:44:18 +00:00
zicla 24d91ae7cc Merge remote-tracking branch 'origin/feat-compress-code' 2020-03-11 00:44:00 +08:00
eyeblue 3f6fcd408e Merge pull request #17 from eyebluecn/dependabot/npm_and_yarn/eslint-utils-1.4.3
Bump eslint-utils from 1.3.1 to 1.4.3
2020-03-11 00:41:21 +08:00
simba 643bd8ee80 feat: compress build code. 2019-11-19 18:20:20 +08:00
eyeblue d8195aede5 Merge pull request #16 from eyebluecn/fix-search
fix: some search problems.
2019-11-18 21:20:26 +08:00
simba 88a7f64510 feat: add web folder copy link. 2019-11-18 21:14:18 +08:00
dependabot[bot] 4884b953ce Bump eslint-utils from 1.3.1 to 1.4.3
Bumps [eslint-utils](https://github.com/mysticatea/eslint-utils) from 1.3.1 to 1.4.3.
- [Release notes](https://github.com/mysticatea/eslint-utils/releases)
- [Commits](https://github.com/mysticatea/eslint-utils/compare/v1.3.1...v1.4.3)

Signed-off-by: dependabot[bot] <support@github.com>
2019-11-02 22:37:29 +00:00
simba d85dd443e0 fix: some search problems. 2019-10-18 22:35:42 +08:00
zicla 76255dc098 Release 3.0.6 2019-10-13 16:59:03 +08:00
simba aab1d1b48d fix: keyword search. 2019-10-11 22:15:05 +08:00
simba a6b8643941 feat: delete useless code. 2019-09-04 22:50:17 +08:00
simba dd99108afd feat: update drag file icon. 2019-09-04 22:13:56 +08:00
eyeblue 23f7c50106 Merge pull request #14 from eyebluecn/feat-drop-exquiste
Accept.
2019-08-31 22:53:19 +08:00
simba 55da380795 feat: add drag file background. 2019-08-31 21:44:50 +08:00
eyeblue 912536c620 Merge pull request #13 from eyebluecn/feat-drag-file
Accept. This feature will release on 3.1.0
2019-08-29 00:08:00 +08:00
simba 73e4670f8b feat: format code. 2019-08-28 23:50:36 +08:00
simba 9e7c2cbf5a feat: add drop file without format. 2019-08-28 09:12:34 +08:00
simba 9dbb8d4001 feat: update category. 2019-08-24 22:24:08 +08:00
simba 56b39b698d feat: adjust views. 2019-08-24 18:25:47 +08:00
eyeblue 2f545a343f Merge pull request #10 from eyebluecn/feat-update-category
Accept feat: adjust category and views
2019-08-24 17:53:16 +08:00
simba 28eb0a01bd feat: adjust views. 2019-08-24 17:22:12 +08:00
simba ebe2651ce8 feat: adjust category. 2019-08-24 16:58:37 +08:00
zicla 91eb8485f3 Fix the static path issue. 2019-06-11 01:13:47 +08:00
zicla 9fd02b75a8 Ready to release 3.0.4 2019-06-11 01:01:40 +08:00
zicla b355245a9c Update some Words. 2019-06-06 02:32:22 +08:00
zicla a24c8f66a5 Add the feature of creating user. 2019-06-04 02:39:24 +08:00
zicla b42bbe1206 Ready to release 3.0.3 2019-05-31 03:05:54 +08:00
zicla 9d011ae992 Fix some i18n bug. 2019-05-31 02:58:03 +08:00
zicla 4807ea1d21 Add the doc link. 2019-05-29 02:53:04 +08:00
zicla ce9b721ebc Try to release 3.0.2 2019-05-27 00:36:47 +08:00
zicla 67fca9e181 Fix the move bug. 2019-05-27 00:07:27 +08:00
simba 954c59c3f8 update some UI 2019-05-25 17:57:04 +08:00
simba 434453cee5 fix a mobile display bug,that will cause component do not redraw 2019-05-25 14:36:25 +08:00
zicla 24e8634af6 Fix the title for docs and project. 2019-05-24 16:09:16 +08:00
zicla 70eb01366e Ready to release 3.0.0 2019-05-23 03:00:41 +08:00
zicla 74a5d9c5fd Merge remote-tracking branch 'origin/master'
# Conflicts:
#	build/webpack.base.conf.js
2019-05-23 02:59:16 +08:00
zicla e9a820c520 Try to release 3.0.0 version. 2019-05-23 01:41:10 +08:00
zicla 9407bd2a18 Fix some i18n issue. 2019-05-23 01:39:50 +08:00
zicla 9cc097052a Fix a UI style. 2019-05-21 21:13:38 +08:00
zicla fd0d35c8d9 Change the prefix. 2019-05-21 03:32:39 +08:00
zicla 20d048501f Release 3.0.0.beta4. 2019-05-20 03:11:11 +08:00
zicla bda9e35666 Finish all the i18n things. 2019-05-20 00:38:52 +08:00
zicla 8a99f3b518 Fix the bug of i18n in preview panel. 2019-05-17 15:27:27 +08:00
zicla 33c84a8755 Upgrade the vue framework. 2019-05-17 02:45:46 +08:00
zicla 20fb208307 Finish half of i18n work. Ready to release 3.0.0.beta3 2019-05-10 02:57:00 +08:00
zicla b71ccf3971 Finish half of i18n work. 2019-05-09 01:59:06 +08:00
zicla f85083b94a pack 3.0.0.beta2. 2019-05-07 02:19:03 +08:00
zicla d4149e6c3c Fix some bug. 2019-05-07 01:33:59 +08:00
zicla 4496015f25 Remove the useless style. 2019-05-07 00:28:27 +08:00
zicla 8a67016f6e Update version. 2019-05-05 11:13:01 +08:00
zicla 30bf6eddb1 Finish the transfiguration feature. 2019-05-04 03:24:44 +08:00
zicla d6df67b5ec Refine the user model. 2019-05-04 02:35:03 +08:00
zicla c7008edeb0 Refine the user model. 2019-05-04 01:24:10 +08:00
zicla 1630b40b88 Remove some pngs. 2019-05-01 21:48:07 +08:00
zicla 66ee627ae3 Finish the archive download feature. 2019-05-01 19:53:55 +08:00
zicla 50c78d81da Ready to add the preview and download feature in the share bar. 2019-05-01 03:05:06 +08:00
zicla c0df04a108 Try to add the download things. 2019-05-01 01:44:46 +08:00
zicla 0e68a364d2 Ready to abstract the copy codes. 2019-04-30 23:56:21 +08:00
zicla 30422d2a02 Try to abstract the ShareDialogPanel. 2019-04-30 23:42:43 +08:00
赋苏 68841881ac Go for 5.1 now. 2019-04-30 18:43:59 +08:00
zicla b913dbe007 Finish the UI of share. 2019-04-30 03:35:43 +08:00
赋苏 676488208a Finish the feature of Share and Bridge. 2019-04-29 21:15:05 +08:00
zicla 778d0f8884 Change something in Preference. 2019-04-29 02:42:33 +08:00
赋苏 aa8ede1f75 Fix some detail bugs. 2019-04-28 22:30:00 +08:00
zicla f2eed257ba Reformat. 2019-04-18 02:40:53 +08:00
zicla c83253f476 Change some detail for ImageCache. 2019-04-10 02:00:36 +08:00
zicla 0111c3c49a Add the system cleaup feature. 2019-04-04 03:19:45 +08:00
zicla 946f4c5dc3 Fix the avatar upload things. 2019-04-02 02:42:37 +08:00
zicla 2dcd263417 Revert to the normal version. 2019-04-01 01:55:23 +08:00
seaheart c6435fc123 性能优化,路由懒加载 2019-03-22 00:16:06 +08:00
seaheart 9ab8700027 性能优化,路由懒加载 2019-03-22 00:14:48 +08:00
赋苏 35a7b693ec Fix the resize-detector. 2019-03-21 11:35:05 +08:00
zicla 9e1300c6da kick off v3 2019-03-01 01:09:06 +08:00
431 changed files with 33859 additions and 22713 deletions
-18
View File
@@ -1,18 +0,0 @@
{
"presets": [
["env", {
"modules": false,
"targets": {
"browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
}
}],
"stage-2"
],
"plugins": ["transform-runtime"],
"env": {
"test": {
"presets": ["env", "stage-2"],
"plugins": ["istanbul"]
}
}
}
-9
View File
@@ -1,9 +0,0 @@
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
-8
View File
@@ -1,8 +0,0 @@
/build/
/config/
/dist/
/static/
/*.js
src/common/fork/*
-65
View File
@@ -1,65 +0,0 @@
// https://eslint.org/docs/user-guide/configuring
module.exports = {
root: true,
parser: 'babel-eslint',
parserOptions: {
sourceType: 'module'
},
env: {
browser: true,
},
// https://github.com/standard/standard/blob/master/docs/RULES-en.md
extends: 'standard',
// required to lint *.vue files
plugins: [
'html'
],
// add your custom rules here
'rules': {
// allow paren-less arrow functions
'arrow-parens': 0,
// allow async-await
'generator-star-spacing': 0,
// allow debugger during development
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
//ignore the paren check before function.
'space-before-function-paren': [0, 'always'],
//ignore the space before block.
'space-before-blocks': [0, 'always'],
//ignore the empty line check.
'no-multiple-empty-lines': [0, {'max': 2}],
//semicolon or no semicolon is ok.
'semi': [0, 'always'],
//ignore the space before or after =>
'arrow-spacing': 0,
//the type of quotes
'quotes': [0, 'single'],
//block can be padded by blank lines
'padded-blocks': 0,
//comma spacing before or after.
'comma-spacing': 0,
//key spacing.
'key-spacing': [0, {'beforeColon': false, 'afterColon': true}],
//trailing spaces
'no-trailing-spaces': 0,
//spaced comment
'spaced-comment': 0,
//keyword-spacing
'keyword-spacing': 0,
'space-in-parens': 0,
'no-extend-native': 0,
'no-useless-escape': 0,
'no-unused-vars': 0,
'no-undef': 0,
'no-tabs': 0,
'indent': 0,
'no-multi-spaces': 0,
'eol-last': 0,
'no-template-curly-in-string': 0,
'no-mixed-spaces-and-tabs': 0,
'handle-callback-err': 0,
"import/no-webpack-loader-syntax": "off"
}
}
+23 -2
View File
@@ -1,6 +1,23 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# production
/build
# misc
.DS_Store
node_modules/
/dist/
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*
@@ -12,3 +29,7 @@ yarn-error.log*
*.ntvs*
*.njsproj
*.sln
draft.html
report.*.json
draft.txt
-8
View File
@@ -1,8 +0,0 @@
// https://github.com/michael-ciniawsky/postcss-load-config
module.exports = {
"plugins": {
// to edit target browsers: use "browserslist" field in package.json
"autoprefixer": {}
}
}
-27
View File
@@ -1,27 +0,0 @@
# 蓝眼云盘
2018-04-12
tank-1.0.3
1. 添加了多文件同时上传的功能.
2. 开发情况下有可能上传的文件路径没有权限,添加了更多提示.
2018-01-19
tank-1.0.2
1. 修复了下载时无法估算文件大小的bug,header头重添加了Content-Type. [#2](https://github.com/eyebluecn/tank/issues/2)
2. 修复了移动端样式混乱的问题.[#3](https://github.com/eyebluecn/tank/issues/3)
3. 修复了文夹层数无上限的bug. [#4](https://github.com/eyebluecn/tank/issues/4)
4. 修复了文件夹自己移动到自己后就全部消失的bug. [#8](https://github.com/eyebluecn/tank/issues/8)
5. 统一不能删除用户,但是可以禁用或者启用用户. [#9](https://github.com/eyebluecn/tank/issues/9)
2018-01-12
tank-1.0.1
1. 修复面包屑回退的bug [#1](https://github.com/eyebluecn/tank/issues/1)
2. 修复移动文件时,可能移到其他人的文件夹下的bug
3. 新增404页面
4. 移除掉一些没用的代码
2018-01-01
tank-1.0.0
完成基本核心功能
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2017 蓝眼
Copyright (c) 2017 eyebluecn
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
+50 -53
View File
@@ -1,71 +1,68 @@
![蓝眼云盘logo](https://raw.githubusercontent.com/eyebluecn/tank/master/build/doc/img/logo.png)
[![蓝眼云盘logo](./doc/img/logo.png)](https://github.com/eyebluecn/tank)
# 蓝眼云盘前端
[English Version](https://tank-doc.eyeblue.cn/en)
##### [在线Demo](http://tank.eyeblue.cn) (体验账号: demo@tank.eyeblue.cn 密码:123456)
# 蓝眼云盘(4.2.0)
[在线Demo](https://tank.eyeblue.cn) (体验账号:demo 密码:123456)
##### [配套后端tank](https://github.com/eyebluecn/tank)
[更新文档 CHANGELOG](https://github.com/eyebluecn/tank/blob/master/CHANGELOG)
### 简介
蓝眼云盘是前后端彻底分离的项目,本项目主要为后端提供静态资源文件。更多关于蓝眼云盘的介绍,请参考[蓝眼云盘后端](https://github.com/eyebluecn/tank)
蓝眼云盘是蓝眼开源系列代表作品之一,致力于打造精致,优雅,简约的云盘。核心功能如下:
1. 文件列表
2. 文件/文件夹上传 + 拖拽上传 + 分片/断点续传
3. 文件分享
4. 文件监控统计
5. 回收站
6. 多用户
7. [WebDav](https://tank-doc.eyeblue.cn/advance/webdav.html)
8. [扫描磁盘任务](https://tank-doc.eyeblue.cn/advance/scan.html)
9. [在线预览及自定义配置预览引擎](https://tank-doc.eyeblue.cn/advance/preview.html)
10. 无需安装数据库,支持文件数据库sqlite.
如果您觉得蓝眼云盘对您有帮助,请不要吝惜您的star :smile:
[更多内容请移步至文档](https://tank-doc.eyeblue.cn/)
### 技术栈
vue2.0 + vue-router + vuex + vue-resource + webpack + es6 + less
### 运行
```
npm install
npm run dev
```
如果你有自己的tank后端,也可以在`config/index.js`中`proxyTable.target`修改为自己tank所在地址
### 打包
```
npm run build
```
打包的结果在`dist`文件夹下,将该文件夹下的内容放置在[后端tank](https://github.com/eyebluecn/tank)的`build/html`文件夹下即可。
### 配套后端
此项目有配套后端项目,对golang感兴趣的同学可以猛戳 [配套后端tank](https://github.com/eyebluecn/tank)
### 总结
1、 蓝眼的宗旨是专注于开源精致而优雅的软件,所以在代码的构建过程中我们不停地思考与迭代,追求最优质的代码。
2、 蓝眼云盘前端代码的构建完全面向对象,可扩展能力强,涉及多用户,多权限功能。
3、 蓝眼云盘后端采用了更贴近底层golang语言,更加适用于文件传输类的软件,速度更快,用户体验更好。
### Contribution
感谢所有蓝眼云盘的贡献者 [@zicla](https://github.com/zicla),[@seaheart](https://github.com/seaheart),@heying,[@hxsherry](https://github.com/hxsherry)
如果您也想参与进来,请尽情的fork, star, post issue, pull requests
前端技术栈:Typescript + React + Ant Design 4.0 + OOP
### 软件截图
#### PC端截图
![](https://raw.githubusercontent.com/eyebluecn/tank/master/build/doc/img/tank0.png)
![](./doc/img/tank0.png)
![](https://raw.githubusercontent.com/eyebluecn/tank/master/build/doc/img/tank1.png)
![](./doc/img/tank1.png)
![](https://raw.githubusercontent.com/eyebluecn/tank/master/build/doc/img/tank2.png)
![](https://raw.githubusercontent.com/eyebluecn/tank/master/build/doc/img/tank3.png)
![](https://raw.githubusercontent.com/eyebluecn/tank/master/build/doc/img/tank4.png)
![](./doc/img/tank2.png)
#### 手机端截图
![](https://raw.githubusercontent.com/eyebluecn/tank/master/build/doc/img/mobile.png)
![](./doc/img/mobile.png)
## [安装文档](https://tank-doc.eyeblue.cn/basic/install.html)
## 启动本项目
```shell
# if not install yarn
# npm install -g yarn
yarn --registry=https://registry.npmmirror.com
yarn start
```
### Contribution
感谢所有蓝眼云盘的贡献者 [@zicla](https://github.com/zicla),[@seaheart](https://github.com/seaheart),[@yemuhe](https://github.com/yemuhe),[@hxsherry](https://github.com/hxsherry)
如果您也想参与进来,请尽情的fork, star, post issue, pull requests
当然你可以加入钉钉群(一群已满员)一起直接交流,在钉钉群中可以获取最新beta版本。
![](./doc/img/dingding.jpeg)
群号:44754005
### Support
IDE for this project is supported by [Jetbrains](https://jb.gg/OpenSourceSupport).
[![](./doc/img/jb_beam.png)](https://jb.gg/OpenSourceSupport)
### License
-41
View File
@@ -1,41 +0,0 @@
'use strict'
require('./check-versions')()
process.env.NODE_ENV = 'production'
const ora = require('ora')
const rm = require('rimraf')
const path = require('path')
const chalk = require('chalk')
const webpack = require('webpack')
const config = require('../config')
const webpackConfig = require('./webpack.prod.conf')
const spinner = ora('building for production...')
spinner.start()
rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
if (err) throw err
webpack(webpackConfig, function (err, stats) {
spinner.stop()
if (err) throw err
process.stdout.write(stats.toString({
colors: true,
modules: false,
children: false,
chunks: false,
chunkModules: false
}) + '\n\n')
if (stats.hasErrors()) {
console.log(chalk.red(' Build failed with errors.\n'))
process.exit(1)
}
console.log(chalk.cyan(' Build complete.\n'))
console.log(chalk.yellow(
' Tip: built files are meant to be served over an HTTP server.\n' +
' Opening index.html over matter:// won\'t work.\n'
))
})
})
-49
View File
@@ -1,49 +0,0 @@
'use strict'
const chalk = require('chalk')
const semver = require('semver')
const packageConfig = require('../package.json')
const shell = require('shelljs')
function exec (cmd) {
return require('child_process').execSync(cmd).toString().trim()
}
const versionRequirements = [
{
name: 'node',
currentVersion: semver.clean(process.version),
versionRequirement: packageConfig.engines.node
}
]
if (shell.which('npm')) {
versionRequirements.push({
name: 'npm',
currentVersion: exec('npm --version'),
versionRequirement: packageConfig.engines.npm
})
}
module.exports = function () {
const warnings = []
for (let i = 0; i < versionRequirements.length; i++) {
const mod = versionRequirements[i]
if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
warnings.push(mod.name + ': ' +
chalk.red(mod.currentVersion) + ' should be ' +
chalk.green(mod.versionRequirement)
)
}
}
if (warnings.length) {
console.log('')
console.log(chalk.yellow('To use this template, you must update following to modules:'))
console.log()
for (let i = 0; i < warnings.length; i++) {
const warning = warnings[i]
console.log(' ' + warning)
}
console.log()
process.exit(1)
}
}
-10
View File
@@ -1,10 +0,0 @@
/* eslint-disable */
'use strict'
require('eventsource-polyfill')
var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true')
hotClient.subscribe(function (event) {
if (event.action === 'reload') {
window.location.reload()
}
})
-107
View File
@@ -1,107 +0,0 @@
'use strict'
require('./check-versions')()
const config = require('../config')
if (!process.env.NODE_ENV) {
process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV)
}
const opn = require('opn')
const path = require('path')
const express = require('express')
const webpack = require('webpack')
const proxyMiddleware = require('http-proxy-middleware')
const webpackConfig = (process.env.NODE_ENV === 'testing' || process.env.NODE_ENV === 'production')
? require('./webpack.prod.conf')
: require('./webpack.dev.conf')
// default port where dev server listens for incoming traffic
const port = process.env.PORT || config.dev.port
// automatically open browser, if not set will be false
const autoOpenBrowser = !!config.dev.autoOpenBrowser
// Define HTTP proxies to your custom API backend
// https://github.com/chimurai/http-proxy-middleware
const proxyTable = config.dev.proxyTable
const app = express()
const compiler = webpack(webpackConfig)
const devMiddleware = require('webpack-dev-middleware')(compiler, {
publicPath: webpackConfig.output.publicPath,
quiet: true
})
const hotMiddleware = require('webpack-hot-middleware')(compiler, {
log: false,
heartbeat: 2000
})
// force page reload when html-webpack-plugin template changes
// currently disabled until this is resolved:
// https://github.com/jantimon/html-webpack-plugin/issues/680
// compiler.plugin('compilation', function (compilation) {
// compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
// hotMiddleware.publish({ action: 'reload' })
// cb()
// })
// })
// enable hot-reload and state-preserving
// compilation error display
app.use(hotMiddleware)
// proxy api requests
Object.keys(proxyTable).forEach(function (context) {
let options = proxyTable[context]
if (typeof options === 'string') {
options = { target: options }
}
app.use(proxyMiddleware(options.filter || context, options))
})
// handle fallback for HTML5 history API
app.use(require('connect-history-api-fallback')())
// serve webpack bundle output
app.use(devMiddleware)
// serve pure static assets
const staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory)
app.use(staticPath, express.static('./static'))
const uri = 'http://localhost:' + port
var _resolve
var _reject
var readyPromise = new Promise((resolve, reject) => {
_resolve = resolve
_reject = reject
})
var server
var portfinder = require('portfinder')
portfinder.basePort = port
console.log('> Starting dev server...')
devMiddleware.waitUntilValid(() => {
portfinder.getPort((err, port) => {
if (err) {
_reject(err)
}
process.env.PORT = port
var uri = 'http://localhost:' + port
console.log('> Listening at ' + uri + '\n')
// when env is testing, don't need open it
if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') {
opn(uri)
}
server = app.listen(port)
_resolve()
})
})
module.exports = {
ready: readyPromise,
close: () => {
server.close()
}
}
-72
View File
@@ -1,72 +0,0 @@
'use strict'
const path = require('path')
const config = require('../config')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
exports.assetsPath = function (_path) {
const assetsSubDirectory = process.env.NODE_ENV === 'production'
? config.build.assetsSubDirectory
: config.dev.assetsSubDirectory
return path.posix.join(assetsSubDirectory, _path)
}
exports.cssLoaders = function (options) {
options = options || {}
const cssLoader = {
loader: 'css-loader',
options: {
minimize: process.env.NODE_ENV === 'production',
sourceMap: options.sourceMap
}
}
// generate loader string to be used with extract text plugin
function generateLoaders (loader, loaderOptions) {
const loaders = [cssLoader]
if (loader) {
loaders.push({
loader: loader + '-loader',
options: Object.assign({}, loaderOptions, {
sourceMap: options.sourceMap
})
})
}
// Extract CSS when that option is specified
// (which is the case during production build)
if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
fallback: 'vue-style-loader'
})
} else {
return ['vue-style-loader'].concat(loaders)
}
}
// https://vue-loader.vuejs.org/en/configurations/extract-css.html
return {
css: generateLoaders(),
postcss: generateLoaders(),
less: generateLoaders('less'),
sass: generateLoaders('sass', { indentedSyntax: true }),
scss: generateLoaders('sass'),
stylus: generateLoaders('stylus'),
styl: generateLoaders('stylus')
}
}
// Generate loaders for standalone style files (outside of .vue)
exports.styleLoaders = function (options) {
const output = []
const loaders = exports.cssLoaders(options)
for (const extension in loaders) {
const loader = loaders[extension]
output.push({
test: new RegExp('\\.' + extension + '$'),
use: loader
})
}
return output
}
-19
View File
@@ -1,19 +0,0 @@
'use strict'
const utils = require('./utils')
const config = require('../config')
const isProduction = process.env.NODE_ENV === 'production'
module.exports = {
loaders: utils.cssLoaders({
sourceMap: isProduction
? config.build.productionSourceMap
: config.dev.cssSourceMap,
extract: isProduction
}),
transformToRequire: {
video: 'src',
source: 'src',
img: 'src',
image: 'xlink:href'
}
}
-84
View File
@@ -1,84 +0,0 @@
'use strict'
const path = require('path')
const utils = require('./utils')
const config = require('../config')
const vueLoaderConfig = require('./vue-loader.conf')
function resolve(dir) {
return path.join(__dirname, '..', dir)
}
module.exports = {
entry: {
app: './src/main.js'
},
output: {
path: config.build.assetsRoot,
filename: '[name].js',
publicPath: process.env.NODE_ENV === 'production'
? config.build.assetsPublicPath
: config.dev.assetsPublicPath
},
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src'),
}
},
module: {
rules: [
{
test: /\.(js|vue)$/,
loader: 'eslint-loader',
enforce: 'pre',
include: [resolve('src'), resolve('test')],
options: {
formatter: require('eslint-friendly-formatter')
}
},
{
test: /\.vue$/,
loader: 'vue-loader',
options: vueLoaderConfig
},
{
test: /\.js$/,
loader: 'babel-loader',
include: [resolve('src'),
resolve('test'),
resolve('node_modules/vue-echarts'),
resolve('node_modules/resize-detector'),
//对于使用cnpm时会是如下形式
resolve('node_modules/_vue-echarts@3.1.3@vue-echarts'),
resolve('node_modules/_resize-detector@0.1.9@resize-detector')
]
},
{
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('img/[name].[hash:7].[ext]')
}
},
{
test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('media/[name].[hash:7].[ext]')
}
},
{
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
}
}
]
}
}
-37
View File
@@ -1,37 +0,0 @@
'use strict'
const utils = require('./utils')
const webpack = require('webpack')
const config = require('../config')
const merge = require('webpack-merge')
const baseWebpackConfig = require('./webpack.base.conf')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
// add hot-reload related code to entry chunks
Object.keys(baseWebpackConfig.entry).forEach(function (name) {
baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name])
})
module.exports = merge(baseWebpackConfig, {
module: {
rules: utils.styleLoaders({sourceMap: config.dev.cssSourceMap})
},
// cheap-module-eval-source-map is faster for development
devtool: '#cheap-module-eval-source-map',
plugins: [
new webpack.DefinePlugin({
'process.env': config.dev.env
}),
// https://github.com/glenjamin/webpack-hot-middleware#installation--usage
new webpack.HotModuleReplacementPlugin(),
new webpack.NoEmitOnErrorsPlugin(),
// https://github.com/ampedandwired/html-webpack-plugin
new HtmlWebpackPlugin({
filename: 'index.html',
template: 'index.html',
inject: true,
favicon: 'src/assets/img/favicon.ico'
}),
new FriendlyErrorsPlugin()
]
})
-134
View File
@@ -1,134 +0,0 @@
'use strict'
const path = require('path')
const utils = require('./utils')
const webpack = require('webpack')
const config = require('../config')
const merge = require('webpack-merge')
const baseWebpackConfig = require('./webpack.base.conf')
const CopyWebpackPlugin = require('copy-webpack-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
const env = process.env.NODE_ENV === 'testing'
? require('../config/test.env')
: config.build.env
const webpackConfig = merge(baseWebpackConfig, {
module: {
rules: utils.styleLoaders({
sourceMap: config.build.productionSourceMap,
extract: true
})
},
devtool: config.build.productionSourceMap ? '#source-map' : false,
output: {
path: config.build.assetsRoot,
filename: utils.assetsPath('js/[name].[chunkhash].js'),
chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
},
plugins: [
// http://vuejs.github.io/vue-loader/en/workflow/production.html
new webpack.DefinePlugin({
'process.env': env
}),
// UglifyJs do not support ES6+, you can also use babel-minify for better treeshaking: https://github.com/babel/minify
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
},
sourceMap: true,
//我们的类名不希望被混淆,否则url获取会成单字母了。
mangle: {
except: ['$super', '$', 'exports', 'require', 'angular'],
keep_fnames: true//it works
}
}),
// extract css into its own matter
new ExtractTextPlugin({
filename: utils.assetsPath('css/[name].[contenthash].css')
}),
// Compress extracted CSS. We are using this plugin so that possible
// duplicated CSS from different components can be deduped.
new OptimizeCSSPlugin({
cssProcessorOptions: {
safe: true
}
}),
// generate dist index.html with correct asset hash for caching.
// you can customize output by editing /index.html
// see https://github.com/ampedandwired/html-webpack-plugin
new HtmlWebpackPlugin({
filename: process.env.NODE_ENV === 'testing'
? 'index.html'
: config.build.index,
template: 'index.html',
inject: true,
favicon: 'src/assets/img/favicon.ico',
minify: {
removeComments: true,
collapseWhitespace: true,
removeAttributeQuotes: true
// more options:
// https://github.com/kangax/html-minifier#options-quick-reference
},
// necessary to consistently work with multiple chunks via CommonsChunkPlugin
chunksSortMode: 'dependency'
}),
// keep module.id stable when vender modules does not change
new webpack.HashedModuleIdsPlugin(),
// split vendor js into its own matter
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks: function (module) {
// any required modules inside node_modules are extracted to vendor
return (
module.resource &&
/\.js$/.test(module.resource) &&
module.resource.indexOf(
path.join(__dirname, '../node_modules')
) === 0
)
}
}),
// extract webpack runtime and module manifest to its own matter in order to
// prevent vendor hash from being updated whenever app bundle is updated
new webpack.optimize.CommonsChunkPlugin({
name: 'manifest',
chunks: ['vendor']
}),
// copy custom static assets
new CopyWebpackPlugin([
{
from: path.resolve(__dirname, '../static'),
to: config.build.assetsSubDirectory,
ignore: ['.*']
}
])
]
})
if (config.build.productionGzip) {
const CompressionWebpackPlugin = require('compression-webpack-plugin')
webpackConfig.plugins.push(
new CompressionWebpackPlugin({
asset: '[path].gz[query]',
algorithm: 'gzip',
test: new RegExp(
'\\.(' +
config.build.productionGzipExtensions.join('|') +
')$'
),
threshold: 10240,
minRatio: 0.8
})
)
}
if (config.build.bundleAnalyzerReport) {
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
webpackConfig.plugins.push(new BundleAnalyzerPlugin())
}
module.exports = webpackConfig
-32
View File
@@ -1,32 +0,0 @@
'use strict'
// This is the webpack config used for unit tests.
const utils = require('./utils')
const webpack = require('webpack')
const merge = require('webpack-merge')
const baseWebpackConfig = require('./webpack.base.conf')
const webpackConfig = merge(baseWebpackConfig, {
// use inline sourcemap for karma-sourcemap-loader
module: {
rules: utils.styleLoaders()
},
devtool: '#inline-source-map',
resolveLoader: {
alias: {
// necessary to to make lang="scss" work in test when using vue-loader's ?inject option
// see discussion at https://github.com/vuejs/vue-loader/issues/724
'scss-loader': 'sass-loader'
}
},
plugins: [
new webpack.DefinePlugin({
'process.env': require('../config/test.env')
})
]
})
// no need for app entry during tests
delete webpackConfig.entry
module.exports = webpackConfig
-7
View File
@@ -1,7 +0,0 @@
'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')
module.exports = merge(prodEnv, {
NODE_ENV: '"development"'
})
-51
View File
@@ -1,51 +0,0 @@
'use strict'
// Template version: 1.1.3
// see http://vuejs-templates.github.io/webpack for documentation.
const path = require('path')
module.exports = {
build: {
env: require('./prod.env'),
index: path.resolve(__dirname, '../dist/index.html'),
assetsRoot: path.resolve(__dirname, '../dist'),
assetsSubDirectory: 'static',
assetsPublicPath: '/',
productionSourceMap: true,
// Gzip off by default as many popular static hosts such as
// Surge or Netlify already gzip all static assets for you.
// Before setting to `true`, make sure to:
// npm install --save-dev compression-webpack-plugin
productionGzip: false,
productionGzipExtensions: ['js', 'css'],
// Run the build command with an extra argument to
// View the bundle analyzer report after build finishes:
// `npm run build --report`
// Set to `true` or `false` to always turn it on or off
bundleAnalyzerReport: process.env.npm_config_report
},
dev: {
env: require('./dev.env'),
port: 6015,
autoOpenBrowser: true,
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {
'/api': {
//target: 'https://tank.eyeblue.cn',
target: 'http://127.0.0.1:6010',
changeOrigin: true,
pathRewrite: {
'^/api': '/api'
}
}
},
// CSS Sourcemaps off by default because relative paths are "buggy"
// with this option, according to the CSS-Loader README
// (https://github.com/webpack/css-loader#sourcemaps)
// In our experience, they generally work as expected,
// just be aware of this issue when enabling this option.
cssSourceMap: false
}
}
-4
View File
@@ -1,4 +0,0 @@
'use strict'
module.exports = {
NODE_ENV: '"production"'
}
-7
View File
@@ -1,7 +0,0 @@
'use strict'
const merge = require('webpack-merge')
const devEnv = require('./dev.env')
module.exports = merge(devEnv, {
NODE_ENV: '"testing"'
})
+38
View File
@@ -0,0 +1,38 @@
const CracoLessPlugin = require('craco-less');
module.exports = {
devServer: {
port: 6015,
// proxy for local development.
proxy: {
'/api': {
target: 'http://localhost:6010',
changeOrigin: true,
pathRewrite: {
'^/api': '/api',
},
},
},
},
plugins: [
{
// less loader.
plugin: CracoLessPlugin,
options: {
// resolve-url-loader只对sass生效,craco-less默认使用sass配置,所以这里手动过滤掉resolve-url-loader
modifyLessRule: (lessRule) => {
lessRule.use = lessRule.use.filter(
(i) => !i.loader.includes('resolve-url-loader')
);
return lessRule;
},
lessLoaderOptions: {
lessOptions: {
modifyVars: { '@primary-color': '#215891' },
javascriptEnabled: true,
},
},
},
},
],
};
Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

-62
View File
@@ -1,62 +0,0 @@
# 使用vue-cli创建项目后配置
### 1.修改默认端口
`config/index.js` 8080变更为6010
### 2.Eslint语法检查太过严格,使用自己的规则。
`.eslintrc.js`修改成自己的规则
### 3.添加Less
a.引入less和less-loader库
```
cnpm install less less-loader --save-dev
```
b.不需要做任何操作了,因为只要安装了less,vue-cli就会把less配置到项目中去。
### 4.给项目添加favicon.ico
`build/webpack.dev.config.js` 中的`new HtmlWebpackPlugin({`节点内`inject: true`后,添加:
`favicon: 'src/assets/img/favicon.ico'`
文件`build/webpack.dev.config.js` 同样的位置添加。
### 5.设置http代理
`config/index.js`在dev节点下添加:
```
proxyTable: {
'/api': {
target: 'http://127.0.0.1:6010',
changeOrigin: true,
pathRewrite: {
'^/api': '/api'
}
}
},
```
### 6.UglifyJsPlugin 不需要压缩类名,因为接口中有直接使用类名。
```
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
},
sourceMap: true,
//我们的类名不希望被混淆,否则url获取会成单字母了。
mangle: {
except: ['$super', '$', 'exports', 'require', 'angular'],
keep_fnames: true//it works
}
})
```
+1
View File
@@ -0,0 +1 @@
<code_scheme name="Project" version="173" />
-18
View File
@@ -1,18 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>蓝眼云盘</title>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<meta name="viewport" content="user-scalable=no,width=device-width,initial-scale=1,maximum-scale=1">
<meta name="msapplication-tap-highlight" content="no">
<meta name="apple-mobile-web-app-capable" content="yes">
</head>
<body>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
+57 -113
View File
@@ -1,121 +1,65 @@
{
"name": "blog-front",
"version": "1.0.0",
"description": "A Vue.js project",
"author": "zicla <lish516@126.com>",
"name": "tank-front",
"version": "4.1.1",
"private": true,
"scripts": {
"dev": "node build/dev-server.js",
"start": "npm run dev",
"build": "node build/build.js",
"unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run",
"e2e": "node test/e2e/runner.js",
"test": "npm run unit && npm run e2e",
"lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs"
},
"dependencies": {
"animate.css": "^3.5.2",
"babel-polyfill": "^6.26.0",
"bootstrap": "^3.3.7",
"clipboard": "^2.0.4",
"editor.md": "^1.5.0",
"element-ui": "^2.0.2",
"enquire.js": "^2.1.6",
"font-awesome": "^4.7.0",
"fs": "0.0.1-security",
"icheck": "^1.0.2",
"jquery": "^3.2.1",
"perfect-scrollbar": "^1.1.0",
"scriptjs": "^2.5.8",
"swiper": "^4.0.3",
"velocity-animate": "^1.5.0",
"vue": "^2.5.2",
"vue-echarts": "^3.1.3",
"vue-nprogress": "^0.1.5",
"vue-resource": "^1.3.4",
"vue-router": "^3.0.1",
"vuex": "^3.0.1",
"vuex-router-sync": "^5.0.0",
"x-photoswipe": "^4.1.3-rc.1"
"@ant-design/icons": "4.7.0",
"@craco/craco": "6.4.3",
"@types/echarts": "4.6.1",
"@types/node": "16.7.13",
"@types/qs": "^6.9.7",
"@types/react": "17.0.2",
"@types/react-dom": "17.0.2",
"@types/react-router-dom": "^5.3.3",
"antd": "4.19.2",
"axios": "^0.26.1",
"comma-separated-values": "^3.6.4",
"craco-less": "2.0.0",
"echarts": "4.8.0",
"echarts-for-react": "2.0.16",
"qs": "^6.10.3",
"react": "17.0.2",
"react-dom": "17.0.2",
"react-photo-view": "^1.2.3",
"react-router": "^5.2.0",
"react-router-dom": "^5.2.0",
"react-scripts": "5.0.0",
"spark-md5": "^3.0.2",
"typescript": "4.4.2",
"velocity-react": "^1.4.3"
},
"scripts": {
"start": "craco start",
"build": "craco build"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"autoprefixer": "^7.1.2",
"babel-core": "^6.22.1",
"babel-eslint": "^7.1.1",
"babel-loader": "^7.1.1",
"babel-plugin-istanbul": "^4.1.1",
"babel-plugin-transform-runtime": "^6.22.0",
"babel-preset-env": "^1.3.2",
"babel-preset-stage-2": "^6.22.0",
"babel-register": "^6.22.0",
"chai": "^4.1.2",
"chalk": "^2.0.1",
"chromedriver": "^2.27.2",
"connect-history-api-fallback": "^1.3.0",
"copy-webpack-plugin": "^4.0.1",
"cross-env": "^5.0.1",
"cross-spawn": "^5.0.1",
"css-loader": "^0.28.0",
"eslint": "^3.19.0",
"eslint-config-standard": "^10.2.1",
"eslint-friendly-formatter": "^3.0.0",
"eslint-loader": "^1.7.1",
"eslint-plugin-html": "^3.0.0",
"eslint-plugin-import": "^2.7.0",
"eslint-plugin-node": "^5.2.0",
"eslint-plugin-promise": "^3.4.0",
"eslint-plugin-standard": "^3.0.1",
"eventsource-polyfill": "^0.9.6",
"express": "^4.14.1",
"extract-text-webpack-plugin": "^3.0.0",
"file-loader": "^1.1.4",
"friendly-errors-webpack-plugin": "^1.6.1",
"html-webpack-plugin": "^2.30.1",
"http-proxy-middleware": "^0.17.3",
"imports-loader": "^0.7.1",
"inject-loader": "^3.0.0",
"karma": "^1.4.1",
"karma-coverage": "^1.1.1",
"karma-mocha": "^1.3.0",
"karma-phantomjs-launcher": "^1.0.2",
"karma-phantomjs-shim": "^1.4.0",
"karma-sinon-chai": "^1.3.1",
"karma-sourcemap-loader": "^0.3.7",
"karma-spec-reporter": "0.0.31",
"karma-webpack": "^2.0.2",
"less": "^2.7.3",
"less-loader": "^4.0.5",
"mocha": "^3.2.0",
"nightwatch": "^0.9.12",
"opn": "^5.1.0",
"optimize-css-assets-webpack-plugin": "^3.2.0",
"ora": "^1.2.0",
"phantomjs-prebuilt": "^2.1.14",
"portfinder": "^1.0.13",
"rimraf": "^2.6.0",
"selenium-server": "^3.0.1",
"semver": "^5.3.0",
"shelljs": "^0.7.6",
"sinon": "^4.0.0",
"sinon-chai": "^2.8.0",
"url-loader": "^0.5.8",
"vue-loader": "^13.3.0",
"vue-multiselect": "^2.0.8",
"vue-style-loader": "^3.0.1",
"vue-template-compiler": "^2.5.2",
"webpack": "^3.6.0",
"webpack-bundle-analyzer": "^2.9.0",
"webpack-dev-middleware": "^1.12.0",
"webpack-hot-middleware": "^2.18.2",
"webpack-merge": "^4.1.0"
"@types/spark-md5": "^3.0.5",
"husky": "^8.0.3",
"lint-staged": "^13.2.2",
"prettier": "^2.8.8"
},
"engines": {
"node": ">= 4.0.0",
"npm": ">= 3.0.0"
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
"lint-staged": {
"*.{js,jsx,ts,tsx}": [
"prettier --write",
"git add"
]
},
"packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447"
}
+5
View File
@@ -0,0 +1,5 @@
module.exports = {
tabWidth: 2,
singleQuote: true,
endOfLine: 'auto',
};

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

+18
View File
@@ -0,0 +1,18 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="eyeblue tank"
/>
<title>EyeblueTank</title>
</head>
<body>
<noscript>You need to enable JavaScript to run EyeblueTank.</noscript>
<div id="root"></div>
</body>
</html>
+3
View File
@@ -0,0 +1,3 @@
//import global style.
@import './assets/css/index.less';
@import '~antd/dist/antd.less';
+20
View File
@@ -0,0 +1,20 @@
import React from 'react';
import { BrowserRouter as Router } from 'react-router-dom';
import { ConfigProvider } from 'antd';
import Frame from './pages/Frame';
import en_US from 'antd/es/locale/en_US';
// global less 须放在Frame组件之后,不然会出现按需加载的less文件覆盖样式问题
import './App.less';
function App() {
return (
<Router>
<ConfigProvider locale={en_US}>
<Frame />
</ConfigProvider>
</Router>
);
}
export default App;
-92
View File
@@ -1,92 +0,0 @@
<template>
<div class="nb-app">
<NprogressContainer/>
<router-view/>
</div>
</template>
<script>
import NprogressContainer from 'vue-nprogress/src/NprogressContainer'
export default {
data () {
return {
preference: this.$store.state.preference
}
},
computed: {},
components: {
NprogressContainer
},
mounted () {
let that = this
this.preference.httpFetch()
}
}
</script>
<style lang="less" rel="stylesheet/less">
@import "~font-awesome/css/font-awesome.css";
@import "./assets/css/app.less";
.nb-app {
height: 100%;
.nprogress-container {
position: fixed !important;
width: 100%;
height: 150px;
z-index: 2048;
pointer-events: none;
#nprogress {
//@color: #48e79a;
@color: #1ab394;
.bar {
background: @color;
}
.peg {
box-shadow: 0 0 10px @color, 0 0 5px @color;
}
.spinner-icon {
border-top-color: @color;
border-left-color: @color;
}
}
}
//所有的滚动条样式
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
::-webkit-scrollbar-track-piece {
background-color: #eee;
margin: -2px;
}
::-webkit-scrollbar-thumb {
background: #aaa;
min-height: 150px;
min-width: 150px;
border-radius: 10px;
}
::-webkit-scrollbar-thumb:vertical:hover {
background: #555555
}
::-webkit-scrollbar-thumb:horizontal:hover {
background: #555555
}
}
</style>
-155
View File
@@ -1,155 +0,0 @@
//global css.
//Include font-awesome
//Include what we need in bootstrap.
@import "bootstrap/bootstrap.less";
@import "inspinia/style.less";
//Animated
@import "~animate.css/animate.min.css";
//element-ui
@import "~element-ui/lib/theme-chalk/index.css";
//使用自定义的主题
@import "global/border.less";
@import "global/button.less";
@import "global/color.less";
@import "global/font.less";
@import "global/layout.less";
@import "global/miscellaneous.less";
@import "global/responsive.less";
//h2被污染了
.el-notification__title {
margin-top: 0;
}
//手机端的弹出框太大了
@media (max-width: 768px) {
.el-message-box__wrapper {
.el-message-box {
width: 90%;
}
}
}
html, body {
font-family: "微软雅黑", Microsoft YaHei, "Helvetica Neue", Helvetica, Arial, sans-serif, "open sans";
font-size: 13px;
color: @text-color;
background-color: white;
img {
max-width: 100%;
}
}
//列表单元格的样式。
.nb-app {
//media-body下的p字体大小
.media-body {
p {
font-size: 13px;
}
}
.cell-title {
font-size: 17px;
color: @app-color-title;
.one-line;
a {
font-size: 17px;
color: @app-color-title;
&:hover {
color: @brand-primary;
}
}
}
.cell-content {
font-size: 12px;
color: @app-color-title;
letter-spacing: 0;
line-height: 18px;
}
.cell-description {
font-size: 12px;
color: @app-color-content;
letter-spacing: 0;
line-height: 24px;
}
}
//超链接颜色.
a {
color: @brand-primary;
&:hover, &:focus {
color: @brand-info;
}
}
//段落统一样式
p {
color: #333;
font-size: 15px;
padding: 0;
}
//每个页面导航处样式
.pedia-navigation {
margin-bottom: 10px;
border-bottom: 1px solid #E6E6E6;
position: relative;
.item {
font-size: 16px;
color: #778195;
margin-top: 15px;
margin-right: 20px;
display: inline-block;
box-sizing: content-box;
line-height: 30px;
&:hover, &.is-link-active, &.active {
color: @brand-primary;
border-bottom: 2px solid @brand-primary;
}
}
.tool {
position: absolute;
right: 0;
bottom: 5px;
display: inline-block;
}
}
//markdown中默认图片剧中
p {
> img {
text-align: center;
}
}
//列表页中展开的标准样式
.form-info {
margin-bottom: 10px;
> span:first-child:not(.label) {
width: 150px;
color: #99a9bf;
font-size: 15px;
font-weight: bold;
}
> span:last-child:not(.label) {
font-size: 15px;
}
}
-54
View File
@@ -1,54 +0,0 @@
/*!
* Bootstrap v3.3.7 (http://getbootstrap.com)
* Copyright 2011-2016 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
// Core variables and mixins
@import "../global/variables.less";
@import "~bootstrap/less/mixins.less";
// Reset and dependencies
@import "~bootstrap/less/normalize.less";
@import "~bootstrap/less/print.less";
//We DO NOT use bootstrap's icon. We use font-awesome
//@import "~bootstrap/less/glyphicons.less";
// Core CSS
@import "~bootstrap/less/scaffolding.less";
@import "~bootstrap/less/type.less";
@import "~bootstrap/less/code.less";
@import "~bootstrap/less/grid.less";
@import "~bootstrap/less/tables.less";
@import "~bootstrap/less/forms.less";
@import "~bootstrap/less/buttons.less";
// Components
@import "~bootstrap/less/component-animations.less";
@import "~bootstrap/less/dropdowns.less";
@import "~bootstrap/less/button-groups.less";
@import "~bootstrap/less/input-groups.less";
@import "~bootstrap/less/navs.less";
@import "~bootstrap/less/navbar.less";
@import "~bootstrap/less/breadcrumbs.less";
@import "~bootstrap/less/pagination.less";
@import "~bootstrap/less/pager.less";
@import "~bootstrap/less/labels.less";
@import "~bootstrap/less/badges.less";
@import "~bootstrap/less/jumbotron.less";
@import "~bootstrap/less/thumbnails.less";
@import "~bootstrap/less/alerts.less";
@import "~bootstrap/less/progress-bars.less";
@import "~bootstrap/less/media.less";
@import "~bootstrap/less/list-group.less";
@import "~bootstrap/less/panels.less";
@import "~bootstrap/less/responsive-embed.less";
@import "~bootstrap/less/wells.less";
@import "~bootstrap/less/close.less";
// Components w/ JavaScript
@import "~bootstrap/less/modals.less";
@import "~bootstrap/less/tooltip.less";
@import "~bootstrap/less/popovers.less";
@import "~bootstrap/less/carousel.less";
// Utility classes
@import "~bootstrap/less/utilities.less";
@import "~bootstrap/less/responsive-utilities.less";
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -36,6 +36,6 @@
}
.border-bottom {
border-bottom: 1px solid #eee;
border-bottom: 1px solid #F9F9F9;
}
+74 -20
View File
@@ -1,31 +1,85 @@
@import "variables";
.btn {
display: inline-block;
margin-bottom: 0;
font-weight: normal;
text-align: center;
white-space: nowrap;
vertical-align: middle;
-ms-touch-action: manipulation;
touch-action: manipulation;
cursor: pointer;
background-image: none;
border: 1px solid transparent;
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
border-radius: 4px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.btn-action {
margin: 0 3px;
display: inline-block;
opacity: 0.85;
-webkit-transition: all 0.1s;
-o-transition: all 0.1s;
transition: all 0.1s;
cursor: pointer;
margin: 0 3px;
display: inline-block;
opacity: 0.85;
-webkit-transition: all 0.1s;
-o-transition: all 0.1s;
transition: all 0.1s;
cursor: pointer;
outline: none;
&:hover {
text-decoration: none;
opacity: 1;
-moz-transform: scale(1.2);
-webkit-transform: scale(1.2);
-o-transform: scale(1.2);
-ms-transform: scale(1.2);
transform: scale(1.2);
}
&:hover {
text-decoration: none;
opacity: 1;
-moz-transform: scale(1.2);
-webkit-transform: scale(1.2);
-o-transform: scale(1.2);
-ms-transform: scale(1.2);
transform: scale(1.2);
}
&:focus {
outline: none;
}
}
.btn-primary {
color: #fff;
background-color: #337ab7;
border-color: #2e6da4;
}
.btn-primary:focus,
.btn-primary.focus {
color: #fff;
background-color: #286090;
border-color: #122b40;
}
.btn-primary:hover {
color: #fff;
background-color: #286090;
border-color: #204d74;
}
.btn-sm {
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 3px;
}
//编辑区域按钮,鼠标一上去按钮变大
.action-buttons {
a {
.btn-action;
}
a {
.btn-action;
}
}
.cursor {
cursor: pointer;
cursor: pointer;
}
+127 -94
View File
@@ -1,358 +1,391 @@
@import "./variables.less";
.bg-primary {
background-color: @brand-primary;
color: white;
background-color: @brand-primary;
color: white;
}
.bg-success {
background-color: @brand-success;
color: white;
background-color: @brand-success;
color: white;
}
.bg-info {
background-color: @brand-info;
color: white;
background-color: @brand-info;
color: white;
}
.bg-warning {
background-color: @brand-warning;
color: white;
background-color: @brand-warning;
color: white;
}
.bg-danger {
background-color: @brand-danger;
color: white;
background-color: @brand-danger;
color: white;
}
.bg-gray {
background-color: @brand-gray;
color: white;
background-color: @brand-gray;
color: white;
}
.bg-laxative {
background-color: @brand-laxative;
color: white;
background-color: @brand-laxative;
color: white;
}
.text-primary {
color: @brand-primary;
color: @brand-primary;
}
.text-success {
color: @brand-success;
}
.text-info {
color: @brand-info;
}
.text-warning {
color: @brand-warning;
}
.text-danger {
color: @brand-danger;
}
.text-gray {
color: @brand-gray;
}
.text-laxative {
color: @brand-laxative;
}
.text-theme {
color: @primary-color;
}
.bg-navy {
background-color: #001F3F;
background-color: #001F3F;
}
.bg-blue {
background-color: #0074D9;
background-color: #0074D9;
}
.bg-aqua {
background-color: #7FDBFF;
background-color: #7FDBFF;
}
.bg-aliceblue {
background-color: aliceblue;
background-color: aliceblue;
}
.bg-pink {
background-color: pink;
background-color: pink;
}
.bg-azure {
background-color: azure;
background-color: azure;
}
.bg-teal {
background-color: #39CCCC;
background-color: #39CCCC;
}
.bg-olive {
background-color: #3D9970;
background-color: #3D9970;
}
.bg-green {
background-color: #2ECC40;
background-color: #2ECC40;
}
.bg-lime {
background-color: #01FF70;
background-color: #01FF70;
}
.bg-yellow {
background-color: #FFDC00;
background-color: #FFDC00;
}
.bg-pink {
color: pink;
color: pink;
}
.bg-orange {
background-color: #FF851B;
background-color: #FF851B;
}
.bg-red {
background-color: #FF4136;
background-color: #FF4136;
}
.bg-fuchsia {
background-color: #F012BE;
background-color: #F012BE;
}
.bg-purple {
background-color: #B10DC9;
background-color: #B10DC9;
}
.bg-maroon {
background-color: #85144B;
background-color: #85144B;
}
.bg-white {
background-color: #FFFFFF;
background-color: #FFFFFF;
}
.bg-gray {
background-color: #AAAAAA;
background-color: #AAAAAA;
}
.bg-silver {
background-color: #DDDDDD;
background-color: #DDDDDD;
}
.bg-silver-white {
background-color: #EEEEEE;
background-color: #EEEEEE;
}
.bg-black {
background-color: #111111;
background-color: #111111;
}
.bg-111 {
background-color: #111
background-color: #111
}
.bg-222 {
background-color: #222
background-color: #222
}
.bg-333 {
background-color: #333
background-color: #333
}
.bg-444 {
background-color: #444
background-color: #444
}
.bg-555 {
background-color: #555
background-color: #555
}
.bg-666 {
background-color: #666
background-color: #666
}
.bg-777 {
background-color: #777
background-color: #777
}
.bg-888 {
background-color: #888
background-color: #888
}
.bg-999 {
background-color: #999
background-color: #999
}
.bg-aaa {
background-color: #aaa
background-color: #aaa
}
.bg-bbb {
background-color: #bbb
background-color: #bbb
}
.bg-ccc {
background-color: #ccc
background-color: #ccc
}
.bg-ddd {
background-color: #ddd
background-color: #ddd
}
.bg-eee {
background-color: #eee
background-color: #eee
}
/* Colors */
.navy {
color: #001F3F;
color: #001F3F;
}
.blue {
color: #0074D9;
color: #0074D9;
}
.aqua {
color: #7FDBFF;
color: #7FDBFF;
}
.teal {
color: #39CCCC;
color: #39CCCC;
}
.olive {
color: #3D9970;
color: #3D9970;
}
.green {
color: #2ECC40;
color: #2ECC40;
}
.lime {
color: #01FF70;
color: #01FF70;
}
.yellow {
color: #FFDC00;
color: #FFDC00;
}
.pink {
color: pink;
color: pink;
}
.orange {
color: #FF851B;
color: #FF851B;
}
.red {
color: #FF4136;
color: #FF4136;
}
.fuchsia {
color: #F012BE;
color: #F012BE;
}
.purple {
color: #B10DC9;
color: #B10DC9;
}
.maroon {
color: #85144B;
color: #85144B;
}
.white {
color: #FFFFFF;
color: #FFFFFF;
}
.silver {
color: #DDDDDD;
color: #DDDDDD;
}
.gray {
color: #AAAAAA;
color: #AAAAAA;
}
.black {
color: #111111;
color: #111111;
}
.color-111 {
color: #111
color: #111
}
.color-222 {
color: #222
color: #222
}
.color-333 {
color: #333
color: #333
}
.color-444 {
color: #444
color: #444
}
.color-555 {
color: #555
color: #555
}
.color-666 {
color: #666
color: #666
}
.color-777 {
color: #777
color: #777
}
.color-888 {
color: #888
color: #888
}
.color-999 {
color: #999
color: #999
}
.color-aaa {
color: #aaa
color: #aaa
}
.color-bbb {
color: #bbb
color: #bbb
}
.color-ccc {
color: #ccc
color: #ccc
}
.color-ddd {
color: #ddd
color: #ddd
}
.color-eee {
color: #eee
color: #eee
}
.color-text {
color: #660E7A;
color: #660E7A;
}
.color-doc {
color: #295496;
color: #295496;
}
.color-xls {
color: #1E6C41;
color: #1E6C41;
}
.color-ppt {
color: #D04324;
color: #D04324;
}
.color-pdf {
color: #E40B0B;
color: #E40B0B;
}
.color-audio {
color: #5bc0de;
color: #5bc0de;
}
.color-video {
color: #5cb85c;
color: #5cb85c;
}
.color-image {
color: #0074D9;
color: #0074D9;
}
.color-archive {
color: #4437f2;
color: #4437f2;
}
.color-light-active {
color: #ffc60c;
color: #ffc60c;
}
.color-light-inactive {
color: #ccc;
color: #ccc;
}
+21 -21
View File
@@ -1,38 +1,38 @@
#font{
.f(@from,@end,@step){
.mX(@f,@e,@s) when (@e >= @f){
.f@{e}{
font-size:@e*1px!important;
#font {
.f(@from,@end,@step) {
.mX(@f,@e,@s) when (@e >= @f) {
.f@{e} {
font-size: @e*1px !important;
}
.mX(@f,@e - @s,@s);
.mX(@f, @e - @s, @s);
}
.mX(@from,@end,@step);
.mX(@from, @end, @step);
}
}
#font > .f(10,80,1);
#font > .f(10, 80, 1);
#font{
.ln(@from,@end,@step){
.mX(@f,@e,@s) when (@e >= @f){
.ln@{e}{
line-height:@e*1px!important;
#font {
.ln(@from,@end,@step) {
.mX(@f,@e,@s) when (@e >= @f) {
.ln@{e} {
line-height: @e*1px !important;
}
.mX(@f,@e - @s,@s);
.mX(@f, @e - @s, @s);
}
.mX(@from,@end,@step);
.mX(@from, @end, @step);
}
}
#font > .ln(10,100,1);
#font > .ln(10, 100, 1);
.bold{
font-weight:bold;
.bold {
font-weight: bold;
}
.italic{
font-style:italic;
.italic {
font-style: italic;
}
+87 -76
View File
@@ -1,132 +1,143 @@
#layout{
.margin(@from,@end,@step){
.mX(@f,@e,@s) when (@e >= @f){
.m@{e}{
margin:@e*1px;
/**
全局常用样式定义
使用ml、pt等缩写表示常用的布局方式,数字表示像素值
比如ml10表示margin-left:10px;
*/
#layout {
.margin(@from,@end,@step) {
.mX(@f,@e,@s) when (@e >= @f) {
.m@{e} {
margin: @e*1px;
}
.mt@{e}{
margin-top:@e*1px;
.mt@{e} {
margin-top: @e*1px;
}
.mr@{e}{
margin-right:@e*1px;
.mr@{e} {
margin-right: @e*1px;
}
.mb@{e}{
.mb@{e} {
margin-bottom: @e*1px;
}
.ml@{e}{
.ml@{e} {
margin-left: @e*1px;
}
.mv@{e}{
.mv@{e} {
margin-top: @e*1px;
margin-bottom: @e*1px;
}
.mh@{e}{
.mh@{e} {
margin-left: @e*1px;
margin-right: @e*1px*1px;
}
.mX(@f,@e - @s,@s);
.mX(@f, @e - @s, @s);
}
.mX(@from,@end,@step);
.mX(@from, @end, @step);
}
.padding(@from,@end,@step){
.pX(@f,@e,@s) when (@e >= @f){
.p@{e}{
padding:@e*1px;
.padding(@from,@end,@step) {
.pX(@f,@e,@s) when (@e >= @f) {
.p@{e} {
padding: @e*1px;
}
.pt@{e}{
padding-top:@e*1px;
.pt@{e} {
padding-top: @e*1px;
}
.pr@{e}{
padding-right:@e*1px;
.pr@{e} {
padding-right: @e*1px;
}
.pb@{e}{
.pb@{e} {
padding-bottom: @e*1px;
}
.pl@{e}{
.pl@{e} {
padding-left: @e*1px;
}
.pv@{e}{
.pv@{e} {
padding-top: @e*1px;
padding-bottom: @e*1px;
}
.ph@{e}{
.ph@{e} {
padding-left: @e*1px;
padding-right: @e*1px;
}
.pX(@f,@e - @s,@s);
.pX(@f, @e - @s, @s);
}
.pX(@from,@end,@step);
.pX(@from, @end, @step);
}
.width(@from,@end,@step){
.wX(@f,@e,@s) when (@e >= @f){
.w@{e}{
width:@e*1px;
.width(@from,@end,@step) {
.wX(@f,@e,@s) when (@e >= @f) {
.w@{e} {
width: @e*1px;
}
.w@{e}m{
max-width:@e*1px;
.w@{e}m {
max-width: @e*1px;
}
.w@{e}n{
min-width:@e*1px;
.w@{e}n {
min-width: @e*1px;
}
.w@{e}i{
width:@e*1px!important;
.w@{e}i {
width: @e*1px !important;
}
.wX(@f,@e - @s,@s);
.wX(@f, @e - @s, @s);
}
.wX(@from,@end,@step);
.wX(@from, @end, @step);
}
.height(@from,@end,@step){
.hX(@f,@e,@s) when (@e >= @f){
.h@{e}{
height:@e*1px;
.height(@from,@end,@step) {
.hX(@f,@e,@s) when (@e >= @f) {
.h@{e} {
height: @e*1px;
}
.lh@{e}{
line-height:@e*1px;
.lh@{e} {
line-height: @e*1px;
}
.h@{e}m{
max-height:@e*1px;
.h@{e}m {
max-height: @e*1px;
}
.h@{e}n{
min-height:@e*1px;
.h@{e}n {
min-height: @e*1px;
}
.h@{e}i{
height:@e*1px!important;
.h@{e}i {
height: @e*1px !important;
}
.hX(@f,@e - @s,@s);
.hX(@f, @e - @s, @s);
}
.hX(@from,@end,@step);
.hX(@from, @end, @step);
}
}
.wp20{
width:20%;
.wp20 {
width: 20%;
}
.wp25{
width:25%;
.wp25 {
width: 25%;
}
.wp33{
width:33%;
.wp33 {
width: 33%;
}
.wp100{
width:100%;
.wp100 {
width: 100%;
}
.wp50{
width:50%;
.wp50 {
width: 50%;
}
.hp100{
height:100%;
.hp100 {
height: 100%;
}
.hp50{
.hp50 {
height: 50%;
}
#layout > .margin(20,200,5);
#layout > .margin(0,19,1);
#layout > .padding(20,200,5);
#layout > .padding(0,19,1);
#layout > .width(20,400,10);
#layout > .width(0,19,1);
#layout > .height(20,400,10);
#layout > .height(0,19,1);
#layout > .margin(20, 200, 5);
#layout > .margin(0, 19, 1);
#layout > .padding(20, 200, 5);
#layout > .padding(0, 19, 1);
#layout > .width(20, 400, 5);
#layout > .width(0, 19, 1);
#layout > .height(20, 400, 5);
#layout > .height(0, 19, 1);
+134 -43
View File
@@ -1,66 +1,157 @@
@import "variables";
.compulsory {
&:before {
content: "*";
color: red;
}
&:before {
content: "*";
color: red;
}
}
.limit-hints {
font-size: 10px;
color: #aaaaaa;
float: right;
font-size: 10px;
color: #aaaaaa;
float: right;
}
.hover-underline {
cursor: pointer;
&:hover {
text-decoration: underline;
}
cursor: pointer;
&:hover {
text-decoration: underline;
}
}
.btn-file {
overflow: hidden;
position: relative;
vertical-align: middle;
cursor: pointer;
> input {
position: absolute;
top: 0;
right: 0;
margin: 0;
opacity: 0;
filter: alpha(opacity=0);
font-size: 23px;
height: 100%;
width: 100%;
direction: ltr;
cursor: pointer;
}
}
//超出三行使用点点点
.list-text-restriction {
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
position: relative;
line-height: 17px;
max-height: 51px;
-webkit-line-clamp: 3;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
position: relative;
line-height: 17px;
max-height: 51px;
-webkit-line-clamp: 3;
text-overflow: ellipsis;
}
.one-line {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.inline-block {
display: inline-block;
display: inline-block;
}
.overflow-hidden {
overflow: hidden;
overflow: hidden;
}
//讨厌的outline
a {
outline: none;
&:focus, &:hover, &:active {
outline: none;
}
}
//制造一个手机容器
.mobile-container {
max-width: 400px;
border: 1px solid #eee;
padding: 10px;
margin: 10px auto;
display: block;
background-color: white;
}
//按照字母来wrap,不然有些老长老长
.wrap-word {
word-wrap: break-word;
}
.text-left {
text-align: left;
}
.text-center {
text-align: center;
}
.text-right {
text-align: right;
}
.display-none {
display: none !important;
}
.pull-right {
float: right !important;
}
.pull-left {
float: left !important;
}
//超链接导航样式
.link {
color: #1890ff;
text-decoration: none;
background-color: transparent;
outline: none;
cursor: pointer;
transition: color 0.3s;
text-decoration-skip: objects;
}
//头像
.avatar-large {
border-radius: 50%;
width: 120px;
height: 120px;
cursor: pointer;
}
.avatar-middle {
border-radius: 50%;
width: 80px;
height: 80px;
cursor: pointer;
}
.avatar-small {
border-radius: 50%;
width: 60px;
height: 60px;
cursor: pointer;
}
.relative {
position: relative;
}
.hot-area {
position: relative;
&:after {
position: absolute;
top: -10px;
right: -10px;
bottom: -10px;
left: -10px;
content: '';
}
}
.custom-handle-modal {
.ant-modal-confirm-btns {
display: none;
}
}
+11
View File
@@ -0,0 +1,11 @@
//超出三行使用点点点
.line-ellipsis(@rows,@line-height) {
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
position: relative;
line-height: @line-height;
max-height: @line-height * @rows;
-webkit-line-clamp: @rows;
text-overflow: ellipsis;
}
+20 -13
View File
@@ -19,18 +19,25 @@
}
//浏览器滚动条样式
.thin-scrollbar {
::-webkit-scrollbar {
width: 3px;
height: 3px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: rgba(0, 0, 0, 0.3);
}
//滚动条样式
::-webkit-scrollbar {
width: 10px;
height: 10px
}
::-webkit-scrollbar-thumb {
transition: all .3s ease;
border-color: transparent;
background-color: rgba(0, 0, 0, .1);
z-index: 40
}
::-webkit-scrollbar-thumb:hover {
transition: all .3s ease;
background-color: rgba(0, 0, 0, .15)
}
::-webkit-scrollbar-corner {
background-color: #eaeaeb
}
+11 -87
View File
@@ -1,98 +1,22 @@
@import "../bootstrap/variables.less";
//Bootstrap Theme.
//@brand-primary: darken(#428bca, 6.5%); // #337ab7
//@brand-success: #5cb85c;
//@brand-info: #5bc0de;
//@brand-warning: #f0ad4e;
//@brand-danger: #d9534f;
//@brand-gray: #c2c2c2;
//Angulr Theme.
//@brand-primary: #7266ba;
//@brand-info: #23b7e5;
//@brand-success: #27c24c;
//@brand-warning: #fad733;
//@brand-danger: #f05050;
//@brand-light: #edf1f2;
//@brand-dark: #3a3f51;
//@brand-black: #1c2b36;
//@brand-gray: #c2c2c2;
//@brand-laxative: #B3EE3A;
//Inspina Theme.
//@brand-primary: #1ab394;
//@brand-success: #1c84c6;
//@brand-info: #23c6c8;
//@brand-warning: #f8ac59;
//@brand-danger: #ED5565;
//@brand-gray: #c2c2c2;
//@brand-laxative: #B3EE3A;
//zhengxianqian Theme.
//@brand-primary: #23B7E5;
@brand-primary: #006699;
@brand-success: #1ab394;
@brand-info: #5EC1C5;
@brand-warning: #FEC62E;
@brand-danger: #FE8768;
//custom basic color
@brand-primary: #215891;
@brand-success: #67C23A;
@brand-info: #2DB7F5;
@brand-warning: #E6A23C;
@brand-danger: #FF756F;
@brand-gray: #c2c2c2;
@brand-laxative: #B3EE3A;
//主题默认颜色
@primary-color: @brand-primary;
@navy: @brand-primary; // Primary color
@dark-gray: @brand-gray; // Default color
@blue: @brand-success; // Success color
@lazur: @brand-info; // Info color
@yellow: @brand-warning; // Warrning color
@red: @brand-danger; // Danger color
@green: @brand-laxative; // Danger color
@gray-base: #000;
@gray-darker: lighten(@gray-base, 13.5%); // #222
@gray-dark: lighten(@gray-base, 20%); // #333
@gray: lighten(@gray-base, 33.5%); // #555
@gray-light: lighten(@gray-base, 46.7%); // #777
@gray-lighter: lighten(@gray-base, 93.5%); // #eee
// Various colors
@text-color: #676a6c; // Body text
@gray: #f3f3f4; // Background wrapper color
@light-gray: #D1DADE; // Default label, badget
@label-badget-color: #5E5E5E;
@light-blue: #f3f6fb;
// Spiner color and margin
@spin-color: @navy;
@spin-margin: 0 auto;
// IBOX colors ( default panel colors)
@border-color: #e7eaec; // IBox border
@ibox-title-bg: #ffffff; // IBox Background header
@ibox-content-bg: #ffffff; // IBox Background content
//Sidebar width
@sidebar-width: 170px;
// Boxed layout width
@boxed-width: 1200px;
//Border radius for buttons
@btn-border-radius: 3px;
//Navigation
@nav-bg: #2F4050;
@nav-text-color: #a7b1c2;
//左侧菜单宽度
@sidebar-width: 200px;
//顶部导航栏宽度
@top-navigation-height: 45px;
@app-color-title: #474747;
@app-color-content: #8A8A8A;
//上方导航栏高度
@frame-header-height: 80px;
//下方蓝眼云盘高度
@power-footer-height: 40px;
+17
View File
@@ -0,0 +1,17 @@
//使用自定义的主题
@import "global/animation";
@import "global/border";
@import "global/button";
@import "global/color";
@import "global/font";
@import "global/layout";
@import "global/miscellaneous";
@import "global/responsive";
html, body {
font-family: "微软雅黑", Microsoft YaHei, "Helvetica Neue", Helvetica, Arial, sans-serif, "open sans";
font-size: 13px;
color: @text-color;
}
@@ -1,72 +0,0 @@
.label {
background-color: @light-gray;
color: @label-badget-color;
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-size: 10px;
font-weight: 600;
padding: 3px 8px;
text-shadow: none;
}
.badge {
background-color: @light-gray;
color: @label-badget-color;
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-size: 11px;
font-weight: 600;
padding-bottom: 4px;
padding-left: 6px;
padding-right: 6px;
text-shadow: none;
}
.label-primary, .badge-primary {
background-color: @navy;
color: #FFFFFF;
}
.label-success, .badge-success {
background-color: @blue;
color: #FFFFFF;
}
.label-warning, .badge-warning {
background-color: @yellow;
color: #FFFFFF;
}
.label-warning-light, .badge-warning-light {
background-color: @yellow;
color: #ffffff;
}
.label-danger, .badge-danger {
background-color: @red;
color: #FFFFFF;
}
.label-info, .badge-info {
background-color: @lazur;
color: #FFFFFF;
}
.label-inverse, .badge-inverse {
background-color: #262626;
color: #FFFFFF;
}
.label-laxative, .badge-laxative {
background-color: @green;
color: #FFFFFF;
}
.label-white, .badge-white {
background-color: #FFFFFF;
color: #5E5E5E;
}
.label-white, .badge-disable {
background-color: #2A2E36;
color: #8B91A0;
}
File diff suppressed because it is too large Load Diff
-309
View File
@@ -1,309 +0,0 @@
.btn {
border-radius: @btn-border-radius;
}
.float-e-margins .btn {
margin-bottom: 5px;
}
.btn-w-m {
min-width: 120px;
}
.btn-primary.btn-outline {
color: @navy;
}
.btn-success.btn-outline {
color: @blue;
}
.btn-info.btn-outline {
color: @lazur;
}
.btn-warning.btn-outline {
color: @yellow;
}
.btn-danger.btn-outline {
color: @red;
}
.btn-primary.btn-outline:hover,
.btn-success.btn-outline:hover,
.btn-info.btn-outline:hover,
.btn-warning.btn-outline:hover,
.btn-danger.btn-outline:hover {
color: #fff;
}
.btn-primary {
background-color: @navy;
border-color: @navy;
color: #FFFFFF;
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .open .dropdown-toggle.btn-primary, .btn-primary:active:focus, .btn-primary:active:hover, .btn-primary.active:hover, .btn-primary.active:focus {
background-color: darken(@navy, 3%);
border-color: darken(@navy, 3%);
color: #FFFFFF;
}
.btn-primary:active, .btn-primary.active, .open .dropdown-toggle.btn-primary {
background-image: none;
}
.btn-primary.disabled, .btn-primary.disabled:hover, .btn-primary.disabled:focus, .btn-primary.disabled:active, .btn-primary.disabled.active, .btn-primary[disabled], .btn-primary[disabled]:hover, .btn-primary[disabled]:focus, .btn-primary[disabled]:active, .btn-primary.active[disabled], fieldset[disabled] .btn-primary, fieldset[disabled] .btn-primary:hover, fieldset[disabled] .btn-primary:focus, fieldset[disabled] .btn-primary:active, fieldset[disabled] .btn-primary.active {
background-color: lighten(@navy, 4%);
border-color: lighten(@navy, 4%);
}
.btn-success {
background-color: @blue;
border-color: @blue;
color: #FFFFFF;
}
.btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active, .open .dropdown-toggle.btn-success, .btn-success:active:focus, .btn-success:active:hover, .btn-success.active:hover, .btn-success.active:focus {
background-color: darken(@blue, 3%);
border-color: darken(@blue, 3%);
color: #FFFFFF;
}
.btn-success:active, .btn-success.active, .open .dropdown-toggle.btn-success {
background-image: none;
}
.btn-success.disabled, .btn-success.disabled:hover, .btn-success.disabled:focus, .btn-success.disabled:active, .btn-success.disabled.active, .btn-success[disabled], .btn-success[disabled]:hover, .btn-success[disabled]:focus, .btn-success[disabled]:active, .btn-success.active[disabled], fieldset[disabled] .btn-success, fieldset[disabled] .btn-success:hover, fieldset[disabled] .btn-success:focus, fieldset[disabled] .btn-success:active, fieldset[disabled] .btn-success.active {
background-color: lighten(@blue, 4%);
border-color: lighten(@blue, 4%);
}
.btn-info {
background-color: @lazur;
border-color: @lazur;
color: #FFFFFF;
}
.btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active, .open .dropdown-toggle.btn-info, .btn-info:active:focus, .btn-info:active:hover, .btn-info.active:hover, .btn-info.active:focus {
background-color: darken(@lazur, 3%);
border-color: darken(@lazur, 3%);
color: #FFFFFF;
}
.btn-info:active, .btn-info.active, .open .dropdown-toggle.btn-info {
background-image: none;
}
.btn-info.disabled, .btn-info.disabled:hover, .btn-info.disabled:focus, .btn-info.disabled:active, .btn-info.disabled.active, .btn-info[disabled], .btn-info[disabled]:hover, .btn-info[disabled]:focus, .btn-info[disabled]:active, .btn-info.active[disabled], fieldset[disabled] .btn-info, fieldset[disabled] .btn-info:hover, fieldset[disabled] .btn-info:focus, fieldset[disabled] .btn-info:active, fieldset[disabled] .btn-info.active {
background-color: lighten(@lazur, 4%);
border-color: lighten(@lazur, 4%);
}
.btn-default {
color: inherit;
background: white;
border: 1px solid @border-color;
}
.btn-default:hover, .btn-default:focus, .btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default, .btn-default:active:focus, .btn-default:active:hover, .btn-default.active:hover, .btn-default.active:focus {
color: inherit;
border: 1px solid #d2d2d2;
}
.btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default {
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15) inset;
}
.btn-default.disabled, .btn-default.disabled:hover, .btn-default.disabled:focus, .btn-default.disabled:active, .btn-default.disabled.active, .btn-default[disabled], .btn-default[disabled]:hover, .btn-default[disabled]:focus, .btn-default[disabled]:active, .btn-default.active[disabled], fieldset[disabled] .btn-default, fieldset[disabled] .btn-default:hover, fieldset[disabled] .btn-default:focus, fieldset[disabled] .btn-default:active, fieldset[disabled] .btn-default.active {
color: #cacaca;
}
.btn-warning {
background-color: @yellow;
border-color: @yellow;
color: #FFFFFF;
}
.btn-warning:hover, .btn-warning:focus, .btn-warning:active, .btn-warning.active, .open .dropdown-toggle.btn-warning, .btn-warning:active:focus, .btn-warning:active:hover, .btn-warning.active:hover, .btn-warning.active:focus {
background-color: darken(@yellow, 3%);
border-color: darken(@yellow, 3%);
color: #FFFFFF;
}
.btn-warning:active, .btn-warning.active, .open .dropdown-toggle.btn-warning {
background-image: none;
}
.btn-warning.disabled, .btn-warning.disabled:hover, .btn-warning.disabled:focus, .btn-warning.disabled:active, .btn-warning.disabled.active, .btn-warning[disabled], .btn-warning[disabled]:hover, .btn-warning[disabled]:focus, .btn-warning[disabled]:active, .btn-warning.active[disabled], fieldset[disabled] .btn-warning, fieldset[disabled] .btn-warning:hover, fieldset[disabled] .btn-warning:focus, fieldset[disabled] .btn-warning:active, fieldset[disabled] .btn-warning.active {
background-color: lighten(@yellow, 4%);
border-color: lighten(@yellow, 4%);
}
.btn-danger {
background-color: @red;
border-color: @red;
color: #FFFFFF;
}
.btn-danger:hover, .btn-danger:focus, .btn-danger:active, .btn-danger.active, .open .dropdown-toggle.btn-danger, .btn-danger:active:focus, .btn-danger:active:hover, .btn-danger.active:hover, .btn-danger.active:focus {
background-color: darken(@red, 3%);
border-color: darken(@red, 3%);
color: #FFFFFF;
}
.btn-danger:active, .btn-danger.active, .open .dropdown-toggle.btn-danger {
background-image: none;
}
.btn-danger.disabled, .btn-danger.disabled:hover, .btn-danger.disabled:focus, .btn-danger.disabled:active, .btn-danger.disabled.active, .btn-danger[disabled], .btn-danger[disabled]:hover, .btn-danger[disabled]:focus, .btn-danger[disabled]:active, .btn-danger.active[disabled], fieldset[disabled] .btn-danger, fieldset[disabled] .btn-danger:hover, fieldset[disabled] .btn-danger:focus, fieldset[disabled] .btn-danger:active, fieldset[disabled] .btn-danger.active {
background-color: lighten(@red, 4%);
border-color: lighten(@red, 4%);
}
.btn-link {
color: inherit;
}
.btn-link:hover, .btn-link:focus, .btn-link:active, .btn-link.active, .open .dropdown-toggle.btn-link {
color: @navy;
text-decoration: none;
}
.btn-link:active, .btn-link.active, .open .dropdown-toggle.btn-link {
background-image: none;
}
.btn-link.disabled, .btn-link.disabled:hover, .btn-link.disabled:focus, .btn-link.disabled:active, .btn-link.disabled.active, .btn-link[disabled], .btn-link[disabled]:hover, .btn-link[disabled]:focus, .btn-link[disabled]:active, .btn-link.active[disabled], fieldset[disabled] .btn-link, fieldset[disabled] .btn-link:hover, fieldset[disabled] .btn-link:focus, fieldset[disabled] .btn-link:active, fieldset[disabled] .btn-link.active {
color: #cacaca;
}
.btn-white {
color: inherit;
background: white;
border: 1px solid @border-color;
}
.btn-white:hover, .btn-white:focus, .btn-white:active, .btn-white.active, .open .dropdown-toggle.btn-white, .btn-white:active:focus, .btn-white:active:hover, .btn-white.active:hover, .btn-white.active:focus {
color: inherit;
border: 1px solid #d2d2d2;
}
.btn-white:active, .btn-white.active {
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15) inset;
}
.btn-white:active, .btn-white.active, .open .dropdown-toggle.btn-white {
background-image: none;
}
.btn-white.disabled, .btn-white.disabled:hover, .btn-white.disabled:focus, .btn-white.disabled:active, .btn-white.disabled.active, .btn-white[disabled], .btn-white[disabled]:hover, .btn-white[disabled]:focus, .btn-white[disabled]:active, .btn-white.active[disabled], fieldset[disabled] .btn-white, fieldset[disabled] .btn-white:hover, fieldset[disabled] .btn-white:focus, fieldset[disabled] .btn-white:active, fieldset[disabled] .btn-white.active {
color: #cacaca;
}
.form-control, .form-control:focus, .has-error .form-control:focus, .has-success .form-control:focus, .has-warning .form-control:focus, .navbar-collapse, .navbar-form, .navbar-form-custom .form-control:focus, .navbar-form-custom .form-control:hover, .open .btn.dropdown-toggle, .panel, .popover, .progress, .progress-bar {
box-shadow: none;
}
.btn-outline {
color: inherit;
background-color: transparent;
transition: all .5s;
}
.btn-rounded {
border-radius: 50px;
}
.btn-large-dim {
width: 90px;
height: 90px;
font-size: 42px;
}
button.dim {
display: inline-block;
text-decoration: none;
text-transform: uppercase;
text-align: center;
padding-top: 6px;
margin-right: 10px;
position: relative;
cursor: pointer;
border-radius: 5px;
font-weight: 600;
margin-bottom: 20px !important;
}
button.dim:active {
top: 3px;
}
button.btn-primary.dim {
box-shadow: inset 0 0 0 darken(@navy, 6%), 0 5px 0 0 darken(@navy, 6%), 0 10px 5px #999;
}
button.btn-primary.dim:active {
box-shadow: inset 0 0 0 darken(@navy, 6%), 0 2px 0 0 darken(@navy, 6%), 0 5px 3px #999;
}
button.btn-default.dim {
box-shadow: inset 0 0 0 darken(@dark-gray, 6%), 0 5px 0 0 darken(@dark-gray, 6%), 0 10px 5px #999;
}
button.btn-default.dim:active {
box-shadow: inset 0 0 0 darken(@dark-gray, 6%), 0 2px 0 0 darken(@dark-gray, 6%), 0 5px 3px #999;
}
button.btn-warning.dim {
box-shadow: inset 0 0 0 darken(@yellow, 6%), 0 5px 0 0 darken(@yellow, 6%), 0 10px 5px #999;
}
button.btn-warning.dim:active {
box-shadow: inset 0 0 0 darken(@yellow, 6%), 0 2px 0 0 darken(@yellow, 6%), 0 5px 3px #999;
}
button.btn-info.dim {
box-shadow: inset 0 0 0 darken(@lazur, 6%), 0 5px 0 0 darken(@lazur, 6%), 0 10px 5px #999;
}
button.btn-info.dim:active {
box-shadow: inset 0 0 0 darken(@lazur, 6%), 0 2px 0 0 darken(@lazur, 6%), 0 5px 3px #999;
}
button.btn-success.dim {
box-shadow: inset 0 0 0 darken(@blue, 6%), 0 5px 0 0 darken(@blue, 6%), 0 10px 5px #999;
}
button.btn-success.dim:active {
box-shadow: inset 0 0 0 darken(@blue, 6%), 0 2px 0 0 darken(@blue, 6%), 0 5px 3px #999;
}
button.btn-danger.dim {
box-shadow: inset 0 0 0 darken(@red, 6%), 0 5px 0 0 darken(@red, 6%), 0 10px 5px #999;
}
button.btn-danger.dim:active {
box-shadow: inset 0 0 0 darken(@red, 6%), 0 2px 0 0 darken(@red, 6%), 0 5px 3px #999;
}
button.dim:before {
font-size: 50px;
line-height: 1em;
font-weight: normal;
color: #fff;
display: block;
padding-top: 10px;
}
button.dim:active:before {
top: 7px;
font-size: 50px;
}
.btn:focus {
outline: none !important;
}
-119
View File
@@ -1,119 +0,0 @@
#small-chat {
position: fixed;
bottom: 20px;
right: 20px;
z-index: 100;
}
#small-chat .badge {
position: absolute;
top: -3px;
right: -4px;
}
.open-small-chat {
height: 38px;
width: 38px;
display: block;
background: #1ab394;
padding: 9px 8px;
text-align: center;
color: #fff;
border-radius: 50%;
}
.open-small-chat:hover {
color: white;
background: #1ab394;
}
.small-chat-box {
display: none;
position: fixed;
bottom: 20px;
right: 75px;
background: #fff;
border: 1px solid @border-color;
width: 230px;
height: 320px;
border-radius: 4px;
}
.small-chat-box.ng-small-chat {
display: block;
}
.small-chat-box.active {
display: block;
}
.small-chat-box {
.heading {
background: @nav-bg;
padding: 8px 15px;
font-weight: bold;
color: #fff;
}
.chat-date {
opacity: 0.6;
font-size: 10px;
font-weight: normal;
}
.content {
padding: 15px 15px;
.author-name {
font-weight: bold;
margin-bottom: 3px;
font-size: 11px;
}
> div {
padding-bottom: 20px;
}
.chat-message {
padding: 5px 10px;
border-radius: 6px;
font-size: 11px;
line-height: 14px;
max-width: 80%;
background: #f3f3f4;
margin-bottom: 10px;
}
.chat-message.active {
background: #1ab394;
color: #fff;
}
.left {
text-align: left;
clear: both;
.chat-message {
float: left;
}
}
.right {
text-align: right;
clear: both;
.chat-message {
float: right;
}
}
}
.form-chat {
padding: 10px 10px;
}
}
File diff suppressed because it is too large Load Diff
-15
View File
@@ -1,15 +0,0 @@
.border-radius (@radius: 3px) {
-webkit-border-radius: @radius;
-moz-border-radius: @radius;
border-radius: @radius;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
}
.opacity (@opacity: 0.5) {
-webkit-opacity: @opacity;
-moz-opacity: @opacity;
opacity: @opacity;
}
File diff suppressed because it is too large Load Diff
-191
View File
@@ -1,191 +0,0 @@
.sidebard-panel {
width: 220px;
background: darken(@gray, 3%);
padding: 10px 20px;
position: absolute;
right: 0;
}
.sidebard-panel .feed-element img.img-circle {
width: 32px;
height: 32px;
}
.sidebard-panel .feed-element, .media-body, .sidebard-panel p {
font-size: 12px;
}
.sidebard-panel .feed-element {
margin-top: 20px;
padding-bottom: 0;
}
.sidebard-panel .list-group {
margin-bottom: 10px;
}
.sidebard-panel .list-group .list-group-item {
padding: 5px 0;
font-size: 12px;
border: 0;
}
.sidebar-content .wrapper, .wrapper.sidebar-content {
padding-right: 230px !important;
}
// Right sidebar
#right-sidebar {
background-color: #fff;
border-left: 1px solid #e7eaec;
border-top: 1px solid #e7eaec;
overflow: hidden;
position: fixed;
top: 60px;
width: 260px !important;
z-index: 1009;
bottom: 0;
right: -260px;
}
#right-sidebar.sidebar-open {
right: 0;
}
#right-sidebar.sidebar-open.sidebar-top {
top: 0;
border-top: none;
}
.sidebar-container {
ul.nav-tabs {
border: none;
}
ul.nav-tabs.navs-4 li {
width: 25%;
}
ul.nav-tabs.navs-3 li {
width: 33.3333%;
}
ul.nav-tabs.navs-2 li {
width: 50%;
}
ul.nav-tabs li {
border: none;
}
ul.nav-tabs li a {
border: none;
padding: 12px 10px;
margin: 0;
border-radius: 0;
background: @nav-bg;
color: #fff;
text-align: center;
border-right: 1px solid lighten(@nav-bg, 2%);
}
ul.nav-tabs li.active a {
border: none;
background: #f9f9f9;
color: @text-color;
font-weight: bold;
}
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
border: none;
}
ul.sidebar-list {
margin: 0;
padding: 0;
}
ul.sidebar-list li {
border-bottom: 1px solid @border-color;
padding: 15px 20px;
list-style: none;
font-size: 12px;
}
ul.sidebar-list li:nth-child(2n+2) {
// background: #f9f9f9;
}
.sidebar-message:nth-child(2n+2) {
background: #f9f9f9;
}
ul.sidebar-list li a {
text-decoration: none;
color: inherit;
}
.sidebar-content {
padding: 15px 20px;
font-size: 12px;
}
.date-item {
}
.sidebar-title {
background: #f9f9f9;
padding: 20px;
border-bottom: 1px solid @border-color;
h3 {
margin-bottom: 3px;
padding-left: 2px;
}
}
.tab-content {
h4 {
margin-bottom: 5px;
}
}
.sidebar-message > a > .pull-left {
margin-right: 10px;
}
.sidebar-message > a {
text-decoration: none;
color: inherit;
}
.sidebar-message {
padding: 15px 20px;
}
.sidebar-message:hover {
// background: #f9f9f9;
}
.sidebar-message .message-avatar {
height: 38px;
width: 38px;
border-radius: 50%;
}
.setings-item {
padding: 15px 20px;
border-bottom: 1px solid @border-color;
}
}
-997
View File
@@ -1,997 +0,0 @@
/*
* Usage:
*
* <div class="sk-spinner sk-spinner-rotating-plane"></div>
*
*/
.sk-spinner-rotating-plane.sk-spinner {
width: 30px;
height: 30px;
background-color: @spin-color;
margin: @spin-margin;
-webkit-animation: sk-rotatePlane 1.2s infinite ease-in-out;
animation: sk-rotatePlane 1.2s infinite ease-in-out;
}
@-webkit-keyframes sk-rotatePlane {
0% {
-webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
transform: perspective(120px) rotateX(0deg) rotateY(0deg);
}
50% {
-webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
}
100% {
-webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
}
}
@keyframes sk-rotatePlane {
0% {
-webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
transform: perspective(120px) rotateX(0deg) rotateY(0deg);
}
50% {
-webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
}
100% {
-webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
}
}
/*
* Usage:
*
* <div class="sk-spinner sk-spinner-double-bounce">
* <div class="sk-double-bounce1"></div>
* <div class="sk-double-bounce2"></div>
* </div>
*
*/
.sk-spinner-double-bounce.sk-spinner {
width: 40px;
height: 40px;
position: relative;
margin: @spin-margin;
}
.sk-spinner-double-bounce .sk-double-bounce1, .sk-spinner-double-bounce .sk-double-bounce2 {
width: 100%;
height: 100%;
border-radius: 50%;
background-color: @spin-color;
opacity: 0.6;
position: absolute;
top: 0;
left: 0;
-webkit-animation: sk-doubleBounce 2s infinite ease-in-out;
animation: sk-doubleBounce 2s infinite ease-in-out;
}
.sk-spinner-double-bounce .sk-double-bounce2 {
-webkit-animation-delay: -1s;
animation-delay: -1s;
}
@-webkit-keyframes sk-doubleBounce {
0%, 100% {
-webkit-transform: scale(0);
transform: scale(0);
}
50% {
-webkit-transform: scale(1);
transform: scale(1);
}
}
@keyframes sk-doubleBounce {
0%, 100% {
-webkit-transform: scale(0);
transform: scale(0);
}
50% {
-webkit-transform: scale(1);
transform: scale(1);
}
}
/*
* Usage:
*
* <div class="sk-spinner sk-spinner-wave">
* <div class="sk-rect1"></div>
* <div class="sk-rect2"></div>
* <div class="sk-rect3"></div>
* <div class="sk-rect4"></div>
* <div class="sk-rect5"></div>
* </div>
*
*/
.sk-spinner-wave.sk-spinner {
margin: @spin-margin;
width: 50px;
height: 30px;
text-align: center;
font-size: 10px;
}
.sk-spinner-wave div {
background-color: @spin-color;
height: 100%;
width: 6px;
display: inline-block;
-webkit-animation: sk-waveStretchDelay 1.2s infinite ease-in-out;
animation: sk-waveStretchDelay 1.2s infinite ease-in-out;
}
.sk-spinner-wave .sk-rect2 {
-webkit-animation-delay: -1.1s;
animation-delay: -1.1s;
}
.sk-spinner-wave .sk-rect3 {
-webkit-animation-delay: -1s;
animation-delay: -1s;
}
.sk-spinner-wave .sk-rect4 {
-webkit-animation-delay: -0.9s;
animation-delay: -0.9s;
}
.sk-spinner-wave .sk-rect5 {
-webkit-animation-delay: -0.8s;
animation-delay: -0.8s;
}
@-webkit-keyframes sk-waveStretchDelay {
0%, 40%, 100% {
-webkit-transform: scaleY(0.4);
transform: scaleY(0.4);
}
20% {
-webkit-transform: scaleY(1);
transform: scaleY(1);
}
}
@keyframes sk-waveStretchDelay {
0%, 40%, 100% {
-webkit-transform: scaleY(0.4);
transform: scaleY(0.4);
}
20% {
-webkit-transform: scaleY(1);
transform: scaleY(1);
}
}
/*
* Usage:
*
* <div class="sk-spinner sk-spinner-wandering-cubes">
* <div class="sk-cube1"></div>
* <div class="sk-cube2"></div>
* </div>
*
*/
.sk-spinner-wandering-cubes.sk-spinner {
margin: @spin-margin;
width: 32px;
height: 32px;
position: relative;
}
.sk-spinner-wandering-cubes .sk-cube1, .sk-spinner-wandering-cubes .sk-cube2 {
background-color: @spin-color;
width: 10px;
height: 10px;
position: absolute;
top: 0;
left: 0;
-webkit-animation: sk-wanderingCubeMove 1.8s infinite ease-in-out;
animation: sk-wanderingCubeMove 1.8s infinite ease-in-out;
}
.sk-spinner-wandering-cubes .sk-cube2 {
-webkit-animation-delay: -0.9s;
animation-delay: -0.9s;
}
@-webkit-keyframes sk-wanderingCubeMove {
25% {
-webkit-transform: translateX(42px) rotate(-90deg) scale(0.5);
transform: translateX(42px) rotate(-90deg) scale(0.5);
}
50% {
/* Hack to make FF rotate in the right direction */
-webkit-transform: translateX(42px) translateY(42px) rotate(-179deg);
transform: translateX(42px) translateY(42px) rotate(-179deg);
}
50.1% {
-webkit-transform: translateX(42px) translateY(42px) rotate(-180deg);
transform: translateX(42px) translateY(42px) rotate(-180deg);
}
75% {
-webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
}
100% {
-webkit-transform: rotate(-360deg);
transform: rotate(-360deg);
}
}
@keyframes sk-wanderingCubeMove {
25% {
-webkit-transform: translateX(42px) rotate(-90deg) scale(0.5);
transform: translateX(42px) rotate(-90deg) scale(0.5);
}
50% {
/* Hack to make FF rotate in the right direction */
-webkit-transform: translateX(42px) translateY(42px) rotate(-179deg);
transform: translateX(42px) translateY(42px) rotate(-179deg);
}
50.1% {
-webkit-transform: translateX(42px) translateY(42px) rotate(-180deg);
transform: translateX(42px) translateY(42px) rotate(-180deg);
}
75% {
-webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
}
100% {
-webkit-transform: rotate(-360deg);
transform: rotate(-360deg);
}
}
/*
* Usage:
*
* <div class="sk-spinner sk-spinner-pulse"></div>
*
*/
.sk-spinner-pulse.sk-spinner {
width: 40px;
height: 40px;
margin: @spin-margin;
background-color: @spin-color;
border-radius: 100%;
-webkit-animation: sk-pulseScaleOut 1s infinite ease-in-out;
animation: sk-pulseScaleOut 1s infinite ease-in-out;
}
@-webkit-keyframes sk-pulseScaleOut {
0% {
-webkit-transform: scale(0);
transform: scale(0);
}
100% {
-webkit-transform: scale(1);
transform: scale(1);
opacity: 0;
}
}
@keyframes sk-pulseScaleOut {
0% {
-webkit-transform: scale(0);
transform: scale(0);
}
100% {
-webkit-transform: scale(1);
transform: scale(1);
opacity: 0;
}
}
/*
* Usage:
*
* <div class="sk-spinner sk-spinner-chasing-dots">
* <div class="sk-dot1"></div>
* <div class="sk-dot2"></div>
* </div>
*
*/
.sk-spinner-chasing-dots.sk-spinner {
margin: @spin-margin;
width: 40px;
height: 40px;
position: relative;
text-align: center;
-webkit-animation: sk-chasingDotsRotate 2s infinite linear;
animation: sk-chasingDotsRotate 2s infinite linear;
}
.sk-spinner-chasing-dots .sk-dot1, .sk-spinner-chasing-dots .sk-dot2 {
width: 60%;
height: 60%;
display: inline-block;
position: absolute;
top: 0;
background-color: @spin-color;
border-radius: 100%;
-webkit-animation: sk-chasingDotsBounce 2s infinite ease-in-out;
animation: sk-chasingDotsBounce 2s infinite ease-in-out;
}
.sk-spinner-chasing-dots .sk-dot2 {
top: auto;
bottom: 0;
-webkit-animation-delay: -1s;
animation-delay: -1s;
}
@-webkit-keyframes sk-chasingDotsRotate {
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes sk-chasingDotsRotate {
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@-webkit-keyframes sk-chasingDotsBounce {
0%, 100% {
-webkit-transform: scale(0);
transform: scale(0);
}
50% {
-webkit-transform: scale(1);
transform: scale(1);
}
}
@keyframes sk-chasingDotsBounce {
0%, 100% {
-webkit-transform: scale(0);
transform: scale(0);
}
50% {
-webkit-transform: scale(1);
transform: scale(1);
}
}
/*
* Usage:
*
* <div class="sk-spinner sk-spinner-three-bounce">
* <div class="sk-bounce1"></div>
* <div class="sk-bounce2"></div>
* <div class="sk-bounce3"></div>
* </div>
*
*/
.sk-spinner-three-bounce.sk-spinner {
margin: @spin-margin;
width: 70px;
text-align: center;
}
.sk-spinner-three-bounce div {
width: 18px;
height: 18px;
background-color: @spin-color;
border-radius: 100%;
display: inline-block;
-webkit-animation: sk-threeBounceDelay 1.4s infinite ease-in-out;
animation: sk-threeBounceDelay 1.4s infinite ease-in-out;
/* Prevent first frame from flickering when animation starts */
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}
.sk-spinner-three-bounce .sk-bounce1 {
-webkit-animation-delay: -0.32s;
animation-delay: -0.32s;
}
.sk-spinner-three-bounce .sk-bounce2 {
-webkit-animation-delay: -0.16s;
animation-delay: -0.16s;
}
@-webkit-keyframes sk-threeBounceDelay {
0%, 80%, 100% {
-webkit-transform: scale(0);
transform: scale(0);
}
40% {
-webkit-transform: scale(1);
transform: scale(1);
}
}
@keyframes sk-threeBounceDelay {
0%, 80%, 100% {
-webkit-transform: scale(0);
transform: scale(0);
}
40% {
-webkit-transform: scale(1);
transform: scale(1);
}
}
/*
* Usage:
*
* <div class="sk-spinner sk-spinner-circle">
* <div class="sk-circle1 sk-circle"></div>
* <div class="sk-circle2 sk-circle"></div>
* <div class="sk-circle3 sk-circle"></div>
* <div class="sk-circle4 sk-circle"></div>
* <div class="sk-circle5 sk-circle"></div>
* <div class="sk-circle6 sk-circle"></div>
* <div class="sk-circle7 sk-circle"></div>
* <div class="sk-circle8 sk-circle"></div>
* <div class="sk-circle9 sk-circle"></div>
* <div class="sk-circle10 sk-circle"></div>
* <div class="sk-circle11 sk-circle"></div>
* <div class="sk-circle12 sk-circle"></div>
* </div>
*
*/
.sk-spinner-circle.sk-spinner {
margin: @spin-margin;
width: 22px;
height: 22px;
position: relative;
}
.sk-spinner-circle .sk-circle {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
}
.sk-spinner-circle .sk-circle:before {
content: '';
display: block;
margin: @spin-margin;
width: 20%;
height: 20%;
background-color: @spin-color;
border-radius: 100%;
-webkit-animation: sk-circleBounceDelay 1.2s infinite ease-in-out;
animation: sk-circleBounceDelay 1.2s infinite ease-in-out;
/* Prevent first frame from flickering when animation starts */
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}
.sk-spinner-circle .sk-circle2 {
-webkit-transform: rotate(30deg);
-ms-transform: rotate(30deg);
transform: rotate(30deg);
}
.sk-spinner-circle .sk-circle3 {
-webkit-transform: rotate(60deg);
-ms-transform: rotate(60deg);
transform: rotate(60deg);
}
.sk-spinner-circle .sk-circle4 {
-webkit-transform: rotate(90deg);
-ms-transform: rotate(90deg);
transform: rotate(90deg);
}
.sk-spinner-circle .sk-circle5 {
-webkit-transform: rotate(120deg);
-ms-transform: rotate(120deg);
transform: rotate(120deg);
}
.sk-spinner-circle .sk-circle6 {
-webkit-transform: rotate(150deg);
-ms-transform: rotate(150deg);
transform: rotate(150deg);
}
.sk-spinner-circle .sk-circle7 {
-webkit-transform: rotate(180deg);
-ms-transform: rotate(180deg);
transform: rotate(180deg);
}
.sk-spinner-circle .sk-circle8 {
-webkit-transform: rotate(210deg);
-ms-transform: rotate(210deg);
transform: rotate(210deg);
}
.sk-spinner-circle .sk-circle9 {
-webkit-transform: rotate(240deg);
-ms-transform: rotate(240deg);
transform: rotate(240deg);
}
.sk-spinner-circle .sk-circle10 {
-webkit-transform: rotate(270deg);
-ms-transform: rotate(270deg);
transform: rotate(270deg);
}
.sk-spinner-circle .sk-circle11 {
-webkit-transform: rotate(300deg);
-ms-transform: rotate(300deg);
transform: rotate(300deg);
}
.sk-spinner-circle .sk-circle12 {
-webkit-transform: rotate(330deg);
-ms-transform: rotate(330deg);
transform: rotate(330deg);
}
.sk-spinner-circle .sk-circle2:before {
-webkit-animation-delay: -1.1s;
animation-delay: -1.1s;
}
.sk-spinner-circle .sk-circle3:before {
-webkit-animation-delay: -1s;
animation-delay: -1s;
}
.sk-spinner-circle .sk-circle4:before {
-webkit-animation-delay: -0.9s;
animation-delay: -0.9s;
}
.sk-spinner-circle .sk-circle5:before {
-webkit-animation-delay: -0.8s;
animation-delay: -0.8s;
}
.sk-spinner-circle .sk-circle6:before {
-webkit-animation-delay: -0.7s;
animation-delay: -0.7s;
}
.sk-spinner-circle .sk-circle7:before {
-webkit-animation-delay: -0.6s;
animation-delay: -0.6s;
}
.sk-spinner-circle .sk-circle8:before {
-webkit-animation-delay: -0.5s;
animation-delay: -0.5s;
}
.sk-spinner-circle .sk-circle9:before {
-webkit-animation-delay: -0.4s;
animation-delay: -0.4s;
}
.sk-spinner-circle .sk-circle10:before {
-webkit-animation-delay: -0.3s;
animation-delay: -0.3s;
}
.sk-spinner-circle .sk-circle11:before {
-webkit-animation-delay: -0.2s;
animation-delay: -0.2s;
}
.sk-spinner-circle .sk-circle12:before {
-webkit-animation-delay: -0.1s;
animation-delay: -0.1s;
}
@-webkit-keyframes sk-circleBounceDelay {
0%, 80%, 100% {
-webkit-transform: scale(0);
transform: scale(0);
}
40% {
-webkit-transform: scale(1);
transform: scale(1);
}
}
@keyframes sk-circleBounceDelay {
0%, 80%, 100% {
-webkit-transform: scale(0);
transform: scale(0);
}
40% {
-webkit-transform: scale(1);
transform: scale(1);
}
}
/*
* Usage:
*
* <div class="sk-spinner sk-spinner-cube-grid">
* <div class="sk-cube"></div>
* <div class="sk-cube"></div>
* <div class="sk-cube"></div>
* <div class="sk-cube"></div>
* <div class="sk-cube"></div>
* <div class="sk-cube"></div>
* <div class="sk-cube"></div>
* <div class="sk-cube"></div>
* <div class="sk-cube"></div>
* </div>
*
*/
.sk-spinner-cube-grid {
/*
* Spinner positions
* 1 2 3
* 4 5 6
* 7 8 9
*/
}
.sk-spinner-cube-grid.sk-spinner {
width: 30px;
height: 30px;
margin: @spin-margin;
}
.sk-spinner-cube-grid .sk-cube {
width: 33%;
height: 33%;
background-color: @spin-color;
float: left;
-webkit-animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out;
animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out;
}
.sk-spinner-cube-grid .sk-cube:nth-child(1) {
-webkit-animation-delay: 0.2s;
animation-delay: 0.2s;
}
.sk-spinner-cube-grid .sk-cube:nth-child(2) {
-webkit-animation-delay: 0.3s;
animation-delay: 0.3s;
}
.sk-spinner-cube-grid .sk-cube:nth-child(3) {
-webkit-animation-delay: 0.4s;
animation-delay: 0.4s;
}
.sk-spinner-cube-grid .sk-cube:nth-child(4) {
-webkit-animation-delay: 0.1s;
animation-delay: 0.1s;
}
.sk-spinner-cube-grid .sk-cube:nth-child(5) {
-webkit-animation-delay: 0.2s;
animation-delay: 0.2s;
}
.sk-spinner-cube-grid .sk-cube:nth-child(6) {
-webkit-animation-delay: 0.3s;
animation-delay: 0.3s;
}
.sk-spinner-cube-grid .sk-cube:nth-child(7) {
-webkit-animation-delay: 0s;
animation-delay: 0s;
}
.sk-spinner-cube-grid .sk-cube:nth-child(8) {
-webkit-animation-delay: 0.1s;
animation-delay: 0.1s;
}
.sk-spinner-cube-grid .sk-cube:nth-child(9) {
-webkit-animation-delay: 0.2s;
animation-delay: 0.2s;
}
@-webkit-keyframes sk-cubeGridScaleDelay {
0%, 70%, 100% {
-webkit-transform: scale3D(1, 1, 1);
transform: scale3D(1, 1, 1);
}
35% {
-webkit-transform: scale3D(0, 0, 1);
transform: scale3D(0, 0, 1);
}
}
@keyframes sk-cubeGridScaleDelay {
0%, 70%, 100% {
-webkit-transform: scale3D(1, 1, 1);
transform: scale3D(1, 1, 1);
}
35% {
-webkit-transform: scale3D(0, 0, 1);
transform: scale3D(0, 0, 1);
}
}
/*
* Usage:
*
* <div class="sk-spinner sk-spinner-wordpress">
* <span class="sk-inner-circle"></span>
* </div>
*
*/
.sk-spinner-wordpress.sk-spinner {
background-color: @spin-color;
width: 30px;
height: 30px;
border-radius: 30px;
position: relative;
margin: @spin-margin;
-webkit-animation: sk-innerCircle 1s linear infinite;
animation: sk-innerCircle 1s linear infinite;
}
.sk-spinner-wordpress .sk-inner-circle {
display: block;
background-color: #fff;
width: 8px;
height: 8px;
position: absolute;
border-radius: 8px;
top: 5px;
left: 5px;
}
@-webkit-keyframes sk-innerCircle {
0% {
-webkit-transform: rotate(0);
transform: rotate(0);
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes sk-innerCircle {
0% {
-webkit-transform: rotate(0);
transform: rotate(0);
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
/*
* Usage:
*
* <div class="sk-spinner sk-spinner-fading-circle">
* <div class="sk-circle1 sk-circle"></div>
* <div class="sk-circle2 sk-circle"></div>
* <div class="sk-circle3 sk-circle"></div>
* <div class="sk-circle4 sk-circle"></div>
* <div class="sk-circle5 sk-circle"></div>
* <div class="sk-circle6 sk-circle"></div>
* <div class="sk-circle7 sk-circle"></div>
* <div class="sk-circle8 sk-circle"></div>
* <div class="sk-circle9 sk-circle"></div>
* <div class="sk-circle10 sk-circle"></div>
* <div class="sk-circle11 sk-circle"></div>
* <div class="sk-circle12 sk-circle"></div>
* </div>
*
*/
.sk-spinner-fading-circle.sk-spinner {
margin: @spin-margin;
width: 22px;
height: 22px;
position: relative;
}
.sk-spinner-fading-circle .sk-circle {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
}
.sk-spinner-fading-circle .sk-circle:before {
content: '';
display: block;
margin: @spin-margin;
width: 18%;
height: 18%;
background-color: @spin-color;
border-radius: 100%;
-webkit-animation: sk-circleFadeDelay 1.2s infinite ease-in-out;
animation: sk-circleFadeDelay 1.2s infinite ease-in-out;
/* Prevent first frame from flickering when animation starts */
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}
.sk-spinner-fading-circle .sk-circle2 {
-webkit-transform: rotate(30deg);
-ms-transform: rotate(30deg);
transform: rotate(30deg);
}
.sk-spinner-fading-circle .sk-circle3 {
-webkit-transform: rotate(60deg);
-ms-transform: rotate(60deg);
transform: rotate(60deg);
}
.sk-spinner-fading-circle .sk-circle4 {
-webkit-transform: rotate(90deg);
-ms-transform: rotate(90deg);
transform: rotate(90deg);
}
.sk-spinner-fading-circle .sk-circle5 {
-webkit-transform: rotate(120deg);
-ms-transform: rotate(120deg);
transform: rotate(120deg);
}
.sk-spinner-fading-circle .sk-circle6 {
-webkit-transform: rotate(150deg);
-ms-transform: rotate(150deg);
transform: rotate(150deg);
}
.sk-spinner-fading-circle .sk-circle7 {
-webkit-transform: rotate(180deg);
-ms-transform: rotate(180deg);
transform: rotate(180deg);
}
.sk-spinner-fading-circle .sk-circle8 {
-webkit-transform: rotate(210deg);
-ms-transform: rotate(210deg);
transform: rotate(210deg);
}
.sk-spinner-fading-circle .sk-circle9 {
-webkit-transform: rotate(240deg);
-ms-transform: rotate(240deg);
transform: rotate(240deg);
}
.sk-spinner-fading-circle .sk-circle10 {
-webkit-transform: rotate(270deg);
-ms-transform: rotate(270deg);
transform: rotate(270deg);
}
.sk-spinner-fading-circle .sk-circle11 {
-webkit-transform: rotate(300deg);
-ms-transform: rotate(300deg);
transform: rotate(300deg);
}
.sk-spinner-fading-circle .sk-circle12 {
-webkit-transform: rotate(330deg);
-ms-transform: rotate(330deg);
transform: rotate(330deg);
}
.sk-spinner-fading-circle .sk-circle2:before {
-webkit-animation-delay: -1.1s;
animation-delay: -1.1s;
}
.sk-spinner-fading-circle .sk-circle3:before {
-webkit-animation-delay: -1s;
animation-delay: -1s;
}
.sk-spinner-fading-circle .sk-circle4:before {
-webkit-animation-delay: -0.9s;
animation-delay: -0.9s;
}
.sk-spinner-fading-circle .sk-circle5:before {
-webkit-animation-delay: -0.8s;
animation-delay: -0.8s;
}
.sk-spinner-fading-circle .sk-circle6:before {
-webkit-animation-delay: -0.7s;
animation-delay: -0.7s;
}
.sk-spinner-fading-circle .sk-circle7:before {
-webkit-animation-delay: -0.6s;
animation-delay: -0.6s;
}
.sk-spinner-fading-circle .sk-circle8:before {
-webkit-animation-delay: -0.5s;
animation-delay: -0.5s;
}
.sk-spinner-fading-circle .sk-circle9:before {
-webkit-animation-delay: -0.4s;
animation-delay: -0.4s;
}
.sk-spinner-fading-circle .sk-circle10:before {
-webkit-animation-delay: -0.3s;
animation-delay: -0.3s;
}
.sk-spinner-fading-circle .sk-circle11:before {
-webkit-animation-delay: -0.2s;
animation-delay: -0.2s;
}
.sk-spinner-fading-circle .sk-circle12:before {
-webkit-animation-delay: -0.1s;
animation-delay: -0.1s;
}
@-webkit-keyframes sk-circleFadeDelay {
0%, 39%, 100% {
opacity: 0;
}
40% {
opacity: 1;
}
}
@keyframes sk-circleFadeDelay {
0%, 39%, 100% {
opacity: 0;
}
40% {
opacity: 1;
}
}
-31
View File
@@ -1,31 +0,0 @@
/*
*
* INSPINIA - Responsive Admin Theme
* version 2.6.2
*
*/
// Variables, Mixins
@import "../global/variables.less";
@import "mixins.less";
// INSPINIA Theme Elements
@import "typography.less";
@import "buttons.less";
@import "badgets_labels.less";
@import "elements.less";
@import "sidebar.less";
@import "base.less";
@import "pages.less";
@import "chat.less";
@import "spinners.less";
-32
View File
@@ -1,32 +0,0 @@
h1, h2, h3, h4, h5, h6 {
font-weight: 100;
}
h1 {
font-size: 30px;
}
h2 {
font-size: 24px;
}
h3 {
font-size: 16px;
}
h4 {
font-size: 14px;
}
h5 {
font-size: 12px;
}
h6 {
font-size: 10px;
}
h3, h4, h5 {
margin-top: 5px;
font-weight: 600;
}
-1
View File
@@ -1 +0,0 @@
@import "~bootstrap/less/variables.less";

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

+20
View File
@@ -0,0 +1,20 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1582644951614" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3842"
width="200" height="200">
<defs>
<style type="text/css"></style>
</defs>
<path d="M692.906667 385.024c-11.605333-2.730667-23.210667-6.144-34.816-11.605333l-63.488 25.258666-5.461334 2.048h-5.461333c-8.874667 0-17.749333-4.096-23.210667-11.605333-5.461333-7.509333-6.826667-17.066667-4.778666-25.258667l8.874666-30.72-97.621333-19.797333v400.725333L901.12 402.090667l-105.130667-21.162667c-18.432 5.461333-38.229333 8.874667-59.392 8.874667-13.653333 0-28.672-1.365333-43.690666-4.778667z"
fill="#A6DAFC" p-id="3843"></path>
<path d="M512 502.442667v467.626666l389.802667-100.352V402.090667zM111.274667 413.696l356.352-100.352V580.266667z"
fill="#568EC8" p-id="3844"></path>
<path d="M111.274667 413.696v456.021333L512 970.069333V502.442667z" fill="#A6DAFC" p-id="3845"></path>
<path d="M512 502.442667l389.802667-100.352L1024 546.816 645.802667 658.090667z" fill="#78C5FD" p-id="3846"></path>
<path d="M111.274667 413.696l400.725333 88.746667-122.197333 167.253333L0 569.344z" fill="#CFF0FF"
p-id="3847"></path>
<path d="M886.784 160.426667c-2.730667-6.826667-6.144-13.653333-9.557333-20.48-1.365333-2.048-2.730667-4.096-4.096-6.826667-4.096-6.144-8.192-12.970667-13.653334-18.432s-10.24-11.605333-16.384-16.384c-2.048-2.048-4.096-3.413333-6.144-4.778667-8.192-6.826667-17.066667-12.288-25.941333-17.749333-2.048-1.365333-4.778667-2.730667-6.826667-3.413333-4.778667-2.048-9.557333-4.778667-15.018666-6.144-7.509333-2.730667-15.701333-5.461333-23.893334-6.826667-2.730667-0.682667-6.144-1.365333-8.874666-2.048-0.682667 0-2.048 0-2.730667-0.682667-2.048 0-4.096-0.682667-6.144-0.682666-1.365333 0-2.048 0-3.413333-0.682667-2.048 0-3.413333 0-5.461334-0.682667H727.04c-4.096 0-8.192 0-11.605333 0.682667h-2.048c-4.096 0.682667-8.192 0.682667-12.288 1.365333h-0.682667c-4.096 0.682667-7.509333 1.365333-11.605333 2.048-0.682667 0-1.365333 0-1.365334 0.682667-4.096 0.682667-7.509333 2.048-10.922666 3.413333-0.682667 0-1.365333 0.682667-2.048 0.682667-3.413333 1.365333-7.509333 2.730667-10.922667 4.096-0.682667 0-0.682667 0.682667-1.365333 0.682667-3.413333 1.365333-6.826667 3.413333-10.24 4.778666 0 0-0.682667 0-0.682667 0.682667-3.413333 2.048-6.826667 3.413333-10.24 5.461333-0.682667 0.682667-1.365333 0.682667-2.048 1.365334-3.413333 2.048-6.144 4.096-9.557333 6.144-0.682667 0.682667-1.365333 0.682667-1.365334 1.365333-3.413333 2.048-6.144 4.778667-8.874666 7.509333l-8.192 8.192-1.365334 1.365334c-2.730667 2.730667-4.778667 5.461333-7.509333 8.192-0.682667 0.682667-0.682667 1.365333-1.365333 1.365333-2.048 2.730667-4.778667 6.144-6.826667 8.874667 0 0.682667-0.682667 0.682667-0.682667 1.365333-2.048 3.413333-4.096 6.144-5.461333 9.557333 0 0.682667-0.682667 0.682667-0.682667 1.365334-2.048 3.413333-3.413333 6.826667-4.778666 10.24 0 0.682667-0.682667 1.365333-0.682667 2.048-1.365333 3.413333-2.730667 6.826667-4.096 10.922666 0 0.682667-0.682667 1.365333-0.682667 2.048-1.365333 4.096-2.048 7.509333-3.413333 11.605334-10.24 46.421333 2.730667 92.16 32.085333 127.658666L593.92 339.968l-9.557333 32.768v0.682667h0.682666l58.709334-23.210667 16.384-6.826667c6.144 3.413333 12.970667 6.144 19.797333 8.192s13.653333 4.778667 21.162667 6.144c2.730667 0.682667 6.144 1.365333 8.874666 2.048 0.682667 0 2.048 0 2.730667 0.682667 2.048 0 4.096 0.682667 6.144 0.682667 1.365333 0 2.048 0 3.413333 0.682666 2.048 0 3.413333 0 5.461334 0.682667H739.328c4.096 0 8.192 0 11.605333-0.682667h2.048c4.096-0.682667 8.192-0.682667 12.288-1.365333h0.682667c4.096-0.682667 7.509333-1.365333 11.605333-2.048 0.682667 0 1.365333 0 2.048-0.682667 4.096-0.682667 7.509333-2.048 10.922667-3.413333 0.682667 0 1.365333-0.682667 2.048-0.682667 3.413333-1.365333 7.509333-2.730667 10.922667-4.096 0.682667 0 0.682667-0.682667 1.365333-0.682666 3.413333-1.365333 6.826667-3.413333 10.24-4.778667 0 0 0.682667 0 0.682667-0.682667 3.413333-2.048 6.826667-3.413333 10.24-5.461333 0.682667-0.682667 1.365333-0.682667 2.048-1.365333 3.413333-2.048 6.144-4.096 9.557333-6.144 0.682667-0.682667 1.365333-0.682667 1.365333-1.365334 3.413333-2.048 6.144-4.778667 8.874667-7.509333l8.192-8.192 1.365333-1.365333c2.730667-2.730667 4.778667-5.461333 7.509334-8.192 0.682667-0.682667 0.682667-1.365333 1.365333-2.048 2.048-2.730667 4.778667-6.144 6.826667-8.874667 0-0.682667 0.682667-0.682667 0.682666-1.365333 2.048-3.413333 4.096-6.144 5.461334-9.557334 0-0.682667 0.682667-0.682667 0.682666-1.365333 2.048-3.413333 3.413333-6.826667 4.778667-10.24 0-0.682667 0.682667-1.365333 0.682667-2.048 1.365333-3.413333 2.730667-6.826667 4.096-10.922667 0-0.682667 0.682667-1.365333 0.682666-2.048 1.365333-4.096 2.048-7.509333 3.413334-11.605333 5.461333-28.672 2.730667-57.344-6.826667-83.285333z"
fill="#F9DA3E" p-id="3848"></path>
<path d="M739.328 167.936h48.469333v27.989333h-13.653333v-15.701333h-83.968v15.701333h-13.653333v-27.989333h48.469333c-1.365333-3.413333-3.413333-6.826667-4.778667-10.24l14.336-2.048c2.048 3.413333 3.413333 7.509333 4.778667 12.288z m37.546667 52.565333v12.288h-37.546667v25.258667h48.469333v12.970667H677.205333v-12.970667h48.469334v-25.258667h-37.546667v-12.288h88.746667z m-51.882667-24.576c-10.24 8.874667-22.528 16.384-37.546667 22.528l-5.461333-12.288c14.336-5.461333 25.941333-11.605333 34.816-19.797333l8.192 9.557333z m56.661333 10.922667l-7.509333 11.605333c-11.605333-9.557333-23.210667-17.066667-35.498667-22.528l6.826667-10.24c13.653333 6.144 25.258667 12.970667 36.181333 21.162667z"
fill="#FFFFFF" p-id="3849"></path>
</svg>

After

Width:  |  Height:  |  Size: 5.7 KiB

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1514189634329" class="icon" style="" viewBox="0 0 1219 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="10648" width="238.0859375" height="200">
<defs>
<style type="text/css"></style>
</defs>
<path d="M1197.787429 327.192381a19.504762 19.504762 0 0 1 19.553523 19.407238v614.156191c0 34.913524-28.574476 63.24419-63.878095 63.24419H63.878095C28.623238 1024 0 995.718095 0 960.75581V346.599619a19.504762 19.504762 0 0 1 19.602286-19.358476h1178.185143z m-66.80381-213.089524C1179.550476 114.102857 1219.047619 153.209905 1219.047619 201.386667v80.213333H1.657905V88.259048C1.657905 39.497143 41.593905 0 90.794667 0h290.864762c17.408 0 33.987048 7.655619 45.104761 20.967619l78.214096 93.135238h626.005333z"
fill="#1ab394" p-id="10649"></path>
</svg>

After

Width:  |  Height:  |  Size: 949 B

+14
View File
@@ -0,0 +1,14 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1514189353878" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="1197" width="200" height="200">
<defs>
<style type="text/css"></style>
</defs>
<path d="M9.367 0h992.97v341.333H9.366z" fill="#55C7F7" p-id="1198"></path>
<path d="M9.367 341.333h992.97v341.334H9.366z" fill="#F95F5D" p-id="1199"></path>
<path d="M9.367 682.667h992.97V1024H9.366z" fill="#7ECF3B" p-id="1200"></path>
<path d="M350.7 0h310.303v1024H350.7z" fill="#FDAF42" p-id="1201"></path>
<path d="M304.154 386.638V646.05h403.394V386.638H304.154z m356.849 215.97H350.7V429.46h310.303v173.15z"
fill="#FFFFFF" p-id="1202"></path>
</svg>

After

Width:  |  Height:  |  Size: 855 B

+14
View File
@@ -0,0 +1,14 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1543321997742" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="3887" width="200" height="200">
<defs>
<style type="text/css"></style>
</defs>
<path d="M160 32c-12 0-24.8 4.8-33.6 14.4S112 68 112 80v864c0 12 4.8 24.8 14.4 33.6C136 987.2 148 992 160 992h704c12 0 24.8-4.8 33.6-14.4C907.2 968 912 956 912 944V304L640 32H160z"
fill="#FF5562" p-id="3888"></path>
<path d="M912 304H688c-12 0-24.8-4.8-33.6-14.4-9.6-8.8-14.4-21.6-14.4-33.6V32l272 272z" fill="#FFBBC0"
p-id="3889"></path>
<path d="M669.6 491.2c0-1.6 0.8-4 0-6.4V369.6c0-4.8-2.4-8.8-5.6-12-4-3.2-8-4-12.8-3.2l-250.4 70.4c-7.2 1.6-12 7.2-12 14.4v275.2c-9.6-4-20.8-6.4-32.8-6.4-8.8 0-17.6 0.8-26.4 3.2-40.8 11.2-66.4 43.2-58.4 72.8 6.4 23.2 30.4 37.6 60.8 37.6 8.8 0 17.6-1.6 26.4-3.2 36.8-10.4 60.8-36.8 60-63.2 0.8-1.6 0.8-3.2 0.8-5.6V570.4l220-61.6v136c-9.6-4-20.8-6.4-32.8-6.4-8.8 0-17.6 0.8-26.4 3.2-40.8 11.2-66.4 43.2-58.4 72.8C528 737.6 552 752 582.4 752c8.8 0 17.6-0.8 26.4-3.2 36-9.6 60-36 60-62.4 0.8-1.6 0.8-3.2 0.8-5.6V491.2z m-250.4 48v-53.6l220-61.6v53.6l-220 61.6z"
fill="#FFFFFF" p-id="3890"></path>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

+12
View File
@@ -0,0 +1,12 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1543300132402" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="2107" width="200" height="200">
<defs>
<style type="text/css"></style>
</defs>
<path d="M533.947184 38.36489h65.880106v88.119185c117.859409 0.660894 235.60867-1.211639 353.35793 0.660894 25.102953-2.533427 44.81962 16.962943 42.506492 42.07691 1.872533 216.993492-0.440596 434.097133 1.112505 651.090626-1.112505 22.250094 2.191965 46.923466-10.695466 66.640133-16.081751 11.455494-36.899909 10.023557-55.625236 10.904749-110.25913-0.550745-220.408111-0.330447-330.656225-0.330447v88.119185h-68.843113c-167.657764-30.621417-335.745108-58.709407-503.722304-88.119185-0.110149-256.977572 0-513.955144 0-770.822567 168.858388-29.519927 337.826924-58.268811 506.685311-88.339483z"
fill="#2A5699" p-id="2108"></path>
<path d="M599.816275 159.528769h363.491637v704.953477h-363.491637v-88.119185h286.38735v-44.059592h-286.38735v-55.07449h286.38735v-44.059593h-286.38735v-55.07449h286.38735v-44.059592h-286.38735v-55.074491h286.38735v-44.059592h-286.38735v-55.074491h286.38735v-44.059592h-286.38735v-55.07449h286.38735v-44.059593h-286.38735v-77.104286zM254.829667 354.162018c20.928306-1.211639 41.856613-2.092831 62.784919-3.19432 14.649814 74.350562 29.619061 148.590975 45.491529 222.61109 12.446835-76.443393 26.215457-152.666487 39.543484-228.999731 22.029796-0.771043 44.059592-1.982682 65.97924-3.30447-24.89367 106.734362-46.703168 214.349917-73.909966 320.423385-18.39488 9.582961-45.932125-0.440596-67.741623 1.10149-14.649814-72.90761-31.722906-145.38564-44.819621-218.645727-12.898446 71.156242-29.641091 141.651589-44.390039 212.367235a4187.754101 4187.754101 0 0 1-63.666111-3.866229c-18.284731-96.931103-39.763782-193.190297-56.836874-290.341698 18.835476-0.881192 37.792115-1.652235 56.627591-2.313129 11.33433 70.164901 24.221761 139.999355 34.146184 210.274404 15.508976-72.037433 31.37043-144.074867 46.791287-216.1123z"
fill="#FFFFFF" p-id="2109"></path>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

+19
View File
@@ -0,0 +1,19 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1514189511483" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="6709" width="200" height="200">
<defs>
<style type="text/css"></style>
</defs>
<path d="M676.297143 0H145.609143C130.834286 0 118.857143 11.977143 118.857143 35.218286V1005.714286c0 6.308571 11.977143 18.285714 26.752 18.285714h732.781714c14.774857 0 26.752-11.977143 26.752-18.285714V237.312c0-12.726857-1.700571-16.822857-4.699428-19.84L687.670857 4.699429A16.164571 16.164571 0 0 0 676.297143 0z"
fill="#E9E9E0" p-id="6710"></path>
<path d="M685.714286 2.761143V219.428571h216.667428z" fill="#D9D7CA" p-id="6711"></path>
<path d="M878.390857 1024H145.609143A26.752 26.752 0 0 1 118.857143 997.248V713.142857h786.285714v284.105143c0 14.774857-11.977143 26.752-26.752 26.752z"
fill="#C8BDB8" p-id="6712"></path>
<path d="M338.285714 859.428571m-54.857143 0a54.857143 54.857143 0 1 0 109.714286 0 54.857143 54.857143 0 1 0-109.714286 0Z"
fill="#FFFFFF" p-id="6713"></path>
<path d="M521.142857 859.428571m-54.857143 0a54.857143 54.857143 0 1 0 109.714286 0 54.857143 54.857143 0 1 0-109.714286 0Z"
fill="#FFFFFF" p-id="6714"></path>
<path d="M704 859.428571m-54.857143 0a54.857143 54.857143 0 1 0 109.714286 0 54.857143 54.857143 0 1 0-109.714286 0Z"
fill="#FFFFFF" p-id="6715"></path>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1514189634329" class="icon" style="" viewBox="0 0 1219 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="10648" width="238.0859375" height="200">
<defs>
<style type="text/css"></style>
</defs>
<path d="M1197.787429 327.192381a19.504762 19.504762 0 0 1 19.553523 19.407238v614.156191c0 34.913524-28.574476 63.24419-63.878095 63.24419H63.878095C28.623238 1024 0 995.718095 0 960.75581V346.599619a19.504762 19.504762 0 0 1 19.602286-19.358476h1178.185143z m-66.80381-213.089524C1179.550476 114.102857 1219.047619 153.209905 1219.047619 201.386667v80.213333H1.657905V88.259048C1.657905 39.497143 41.593905 0 90.794667 0h290.864762c17.408 0 33.987048 7.655619 45.104761 20.967619l78.214096 93.135238h626.005333z"
fill="#23B7E5" p-id="10649"></path>
</svg>

After

Width:  |  Height:  |  Size: 949 B

+16
View File
@@ -0,0 +1,16 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1514190539077" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="14917" width="200" height="200">
<defs>
<style type="text/css"></style>
</defs>
<path d="M128 0h597.3l227.6 227.9v739.2c0 31.4-25.5 56.9-56.9 56.9H128c-31.4 0-56.9-25.5-56.9-56.9V56.9C71.1 25.5 96.6 0 128 0z"
fill="#13BE93" p-id="14918"></path>
<path d="M630.5 1024H128c-25.7 0-47.4-17-54.4-40.4l218.1-218.1c22.2-22.2 58.2-22.2 80.5 0L630.5 1024z"
fill="#6BD8BD" p-id="14919"></path>
<path d="M952.9 858v109.1c0 31.4-25.5 56.9-56.9 56.9H322.4l-4.7-4.7 358-358c22.2-22.2 58.2-22.2 80.5 0L952.9 858z"
fill="#9CF9E2" p-id="14920"></path>
<path d="M725.3 0l227.6 227.6H782.2c-31.4 0-56.9-25.5-56.9-56.9V0z" fill="#69DCC0" p-id="14921"></path>
<path d="M327.1 483.6m-85.3 0a85.3 85.3 0 1 0 170.6 0 85.3 85.3 0 1 0-170.6 0Z" fill="#E9FFFA" p-id="14922"></path>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1514284130163" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="1551" width="200" height="200">
<defs>
<style type="text/css"></style>
</defs>
<path d="M915.114667 1024H108.885333V0h587.776v218.112H914.773333V1024z m-785.066667-20.821333h763.904V238.933333H675.84V20.821333H129.706667v982.357334z"
fill="#F90E09" p-id="1552"></path>
<path d="M708.266667 10.581333L904.533333 206.848h-196.266666z" fill="#F90E09" p-id="1553"></path>
<path d="M282.965333 792.576c33.450667-23.210667 55.637333-57.344 76.8-91.136-30.378667 25.941333-59.050667 54.954667-76.8 91.136z m396.629334-169.642667c31.402667 15.018667 65.877333 31.061333 101.376 21.504-24.576-29.696-67.584-21.504-101.376-21.504z m-246.101334 23.210667c45.397333-16.725333 91.818667-29.696 138.922667-39.594667-30.378667-26.965333-55.978667-58.368-76.458667-93.525333-16.725333 46.08-38.912 90.112-62.464 133.12z m67.925334-243.370667c14.677333-37.546667 19.114667-83.285333-5.802667-117.418666-7.168 38.912-4.096 79.189333 5.802667 117.418666z m-45.397334-105.130666c4.096-24.917333 35.84-29.696 55.637334-22.186667 12.288 7.850667 18.432 22.869333 18.773333 37.205333 1.365333 44.032-6.485333 87.381333-12.629333 130.730667-3.413333 20.138667 8.874667 38.229333 17.749333 55.296 21.845333 40.277333 52.224 76.458667 92.16 99.669333 48.128-5.802667 98.645333-12.970667 145.749333 2.389334 35.157333 11.946667 26.965333 77.141333-11.264 77.824-53.589333 2.730667-102.058667-23.893333-150.186666-43.349334-66.218667 4.778667-130.730667 24.917333-194.218667 44.032-28.672 46.762667-54.613333 98.986667-101.034667 130.730667-23.210667 18.090667-76.458667 3.072-64.512-32.085333 20.138667-49.152 70.314667-76.117333 114.346667-100.693334 12.629333-6.485333 19.797333-18.773333 26.282667-31.061333 30.037333-57.685333 60.074667-115.370667 84.309333-175.786667-12.629333-56.661333-31.061333-114.688-21.162667-172.714666z"
fill="#F90E09" p-id="1554"></path>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

+18
View File
@@ -0,0 +1,18 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1543300178225" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="5733" width="200" height="200">
<defs>
<style type="text/css"></style>
</defs>
<path d="M537.372818 38.36489h62.454472v99.134083c117.738246 0.660894 235.60867-1.211639 353.236766 0.550745 25.334266-2.423278 45.172097 17.29339 42.627656 42.627655 1.872533 205.758296-0.440596 411.626741 1.10149 617.506201-1.10149 22.250094 2.20298 46.923466-10.574302 66.640134-16.081751 11.664777-36.999043 10.133706-55.834519 11.014898-110.148981-0.550745-220.297962-0.330447-330.557091-0.330447v110.148981h-68.523681c-167.856032-30.621417-336.06454-58.599258-504.041736-88.119185-0.110149-256.977572 0-513.955144 0-770.822567 169.970892-29.420793 339.93077-59.381316 510.110945-88.350498z"
fill="#D24625" p-id="5734"></path>
<path d="M599.82729 170.543667h363.491636v671.908783h-363.491636v-88.119185h264.357554v-44.059592h-264.357554v-55.074491h264.357554v-44.059592h-264.247405c-0.110149-21.5892-0.110149-43.1784-0.231313-64.767601 43.630011 13.53731 93.307202 13.217878 132.299941-13.008594 42.18706-25.003819 64.216856-72.698327 67.851772-120.271672-48.366417-0.330447-96.710805-0.220298-144.956059-0.220298-0.121164-47.914807 0.550745-95.829613-0.991341-143.634271-18.075448 3.524767-36.128866 7.269833-54.083149 11.125047v-109.818534z"
fill="#FFFFFF" p-id="5735"></path>
<path d="M677.041725 246.216017c76.553542 3.524767 140.880546 67.961921 144.956059 144.295165-48.366417 0.550745-96.710805 0.330447-145.066208 0.330447 0-48.245254-0.121164-96.490507 0.110149-144.625612z"
fill="#D24625" p-id="5736"></path>
<path d="M203.940838 329.378497c59.810897 2.863874 132.288926-23.682031 181.855967 21.148605 47.485226 57.607917 34.917227 163.571236-35.467972 198.047867-25.003819 12.777282-53.642554 11.014898-80.849351 10.133706-0.110149 43.068251-0.220298 86.136503-0.110149 129.19374-21.820513-1.872533-43.74016-3.745065-65.538644-5.507449-0.980326-117.628097-1.211639-235.377357 0.110149-353.016469z"
fill="#FFFFFF" p-id="5737"></path>
<path d="M269.380347 388.969096c21.699349-0.991341 48.575701-4.956704 63.214501 15.420857 12.567999 21.5892 11.89609 50.007637 1.442951 72.257732-12.567999 22.69069-40.986436 20.48771-62.895068 23.131286-2.313129-36.899909-2.092831-73.799817-1.762384-110.809875z"
fill="#D24625" p-id="5738"></path>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

+16
View File
@@ -0,0 +1,16 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1545064197737" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="14227" width="200" height="200">
<defs>
<style type="text/css"></style>
</defs>
<path d="M759.725253 0H134.464646v1024h817.131314V191.870707z" fill="#02007A" p-id="14228"></path>
<path d="M72.40404 708.525253h687.838384v258.585858H72.40404z" fill="#230091" p-id="14229"></path>
<path d="M82.747475 718.868687h667.151515v237.89899H82.747475zM755.070707 5.171717l191.353535 191.353536h-191.353535z"
fill="#FFFFFF" p-id="14230"></path>
<path d="M506.828283 791.272727v93.090909h25.858586c28.444444 0 41.373737-12.929293 41.373737-45.511111s-12.929293-47.579798-41.373737-47.579798h-25.858586z m-25.858586-25.858586h51.717172c42.408081 0 67.232323 29.99596 67.232323 74.989899S575.612121 910.222222 532.686869 910.222222H480.969697v-144.808081z m-132.39596 104.468687c1.034343 26.375758 22.755556 42.408081 55.337374 42.408081 34.650505 0 55.854545-17.066667 55.854546-43.959596 0-21.20404-12.412121-33.09899-40.856566-39.822222l-16.549495-3.620202c-17.583838-4.137374-24.824242-9.826263-24.824242-19.135354 0-11.894949 10.860606-19.652525 26.892929-19.652525s27.410101 7.757576 28.444444 21.204041h24.307071c-0.517172-24.824242-21.20404-41.890909-52.751515-41.89091S351.676768 782.480808 351.676768 807.822222c0 20.169697 12.412121 33.09899 38.787878 38.787879l18.618182 4.137374c18.10101 4.137374 25.341414 10.343434 25.341414 20.169697 0 11.894949-11.894949 20.169697-28.961616 20.169697s-30.513131-8.791919-32.064646-21.721212l-24.824243 0.517171zM258.585859 788.686869v53.785858h20.686868c18.10101 0 31.030303-9.826263 31.030303-26.892929s-12.412121-26.892929-31.030303-26.892929h-20.686868z m-25.858586-23.272728h56.888889c28.444444 0 46.545455 20.686869 46.545454 49.131314s-17.583838 49.131313-46.545454 49.131313h-31.030303v46.545454h-25.858586v-144.808081z"
fill="#230091" p-id="14231"></path>
<path d="M415.806061 443.216162h-31.030303v137.567676H321.163636V196.525253h93.090909c91.022222 0 140.670707 35.684848 140.670708 122.052525 0.517172 103.434343-92.573737 124.638384-139.119192 124.638384z m-5.688889-192.905051c-6.206061 0-14.99798 0.517172-26.89293 1.551515V387.878788h36.202021C461.834343 387.878788 491.313131 366.157576 491.313131 312.888889c0-40.856566-32.064646-62.577778-81.195959-62.577778z m258.068687 337.19596c70.852525 0 96.711111-50.165657 96.711111-84.816162 0-54.820202-35.684848-67.749495-66.19798-87.40202-25.858586-17.066667-49.648485-23.272727-49.648485-40.856566 0-22.755556 15.515152-27.410101 36.20202-27.410101 25.858586 0 54.820202 2.068687 67.232323 16.032323V306.682828c-12.929293-10.343434-37.236364-13.446465-68.783838-13.446464-67.749495 0-93.608081 44.993939-93.608081 84.29899 0 50.682828 33.616162 65.680808 66.19798 83.781818 21.20404 11.894949 46.545455 20.686869 46.545455 44.476767 0 13.963636-8.791919 27.927273-37.753536 27.927273-26.892929 0-59.991919-10.343434-74.989899-23.789899v59.991919c13.446465 10.343434 40.339394 17.583838 78.09293 17.583839z"
fill="#7AB7FF" p-id="14232"></path>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1514189544355" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="8186" width="200" height="200">
<defs>
<style type="text/css"></style>
</defs>
<path d="M176 1024l672 0c26.464 0 48-21.536 48-48l0-672c0-0.544-0.256-0.992-0.288-1.504-0.064-0.736-0.256-1.376-0.416-2.08-0.544-2.272-1.472-4.32-2.88-6.112-0.224-0.288-0.192-0.64-0.416-0.928l-256-288c-0.096-0.096-0.224-0.096-0.32-0.192-1.92-2.048-4.352-3.456-7.136-4.288-0.608-0.192-1.152-0.256-1.792-0.352-0.928-0.16-1.792-0.544-2.752-0.544l-448 0c-26.464 0-48 21.536-48 48l0 928c0 26.464 21.536 48 48 48zM640 58.08l204.384 229.92-188.384 0c-7.04 0-16-13.44-16-24l0-205.92zM160 48c0-8.832 7.2-16 16-16l432 0 0 232c0 25.888 20.96 56 48 56l208 0 0 656c0 8.832-7.2 16-16 16l-672 0c-8.96 0-16-7.04-16-16l0-928zM304 448l416 0c8.832 0 16-7.168 16-16s-7.168-16-16-16l-416 0c-8.832 0-16 7.168-16 16s7.168 16 16 16zM304 576l416 0c8.832 0 16-7.168 16-16s-7.168-16-16-16l-416 0c-8.832 0-16 7.168-16 16s7.168 16 16 16zM304 320l192 0c8.832 0 16-7.168 16-16s-7.168-16-16-16l-192 0c-8.832 0-16 7.168-16 16s7.168 16 16 16zM304 704l416 0c8.832 0 16-7.168 16-16s-7.168-16-16-16l-416 0c-8.832 0-16 7.168-16 16s7.168 16 16 16zM304 832l416 0c8.832 0 16-7.168 16-16s-7.168-16-16-16l-416 0c-8.832 0-16 7.168-16 16s7.168 16 16 16z"
p-id="8187"></path>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

+23
View File
@@ -0,0 +1,23 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1514189554639" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="8871" width="200" height="200">
<defs>
<style type="text/css"></style>
</defs>
<path d="M80 34.4h864v960H80z" fill="#8095FF" p-id="8872"></path>
<path d="M176 112m-40 0a40 40 0 1 0 80 0 40 40 0 1 0-80 0Z" fill="#FFFFFF" p-id="8873"></path>
<path d="M176 272m-40 0a40 40 0 1 0 80 0 40 40 0 1 0-80 0Z" fill="#FFFFFF" p-id="8874"></path>
<path d="M176 432m-40 0a40 40 0 1 0 80 0 40 40 0 1 0-80 0Z" fill="#FFFFFF" p-id="8875"></path>
<path d="M176 592m-40 0a40 40 0 1 0 80 0 40 40 0 1 0-80 0Z" fill="#FFFFFF" p-id="8876"></path>
<path d="M176 752m-40 0a40 40 0 1 0 80 0 40 40 0 1 0-80 0Z" fill="#FFFFFF" p-id="8877"></path>
<path d="M176 912m-40 0a40 40 0 1 0 80 0 40 40 0 1 0-80 0Z" fill="#FFFFFF" p-id="8878"></path>
<path d="M864 112m-40 0a40 40 0 1 0 80 0 40 40 0 1 0-80 0Z" fill="#FFFFFF" p-id="8879"></path>
<path d="M864 272m-40 0a40 40 0 1 0 80 0 40 40 0 1 0-80 0Z" fill="#FFFFFF" p-id="8880"></path>
<path d="M864 432m-40 0a40 40 0 1 0 80 0 40 40 0 1 0-80 0Z" fill="#FFFFFF" p-id="8881"></path>
<path d="M864 592m-40 0a40 40 0 1 0 80 0 40 40 0 1 0-80 0Z" fill="#FFFFFF" p-id="8882"></path>
<path d="M864 752m-40 0a40 40 0 1 0 80 0 40 40 0 1 0-80 0Z" fill="#FFFFFF" p-id="8883"></path>
<path d="M864 912m-40 0a40 40 0 1 0 80 0 40 40 0 1 0-80 0Z" fill="#FFFFFF" p-id="8884"></path>
<path d="M648 508L436 362.4c-4.8-3.2-11.2-4-16.8-0.8-5.6 3.2-8.8 8.8-8.8 14.4v290.4c0 5.6 3.2 11.2 8.8 14.4 5.6 3.2 12 2.4 16.8-0.8L648 533.6c4.8-2.4 7.2-8 7.2-12.8 0-4.8-3.2-9.6-7.2-12.8z"
fill="#FFFFFF" p-id="8885"></path>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

+17
View File
@@ -0,0 +1,17 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1543300142282" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="2233" width="200" height="200">
<defs>
<style type="text/css"></style>
</defs>
<path d="M534.310676 38.36489h65.428495v88.119185c110.25913 0 220.507245 0.220298 330.766374-0.330447 18.615178 0.771043 39.113903-0.550745 55.305803 10.574302 11.345345 16.302049 10.023557 37.010058 10.783586 55.746399-0.550745 191.218631-0.319432 382.327112-0.220298 573.435594-0.550745 32.053353 2.974022 64.767601-3.745066 96.380358-4.405959 22.910988-31.943204 23.461733-50.338084 24.232776-114.114344 0.330447-228.338837-0.220298-342.56333 0v99.134083h-68.402517c-167.867047-30.511268-336.075555-58.709407-504.151885-88.119185v-770.932716c169.0897-29.420793 338.168386-58.389975 507.136922-88.240349z"
fill="#207245" p-id="2234"></path>
<path d="M599.739171 159.528769h363.491636v693.938579h-363.491636v-66.089389h88.119184v-77.104286h-88.119184v-44.059592h88.119184v-77.104287h-88.119184v-44.059592h88.119184v-77.104287h-88.119184v-44.059592h88.119184v-77.104287h-88.119184v-44.059592h88.119184v-77.104287h-88.119184v-66.089388z"
fill="#FFFFFF" p-id="2235"></path>
<path d="M731.917948 225.618157h154.208573v77.104287h-154.208573v-77.104287z" fill="#207245" p-id="2236"></path>
<path d="M353.44605 328.827752c24.89367-1.762384 49.897488-3.304469 74.901307-4.516108-29.409778 60.251492-58.929705 120.502985-88.879213 180.53418 30.29097 61.683429 61.242833 122.926263 91.632937 184.609692-26.545904-1.553101-52.98166-3.19432-79.527564-5.066854-18.725327-45.932125-41.526166-90.322164-54.964342-138.358134-14.969246 44.731501-36.349164 86.918561-53.521389 130.74684-24.122627-0.330447-48.256268-1.321788-72.367881-2.313129 28.308288-55.404937 55.625235-111.250471 84.814716-166.324961-24.783521-56.726725-52.001334-112.35196-77.544883-168.748238 24.232776-1.431937 48.454537-2.863874 72.698327-4.185662 16.412198 43.068251 34.366482 85.585758 47.925822 129.7555 14.506621-46.802302 36.216985-90.861894 54.832163-136.133126z"
fill="#FFFFFF" p-id="2237"></path>
<path d="M731.917948 346.782036h154.208573v77.104287h-154.208573v-77.104287zM731.917948 467.945915h154.208573v77.104287h-154.208573v-77.104287zM731.917948 589.109794h154.208573v77.104287h-154.208573v-77.104287zM731.917948 710.273673h154.208573v77.104286h-154.208573v-77.104286z"
fill="#207245" p-id="2238"></path>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

+11
View File
@@ -0,0 +1,11 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1544085034574" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="1828" width="200" height="200">
<defs>
<style type="text/css"></style>
</defs>
<path d="M0 512A512 512 0 1 0 512 0 512 512 0 0 0 0 512" fill="#36D49F" p-id="1829"></path>
<path d="M450.37037 552.580741l-115.105185-87.798519-50.820741 39.822222L483.365926 701.62963C517.499259 616.296296 625.777778 449.232593 758.518519 330.714074L746.382222 303.407407a1264.071111 1264.071111 0 0 0-296.011852 249.173334"
fill="#FFFFFF" p-id="1830"></path>
</svg>

After

Width:  |  Height:  |  Size: 755 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

-1
View File
@@ -1 +0,0 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1510209707527" class="icon" style="" viewBox="0 0 1219 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1016" xmlns:xlink="http://www.w3.org/1999/xlink" width="238.0859375" height="200"><defs><style type="text/css"></style></defs><path d="M1197.787429 327.192381a19.504762 19.504762 0 0 1 19.553523 19.407238v614.156191c0 34.913524-28.574476 63.24419-63.878095 63.24419H63.878095C28.623238 1024 0 995.718095 0 960.75581V346.599619a19.504762 19.504762 0 0 1 19.602286-19.358476h1178.185143z m-66.80381-213.089524C1179.550476 114.102857 1219.047619 153.209905 1219.047619 201.386667v80.213333H1.657905V88.259048C1.657905 39.497143 41.593905 0 90.794667 0h290.864762c17.408 0 33.987048 7.655619 45.104761 20.967619l78.214096 93.135238h626.005333z" fill="#23B7E5" p-id="1017"></path></svg>

Before

Width:  |  Height:  |  Size: 941 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

-1
View File
@@ -1 +0,0 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1544085034574" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1828" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M0 512A512 512 0 1 0 512 0 512 512 0 0 0 0 512" fill="#36D49F" p-id="1829"></path><path d="M450.37037 552.580741l-115.105185-87.798519-50.820741 39.822222L483.365926 701.62963C517.499259 616.296296 625.777778 449.232593 758.518519 330.714074L746.382222 303.407407a1264.071111 1264.071111 0 0 0-296.011852 249.173334" fill="#FFFFFF" p-id="1830"></path></svg>

Before

Width:  |  Height:  |  Size: 743 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

-146
View File
@@ -1,146 +0,0 @@
<template>
<div id="body">
<div>
<SideNavigation/>
<div id="page-wrapper" :class="{'show-drawer':$store.state.config.showDrawer}" @click="blankClick">
<div>
<div class="mb10">
<router-link to="/" v-if="$store.state.breadcrumbs && $store.state.breadcrumbs.length">
<i class="fa fa-home f16"></i>
</router-link>
<span v-for="b in $store.state.breadcrumbs">
<span>/</span>
<router-link v-if="(b.name || b.path) && b.name !== $store.state.route.name" :to="b">
{{b.title}}
</router-link>
<span v-else>
{{b.title}}
</span>
</span>
</div>
<router-view></router-view>
</div>
</div>
<TopNavigation/>
<!--手机上不显示bottomNavigation,而采用弹出的形式-->
<BottomNavigation />
</div>
</div>
</template>
<script>
import SideNavigation from './layout/SideNavigation.vue'
import TopNavigation from './layout/TopNavigation.vue'
import BottomNavigation from './layout/BottomNavigation.vue'
import enquire from 'enquire.js/dist/enquire'
export default {
data() {
return {
member: this.$store.state.member
}
},
computed: {
config() {
return this.$store.state.config
}
},
components: {
SideNavigation,
TopNavigation,
BottomNavigation
},
methods: {
blankClick() {
if (this.config.mobile) {
if (this.config.showDrawer) {
this.$store.state.config.showDrawer = false
}
}
},
listenResponsiveEvent() {
let that = this
enquire.register('(max-width: 768px)', {
match: function () {
that.$store.state.config.mobile = true
},
unmatch: function () {
that.$store.state.config.showDrawer = true
that.$store.state.config.mobile = false
}
})
}
},
created() {
},
mounted() {
let that = this
this.$store.state.environment = 'backyard'
this.listenResponsiveEvent()
}
}
</script>
<style lang="less" rel="stylesheet/less">
@import "../assets/css/global/variables";
#page-wrapper {
position: fixed;
left: @sidebar-width;
top: @top-navigation-height;
right: 0;
bottom: @power-footer-height;
overflow-y: auto;
overflow-x: hidden;
z-index: 10;
padding: 10px;
-webkit-transition: all 0.4s;
-moz-transition: all 0.4s;
-o-transition: all 0.4s;
transition: all 0.4s;
background-color: #f3f3f4;
//大屏幕
@media (min-width: @screen-sm-min) {
left: @sidebar-width;
}
//小屏幕
@media (max-width: @screen-xs-max) {
left: 0;
bottom: 0;
}
&.show-drawer {
//大屏幕
@media (min-width: @screen-sm-min) {
left: @sidebar-width;
}
//小屏幕
@media (max-width: @screen-xs-max) {
left: 0;
bottom: 0;
}
}
}
</style>
-513
View File
@@ -1,513 +0,0 @@
<template>
<div class="dashboard-index">
<div>
<div class="pedia-navigation">
<span class="item active">大盘监控</span>
</div>
</div>
<div class="row mt20">
<div class="col-lg-3 col-md-6 col-sm-12">
<div class="text-block">
<div class="upper">
<div class="indicator">总访问量</div>
<div class="amount">{{dashboard.totalInvokeNum}}</div>
<div>
<RatePanel name="周环比" :standardValue="standardWeekInvokeNum" :compareValue="compareWeekInvokeNum"/>
<RatePanel name="日环比" :standardValue="standardDayInvokeNum" :compareValue="compareDayInvokeNum"/>
</div>
</div>
<div class="lower">
昨日访问量:{{dashboard.invokeNum}}
</div>
</div>
</div>
<div class="col-lg-3 col-md-6 col-sm-12">
<div class="text-block">
<div class="upper">
<div class="indicator">总访问IP</div>
<div class="amount">{{dashboard.totalUv}}</div>
<div>
<RatePanel name="周环比" :standardValue="standardWeekUv" :compareValue="compareWeekUv"/>
<RatePanel name="日环比" :standardValue="standardDayUv" :compareValue="compareDayUv"/>
</div>
</div>
<div class="lower">
昨日访IP:{{dashboard.uv}}
</div>
</div>
</div>
<div class="col-lg-3 col-md-6 col-sm-12">
<div class="text-block">
<div class="upper">
<div class="indicator">文件总数</div>
<div class="amount">{{dashboard.totalMatterNum}}</div>
<div>
<RatePanel name="周环比" :standardValue="standardWeekMatterNum" :compareValue="compareWeekMatterNum"/>
<RatePanel name="日环比" :standardValue="standardDayMatterNum" :compareValue="compareDayMatterNum"/>
</div>
</div>
<div class="lower">
昨日新增文件数:{{dashboard.matterNum}}
</div>
</div>
</div>
<div class="col-lg-3 col-md-6 col-sm-12">
<div class="text-block">
<div class="upper">
<div class="indicator">文件总大小(包括缓存)</div>
<div class="amount">{{dashboard.totalFileSize | humanFileSize}}</div>
<div>
<RatePanel name="周环比" :standardValue="standardWeekSize" :compareValue="compareWeekSize"/>
<RatePanel name="日环比" :standardValue="standardDaySize" :compareValue="compareDaySize"/>
</div>
</div>
<div class="lower">
昨日新增文件:{{dashboard.fileSize | humanFileSize}}
</div>
</div>
</div>
<div class="col-lg-12 col-md-12 col-sm-12">
<div class="figure-block">
<div class="title">
最近{{days}}日调用量/UV
</div>
<figure>
<ECharts
ref="invokeListChart"
theme="ovilia-green"
:autoResize="true"
:initOptions="initOptions"
:options="invokeListOption"/>
</figure>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="figure-block">
<div class="title">
文件下载量TOP10
</div>
<div class="list-rank">
<ul>
<li v-for="(matter,index) in matterPager.data">
<span class="rank" :class="{top3:index<3}">{{index+1}}</span>
<router-link class="name" :to="'/matter/detail/'+matter.uuid">{{matter.name}}</router-link>
<span class="info">{{matter.times}}</span>
</li>
</ul>
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="figure-block">
<div class="title">
活跃IP TOP10
</div>
<div class="list-rank">
<ul>
<li v-for="(item,index) in activeIpTop10">
<span class="rank" :class="{top3:index<3}">{{index+1}}</span>
<span class="name" :to="'/'">{{item.ip}}</span>
<span class="info">{{item.times}}</span>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import ECharts from 'vue-echarts/components/ECharts'
import 'echarts/lib/chart/bar'
import 'echarts/lib/chart/line'
import 'echarts/lib/chart/pie'
import 'echarts/lib/chart/map'
import 'echarts/lib/chart/radar'
import 'echarts/lib/chart/scatter'
import 'echarts/lib/chart/effectScatter'
import 'echarts/lib/component/tooltip'
import 'echarts/lib/component/polar'
import 'echarts/lib/component/geo'
import 'echarts/lib/component/legend'
import 'echarts/lib/component/title'
import 'echarts/lib/component/visualMap'
import 'echarts/lib/component/dataset'
import 'echarts/map/js/world'
import 'zrender/lib/svg/svg'
import theme from "./theme"
import Dashboard from "../../common/model/dashboard/Dashboard";
import Pager from "../../common/model/base/Pager";
import {SortDirection} from "../../common/model/base/SortDirection";
import {simpleDate} from "../../common/filter/time";
import RatePanel from "./widget/RatePanel"
import Matter from "../../common/model/matter/Matter";
//自定义主题
ECharts.registerTheme('ovilia-green', theme)
export default {
data: function () {
return {
days: 15,
//用来存放日期的,辅助x轴的生成
dateStrings: [],
//昨天的统计情况
dashboard: new Dashboard(),
//调用量周环比
standardWeekInvokeNum: 0,
compareWeekInvokeNum: 0,
//调用量日环比
standardDayInvokeNum: 0,
compareDayInvokeNum: 0,
//UV周环比
standardWeekUv: 0,
compareWeekUv: 0,
//UV日环比
standardDayUv: 0,
compareDayUv: 0,
//文件总数周环比
standardWeekMatterNum: 0,
compareWeekMatterNum: 0,
//文件总数日环比
standardDayMatterNum: 0,
compareDayMatterNum: 0,
//文件大小周环比
standardWeekSize: 0,
compareWeekSize: 0,
//文件大小日环比
standardDaySize: 0,
compareDaySize: 0,
pager: new Pager(Dashboard, 15),
matterPager: new Pager(Matter, 10),
activeIpTop10: [],
//图标加载中的样式
loadingOption: {
text: '加载中…',
color: '#006699',
maskColor: 'rgba(255, 255, 255, 0.4)'
},
initOptions: {
renderer: 'canvas'
},
invokeListOption: {
tooltip: {},
legend: {
data: ['调用量', 'UV']
},
xAxis: {
name: "日期",
data: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
},
yAxis: {
name: "数量"
},
series: [{
name: '调用量',
type: 'bar',
data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
}, {
name: 'UV',
type: 'line',
data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
}]
}
}
},
components: {
ECharts,
RatePanel
},
methods: {
updateDateStrings() {
let that = this;
//更新横坐标 从昨天开始倒推
let arr = []
for (let d = that.days; d >= 1; d--) {
let thenDate = new Date((new Date()).getTime() - d * 24 * 60 * 60 * 1000)
arr.push(simpleDate(thenDate))
}
that.dateStrings = arr
},
//获取15日调用分时数据
refreshDashboardPager() {
let that = this;
this.pager.setFilterValue("orderDt", SortDirection.DESC)
that.$refs.invokeListChart.showLoading()
this.pager.httpFastPage(function (response) {
let list = that.pager.data
if (list.length > 0) {
that.dashboard.render(list[list.length - 1])
}
//数据转换成map,方便检索
let map = {}
for (let i = 0; i < list.length; i++) {
map[list[i].dt] = list[i]
}
let invokeNumData = []
let uvData = []
let matterNumData = []
let fileSizeData = []
for (let i = 0; i < that.days; i++) {
invokeNumData.push(0)
uvData.push(0)
matterNumData.push(0)
fileSizeData.push(0)
}
//按照日期对应。
for (let i = 0; i < that.dateStrings.length; i++) {
let item = map[that.dateStrings[i]];
if (item) {
invokeNumData[i] = item.invokeNum
uvData[i] = item.uv
matterNumData[i] = item.matterNum
fileSizeData[i] = item.fileSize
}
}
//同环比
that.standardWeekInvokeNum = 0
that.compareWeekInvokeNum = 0
//调用量日环比
that.standardDayInvokeNum = 0
that.compareDayInvokeNum = 0
//UV周环比
that.standardWeekUv = 0
that.compareWeekUv = 0
//UV日环比
that.standardDayUv = 0
that.compareDayUv = 0
//文件总数周环比
that.standardWeekMatterNum = 0
that.compareWeekMatterNum = 0
//文件总数日环比
that.standardDayMatterNum = 0
that.compareDayMatterNum = 0
//文件大小周环比
that.standardWeekSize = 0
that.compareWeekSize = 0
//文件大小日环比
that.standardDaySize = 0
that.compareDaySize = 0
for (let i = 0; i < that.days; i++) {
if (i >= 1 && i <= 7) {
that.standardWeekInvokeNum += invokeNumData[i]
that.standardWeekUv += uvData[i]
that.standardWeekMatterNum += matterNumData[i]
that.standardWeekSize += fileSizeData[i]
} else if (i >= 8 && i <= 14) {
that.compareWeekInvokeNum += invokeNumData[i]
that.compareWeekUv += uvData[i]
that.compareWeekMatterNum += matterNumData[i]
that.compareWeekSize += fileSizeData[i]
}
if (i === 13) {
that.standardDayInvokeNum = invokeNumData[i]
that.standardDayUv = uvData[i]
that.standardDayMatterNum = matterNumData[i]
that.standardDaySize = fileSizeData[i]
}
if (i === 14) {
that.compareDayInvokeNum = invokeNumData[i]
that.compareDayUv = uvData[i]
that.compareDayMatterNum = matterNumData[i]
that.compareDaySize = fileSizeData[i]
}
}
that.invokeListOption.xAxis.data = that.dateStrings.map((k) => k.substr(5))
that.invokeListOption.series[0].data = invokeNumData
that.invokeListOption.series[1].data = uvData
that.$refs.invokeListChart.hideLoading()
}, function () {
that.$refs.invokeListChart.hideLoading()
})
},
//获取下载前10的文件
refreshMatterPager() {
let that = this;
that.matterPager.setFilterValue("orderTimes", SortDirection.DESC)
that.matterPager.httpFastPage()
},
refreshActiveIpTop10() {
let that = this
that.dashboard.httpActiveIpTop10(function (response) {
that.activeIpTop10 = response.data.data
})
}
},
mounted() {
let that = this;
this.updateDateStrings()
this.refreshDashboardPager()
this.refreshMatterPager()
this.refreshActiveIpTop10()
}
}
</script>
<style lang="less" rel="stylesheet/less">
@import "../../assets/css/global/variables";
.dashboard-index {
figure {
.echarts {
width: 100%;
height: 300px;
}
}
.text-block {
background-color: white;
box-shadow: 0 0 5px rgba(0, 0, 0, .2);
border-radius: 5px;
padding: 20px 15px 10px 15px;
margin-bottom: 30px;
.upper {
.indicator {
color: rgba(0, 0, 0, .45);
font-size: 14px;
line-height: 22px;
height: 22px;
}
.amount {
overflow: hidden;
text-overflow: ellipsis;
word-break: break-all;
white-space: nowrap;
color: rgba(0, 0, 0, .85);
margin-top: 4px;
margin-bottom: 20px;
font-size: 30px;
line-height: 38px;
height: 38px;
}
.rate {
margin-right: 15px;
}
}
.lower {
margin-top: 10px;
padding-top: 10px;
border-top: 1px solid #eee;
font-size: 14px;
}
}
.figure-block {
background-color: white;
box-shadow: 0 0 5px rgba(0, 0, 0, .2);
border-radius: 5px;
margin-bottom: 20px;
.title {
font-size: 18px;
padding: 15px 20px;
color: black;
margin-bottom: 10px;
border-bottom: 1px solid #eee;
}
}
.list-rank {
padding: 0 20px 10px 20px;
ul {
list-style: none;
padding: 0;
li {
zoom: 1;
margin-top: 16px;
display: flex;
align-items: center;
.rank {
border-radius: 20px;
display: inline-block;
font-size: 12px;
font-weight: 600;
margin-right: 16px;
height: 20px;
line-height: 20px;
width: 20px;
text-align: center;
margin-top: 1.5px;
background-color: #f5f5f5;
&.top3 {
background-color: #314659;
color: #fff;
}
}
.name {
color: rgba(0, 0, 0, .65);
font-size: 14px;
line-height: 22px;
flex: 1 1;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
margin-right: 8px;
&:hover {
color: @brand-primary;
}
}
.info {
color: rgba(0, 0, 0, .65);
font-size: 14px;
line-height: 22px;
}
}
}
}
}
</style>
-474
View File
@@ -1,474 +0,0 @@
{
"color": [
"#006699",
"#1ab394",
"#7bd9a5"
],
"backgroundColor": "rgba(0,0,0,0)",
"textStyle": {},
"title": {
"textStyle": {
"color": "#666666"
},
"subtextStyle": {
"color": "#999999"
}
},
"line": {
"itemStyle": {
"normal": {
"borderWidth": "2"
}
},
"lineStyle": {
"normal": {
"width": "3"
}
},
"symbolSize": "10",
"symbol": "emptyCircle",
"smooth": true
},
"radar": {
"itemStyle": {
"normal": {
"borderWidth": "2"
}
},
"lineStyle": {
"normal": {
"width": "3"
}
},
"symbolSize": "10",
"symbol": "emptyCircle",
"smooth": true
},
"bar": {
"itemStyle": {
"normal": {
"barBorderWidth": "0",
"barBorderColor": "#444444"
},
"emphasis": {
"barBorderWidth": "0",
"barBorderColor": "#444444"
}
}
},
"pie": {
"itemStyle": {
"normal": {
"borderWidth": "0",
"borderColor": "#444444"
},
"emphasis": {
"borderWidth": "0",
"borderColor": "#444444"
}
}
},
"scatter": {
"itemStyle": {
"normal": {
"borderWidth": "0",
"borderColor": "#444444"
},
"emphasis": {
"borderWidth": "0",
"borderColor": "#444444"
}
}
},
"boxplot": {
"itemStyle": {
"normal": {
"borderWidth": "0",
"borderColor": "#444444"
},
"emphasis": {
"borderWidth": "0",
"borderColor": "#444444"
}
}
},
"parallel": {
"itemStyle": {
"normal": {
"borderWidth": "0",
"borderColor": "#444444"
},
"emphasis": {
"borderWidth": "0",
"borderColor": "#444444"
}
}
},
"sankey": {
"itemStyle": {
"normal": {
"borderWidth": "0",
"borderColor": "#444444"
},
"emphasis": {
"borderWidth": "0",
"borderColor": "#444444"
}
}
},
"funnel": {
"itemStyle": {
"normal": {
"borderWidth": "0",
"borderColor": "#444444"
},
"emphasis": {
"borderWidth": "0",
"borderColor": "#444444"
}
}
},
"gauge": {
"itemStyle": {
"normal": {
"borderWidth": "0",
"borderColor": "#444444"
},
"emphasis": {
"borderWidth": "0",
"borderColor": "#444444"
}
}
},
"candlestick": {
"itemStyle": {
"normal": {
"color": "#d0648a",
"color0": "#ffffff",
"borderColor": "#d0648a",
"borderColor0": "#22c3aa",
"borderWidth": 1
}
}
},
"graph": {
"itemStyle": {
"normal": {
"borderWidth": "0",
"borderColor": "#444444"
}
},
"lineStyle": {
"normal": {
"width": 1,
"color": "#aaa"
}
},
"symbolSize": "10",
"symbol": "emptyCircle",
"smooth": true,
"color": [
"#4ea397",
"#22c3aa",
"#7bd9a5"
],
"label": {
"normal": {
"textStyle": {
"color": "#ffffff"
}
}
}
},
"map": {
"itemStyle": {
"normal": {
"areaColor": "#eeeeee",
"borderColor": "#999999",
"borderWidth": "0.5"
},
"emphasis": {
"areaColor": "rgba(34,195,170,0.25)",
"borderColor": "#22c3aa",
"borderWidth": "0.5"
}
},
"label": {
"normal": {
"textStyle": {
"color": "#28544e"
}
},
"emphasis": {
"textStyle": {
"color": "rgb(52,158,142)"
}
}
}
},
"geo": {
"itemStyle": {
"normal": {
"areaColor": "#eeeeee",
"borderColor": "#999999",
"borderWidth": "0.5"
},
"emphasis": {
"areaColor": "rgba(34,195,170,0.25)",
"borderColor": "#22c3aa",
"borderWidth": "0.5"
}
},
"label": {
"normal": {
"textStyle": {
"color": "#28544e"
}
},
"emphasis": {
"textStyle": {
"color": "rgb(52,158,142)"
}
}
}
},
"categoryAxis": {
"axisLine": {
"show": true,
"lineStyle": {
"color": "#cccccc"
}
},
"axisTick": {
"show": false,
"lineStyle": {
"color": "#333333"
}
},
"axisLabel": {
"show": true,
"textStyle": {
"color": "#999999"
}
},
"splitLine": {
"show": true,
"lineStyle": {
"color": [
"#eeeeee"
]
}
},
"splitArea": {
"show": false,
"areaStyle": {
"color": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
}
}
},
"valueAxis": {
"axisLine": {
"show": true,
"lineStyle": {
"color": "#cccccc"
}
},
"axisTick": {
"show": false,
"lineStyle": {
"color": "#333333"
}
},
"axisLabel": {
"show": true,
"textStyle": {
"color": "#999999"
}
},
"splitLine": {
"show": true,
"lineStyle": {
"color": [
"#eeeeee"
]
}
},
"splitArea": {
"show": false,
"areaStyle": {
"color": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
}
}
},
"logAxis": {
"axisLine": {
"show": true,
"lineStyle": {
"color": "#cccccc"
}
},
"axisTick": {
"show": false,
"lineStyle": {
"color": "#333333"
}
},
"axisLabel": {
"show": true,
"textStyle": {
"color": "#999999"
}
},
"splitLine": {
"show": true,
"lineStyle": {
"color": [
"#eeeeee"
]
}
},
"splitArea": {
"show": false,
"areaStyle": {
"color": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
}
}
},
"timeAxis": {
"axisLine": {
"show": true,
"lineStyle": {
"color": "#cccccc"
}
},
"axisTick": {
"show": false,
"lineStyle": {
"color": "#333333"
}
},
"axisLabel": {
"show": true,
"textStyle": {
"color": "#999999"
}
},
"splitLine": {
"show": true,
"lineStyle": {
"color": [
"#eeeeee"
]
}
},
"splitArea": {
"show": false,
"areaStyle": {
"color": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
}
}
},
"toolbox": {
"iconStyle": {
"normal": {
"borderColor": "#aaaaaa"
},
"emphasis": {
"borderColor": "#666"
}
}
},
"legend": {
"textStyle": {
"color": "#999999"
}
},
"tooltip": {
"axisPointer": {
"lineStyle": {
"color": "#ccc",
"width": 1
},
"crossStyle": {
"color": "#ccc",
"width": 1
}
}
},
"timeline": {
"lineStyle": {
"color": "#349e8e",
"width": 1
},
"itemStyle": {
"normal": {
"color": "#349e8e",
"borderWidth": "1"
},
"emphasis": {
"color": "#57e8d2"
}
},
"controlStyle": {
"normal": {
"color": "#349e8e",
"borderColor": "#349e8e",
"borderWidth": "0"
}
},
"checkpointStyle": {
"color": "#22c3aa",
"borderColor": "rgba(34,195,170,0.25)"
},
"label": {
"normal": {
"textStyle": {
"color": "#349e8e"
}
}
}
},
"visualMap": {
"color": [
"#d0648a",
"#22c3aa",
"rgba(123,217,165,0.2)"
]
},
"dataZoom": {
"backgroundColor": "#fff",
"dataBackgroundColor": "#dedede",
"fillerColor": "rgba(34,195,170,0.25)",
"handleColor": "#dddddd",
"handleSize": "100%",
"textStyle": {
"color": "#999"
}
},
"markPoint": {
"label": {
"normal": {
"textStyle": {
"color": "#ffffff"
}
},
"emphasis": {
"textStyle": {
"color": "#ffffff"
}
}
}
}
}
@@ -1,79 +0,0 @@
<template>
<span class="widget-rate-panel">
<span class="name">{{name}}</span>
<span class="infinite" v-if="infinite">∞</span>
<span class="no-data" v-else-if="noData"> - </span>
<span v-else>{{value>0?'+':''}}{{value}}%</span>
<i class="fa fa-arrow-down text-success" v-if="!noData && value<0"></i>
<i class="fa fa-arrow-up text-danger" v-if="!noData && (infinite || value>=0)"></i>
</span>
</template>
<script>
export default {
data: function () {
return {}
},
computed: {
noData() {
return this.standardValue === 0 && this.compareValue === 0
},
infinite() {
return this.standardValue === 0 && this.compareValue > 0
},
value() {
if (this.standardValue === 0) {
if (this.compareValue === 0) {
return 0;
} else {
return 100;
}
} else {
let v1 = this.compareValue - this.standardValue
let v2 = v1 / this.standardValue
return (v2 * 100).toFixed(0)
}
}
},
props: {
name: {
type: String,
required: false,
'default': "周环比"
},
standardValue: {
type: Number,
required: true,
'default': 0
},
compareValue: {
type: Number,
required: true,
'default': 0
}
},
components: {},
methods: {},
mounted() {
let that = this;
}
}
</script>
<style lang="less" rel="stylesheet/less">
@import "../../../assets/css/global/variables";
.widget-rate-panel {
margin-right: 5px;
.infinite {
}
.no-data {
}
}
</style>
-36
View File
@@ -1,36 +0,0 @@
<template>
<div class="backyard-image-cache-list animated fadeIn">
<div class="pedia-navigation">
<span class="item active">缓存图片列表</span>
</div>
<ImageCacheList/>
</div>
</template>
<script>
import ImageCacheList from "./widget/ImageCacheList"
export default {
data() {
return {}
},
components: {
ImageCacheList
},
methods: {},
mounted() {
}
}
</script>
<style lang="less" rel="stylesheet/less">
.backyard-image-cache-list {
}
</style>
-164
View File
@@ -1,164 +0,0 @@
<template>
<div class="widget-image-cache-list animated fadeIn">
<div class="row">
<div class="col-md-12 text-right pb10">
<button class="btn btn-primary btn-sm " v-if="selectedImageCaches.length !== pager.data.length"
@click.stop.prevent="checkAll">
<i class="fa fa-check-square"></i>
全选
</button>
<button class="btn btn-primary btn-sm "
v-if="pager.data.length && selectedImageCaches.length === pager.data.length"
@click.stop.prevent="checkNone">
<i class="fa fa-square-o"></i>
取消全选
</button>
<button class="btn btn-primary btn-sm " v-if="selectedImageCaches.length" @click.stop.prevent="deleteBatch">
<i class="fa fa-trash"></i>
删除
</button>
</div>
<div class="col-md-12" v-for="(imageCache,index) in pager.data">
<ImageCachePanel
:imageCache="imageCache"
@deleteSuccess="refresh"
@checkImageCache="checkImageCache"
@previewImageCache="previewImageCache"
/>
</div>
<div class="col-md-12 mt20">
<NbPager :pager="pager" :callback="refresh"></NbPager>
</div>
</div>
</div>
</template>
<script>
import NbFilter from '../../../../common/widget/filter/NbFilter.vue'
import NbPager from '../../../../common/widget/NbPager.vue'
import Pager from '../../../../common/model/base/Pager'
import ImageCache from "../../../../common/model/image/cache/ImageCache";
import ImageCachePanel from "./ImageCachePanel"
import {MessageBox, Message} from "element-ui"
export default {
data() {
return {
pager: new Pager(ImageCache, Pager.MAX_PAGE_SIZE),
user: this.$store.state.user,
selectedImageCaches: []
}
},
props: {
initFilter: {
type: Object,
required: false
}
},
components: {
NbFilter,
NbPager,
ImageCachePanel
},
methods: {
search() {
this.pager.page = 0
this.refresh()
},
refresh() {
if (this.initFilter) {
for (let key in this.initFilter) {
this.pager.setFilterValue(key, this.initFilter[key]);
}
}
this.pager.httpFastPage()
},
checkImageCache(imageCache) {
let that = this
//统计所有的勾选
this.selectedImageCaches.splice(0, this.selectedImageCaches.length)
this.pager.data.forEach(function (imageCache, index) {
if (imageCache.check) {
that.selectedImageCaches.push(imageCache)
}
})
},
//全选
checkAll() {
this.pager.data.forEach(function (i, index) {
i.check = true
})
this.checkImageCache()
},
//取消全选
checkNone() {
this.pager.data.forEach(function (i, index) {
i.check = false
})
this.checkImageCache()
},
previewImageCache(imageCache) {
let that = this;
//从matter开始预览图片
let imageArray = []
let startIndex = -1;
this.pager.data.forEach(function (item, index) {
imageArray.push(item.getResizeUrl())
if (item.uuid === imageCache.uuid) {
startIndex = imageArray.length - 1
}
})
that.$photoSwipePlugin.showPhotos(imageArray, startIndex)
},
deleteBatch() {
let that = this
MessageBox.confirm('此操作将永久删除这些文件, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: function (action, instance) {
if (action === 'confirm') {
let uuids = ""
that.selectedImageCaches.forEach(function (item, index) {
if (index === 0) {
uuids = item.uuid
} else {
uuids = uuids + "," + item.uuid
}
})
let imageCache = new ImageCache()
imageCache.httpDeleteBatch(uuids, function (response) {
Message.success('删除成功!')
that.refresh()
})
}
}
})
}
},
mounted() {
this.pager.enableHistory()
this.refresh()
}
}
</script>
<style lang="less" rel="stylesheet/less">
.widget-image-cache-list {
}
</style>
-274
View File
@@ -1,274 +0,0 @@
<template>
<div class="widget-image-cache-panel">
<div @click.stop.prevent="clickRow">
<div class="media">
<div class="pull-left">
<div class="left-part">
<span class="basic-span">
<NbCheckbox v-model="imageCache.check"/>
</span>
<span class="basic-span">
<img class="image-cache-icon" :src="handleImageUrl(imageCache.getOriginUrl(),false,100,100)"/>
</span>
</div>
</div>
<!--在大屏下的操作栏-->
<div class="pull-right hidden-sm hidden-xs">
<div class="right-part" v-if="imageCache.uuid">
<span class="image-cache-operation">
<i class="fa fa-trash btn-action text-danger" title="删除" @click.stop.prevent="deleteImageCache"></i>
</span>
<span class="image-cache-size">
{{imageCache.size | humanFileSize}}
</span>
<span class="image-cache-date">
{{imageCache.updateTime | simpleDateHourMinute}}
</span>
</div>
</div>
<!--在小屏幕下的操作栏-->
<div class="pull-right hidden-lg hidden-md">
<span class="more-btn" @click.stop.prevent="showMore = !showMore">
<i class="fa fa-ellipsis-h btn-action" title="显示更多"></i>
</span>
</div>
<div class="media-body">
<div class="middle-part">
<span class="image-cache-name">
{{imageCache.getName()}}
</span>
</div>
</div>
</div>
</div>
<NbExpanding>
<div class="hidden-lg hidden-md more-panel" v-if="showMore">
<div class="cell-btn" style="border: none">
<span>
{{imageCache.updateTime | simpleDateHourMinute}}
</span>
<span v-if="!imageCache.dir">
{{imageCache.size | humanFileSize}}
</span>
</div>
<div class="cell-btn text-danger" title="删除" @click.stop.prevent="deleteImageCache">
<i class="fa fa-trash"></i>
删除
</div>
</div>
</NbExpanding>
</div>
</template>
<script>
import ImageCache from '../../../../common/model/image/cache/ImageCache'
import NbCheckbox from '../../../../common/widget/NbCheckbox'
import NbExpanding from '../../../../common/widget/NbExpanding'
import {Message, MessageBox} from 'element-ui'
import {handleImageUrl} from "../../../../common/util/ImageUtil";
export default {
data() {
return {
//正在向服务器提交rename的请求
renamingLoading: false,
showMore: false
}
},
components: {
NbExpanding,
NbCheckbox
},
props: {
imageCache: {
type: ImageCache,
required: true
}
},
watch: {
'imageCache.check'(newVal, oldVal) {
this.$emit('checkImageCache', this.imageCache)
}
},
methods: {
handleImageUrl,
clickRow() {
let that = this
this.$emit('previewImageCache', this.imageCache)
},
deleteImageCache() {
let that = this
MessageBox.confirm('此操作将永久删除该文件, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: function (action, instance) {
if (action === 'confirm') {
that.imageCache.httpDelete(function (response) {
Message.success('删除成功!')
that.$emit('deleteSuccess', that.imageCache)
})
}
}
})
},
finishCreateDirectory() {
let that = this
that.imageCache.httpCreateDirectory(function () {
that.director.createMode = false
that.editMode = false
that.imageCache.render(new ImageCache())
that.$emit('createDirectorySuccess', that.imageCache)
}, function (errorMessage) {
that.director.createMode = false
that.editMode = false
Message.error(errorMessage)
})
}
},
created() {
},
mounted() {
}
}
</script>
<style lang="less" rel="stylesheet/less">
@import "../../../../assets/css/global/variables";
@base-height: 48px;
@inner-cell-height: 36px;
.basic-span {
display: inline-block;
vertical-align: middle;
line-height: @base-height;
margin-right: 5px;
}
.widget-image-cache-panel {
border-top: 1px solid #eee;
background-color: white;
.media {
> .pull-left {
padding-right: 1px;
}
}
.image-cache-icon {
width: 24px;
}
.left-part {
margin-left: 10px;
}
.middle-part {
height: @base-height;
overflow: hidden;
.image-cache-name-edit {
.basic-span;
width: 90%;
input {
width: 100%;
height: 26px;
display: inline-block;
padding: 6px;
}
}
.image-cache-name {
.basic-span;
width: 100%;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
}
.right-part {
.image-cache-operation {
.basic-span;
display: none;
i {
font-size: 16px;
margin-right: 5px;
&:hover {
}
}
}
.image-cache-size {
.basic-span;
display: inline-block;
width: 80px;
text-align: left;
margin-left: 20px;
}
.image-cache-date {
.basic-span;
}
}
.more-btn {
display: inline-block;
vertical-align: middle;
line-height: @base-height;
padding: 0 15px;
}
&:hover {
background-color: aliceblue;
cursor: pointer;
.image-cache-operation {
display: inline-block;
}
}
.more-panel {
border-top: 1px solid #eee;
padding-left: 35px;
.info {
}
.cell-btn {
border-top: 1px solid #eee;
line-height: @inner-cell-height;
vertical-align: middle;
}
}
}
</style>

Some files were not shown because too many files have changed in this diff Show More