Browse Source

main

fatnigger
gsd 2 years ago
parent
commit
f505ca1747
  1. 1
      .gitignore
  2. 149
      package-lock.json
  3. 4
      package.json
  4. 121
      src/App.vue
  5. BIN
      src/assets/favicon.ico
  6. BIN
      src/assets/fonts/tf2.ttf
  7. BIN
      src/assets/fonts/tf2build.ttf
  8. BIN
      src/assets/fonts/tf2secondary.ttf
  9. BIN
      src/assets/images/backgrounds/1.png
  10. BIN
      src/assets/images/backgrounds/2.png
  11. BIN
      src/assets/images/backgrounds/3.png
  12. BIN
      src/assets/images/backgrounds/4.png
  13. BIN
      src/assets/images/characters/engi_n.png
  14. BIN
      src/assets/images/characters/mgesold.png
  15. BIN
      src/assets/images/characters/pootisd.png
  16. BIN
      src/assets/images/characters/pyro.png
  17. BIN
      src/assets/images/characters/toilet.png
  18. 14
      src/assets/profile-user.svg
  19. BIN
      src/assets/sounds/alertmgs.mp3
  20. BIN
      src/assets/sounds/nigger.mp3
  21. BIN
      src/assets/sounds/pizdatchik.mp3
  22. BIN
      src/assets/sounds/pootis.mp3
  23. BIN
      src/assets/sounds/puk.mp3
  24. BIN
      src/assets/sounds/soldier_laughevil03.mp3
  25. BIN
      src/assets/sounds/sunboy-ledi-night-16.mp3
  26. BIN
      src/assets/user.png
  27. 58
      src/components/HelloWorld.vue
  28. 31
      src/components/Others/BackgroundImage.vue
  29. 28
      src/components/Others/CharacterImage.vue
  30. 50
      src/components/PublicMethods.js
  31. 35
      src/components/TabsMenu.vue
  32. 11
      src/components/TabsMenuElements/AboutView.vue
  33. 14
      src/components/TabsMenuElements/EmptyTab.vue
  34. 37
      src/components/TabsMenuElements/MainView/Components/LogoWithCharacters.vue
  35. 64
      src/components/TabsMenuElements/MainView/Components/WhyNot.vue
  36. 23
      src/components/TabsMenuElements/MainView/MainView.vue
  37. 17
      src/components/TabsMenuElements/ProfileView.vue
  38. 11
      src/components/TabsMenuElements/RulesView.vue
  39. 11
      src/components/TabsMenuElements/ServersView.vue
  40. 11
      src/components/TabsMenuElements/VipView.vue
  41. 12
      vue.config.js

1
.gitignore

@ -21,3 +21,4 @@ pnpm-debug.log*
*.njsproj
*.sln
*.sw?
/src/trash/

149
package-lock.json

