drone
This commit is contained in:
25
.drone.yml
Normal file
25
.drone.yml
Normal file
@@ -0,0 +1,25 @@
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: deploy
|
||||
|
||||
steps:
|
||||
- name: build
|
||||
image: node:22
|
||||
commands:
|
||||
- npm install -g @quasar/cli
|
||||
- npm install
|
||||
- quasar build -m spa
|
||||
|
||||
- name: deploy
|
||||
image: appleboy/drone-scp
|
||||
settings:
|
||||
host: 10.10.10.8
|
||||
username: root
|
||||
key:
|
||||
from_secret: SSH-nginx-key
|
||||
source: ./dist/spa/*
|
||||
strip_components: 2
|
||||
target: /usr/share/nginx/tgcrew/admin
|
||||
rm: true
|
||||
when:
|
||||
branch: main
|
||||
BIN
i18n-2.xlsm
BIN
i18n-2.xlsm
Binary file not shown.
@@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<div class="flex row items-center no-wrap">
|
||||
<div
|
||||
class="flex row items-center no-wrap logo-component"
|
||||
>
|
||||
<svg
|
||||
class="iconcolor q-mr-xs"
|
||||
class="iconcolor"
|
||||
viewBox="0 0 8.4666662 8.4666662"
|
||||
width="32"
|
||||
height="32"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
@@ -13,7 +13,8 @@
|
||||
<defs id="defs1" />
|
||||
<g id="layer1">
|
||||
<rect
|
||||
style="fill:var(--icon-color);stroke-width:0.233149"
|
||||
class="fill-brand"
|
||||
style="stroke-width:0.233149"
|
||||
id="rect5"
|
||||
width="6.9885192"
|
||||
height="0.35581663"
|
||||
@@ -22,7 +23,8 @@
|
||||
transform="matrix(0.77578367,0.63099897,-0.77578367,0.63099897,0,0)"
|
||||
/>
|
||||
<rect
|
||||
style="fill:var(--icon-color);stroke-width:0.24961"
|
||||
class="fill-brand"
|
||||
style="stroke-width:0.24961"
|
||||
id="rect5-7"
|
||||
width="7.4819207"
|
||||
height="0.3809379"
|
||||
@@ -31,28 +33,32 @@
|
||||
transform="matrix(-0.70756824,0.70664502,0.70756824,0.70664502,0,0)"
|
||||
/>
|
||||
<circle
|
||||
style="fill:var(--icon-color);stroke-width:0.134869"
|
||||
class="fill-brand"
|
||||
style="stroke-width:0.134869"
|
||||
id="path5-8"
|
||||
cx="1.5875"
|
||||
cy="6.8791666"
|
||||
r="1.0583333"
|
||||
/>
|
||||
<circle
|
||||
style="fill:var(--icon-color);stroke-width:0.168586"
|
||||
class="fill-brand"
|
||||
style="stroke-width:0.168586"
|
||||
id="path5-8-5"
|
||||
cx="7.1437502"
|
||||
cy="7.1437502"
|
||||
r="1.3229166"
|
||||
/>
|
||||
<circle
|
||||
style="fill:var(--icon-color);stroke-width:0.118011"
|
||||
class="fill-brand"
|
||||
style="stroke-width:0.118011"
|
||||
id="path5-8-5-1"
|
||||
cx="1.4552083"
|
||||
cy="2.5135417"
|
||||
r="0.92604166"
|
||||
/>
|
||||
<circle
|
||||
style="fill:var(--icon-color);stroke-width:0.101152"
|
||||
class="fill-brand"
|
||||
style="stroke-width:0.101152"
|
||||
id="path5-8-5-1-7"
|
||||
cx="7.1437502"
|
||||
cy="1.3229166"
|
||||
@@ -69,51 +75,46 @@
|
||||
</svg>
|
||||
|
||||
<span
|
||||
class="text-h4 text-brand"
|
||||
style="
|
||||
color: var(--logo-color-bg-white);
|
||||
margin-right: 2px;"
|
||||
class="text-brand"
|
||||
style="margin-right: 0.075em;"
|
||||
>
|
||||
tg
|
||||
</span>
|
||||
|
||||
<span class="text-h4 text-brand2 text-bold q-pa-0">
|
||||
<span class="text-brand2 text-bold">
|
||||
Crew
|
||||
</span>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
body {
|
||||
background: white;
|
||||
margin: 0rem;
|
||||
min-height: 100vh;
|
||||
font-family: Futura, sans-serif;
|
||||
<style lang="scss" scoped>
|
||||
.logo-component {
|
||||
svg {
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
margin-right: 0.125em;
|
||||
}
|
||||
|
||||
span {
|
||||
line-height: 1;
|
||||
}
|
||||
}
|
||||
|
||||
#canvas {
|
||||
position: absolute;
|
||||
display: block;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.iconcolor {
|
||||
--icon-color: #27A7E7;
|
||||
.fill-brand {
|
||||
fill: $brand;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
100%,
|
||||
0% {
|
||||
fill: #fa9e7a;
|
||||
fill: $brand2;
|
||||
}
|
||||
60% {
|
||||
fill: #F36D3A;
|
||||
fill: $brand2;
|
||||
opacity: 0.8;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<template #footer>
|
||||
<q-btn
|
||||
rounded color="primary"
|
||||
class="w100 q-mt-md q-mb-xs"
|
||||
class="w100 q-mt-md q-mb-xs fix-disabled-btn"
|
||||
:disable="!isFormValid"
|
||||
@click = "onSubmit"
|
||||
>
|
||||
|
||||
@@ -57,7 +57,7 @@ interface TimeZone {
|
||||
offsetHours: number
|
||||
}
|
||||
|
||||
const props = defineProps<{
|
||||
defineProps<{
|
||||
locale: string
|
||||
}>()
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<template #footer>
|
||||
<q-btn
|
||||
rounded color="primary"
|
||||
class="w100 q-mt-md q-mb-xs"
|
||||
class="w100 q-mt-md q-mb-xs fix-disabled-btn"
|
||||
:disable="!isFormValid"
|
||||
@click = "emit('update')"
|
||||
>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<template #footer>
|
||||
<q-btn
|
||||
rounded color="primary"
|
||||
class="w100 q-mt-md q-mb-xs"
|
||||
class="w100 q-mt-md q-mb-xs fix-disabled-btn"
|
||||
@click = "onSubmit"
|
||||
>
|
||||
{{ $t(btnText) }}
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
// app global css in SCSS form
|
||||
.text-brand {
|
||||
color: #27A7E7 !important;
|
||||
color: $brand !important;
|
||||
}
|
||||
|
||||
.bg-brand {
|
||||
background: #27A7E7 !important;
|
||||
background: $brand !important;
|
||||
}
|
||||
|
||||
.text-brand2 {
|
||||
color: #F36D3A !important;
|
||||
color: $brand2 !important;
|
||||
}
|
||||
|
||||
.bg-brand2 {
|
||||
background: #F36D3A !important;
|
||||
background: $brand2 !important;
|
||||
}
|
||||
|
||||
$base-width: 100;
|
||||
@@ -21,10 +21,14 @@ $base-width: 100;
|
||||
$base-width: $base-width - 10;
|
||||
}
|
||||
|
||||
$base-height: 100;
|
||||
@while $base-height > 0 {
|
||||
.h#{$base-height} { height: #{$base-height}+'%'; }
|
||||
$base-height: $base-height - 10;
|
||||
body, html, #q-app {
|
||||
font-family: $typography-font-family;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
* {
|
||||
font-family: inherit;
|
||||
}
|
||||
|
||||
:root {
|
||||
@@ -76,9 +80,14 @@ body {
|
||||
|
||||
@font-face {
|
||||
font-family: 'myFont';
|
||||
src: url(./fonts/OpenSans-Regular.woff2);
|
||||
src: url(./fonts/Inter-Regular.woff2);
|
||||
}
|
||||
|
||||
button[disabled] {
|
||||
.fix-disabled-btn.q-btn[disabled]:not(.q-btn--flat) {
|
||||
background-color: $grey-5 !important;
|
||||
}
|
||||
|
||||
.fix-disabled-btn.q-btn.q-btn--flat[disabled] {
|
||||
color: $grey-9 !important;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
BIN
src/css/fonts/Inter-Regular.woff2
Normal file
BIN
src/css/fonts/Inter-Regular.woff2
Normal file
Binary file not shown.
Binary file not shown.
@@ -1,17 +1,3 @@
|
||||
// Quasar SCSS (& Sass) Variables
|
||||
// --------------------------------------------------
|
||||
// To customize the look and feel of this app, you can override
|
||||
// the Sass/SCSS variables found in Quasar's source Sass/SCSS files.
|
||||
|
||||
// Check documentation for full list of Quasar variables
|
||||
|
||||
// Your own variables (that are declared here) and Quasar's own
|
||||
// ones will be available out of the box in your .vue/.scss/.sass files
|
||||
|
||||
// It's highly recommended to change the default colors
|
||||
// to match your app's branding.
|
||||
// Tip: Use the "Theme Builder" on Quasar's documentation website.
|
||||
|
||||
$primary : #27A7E7;
|
||||
$secondary : #26A69A;
|
||||
$accent : #9C27B0;
|
||||
@@ -26,16 +12,9 @@ $warning : #F2C037;
|
||||
|
||||
$lightgrey : #DCDCDC;
|
||||
|
||||
$brand: #27A7E7;
|
||||
$brand2: #F36D3A;
|
||||
|
||||
$body-font-size: var(--dynamic-font-size);
|
||||
|
||||
$typography-font-family: 'myFont', Roboto !default;
|
||||
|
||||
body, html, #q-app {
|
||||
font-family: $typography-font-family;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
* {
|
||||
font-family: inherit;
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -8,7 +8,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { reactive } from 'vue'
|
||||
import { ref } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import companyBlock from 'components/companyBlock.vue'
|
||||
import { useCompaniesStore } from 'stores/companies'
|
||||
@@ -17,7 +17,7 @@
|
||||
const router = useRouter()
|
||||
const companiesStore = useCompaniesStore()
|
||||
|
||||
const newCompany = reactive<CompanyParams>({} as CompanyParams)
|
||||
const newCompany = ref<CompanyParams>({} as CompanyParams)
|
||||
|
||||
async function addCompany(companyData: CompanyParams) {
|
||||
await companiesStore.add(companyData)
|
||||
|
||||
@@ -13,8 +13,7 @@
|
||||
style="max-width: 400px;"
|
||||
>
|
||||
<base-logo
|
||||
class="col-grow q-pa-lg"
|
||||
:style="{ alignItems: 'flex-end' }"
|
||||
class="col-grow q-pa-lg text-h5"
|
||||
/>
|
||||
|
||||
<div class="flex column w100">
|
||||
|
||||
@@ -85,19 +85,19 @@
|
||||
|
||||
const settingsStore = useSettingsStore()
|
||||
|
||||
const locale = ref('')
|
||||
const localeBot = ref('')
|
||||
const localeOptions = settingsStore.supportLocale
|
||||
|
||||
const locale = ref('')
|
||||
watch(locale, async (newValue) => {
|
||||
await settingsStore.updateSettings({ locale: newValue })
|
||||
})
|
||||
|
||||
const localeBot = ref('')
|
||||
watch(localeBot, async (newValue) => {
|
||||
await settingsStore.updateSettings({ localeBot: newValue })
|
||||
})
|
||||
|
||||
const fontSize = ref(14)
|
||||
const fontSize = ref(16)
|
||||
const fontSizeOptions = settingsStore.supportFontSizes
|
||||
const fontSizeLabel = computed(() =>
|
||||
fontSizeOptions.find(el => el.value === fontSize.value)?.label ?? ''
|
||||
|
||||
@@ -339,8 +339,6 @@
|
||||
if (!newD) unblockUserId.value = undefined
|
||||
})
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
@@ -26,7 +26,7 @@ export const useChatsStore = defineStore('chats', () => {
|
||||
}
|
||||
|
||||
async function unlink (chatId: number) {
|
||||
const { data } = await api.get('/project/' + currentProjectId.value + '/chat/' + chatId)
|
||||
const { data } = await api.delete('/project/' + currentProjectId.value + '/chat/' + chatId)
|
||||
const chatAPIid = data.data.id
|
||||
const idx = chats.value.findIndex(item => item.id === chatAPIid)
|
||||
chats.value.splice(idx, 1)
|
||||
|
||||
@@ -80,7 +80,6 @@ export const useSettingsStore = defineStore('settings', () => {
|
||||
if (authStore.isAuth) {
|
||||
try {
|
||||
const { data } = await api.get('/customer/settings')
|
||||
console.log(data.data)
|
||||
settings.value = {
|
||||
fontSize: data.data.fontSize || defaultSettings.fontSize,
|
||||
locale: data.data.locale || detectLocale(),
|
||||
|
||||
Reference in New Issue
Block a user