logo added

This commit is contained in:
Komek Hayytnazarov 2022-08-13 11:42:57 +05:00
parent 2820e50d52
commit a175d62c22
10 changed files with 576 additions and 21 deletions

View File

@ -2,9 +2,9 @@
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" href="/favicon.ico" />
<link rel="icon" href="/fav_icon.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Midone - Vuejs Admin Template</title>
<title>TMEX</title>
</head>
<body>
<div id="app"></div>

10
public/fav_icon.svg Normal file
View File

@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" width="119.999" height="120" viewBox="0 0 119.999 120">
<g id="Logo" transform="translate(-29.062 -59.996)">
<g id="Logo-2" data-name="Logo" transform="translate(29.061 59.996)">
<path id="Path_2130" data-name="Path 2130" d="M12616.765,7727.4l24.631-24.623v-11.128h11.115l4.074-4.072-19.664-19.666h-19.254v25.03l-17.693,17.682Z" transform="translate(-12599.974 -7650.213)" fill="#003197" fill-rule="evenodd"/>
<path id="Path_2131" data-name="Path 2131" d="M14264.733,7065.507l19.662-19.663V7026.59h-25.043l-17.668-17.693-16.781,16.776,24.633,24.646h11.133v11.126Z" transform="translate(-14182.1 -7008.896)" fill="#aba17d" fill-rule="evenodd"/>
<path id="Path_2132" data-name="Path 2132" d="M13318.561,9440.119l-24.639-24.637H13282.8v-11.135l-4.074-4.055-19.662,19.664v19.254h25.018l17.7,17.691Z" transform="translate(-13241.381 -9336.902)" fill="#0056ff" fill-rule="evenodd"/>
<path id="Path_2133" data-name="Path 2133" d="M15011.035,8693.6h19.252v-25.043l17.691-17.664-16.783-16.775-24.639,24.627v11.131h-11.125l-4.061,4.072Z" transform="translate(-14927.979 -8591.292)" fill="#003197" fill-rule="evenodd"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

73
public/logo.html Normal file
View File

@ -0,0 +1,73 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
#logo_top,
#logo_left,
#logo_right,
#logo_bottom {
animation: top 4s linear infinite;
}
#logo_right {
animation-delay: .3s;
}
#logo_bottom {
animation-delay: .5s;
}
#logo_left {
animation-delay: .8s;
}
@keyframes top {
0% {
fill: #aba17d;
}
25% {
fill: #003197;
}
50% {
fill: #0056ff;
}
75% {
fill: #003197;
}
100% {
fill: #aba17d;
}
}
</style>
</head>
<body>
<div class="header_img">
<svg id="Group_14" data-name="Group 14" xmlns="http://www.w3.org/2000/svg" width="100" height="100.001"
viewBox="0 0 100 100.001">
<path id="logo_left" data-name="Path 2130"
d="M12613.869,7717.147l20.387-20.38v-9.209h9.2l3.371-3.372-16.276-16.277h-15.936v20.717l-14.645,14.635Z"
transform="translate(-12599.973 -7653.263)" fill="#003197" fill-rule="evenodd" />
<path id="logo_top" data-name="Path 2131"
d="M14257.869,7055.751l16.273-16.274v-15.936h-20.728l-14.622-14.645-13.891,13.886,20.389,20.4h9.215v9.209Z"
transform="translate(-14188.795 -7008.896)" fill="#aba17d" fill-rule="evenodd" />
<path id="logo_bottom" data-name="Path 2132"
d="M13308.307,9433.256l-20.394-20.391h-9.2v-9.215l-3.371-3.357-16.274,16.274V9432.5h20.706l14.647,14.644Z"
transform="translate(-13244.428 -9347.147)" fill="#0056ff" fill-rule="evenodd" />
<path id="logo_right" data-name="Path 2133"
d="M15007.646,8683.345h15.934v-20.727l14.643-14.622-13.891-13.883-20.393,20.382v9.213h-9.207l-3.361,3.371Z"
transform="translate(-14938.223 -8597.992)" fill="#003197" fill-rule="evenodd" />
</svg>
</div>
</body>
</html>

View File