@ -8,8 +8,10 @@
"name": "facti13-vue-material",
"version": "0.1.0",
"dependencies": {
"axios": "^1.5.1",
"core-js": "^3.8.3",
"vue": "^2.6.14"
"vue": "^2.6.14",
"vue-material": "^1.0.0-beta-16"
},
"devDependencies": {
"@babel/core": "^7.12.16",
@ -3429,6 +3431,11 @@
"lodash": "^4.17.14"
}
},
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"node_modules/at-least-node": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
@ -3475,6 +3482,16 @@
"postcss": "^8.1.0"
}
},
"node_modules/axios": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.5.1.tgz",
"integrity": "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==",
"dependencies": {
"follow-redirects": "^1.15.0",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
},
"node_modules/babel-loader": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz",
@ -4149,6 +4166,17 @@
"integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
"dev": true
},
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dependencies": {
"delayed-stream": "~1.0.0"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/commander": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
@ -4925,6 +4953,14 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/depd": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
@ -6156,7 +6192,6 @@
"version": "1.15.3",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz",
"integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==",
"dev": true,
"funding": [
{
"type": "individual",
@ -6172,6 +6207,27 @@
}
}
},
"node_modules/form-data": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"mime-types": "^2.1.12"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/format-thousands": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/format-thousands/-/format-thousands-1.1.1.tgz",
"integrity": "sha512-OrNyhmdvoDfpcUVU3N4SqjfLTfnYVmc8JFiUo3Ar1IwxLv/QJC9PpU5dYuLrHTYzpLC8hF9aCBsfmgaoHlWJMQ==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/forwarded": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
@ -6301,6 +6357,11 @@
"node": ">=6"
}
},
"node_modules/github-buttons": {
"version": "2.27.0",
"resolved": "https://registry.npmjs.org/github-buttons/-/github-buttons-2.27.0.tgz",
"integrity": "sha512-PmfRMI2Rttg/2jDfKBeSl621sEznrsKF019SuoLdoNlO7qRUZaOyEI5Li4uW+79pVqnDtKfIEVuHTIJ5lgy64w=="
},
"node_modules/glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
@ -7677,7 +7738,6 @@
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"dev": true,
"engines": {
"node": ">= 0.6"
}
@ -7686,7 +7746,6 @@
"version": "2.1.35",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"dev": true,
"dependencies": {
"mime-db": "1.52.0"
},
@ -7935,7 +7994,6 @@
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
"integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
"dev": true,
"dependencies": {
"whatwg-url": "^5.0.0"
},
@ -8154,6 +8212,14 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/opencollective-postinstall": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz",
"integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==",
"bin": {
"opencollective-postinstall": "index.js"
}
},
"node_modules/opener": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz",
@ -9165,6 +9231,11 @@
"node": ">= 0.10"
}
},
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
"node_modules/pseudomap": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
@ -10460,8 +10531,7 @@
"node_modules/tr46": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
"dev": true
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"node_modules/tslib": {
"version": "2.6.2",
@ -10775,6 +10845,40 @@
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
},
"node_modules/vue-github-button": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/vue-github-button/-/vue-github-button-1.3.0.tgz",
"integrity": "sha512-Cc92t+GBLwBPhwtHSvKXjbx07U3+6xdi+eR+s9c734tHbndipCLenJjLVkgErNhKZ0EvDjRyuu8Hu69gg9/TxQ==",
"dependencies": {
"github-buttons": "^2.8.0"
}
},
"node_modules/vue-github-buttons": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/vue-github-buttons/-/vue-github-buttons-3.1.0.tgz",
"integrity": "sha512-x0b9bdhP5xZOD5kQ9+nnCzvKqVyHb4moqN2l06mjYB/k2WRdW5jiAWlneUgoPFwPvcqM40vrTDXVvBrS0MMlEQ==",
"dependencies": {
"format-thousands": "^1.1.1",
"node-fetch": "^2.3.0",
"tslib": "^1.9.3"
},
"peerDependencies": {
"vue": "2"
}
},
"node_modules/vue-github-buttons/node_modules/tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/vue-gtag": {
"version": "1.16.1",
"resolved": "https://registry.npmjs.org/vue-gtag/-/vue-gtag-1.16.1.tgz",
"integrity": "sha512-5vs0pSGxdqrfXqN1Qwt0ZFXG0iTYjRMu/saddc7QIC5yp+DKgjWQRpGYVa7Pq+KbThxwzzMfo0sGi7ISa6NowA==",
"peerDependencies": {
"vue": "^2.0.0"
}
},
"node_modules/vue-hot-reload-api": {
"version": "2.3.4",
"resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
@ -10873,6 +10977,25 @@
"node": ">=8"
}
},
"node_modules/vue-material": {
"version": "1.0.0-beta-16",
"resolved": "https://registry.npmjs.org/vue-material/-/vue-material-1.0.0-beta-16.tgz",
"integrity": "sha512-Sp7eqn9F3bQJYxOATThtS00whxX/wYugTJZYc5nG+xXxMT89fq86lmhZlcKuuUyl+rvPOs4G+H+woyK4C8suDQ==",
"hasInstallScript": true,
"dependencies": {
"opencollective-postinstall": "^2.0.3",
"vue-github-button": "^1.3.0",
"vue-github-buttons": "^3.1.0",
"vue-gtag": "^1.16.1",
"vue-toc": "0.0.1"
},
"engines": {
"node": ">= 7.0"
},
"peerDependencies": {
"vue": "^2.7.14"
}
},
"node_modules/vue-style-loader": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz",
@ -10905,6 +11028,14 @@
"integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
"dev": true
},
"node_modules/vue-toc": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/vue-toc/-/vue-toc-0.0.1.tgz",
"integrity": "sha512-RZfVgLzk/kpEmk05ptvU/+x3TVo4Ai4BBARvV4iCurR9bJsAqnnrqwjEBKnEG+s6NT0yQ6EY0JMGViyOUGysDw==",
"dependencies": {
"vue": "^2.6.10"
}
},
"node_modules/watchpack": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
@ -10939,8 +11070,7 @@
"node_modules/webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
"dev": true
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
},
"node_modules/webpack": {
"version": "5.88.2",
@ -11342,7 +11472,6 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
"dev": true,
"dependencies": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"

4
package.json

@ -8,8 +8,10 @@
"lint": "vue-cli-service lint"
},
"dependencies": {
"axios": "^1.5.1",
"core-js": "^3.8.3",
"vue": "^2.6.14"
"vue": "^2.6.14",
"vue-material": "^1.0.0-beta-16"
},
"devDependencies": {
"@babel/core": "^7.12.16",

121
src/App.vue

@ -1,28 +1,137 @@
<template>
<div id="app">
<img alt="Vue logo" src="./assets/logo.png">
<HelloWorld msg="Welcome to Your Vue.js App"/>
<div>
<TabsMenu></TabsMenu>
</div>
</template>
<script>
import HelloWorld from './components/HelloWorld.vue'
import Vue from "vue";
//import 'vue-material/dist/theme/default.css'
import 'vue-material/dist/vue-material.min.css'
import MdTabs from "vue-material/dist/components/MdTabs";
import MdIcon from "vue-material/dist/components/MdIcon";
Vue.use(MdTabs);
Vue.use(MdIcon);
import TabsMenu from "@/components/TabsMenu.vue";
export default {
name: 'App',
components: {
HelloWorld
TabsMenu
}
}
</script>
<style>
#app {
@font-face {
font-family: tf2build;
src: url('@/assets/fonts/tf2build.ttf');
}
@font-face {
font-family: tf2secondary;
src: url('@/assets/fonts/tf2secondary.ttf');
}
/*#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}*/
h1,h2,h3,h4,h5,h6 {
font-family: tf2build;
color: #131213;
}
h1 {
font-family: tf2build;
line-height: 1em;
font-size: 5em;
}
h2 {
font-family: tf2build;
font-size: 4em;
}
h3 {
font-family: tf2build;
font-size: 3em;
}
h4 {
line-height: 1em;
font-size: 2em;
}
h5 {
font-size: 1.3em;
}
h6 {
font-size: 0.5em;
}
p {
color: #fdecc1;
}
a {
font-family: tf2build;
}
.md-tab {
background-size: cover
}
.rounded-and-colored {
border-radius: 20px;
border: 2px solid black;
background: #fd8846;
}
.rounded-and-colored-without-bottom {
border-radius: 20px;
border-top: 2px solid black;
border-left: 2px solid black;
border-right: 2px solid black;
border-bottom: 0px solid transparent;
background: #fd8846;
}
.rounded-only {
border-radius: 20px;
border: 1px solid black;
background: #e0eddd;
}
.pt-5 {
padding-top: 10px;
}
.md-tabs {
background-color: #131213;
}
.md-button.md-active {
font-size: 1.7em;
color: #fdecc1;
font-family: tf2build;
border-bottom: 2px solid #fdecc1;
}
.md-tabs-navigation {
font-size: 1.5em;
}
.md-button {
color: #efdfb7;
font-family: tf2secondary;
text-transform: none;
}
</style>

BIN
src/assets/favicon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
src/assets/fonts/tf2.ttf

Binary file not shown.

BIN
src/assets/fonts/tf2build.ttf

Binary file not shown.

BIN
src/assets/fonts/tf2secondary.ttf

Binary file not shown.

BIN
src/assets/images/backgrounds/1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

BIN
src/assets/images/backgrounds/2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

BIN
src/assets/images/backgrounds/3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

BIN
src/assets/images/backgrounds/4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

BIN
src/assets/images/characters/engi_n.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

BIN
src/assets/images/characters/mgesold.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
src/assets/images/characters/pootisd.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
src/assets/images/characters/pyro.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

BIN
src/assets/images/characters/toilet.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 908 KiB

14
src/assets/profile-user.svg

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg fill="#fdecc1" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="800px" height="800px" viewBox="0 0 45.532 45.532"
xml:space="preserve">
<g>
<path d="M22.766,0.001C10.194,0.001,0,10.193,0,22.766s10.193,22.765,22.766,22.765c12.574,0,22.766-10.192,22.766-22.765
S35.34,0.001,22.766,0.001z M22.766,6.808c4.16,0,7.531,3.372,7.531,7.53c0,4.159-3.371,7.53-7.531,7.53
c-4.158,0-7.529-3.371-7.529-7.53C15.237,10.18,18.608,6.808,22.766,6.808z M22.761,39.579c-4.149,0-7.949-1.511-10.88-4.012
c-0.714-0.609-1.126-1.502-1.126-2.439c0-4.217,3.413-7.592,7.631-7.592h8.762c4.219,0,7.619,3.375,7.619,7.592
c0,0.938-0.41,1.829-1.125,2.438C30.712,38.068,26.911,39.579,22.761,39.579z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 982 B

BIN
src/assets/sounds/alertmgs.mp3

Binary file not shown.

BIN
src/assets/sounds/nigger.mp3

Binary file not shown.

BIN
src/assets/sounds/pizdatchik.mp3

Binary file not shown.

BIN
src/assets/sounds/pootis.mp3

Binary file not shown.

BIN
src/assets/sounds/puk.mp3

Binary file not shown.

BIN
src/assets/sounds/soldier_laughevil03.mp3

Binary file not shown.

BIN
src/assets/sounds/sunboy-ledi-night-16.mp3

Binary file not shown.

BIN
src/assets/user.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

58
src/components/HelloWorld.vue

@ -1,58 +0,0 @@
<template>
<div class="hello">
<h1>{{ msg }}</h1>
<p>
For a guide and recipes on how to configure / customize this project,<br>
check out the
<a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.
</p>
<h3>Installed CLI Plugins</h3>
<ul>
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li>
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li>
</ul>
<h3>Essential Links</h3>
<ul>
<li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li>
<li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li>
<li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li>
<li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li>
<li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li>
</ul>
<h3>Ecosystem</h3>
<ul>
<li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li>
<li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li>
<li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li>
<li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li>
<li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li>
</ul>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
props: {
msg: String
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h3 {
margin: 40px 0 0;
}
ul {
list-style-type: none;
padding: 0;
}
li {
display: inline-block;
margin: 0 10px;
}
a {
color: #42b983;
}
</style>

31
src/components/Others/BackgroundImage.vue

@ -0,0 +1,31 @@
<template>
<div :style="getStyle()"/>
</template>
<script>
import PublicMethods from "@/components/PublicMethods";
export default {
name: 'BackgroundImage',
data: () => ({
blur_px: 5
}),
methods: {
getStyle(){
return {
"position": "fixed",
"left": 0,
"right": 0,
"z-index": -1,
"width":"100%",
"height":"800px",
"background-image": `url('${PublicMethods.getBackground()}')`,
"-webkit-filter": `blur(${this.blur_px}px)`,
"-moz-filter": `blur(${this.blur_px}px)`,
"-o-filter": `blur(${this.blur_px}px)`,
"-ms-filter": `blur(${this.blur_px}px)`,
"filter": `blur(${this.blur_px}px)`
}
}
}
}
</script>

28
src/components/Others/CharacterImage.vue

@ -0,0 +1,28 @@
<template>
<div class="md-layout-item" :class="`md-size-${size}`">
<img :src="img_src" @click="audio_puk">
</div>
</template>
<script>
export default {
name: 'CharacterImage',
props: {
size: {
type: Number,
default: 15
},
img_src: {
type: String
},
audio_src: {
type: String
}
},
methods: {
audio_puk() {
new Audio(this.audio_src).play();
}
}
}
</script>

50
src/components/PublicMethods.js

@ -0,0 +1,50 @@
import axios from "axios";
export default {
name: "PublicMethods",
methods: {},
getBackground(){
const backgrounds = [
require('../assets/images/backgrounds/1.png'),
require('../assets/images/backgrounds/2.png'),
require('../assets/images/backgrounds/3.png'),
require('../assets/images/backgrounds/4.png')
];
return backgrounds[Math.floor(Math.random()*backgrounds.length)];
},
getApi(){
console.log("[PublicMethods] request api/stats");
return axios.get("/api/stats")
.then(response => response.data)
.then(response => {
console.log("[PublicMethods] success get api/stats");
console.log(response);
return response;
})
.catch(err => {
console.log(`[PublicMethods] cannot request api/stats, err: ${err}`);
})
},
getStatistics(){
console.log("[PublicMethods] request api/stats/statistics");
return axios.get("/api/stats?filter=statistic")
.then(response => response.data)
.then(response => {
return response;
})
.catch(err => {
console.log(`[PublicMethods] cannot request api/stats/statistic, err: ${err}`);
})
},
getUniq(){
console.log("[PublicMethods] request api/stats/uniq");
return axios.get("/api/stats?filter=uniq")
.then(response => response.data)
.then(response => {
return response;
})
.catch(err => {
console.log(`[PublicMethods] cannot request api/stats/statistic, err: ${err}`);
})
}
}

35
src/components/TabsMenu.vue

@ -0,0 +1,35 @@
<template>
<div>
<md-tabs md-alignment="centered" :md-active-tab="current_tab">
<MainView/>
<RulesView/>
<ServersView/>
<VipView/>
<AboutView/>
<EmptyTab lb=""/>
<EmptyTab lb=""/>
<ProfileView/>
</md-tabs>
</div>
</template>
<script>
import RulesView from "@/components/TabsMenuElements/RulesView.vue";
import ServersView from "@/components/TabsMenuElements/ServersView.vue";
import ProfileView from "@/components/TabsMenuElements/ProfileView.vue";
import VipView from "@/components/TabsMenuElements/VipView.vue";
import AboutView from "@/components/TabsMenuElements/AboutView.vue";
import EmptyTab from "@/components/TabsMenuElements/EmptyTab.vue";
import MainView from "@/components/TabsMenuElements/MainView/MainView.vue";
export default {
name: 'TabsMenu',
components: {MainView, EmptyTab, RulesView, ServersView, ProfileView, VipView, AboutView},
data: () => ({
current_tab: 0
})
}
</script>
<style>
</style>

11
src/components/TabsMenuElements/AboutView.vue

@ -0,0 +1,11 @@
<template>
<md-tab id="aboutView" md-label="О нас">
<p>about</p>
</md-tab>
</template>
<script>
export default {
name: 'AboutView'
}
</script>

14
src/components/TabsMenuElements/EmptyTab.vue

@ -0,0 +1,14 @@
<template>
<md-tab :md-label="this.lb" md-disabled/>
</template>
<script>
export default {
name: 'EmptyTab',
props: {
lb: String
}
}
</script>
<style>
</style>

37
src/components/TabsMenuElements/MainView/Components/LogoWithCharacters.vue

@ -0,0 +1,37 @@
<template>
<div>
<div class="md-layout md-alignment-bottom-center">
<div class="md-layout-item md-size-20"/>
<CharacterImage :size="20" :img_src="require(`@/assets/images/characters/pootisd.png`)" :audio_src="require(`@/assets/sounds/pootis.mp3`)"/>
<div class="md-layout-item md-size-20">
<div class="md-layout md-alignment-bottom-center">
<CharacterImage :size="25" :img_src="require(`@/assets/images/characters/pyro.png`)" :audio_src="require(`@/assets/sounds/alertmgs.mp3`)"/>
<CharacterImage :size="50" :img_src="require(`@/assets/images/characters/toilet.png`)" :audio_src="require(`@/assets/sounds/puk.mp3`)"/>
<CharacterImage :size="25" :img_src="require(`@/assets/images/characters/engi_n.png`)" :audio_src="require(`@/assets/sounds/nigger.mp3`)"/>
</div>
<div class="md-layout md-size-40">
<div class="md-layout-item md-alignment-bottom-center rounded-and-colored-without-bottom">
<h1 style="text-align: center; text-shadow: rgba(80,80,80,0.59) 2px 5px; margin: 2%">Факты 13</h1>
</div>
</div>
</div>
<CharacterImage :size="20" :img_src="require(`@/assets/images/characters/mgesold.png`)" :audio_src="require(`@/assets/sounds/soldier_laughevil03.mp3`)"/>
<div class="md-layout-item md-size-20"/>
</div>
<div class="md-layout">
<div class="md-layout-item md-size"/>
<div class="md-layout-item md-size-55 rounded-and-colored-without-bottom">
<h4 style="text-align: center; text-transform: uppercase; font-size: 2.5em; margin: 1%">Добро пожаловать на "лучший" ру-сервер тф2</h4>
</div>
<div class="md-layout-item md-size"/>
</div>
</div>
</template>
<script>
import CharacterImage from "@/components/Others/CharacterImage.vue";
export default {
name: 'LogoWithCharacters',
components: {CharacterImage}
}
</script>

64
src/components/TabsMenuElements/MainView/Components/WhyNot.vue

@ -0,0 +1,64 @@
<template>
<div class="md-layout">
<div class="md-layout-item md-size"/>
<div class="md-layout-item md-size-60 rounded-and-colored" style="background: #fffefc">
<h5 style="text-align: center;margin: 1%;">Давно искал место где можно почилить в данной мертвой игре??? Поздравляю ты его нашел!!!</h5>
<hr>
<div class="md-layout md-alignment-center-center">
<div class="md-layout-item md-size-10">
<h5 style="text-align: center">Сейчас играют</h5>
</div>
<div class="md-layout-item md-size-5" style="border-left:1px solid #000;height:3.5em;border-right: 1px solid #000"/>
<div class="md-layout-item md-size-10">
<h5 style="text-align: center;">Пик игроков за день</h5>
</div>
<div class="md-layout-item md-size-5" style="border-left:1px solid #000;height:3.5em;border-right: 1px solid #000"/>
<div class="md-layout-item md-size-10">
<h5 style="text-align: center">Серверов работает</h5>
</div>
</div>
<div class="md-layout md-alignment-center-center" style="margin-top: -2%">
<div class="md-layout-item md-size-5 rounded-and-colored">
<h4 style="text-align: center; margin: 40% 0%;">-1</h4>
</div>
<div class="md-layout-item md-size-10"/>
<div class="md-layout-item md-size-5 rounded-and-colored">
<h4 style="text-align: center; margin: 40% 0%;">-1</h4>
</div>
<div class="md-layout-item md-size-10"/>
<div class="md-layout-item md-size-5 rounded-and-colored">
<h4 style="text-align: center; margin: 40% 0%;">-1</h4>
</div>
</div>
<hr>
<div class="md-layout md-alignment-center-center" style="margin: 2%">
<div class="md-layout-item md-size-30 rounded-and-colored">
<div class="md-layout md-alignment-center-center" style="margin: -5% 5%">
<div class="md-layout-item md-size-5">
<h4 style="text-align: left">{{' > '}}</h4>
</div>
<div class="md-layout-item">
<h4 style="text-align: center;">ПОДКЛЮЧИТЬСЯ К СЕРВЕРУ</h4>
</div>
<div class="md-layout-item md-size-5">
<h4 style="text-align: right">{{' < '}}</h4>
</div>
</div>
</div>
</div>
<hr>
<div class="md-layout md-alignment-center-center" style="margin: 2%">
<div class="md-layout-item md-size-50" style="margin: -5% 0%">
<h4 style="text-align: center">Почему стоит начать играть?</h4>
</div>
</div>
</div>
<div class="md-layout-item md-size"/>
</div>
</template>
<script>
export default {
name: "WhyNot"
}
</script>

23
src/components/TabsMenuElements/MainView/MainView.vue

@ -0,0 +1,23 @@
<template>
<md-tab id="mainView" md-label="Факты 13" :style="toStyle()">
<BackgroundImage/>
<LogoWithCharacters/>
<WhyNot/>
</md-tab>
</template>
<script>
import BackgroundImage from "@/components/Others/BackgroundImage.vue";
import LogoWithCharacters from "@/components/TabsMenuElements/MainView/Components/LogoWithCharacters.vue";
import WhyNot from "@/components/TabsMenuElements/MainView/Components/WhyNot.vue";
export default {
name: 'MainViewElement2',
components: {WhyNot, LogoWithCharacters, BackgroundImage},
methods: {
toStyle() {
return {};
}
}
}
</script>

17
src/components/TabsMenuElements/ProfileView.vue

@ -0,0 +1,17 @@
<template>
<md-tab id="profileView" :md-icon="this.avatar">
<p>profile</p>
</md-tab>
</template>
<script>
export default {
name: 'ProfileView',
props: {
avatar: {
type: String,
default: require('@/assets/profile-user.svg')
}
}
}
</script>

11
src/components/TabsMenuElements/RulesView.vue

@ -0,0 +1,11 @@
<template>
<md-tab id="rulesView" md-label="Правила">
<p>rules</p>
</md-tab>
</template>
<script>
export default {
name: 'RulesView'
}
</script>

11
src/components/TabsMenuElements/ServersView.vue

@ -0,0 +1,11 @@
<template>
<md-tab id="serversView" md-label="Серверы">
<p>servers</p>
</md-tab>
</template>
<script>
export default {
name: 'ServersView'
}
</script>

11
src/components/TabsMenuElements/VipView.vue

@ -0,0 +1,11 @@
<template>
<md-tab id="vipView" md-label="VIP">
<p>vip</p>
</md-tab>
</template>
<script>
export default {
name: 'VipView'
}
</script>

12
vue.config.js

@ -1,4 +1,14 @@
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
transpileDependencies: true
transpileDependencies: true,
devServer: {
proxy: {
"/api": {
target: "http://192.168.3.3:26272/api/",
secure: false,
changeOrigin: true,
pathRewrite: { '^/api': '' },
}
}
}
})

Loading…
Cancel
Save