Initial commit

This commit is contained in:
kandrusyak
2023-01-15 22:39:37 +03:00
parent 1d6c521ed6
commit 58c8fe59ef
40 changed files with 649 additions and 71 deletions

View File

@@ -1,26 +1,22 @@
<template>
<img alt="Vue logo" src="./assets/logo.png">
<HelloWorld msg="Welcome to Your Vue.js App"/>
<HelloWorld />
</template>
<script>
import { ref } from 'vue'
import HelloWorld from './components/HelloWorld.vue'
export default {
name: 'App',
name: 'LayoutDefault',
components: {
HelloWorld
},
setup () {
return {
leftDrawerOpen: ref(false)
}
}
}
</script>
<style>
#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;
}
</style>

View File

@@ -0,0 +1,182 @@
@font-face {
font-family: 'icomoon';
src: url('../fonts/icomoon.eot?gy54l');
src: url('../fonts/icomoon.eot?gy54l#iefix') format('embedded-opentype'),
url('../fonts/icomoon.ttf?gy54l') format('truetype'),
url('../fonts/icomoon.woff?gy54l') format('woff'),
url('../fonts/icomoon.svg?gy54l#icomoon') format('svg');
font-weight: normal;
font-style: normal;
font-display: block;
}
[class^="icon-"]::before, [class*=" icon-"]::before {
/* use !important to prevent issues with browser extensions that change fonts */
font-family: 'icomoon' !important;
speak: never;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-home:before {
content: "\e931";
color: #252850;
}
.icon-settings:before {
content: "\e932";
color: #252850;
}
.icon-checkbox-off:before {
content: "\e900";
}
.icon-basket:before {
content: "\e901";
}
.icon-bell:before {
content: "\e902";
}
.icon-brush:before {
content: "\e903";
}
.icon-calendar:before {
content: "\e904";
}
.icon-calendar-2:before {
content: "\e905";
}
.icon-camera:before {
content: "\e906";
}
.icon-camera-reverse:before {
content: "\e907";
}
.icon-cancel:before {
content: "\e908";
}
.icon-cancel-mini:before {
content: "\e909";
}
.icon-change-place:before {
content: "\e90a";
}
.icon-checkbox-on:before {
content: "\e90b";
}
.icon-computer:before {
content: "\e90c";
}
.icon-copy:before {
content: "\e90d";
}
.icon-discord:before {
content: "\e90e";
}
.icon-doc-ok:before {
content: "\e90f";
}
.icon-dots:before {
content: "\e910";
}
.icon-down-arrow:before {
content: "\e911";
}
.icon-download:before {
content: "\e912";
}
.icon-edit:before {
content: "\e913";
}
.icon-export:before {
content: "\e914";
}
.icon-eye-off:before {
content: "\e915";
}
.icon-eye-on:before {
content: "\e916";
}
.icon-files:before {
content: "\e917";
}
.icon-filter:before {
content: "\e918";
}
.icon-google:before {
content: "\e919";
}
.icon-group:before {
content: "\e91a";
}
.icon-long-arrow:before {
content: "\e91b";
}
.icon-mail:before {
content: "\e91c";
}
.icon-mirror:before {
content: "\e91d";
}
.icon-ok:before {
content: "\e91e";
}
.icon-person:before {
content: "\e91f";
}
.icon-person-2:before {
content: "\e920";
}
.icon-phone:before {
content: "\e921";
}
.icon-photo-filter:before {
content: "\e922";
}
.icon-plus:before {
content: "\e923";
}
.icon-search:before {
content: "\e924";
}
.icon-slack:before {
content: "\e925";
}
.icon-sort-number:before {
content: "\e926";
}
.icon-sort-word:before {
content: "\e927";
}
.icon-star-off:before {
content: "\e928";
}
.icon-star-on:before {
content: "\e929";
}
.icon-table:before {
content: "\e92a";
}
.icon-tg:before {
content: "\e92b";
}
.icon-time:before {
content: "\e92c";
}
.icon-turn:before {
content: "\e92d";
}
.icon-up-tag:before {
content: "\e92e";
}
.icon-user-data:before {
content: "\e92f";
}
.icon-vk:before {
content: "\e930";
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Binary file not shown.

15
src/assets/logo.svg Normal file
View File

@@ -0,0 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 356 360">
<path
d="M43.4 303.4c0 3.8-2.3 6.3-7.1 6.3h-15v-22h14.4c4.3 0 6.2 2.2 6.2 5.2 0 2.6-1.5 4.4-3.4 5 2.8.4 4.9 2.5 4.9 5.5zm-8-13H24.1v6.9H35c2.1 0 4-1.3 4-3.8 0-2.2-1.3-3.1-3.7-3.1zm5.1 12.6c0-2.3-1.8-3.7-4-3.7H24.2v7.7h11.7c3.4 0 4.6-1.8 4.6-4zm36.3 4v2.7H56v-22h20.6v2.7H58.9v6.8h14.6v2.3H58.9v7.5h17.9zm23-5.8v8.5H97v-8.5l-11-13.4h3.4l8.9 11 8.8-11h3.4l-10.8 13.4zm19.1-1.8V298c0-7.9 5.2-10.7 12.7-10.7 7.5 0 13 2.8 13 10.7v1.4c0 7.9-5.5 10.8-13 10.8s-12.7-3-12.7-10.8zm22.7 0V298c0-5.7-3.9-8-10-8-6 0-9.8 2.3-9.8 8v1.4c0 5.8 3.8 8.1 9.8 8.1 6 0 10-2.3 10-8.1zm37.2-11.6v21.9h-2.9l-15.8-17.9v17.9h-2.8v-22h3l15.6 18v-18h2.9zm37.9 10.2v1.3c0 7.8-5.2 10.4-12.4 10.4H193v-22h11.2c7.2 0 12.4 2.8 12.4 10.3zm-3 0c0-5.3-3.3-7.6-9.4-7.6h-8.4V307h8.4c6 0 9.5-2 9.5-7.7V298zm50.8-7.6h-9.7v19.3h-3v-19.3h-9.7v-2.6h22.4v2.6zm34.4-2.6v21.9h-3v-10.1h-16.8v10h-2.8v-21.8h2.8v9.2H296v-9.2h2.9zm34.9 19.2v2.7h-20.7v-22h20.6v2.7H316v6.8h14.5v2.3H316v7.5h17.8zM24 340.2v7.3h13.9v2.4h-14v9.6H21v-22h20v2.7H24zm41.5 11.4h-9.8v7.9H53v-22h13.3c5.1 0 8 1.9 8 6.8 0 3.7-2 6.3-5.6 7l6 8.2h-3.3l-5.8-8zm-9.8-2.6H66c3.1 0 5.3-1.5 5.3-4.7 0-3.3-2.2-4.1-5.3-4.1H55.7v8.8zm47.9 6.2H89l-2 4.3h-3.2l10.7-22.2H98l10.7 22.2h-3.2l-2-4.3zm-1-2.3l-6.3-13-6 13h12.2zm46.3-15.3v21.9H146v-17.2L135.7 358h-2.1l-10.2-15.6v17h-2.8v-21.8h3l11 16.9 11.3-17h3zm35 19.3v2.6h-20.7v-22h20.6v2.7H166v6.8h14.5v2.3H166v7.6h17.8zm47-19.3l-8.3 22h-3l-7.1-18.6-7 18.6h-3l-8.2-22h3.3L204 356l6.8-18.5h3.4L221 356l6.6-18.5h3.3zm10 11.6v-1.4c0-7.8 5.2-10.7 12.7-10.7 7.6 0 13 2.9 13 10.7v1.4c0 7.9-5.4 10.8-13 10.8-7.5 0-12.7-3-12.7-10.8zm22.8 0v-1.4c0-5.7-4-8-10-8s-9.9 2.3-9.9 8v1.4c0 5.8 3.8 8.2 9.8 8.2 6.1 0 10-2.4 10-8.2zm28.3 2.4h-9.8v7.9h-2.8v-22h13.2c5.2 0 8 1.9 8 6.8 0 3.7-2 6.3-5.6 7l6 8.2h-3.3l-5.8-8zm-9.8-2.6h10.2c3 0 5.2-1.5 5.2-4.7 0-3.3-2.1-4.1-5.2-4.1h-10.2v8.8zm40.3-1.5l-6.8 5.6v6.4h-2.9v-22h2.9v12.3l15.2-12.2h3.7l-9.9 8.1 10.3 13.8h-3.6l-8.9-12z" />
<path fill="#050A14"
d="M188.4 71.7a10.4 10.4 0 01-20.8 0 10.4 10.4 0 1120.8 0zM224.2 45c-2.2-3.9-5-7.5-8.2-10.7l-12 7c-3.7-3.2-8-5.7-12.6-7.3a49.4 49.4 0 00-9.7 13.9 59 59 0 0140.1 14l7.6-4.4a57 57 0 00-5.2-12.5zM178 125.1c4.5 0 9-.6 13.4-1.7v-14a40 40 0 0012.5-7.2 47.7 47.7 0 00-7.1-15.3 59 59 0 01-32.2 27.7v8.7c4.4 1.2 8.9 1.8 13.4 1.8zM131.8 45c-2.3 4-4 8.1-5.2 12.5l12 7a40 40 0 000 14.4c5.7 1.5 11.3 2 16.9 1.5a59 59 0 01-8-41.7l-7.5-4.3c-3.2 3.2-6 6.7-8.2 10.6z" />
<path fill="#00B4FF"
d="M224.2 98.4c2.3-3.9 4-8 5.2-12.4l-12-7a40 40 0 000-14.5c-5.7-1.5-11.3-2-16.9-1.5a59 59 0 018 41.7l7.5 4.4c3.2-3.2 6-6.8 8.2-10.7zm-92.4 0c2.2 4 5 7.5 8.2 10.7l12-7a40 40 0 0012.6 7.3c4-4.1 7.3-8.8 9.7-13.8a59 59 0 01-40-14l-7.7 4.4c1.2 4.3 3 8.5 5.2 12.4zm46.2-80c-4.5 0-9 .5-13.4 1.7V34a40 40 0 00-12.5 7.2c1.5 5.7 4 10.8 7.1 15.4a59 59 0 0132.2-27.7V20a53.3 53.3 0 00-13.4-1.8z" />
<path fill="#00B4FF"
d="M178 9.2a62.6 62.6 0 11-.1 125.2A62.6 62.6 0 01178 9.2m0-9.2a71.7 71.7 0 100 143.5A71.7 71.7 0 00178 0z" />
<path fill="#050A14"
d="M96.6 212v4.3c-9.2-.8-15.4-5.8-15.4-17.8V180h4.6v18.4c0 8.6 4 12.6 10.8 13.5zm16-31.9v18.4c0 8.9-4.3 12.8-10.9 13.5v4.4c9.2-.7 15.5-5.6 15.5-18v-18.3h-4.7zM62.2 199v-2.2c0-12.7-8.8-17.4-21-17.4-12.1 0-20.7 4.7-20.7 17.4v2.2c0 12.8 8.6 17.6 20.7 17.6 1.5 0 3-.1 4.4-.3l11.8 6.2 2-3.3-8.2-4-6.4-3.1a32 32 0 01-3.6.2c-9.8 0-16-3.9-16-13.3v-2.2c0-9.3 6.2-13.1 16-13.1 9.9 0 16.3 3.8 16.3 13.1v2.2c0 5.3-2.1 8.7-5.6 10.8l4.8 2.4c3.4-2.8 5.5-7 5.5-13.2zM168 215.6h5.1L156 179.7h-4.8l17 36zM143 205l7.4-15.7-2.4-5-15.1 31.4h5.1l3.3-7h18.3l-1.8-3.7H143zm133.7 10.7h5.2l-17.3-35.9h-4.8l17 36zm-25-10.7l7.4-15.7-2.4-5-15.1 31.4h5.1l3.3-7h18.3l-1.7-3.7h-14.8zm73.8-2.5c6-1.2 9-5.4 9-11.4 0-8-4.5-10.9-12.9-10.9h-21.4v35.5h4.6v-31.3h16.5c5 0 8.5 1.4 8.5 6.7 0 5.2-3.5 7.7-8.5 7.7h-11.4v4.1h10.7l9.3 12.8h5.5l-9.9-13.2zm-117.4 9.9c-9.7 0-14.7-2.5-18.6-6.3l-2.2 3.8c5.1 5 11 6.7 21 6.7 1.6 0 3.1-.1 4.6-.3l-1.9-4h-3zm18.4-7c0-6.4-4.7-8.6-13.8-9.4l-10.1-1c-6.7-.7-9.3-2.2-9.3-5.6 0-2.5 1.4-4 4.6-5l-1.8-3.8c-4.7 1.4-7.5 4.2-7.5 8.9 0 5.2 3.4 8.7 13 9.6l11.3 1.2c6.4.6 8.9 2 8.9 5.4 0 2.7-2.1 4.7-6 5.8l1.8 3.9c5.3-1.6 8.9-4.7 8.9-10zm-20.3-21.9c7.9 0 13.3 1.8 18.1 5.7l1.8-3.9a30 30 0 00-19.6-5.9c-2 0-4 .1-5.7.3l1.9 4 3.5-.2z" />
<path fill="#00B4FF"
d="M.5 251.9c29.6-.5 59.2-.8 88.8-1l88.7-.3 88.7.3 44.4.4 44.4.6-44.4.6-44.4.4-88.7.3-88.7-.3a7981 7981 0 01-88.8-1z" />
<path fill="none" d="M-565.2 324H-252v15.8h-313.2z" />
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@@ -1,58 +1,76 @@
<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>
<div class="text-h3">Button</div>
<v-button label="Сохранить" />
<v-button label="Сохранить" icon-right="add" />
<v-button round icon="add" />
<v-button label="Сохранить" disabled />
<v-button label="Сохранить" outline />
<v-button label="Сохранить" outline icon="ios_share" />
</div>
<div style="width: 300px">
<div class="text-h3">Input</div>
<VInput v-model="text" />
<VInput type="password" />
<VInput v-model="text">
<template v-slot:append>
<q-icon name="search" color="dark" />
</template>
</VInput>
<VInput>
<template v-slot:prepend>
<i class="icon-search"></i>
</template>
</VInput>
</div>
<div style="width: 300px">
<div class="text-h3">Select</div>
<VSelect v-model="option" :options="stringOptions" />
<VSelect
v-model="option"
:options="options"
@filter="filterFn"
input-debounce="0"
use-input
/>
</div>
</template>
<style>
</style>
<script>
import VButton from '@/components/VButton.vue';
import VInput from '@/components/VInput.vue';
import VSelect from '@/components/VSelect.vue';
export default {
name: 'HelloWorld',
props: {
msg: String
components: {VSelect, VInput, VButton},
data() {
return {
text: '',
stringOptions: [
'Google', 'Facebook', 'Twitter', 'Apple', 'Oracle'
],
options: [],
option: ''
}
},
methods: {
filterFn(val, update) {
if (val === '') {
update(() => {
this.options = this.stringOptions
return
})
}
update(() => {
const needle = val.toLowerCase()
this.options = this.stringOptions.filter(v => v.toLowerCase().indexOf(needle) > -1)
})
}
}
}
</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>

View File

@@ -0,0 +1,19 @@
<template>
<q-btn :color="color" no-caps />
</template>
<script>
export default {
name: 'VButton',
props: {
color: {
type: String,
default: 'primary'
}
},
};
</script>
<style scoped>
</style>

36
src/components/VInput.vue Normal file
View File

@@ -0,0 +1,36 @@
<template>
<q-input
outlined
dense
v-model="value"
>
<template v-slot:append>
<slot name="append"></slot>
</template>
<template v-slot:prepend>
<slot name="prepend"></slot>
</template>
</q-input>
</template>
<script>
export default {
name: 'VInput',
props: ['modelValue'],
emits: ['update:modelValue'],
computed: {
value: {
get() {
return this.modelValue
},
set(val) {
this.$emit('update:modelValue', val)
}
}
}
};
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,35 @@
<template>
<q-select dense outlined v-model="value">
<template v-slot:default>
<slot></slot>
</template>
<template v-slot:append>
<slot name="append"></slot>
</template>
<template v-slot:prepend>
<slot name="prepend"></slot>
</template>
</q-select>
</template>
<script>
export default {
name: 'VSelect',
props: ['modelValue'],
emits: ['update:modelValue'],
computed: {
value: {
get() {
return this.modelValue
},
set(val) {
this.$emit('update:modelValue', val)
}
}
}
};
</script>
<style scoped>
</style>

View File

@@ -1,4 +1,7 @@
import { createApp } from 'vue'
import App from './App.vue'
import { Quasar } from 'quasar'
import quasarUserOptions from './quasar-user-options'
import '@/assets/css/iconfonts.css'
createApp(App).mount('#app')
createApp(App).use(Quasar, quasarUserOptions).mount('#app')

View File

@@ -0,0 +1,12 @@
import './styles/quasar.sass'
import lang from 'quasar/lang/ru.js'
import '@quasar/extras/material-icons/material-icons.css'
// To be used on app.use(Quasar, { ... })
export default {
config: {},
plugins: {
},
lang: lang
}

11
src/styles/quasar.sass Normal file
View File

@@ -0,0 +1,11 @@
@import './quasar.variables.sass'
@import '~quasar-styl'
@import "raleway"
// @import '~quasar-addon-styl'
.q-btn--outline:before, .q-field--outlined .q-field__control:before
border-width: 1.5px
.disabled, [disabled]
opacity: 0.3 !important

View File

@@ -0,0 +1,44 @@
// It's highly recommended to change the default colors
// to match your app's branding.
$primary : #4772F2
$secondary : #26A69A
$accent : #9C27B0
$dark : #252850
$positive : #55CD76
$negative : #FF6565
$info : #4772F2
$warning : #FFBF42
$text-primary: #252850
//Button
$button-border-radius : 4px
$button-padding : 4px 16px
$button-dense-padding : .285em
$button-font-size : 16px
$button-line-height : 133%
$button-font-weight : 600
$button-shadow : none
$button-shadow-active : none
$button-rounded-border-radius : 28px
$button-push-border-radius : 7px
//Input
$input-font-size : 16px
$input-text-color : $text-primary
$input-label-color : rgba(0,0,0,.6)
$input-autofill-color : inherit
//Typography
$typography-font-family : 'Raleway'
$separator-color : rgba(0, 0, 0, .12)
$layout-border : 1.5px solid $separator-color
@import '~quasar-variables-styl'

52
src/styles/raleway.sass Normal file
View File

@@ -0,0 +1,52 @@
@font-face
font-family: "Raleway"
src: url('../assets/fonts/Raleway-Thin.ttf')
font-weight: 100
font-style: normal
@font-face
font-family: "Raleway"
src: url('../assets/fonts/Raleway-ExtraLight.ttf')
font-weight: 200
font-style: normal
@font-face
font-family: "Raleway"
src: url('../assets/fonts/Raleway-Light.ttf')
font-weight: 300
font-style: normal
@font-face
font-family: "Raleway"
src: url('../assets/fonts/Raleway-Regular.ttf')
font-weight: 400
font-style: normal
@font-face
font-family: "Raleway"
src: url('../assets/fonts/Raleway-Medium.ttf')
font-weight: 500
font-style: normal
@font-face
font-family: "Raleway"
src: url('../assets/fonts/Raleway-SemiBold.ttf')
font-weight: 600
font-style: normal
@font-face
font-family: "Raleway"
src: url('../assets/fonts/Raleway-Bold.ttf')
font-weight: 700
font-style: normal
@font-face
font-family: "Raleway"
src: url('../assets/fonts/Raleway-ExtraBold.ttf')
font-weight: 800
font-style: normal
@font-face
font-family: "Raleway"
src: url("../assets/fonts/Raleway-Black.ttf")
font-weight: 900
font-style: normal