@ -0,0 +1,108 @@
<template>
<div class="header_img">
<svg
id="Group_14"
data-name="Group 14"
xmlns="http://www.w3.org/2000/svg"
width="100"
height="100.001"
viewBox="0 0 100 100.001"
>
<path
id="logo_left"
data-name="Path 2130"
d="M12613.869,7717.147l20.387-20.38v-9.209h9.2l3.371-3.372-16.276-16.277h-15.936v20.717l-14.645,14.635Z"
transform="translate(-12599.973 -7653.263)"
fill="#003197"
fill-rule="evenodd"
/>
<path
id="logo_top"
data-name="Path 2131"
d="M14257.869,7055.751l16.273-16.274v-15.936h-20.728l-14.622-14.645-13.891,13.886,20.389,20.4h9.215v9.209Z"
transform="translate(-14188.795 -7008.896)"
fill="#aba17d"
fill-rule="evenodd"
/>
<path
id="logo_bottom"
data-name="Path 2132"
d="M13308.307,9433.256l-20.394-20.391h-9.2v-9.215l-3.371-3.357-16.274,16.274V9432.5h20.706l14.647,14.644Z"
transform="translate(-13244.428 -9347.147)"
fill="#0056ff"
fill-rule="evenodd"
/>
<path
id="logo_right"
data-name="Path 2133"
d="M15007.646,8683.345h15.934v-20.727l14.643-14.622-13.891-13.883-20.393,20.382v9.213h-9.207l-3.361,3.371Z"
transform="translate(-14938.223 -8597.992)"
fill="#003197"
fill-rule="evenodd"
/>
</svg>
</div>
</template>
<script>
export default {};
</script>
<style lang="css">
#logo_top,
#logo_left,
#logo_right,
#logo_bottom {
animation: top 4s linear infinite;
}
#logo_right {
animation-delay: 0.3s;
}
#logo_bottom {
animation-delay: 0.5s;
}
#logo_left {
animation-delay: 0.8s;
}
.header_img {
background-color: #fff;
padding: 4px;
border-radius: 8px;
width: 60px;
height: 60px;
margin-right: 10px;
}
.header_img svg {
width: 100%;
height: 100%;
object-fit: contain;
-o-object-fit: contain;
}
@keyframes top {
0% {
fill: #aba17d;
}
25% {
fill: #003197;
}
50% {
fill: #0056ff;
}
75% {
fill: #003197;
}
100% {
fill: #aba17d;
}
}
</style>

View File

@ -8,11 +8,12 @@
>
<div class="mobile-menu-bar">
<a href="" class="flex mr-auto">
<img
<!-- <img
alt="Icewall Tailwind HTML Admin Template"
class="w-6"
src="@/assets/images/logo.svg"
/>
/> -->
<Logo class="w-10 h-10" />
</a>
<a href="javascript:;" class="mobile-menu-toggler">
<BarChart2Icon
@ -141,6 +142,7 @@ import {
import { nestedMenu } from "@/layouts/side-menu";
import dom from "@left4code/tw-starter/dist/js/dom";
import SimpleBar from "simplebar";
import Logo from "@/components/logo/Main.vue";
const route = useRoute();
const router = useRouter();

View File

@ -5,23 +5,19 @@
>
<div class="h-full flex items-center">
<!-- BEGIN: Logo -->
<a href="" class="-intro-x hidden md:flex">
<img
alt="Icewall Tailwind HTML Admin Template"
class="w-6"
src="@/assets/images/logo.svg"
/>
<span class="text-white text-lg ml-3"> Icewall </span>
<a href="" class="-intro-x hidden md:flex items-center">
<Logo />
<span class="text-white text-lg ml-3">
Türkmenistanyň Döwlet haryt-çig mal biržasy
</span>
</a>
<!-- END: Logo -->
<!-- BEGIN: Breadcrumb -->
<nav aria-label="breadcrumb" class="-intro-x h-full mr-auto">
<ol class="breadcrumb breadcrumb-light">
<li class="breadcrumb-item"><a href="#">Application</a></li>
<li class="breadcrumb-item active" aria-current="page">Dashboard</li>
</ol>
</nav>
<!-- END: Breadcrumb -->
<!-- BEGIN: Spacer -->
<div class="mr-auto"></div>
<!-- END: Spacer -->
<!-- BEGIN: Search -->
<div class="intro-x relative mr-3 sm:mr-6">
<div class="search hidden sm:block">
@ -264,6 +260,7 @@ import { ref, onBeforeMount } from "vue";
import { useAuthStore } from "@/stores";
import { SELECTED_LANG } from "@/helpers";
import i18n from "@/i18n";
import Logo from "@/components/logo/Main.vue";
const searchDropdown = ref(false);
const showSearchDropdown = () => {

View File

@ -77,6 +77,7 @@ import Documents from "../views/document/Main.vue";
import TicketList from "../views/tickets/Main.vue";
import Contacts from "../views/profile-forms/Contacts.vue";
import BankAccount from "../views/profile-forms/BankAccount.vue";
import Business from "../views/profile-forms/Business.vue";
import { useAuthStore } from "@/stores";
@ -440,6 +441,11 @@ const routes = [
name: "bank-account",
component: BankAccount,
},
{
path: "business-form",
name: "business",
component: Business,
},
],
},
{

View File

@ -0,0 +1,349 @@
<template>
<div class="intro-y flex items-center mt-8">
<h2 class="text-lg font-medium mr-auto">Company</h2>
</div>
<div class="grid grid-cols-12 gap-6 mt-5">
<div class="intro-y col-span-12 lg:col-span-6">
<!-- BEGIN: Form Validation -->
<PreviewComponent class="intro-y box">
<div
class="flex flex-col sm:flex-row items-center p-5 border-b border-slate-200/60 dark:border-darkmode-400"
>
<h2 class="font-medium text-base mr-auto">Company Form</h2>
</div>
<div class="p-5">
<!-- BEGIN: Validation Form -->
<form class="validate-form" @submit.prevent="onRegister">
<!-- Begin Account number -->
<div class="input-form">
<label
for="validation-form-6"
class="form-label w-full flex flex-col sm:flex-row"
>
Account Number
<span class="sm:ml-auto mt-1 sm:mt-0 text-xs text-slate-500"
>Required, at least 10 characters</span
>
</label>
<input
type="text"
id="validation-form-6"
v-model.trim="validate.account_number.$model"
class="form-control"
:class="{ 'border-danger': validate.account_number.$error }"
name="account number"
placeholder="Type your account number"
/>
<template v-if="validate.account_number.$error">
<div
v-for="(error, index) in validate.account_number.$errors"
:key="index"
class="text-danger mt-2"
>
{{ error.$message }}
</div>
</template>
</div>
<!-- End Account number -->
<!-- Begin Account Date -->
<div class="input-form mt-3">
<label
for="validation-form-2"
class="form-label w-full flex flex-col sm:flex-row"
>
Account Date
<span class="sm:ml-auto mt-1 sm:mt-0 text-xs text-slate-500"
>Required</span
>
</label>
<!-- <input
id="validation-form-2"
v-model.trim="validate.account_date.$model"
type="text"
name="account_date"
class="form-control"
:class="{ 'border-danger': validate.account_date.$error }"
placeholder="Select account date"
/> -->
<!-- Begin Date picker -->
<div class="relative mx-auto mt-3">
<div
class="absolute rounded-l w-10 h-full flex items-center justify-center bg-slate-100 border text-slate-500 dark:bg-darkmode-700 dark:border-darkmode-800 dark:text-slate-400"
>
<CalendarIcon class="w-4 h-4" />
</div>
<Litepicker
v-model="date"
:options="{
maxDate: maxDate,
format: 'DD.MM.YYYY',
dropdowns: {
minYear: 1990,
maxYear: null,
months: true,
years: true,
},
}"
class="form-control pl-12"
/>
</div>
<!-- End Date picker -->
<template v-if="validate.account_date.$error">
<div
v-for="(error, index) in validate.account_date.$errors"
:key="index"
class="text-danger mt-2"
>
{{ error.$message }}
</div>
</template>
</div>
<!-- End Account Date -->
<!-- Begin Currency -->
<div class="input-form mt-3">
<label
for="validation-form-4"
class="form-label w-full flex flex-col sm:flex-row"
>
Currency
<span class="sm:ml-auto mt-1 sm:mt-0 text-xs text-slate-500"
>Required</span
>
</label>
<input
id="validation-form-4"
v-model.trim="validate.currency.$model"
type="text"
name="currency"
class="form-control"
:class="{ 'border-danger': validate.currency.$error }"
placeholder="TMT"
/>
<template v-if="validate.currency.$error">
<div
v-for="(error, index) in validate.currency.$errors"
:key="index"
class="text-danger mt-2"
>
{{ error.$message }}
</div>
</template>
</div>
<!-- End Currency -->
<!-- Begin IBAN -->
<div class="input-form mt-3">
<label
for="validation-form-4"
class="form-label w-full flex flex-col sm:flex-row"
>
IBAN
<span class="sm:ml-auto mt-1 sm:mt-0 text-xs text-slate-500"
>Required</span
>
</label>
<input
id="validation-form-4"
v-model.trim="validate.iban.$model"
type="text"
name="iban"
class="form-control"
:class="{ 'border-danger': validate.iban.$error }"
placeholder="TTMK"
/>
<template v-if="validate.iban.$error">
<div
v-for="(error, index) in validate.iban.$errors"
:key="index"
class="text-danger mt-2"
>
{{ error.$message }}
</div>
</template>
</div>
<!-- End IBAN -->
<!-- Begin Bank Name -->
<div class="input-form mt-3">
<label
for="validation-form-4"
class="form-label w-full flex flex-col sm:flex-row"
>
Bank Name
<span class="sm:ml-auto mt-1 sm:mt-0 text-xs text-slate-500"
>Required</span
>
</label>
<input
id="validation-form-4"
v-model.trim="validate.bank_name.$model"
type="text"
name="bank_name"
class="form-control"
:class="{ 'border-danger': validate.bank_name.$error }"
placeholder="Type bank name"
/>
<template v-if="validate.bank_name.$error">
<div
v-for="(error, index) in validate.bank_name.$errors"
:key="index"
class="text-danger mt-2"
>
{{ error.$message }}
</div>
</template>
</div>
<!-- End Bank Name -->
<!-- Begin Country -->
<div class="input-form mt-3">
<label
for="validation-form-4"
class="form-label w-full flex flex-col sm:flex-row"
>
Country
<span class="sm:ml-auto mt-1 sm:mt-0 text-xs text-slate-500"
>Required</span
>
</label>
<input
id="validation-form-4"
v-model.trim="validate.country.$model"
type="text"
name="country"
class="form-control"
:class="{ 'border-danger': validate.country.$error }"
placeholder="Type country"
/>
<template v-if="validate.country.$error">
<div
v-for="(error, index) in validate.country.$errors"
:key="index"
class="text-danger mt-2"
>
{{ error.$message }}
</div>
</template>
</div>
<!-- End Country -->
<button type="submit" class="btn btn-primary mt-5">
Register
<LoadingIcon
icon="oval"
color="white"
class="w-4 h-4 ml-2"
v-if="isLoading"
/>
</button>
</form>
<!-- END: Validation Form -->
</div>
</PreviewComponent>
<!-- END: Form Validation -->
</div>
</div>
</template>
<script setup>
import { reactive, watch, ref, toRefs, onMounted } from "vue";
import { required, alpha, integer } from "@vuelidate/validators";
import { useVuelidate } from "@vuelidate/core";
import { fetchWrapper } from "@/api";
import { useRoute } from "vue-router";
import router from "@/router";
import _ from "lodash";
const baseUrl = `${import.meta.env.VITE_API_URL}/api`;
const route = useRoute();
const maxDate = new Date();
const isLoading = ref(false);
const date = ref("");
const formData = reactive({
account_number: "",
account_date: "",
currency: "",
iban: "",
bank_name: "",
country: "",
});
const rules = {
account_number: {
required,
},
account_date: {
required,
},
currency: {
required,
},
iban: {
required,
},
bank_name: {
required,
},
country: {
required,
},
};
const validate = useVuelidate(rules, toRefs(formData));
watch(date, (currentValue, oldValue) => {
formData.account_date = currentValue;
});
const onRegister = async () => {
console.log("formData.account_date: ", formData.account_date);
validate.value.$touch();
if (validate.value.$invalid) return;
/* try {
isLoading.value = true;
const response = await fetchWrapper.put(
`${baseUrl}/account/bank`,
formData
);
isLoading.value = false;
console.log("response onRegister: ", response);
// refresh LS "bankAccount"
localStorage.removeItem("bankAccount");
localStorage.setItem("bankAccount", JSON.stringify(formData));
router.push({ name: "profile", params: { getAccount: false } });
} catch (error) {
isLoading.value = false;
} */
};
onMounted(() => {
const params = _.isEmpty(route.params)
? JSON.parse(localStorage.getItem("companyInfo"))
: route.params;
console.log("Params: ", params);
if (params) {
// localStorage.setItem("bankAccount", JSON.stringify(params));
// Object.assign(formData, params);
}
});
</script>

View File

@ -8,13 +8,13 @@
<div
class="flex flex-col sm:flex-row items-center p-5 border-b border-slate-200/60 dark:border-darkmode-400"
>
<h2 class="font-medium text-base mr-auto">Entrepreneur</h2>
<h2 class="font-medium text-base mr-auto">Company</h2>
<div
class="form-check form-switch w-full sm:w-auto sm:ml-auto mt-3 sm:mt-0 text-center"
>
<a
href="javascript:;"
@click.prevent="onEdit(`contacts`, contacts)"
@click.prevent="onEdit(accountType, profile)"
class="btn btn-primary"
><EditIcon class="w-4 h-4"
/></a>
@ -210,11 +210,16 @@ const route = useRoute();
const isLoading = ref(false);
const accountType = ref("");
const profile = reactive({});
const contacts = reactive({});
const bankAccount = reactive({});
const onEdit = (name, params) => {
console.log("name, params: " + name, params);
router.push({ name: name, params: params });
};
@ -230,8 +235,13 @@ const getAccount = async () => {
isLoading.value = false;
if (data.contacts) Object.assign(contacts, JSON.parse(data.contacts));
if (data.bank_account)
Object.assign(bankAccount, JSON.parse(data.bank_account));
if (data.profile) Object.assign(bankAccount, JSON.parse(data.profile));
if (data.account_type) accountType.value = data.account_type;
} catch (error) {
isLoading.value = false;
}