Compare commits

...

5 Commits

Author SHA1 Message Date
95b7377781 w/raw pre-uploader 2026-02-01 20:09:11 +09:00
05088d3934 Update templates/index.html 2025-10-21 11:42:11 +09:00
1367d48428 Update static/js/cases.js 2025-10-21 11:38:51 +09:00
93b25d3af8 Update static/css/style.css 2025-10-21 11:38:29 +09:00
dc55e9080e Update templates/index.html 2025-10-21 11:38:09 +09:00
28 changed files with 4103 additions and 61 deletions

1
.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
* text=auto eol=lf

2
.gitignore vendored
View File

@@ -3,7 +3,7 @@
__pycache__/ __pycache__/
*.py[cod] *.py[cod]
*$py.class *$py.class
errLogger.txt
# C extensions # C extensions
*.so *.so

6
.prettierrc.json Normal file
View File

@@ -0,0 +1,6 @@
{
"$schema": "https://json.schemastore.org/prettierrc",
"semi": false,
"singleQuote": true,
"printWidth": 100
}

6
.vscode/extensions.json vendored Normal file
View File

@@ -0,0 +1,6 @@
{
"recommendations": [
"Vue.volar",
"esbenp.prettier-vscode"
]
}

10
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,10 @@
{
"explorer.fileNesting.enabled": true,
"explorer.fileNesting.patterns": {
"tsconfig.json": "tsconfig.*.json, env.d.ts",
"vite.config.*": "jsconfig*, vitest.config.*, cypress.config.*, playwright.config.*",
"package.json": "package-lock.json, pnpm*, .yarnrc*, yarn*, .eslint*, eslint*, .oxlint*, oxlint*, .prettier*, prettier*, .editorconfig"
},
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
}

104
app.py
View File

@@ -1,26 +1,98 @@
from flask import Flask, render_template, request from flask import Flask, render_template, request, jsonify
import datetime
import time
app = Flask(__name__) app = Flask(__name__)
# хэндлеры ошибок
def file_logger(err_code, time, ifRequest):
with open('errLogger.txt', 'a') as r:
if err_code != 0:
r.write(f"Error {time} {err_code}\n")
else:
r.write(f"{time} {ifRequest}\n")
r.close()
@app.errorhandler(404)
def page_not_found(error):
'''handle 404'''
file_logger(error, datetime.datetime.now(), 'not a request')
return render_template('404.html'), 404
@app.errorhandler(500)
def internal_error(error):
'''handle 500'''
file_logger(error, datetime.datetime.now(), 'not a request')
return render_template('500.html'), 500
@app.errorhandler(429)
def request_timeout_error(error):
'''handle 429'''
file_logger(error, datetime.datetime.now(), 'not a request')
return render_template('408.html'), 429
@app.errorhandler(408)
def request_timeout_error(error):
'''handle 408'''
file_logger(error, datetime.datetime.now(), 'not a request')
return render_template('408.html'), 429
@app.errorhandler(Exception)
def internal_error(error):
'''handle unmatched'''
file_logger(error, datetime.datetime.now(), 'not a request')
return render_template('500.html'), 500
# основные маршруты
@app.route("/") @app.route("/")
def ind(): def ind():
return render_template('index.html') return render_template('zayavka.html')
@app.route("/process", methods=['GET', 'POST']) @app.route("/process", methods=['GET', 'POST'])
def prcs(): def prcs():
if request.method == 'POST': if request.method == 'POST':
tel = request.form['tel'] try:
tg = request.form['tg'] data22 = request.get_json()
i = request.form.get('radio12') print(data22)
if i == 'link': except Exception as e:
urlOrText = request.form.get('linkI') print(f"Error: {e}.")
elif i == 'text': return render_template('zayavka.html')
urlOrText = request.form.get('textI')
else:
urlOrText = '0' @app.route("/sucseed")
print(tel, tg, urlOrText) def s():
return render_template('index.html') try:
data223 = request.get_json()
print(data223)
except Exception as e:
print(f"Error: {e}.")
return render_template("end.html")
@app.route("/OK")
def ok():
return render_template("ok.html")
@app.route("/sendedData", methods=['POST'])
def answer():
try:
data223 = request.get_json()
print(data223)
time.sleep(3)
return jsonify({"status": "sucsess"})
except Exception as e:
print(f"Error: {e}")
if __name__ == '__main__': if __name__ == '__main__':
app.run(debug=True) app.run(debug=True, port=4321)

57
index.html Normal file
View File

@@ -0,0 +1,57 @@
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="UTF-8">
<link rel="icon" href="/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vite App</title>
</head>
<body>
<div id="app"></div>
<div class="container">
<div class="wrapper">
<header class="header"></header>
<main class="main">
<div class="main-inner">
<form action="" method="post">
<label for="name">Имя</label>
<input type="text" name="name" id="name">
<label for="surname">Фамилия</label>
<input type="text" name="surname" id="surname">
<label for="otchestvo">Отчество</label>
<input type="text" name="otchestvo" id="otchestvo">
<label for="tel">Телефон</label>
<input type="tel" name="tel" id="tel">
<label for="email">Почта</label>
<input type="email" name="email" id="email">
<label for="inptGrp">Тип обращения</label>
<div class="inptGrp">
<label for="radio">Вставить ссылку на TaoBao</label>
<input type="radio" name="radio" id="radio1">
<label for="radio">Описать необходимый товар</label>
<input type="radio" name="radio" id="radio2">
</div>
</form>
</div>
</main>
</div>
</div>
<script type="module" src="/src/main.ts"></script>
<script type="module" src="/src/case.js"></script>
</body>
</html>

1700
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

15
package.json Normal file
View File

@@ -0,0 +1,15 @@
{
"dependencies": {
"dotenv": "^17.2.3",
"envy": "^3.0.0",
"fs": "^0.0.1-security",
"require": "^0.4.4"
},
"devDependencies": {
"webpack": "^5.103.0",
"webpack-cli": "^6.0.1"
},
"scripts": {
"build": "webpack"
}
}

2
requirement.txt Normal file
View File

@@ -0,0 +1,2 @@
flask
pip

755
static/css/ZayavkaStyle.css Normal file
View File

@@ -0,0 +1,755 @@
*{
/* margin: 0; */
padding: 0;
background-color: var(--baseBlue);
}
body{
z-index: -10;
}
/* */
/* */
/* */
input{
padding: 1% 1%;
}
a, h1, h2, h3, h4, h5, h6, label{
text-decoration: none;
color: inherit;
margin: 0 !important;
padding: 0;
}
/*
label{
padding: 0 0 1% 2%;
}
*/
li{
list-style: none;
}
.flex{
display: flex;
}
:root{
--baseBlue: #242430;
--blue: #4D54BA;
--lightBlue: #54AAFF;
--white: #fff;
}
.baseBlue{
color: var(--baseBlue);
}
.blue{
color: var(--blue);
}
.white{
color: var(--white);
}
.lightBlue{
color: var(--lightBlue);
}
.container{
padding: 0 10%;
}
.arial-regular{
font-family: Arial, Helvetica, sans-serif;
font-weight: 400;
}
.arial-bald{
font-family: Arial, Helvetica, sans-serif;
font-weight: 600;
}
.f14{
/* font-size: 14px; */
font-size: 0.9rem;
}
.colms{
flex-direction: column;
margin: 0 !important;
}
.between{
justify-content: space-between;
}
.w100{
width: 100%;
}
/* ---------- */
.header-inner{
margin: 1.5% 0 0;
padding: 0 14%;
}
.headerLi{
margin: 0% 1% 1%;
}
/* ----------- main ----------- */
.main{
text-align: center;
}
.inputText{
display: none;
}
.inputLink{
display: none;
margin-bottom: 3%;
}
.form1{
flex-direction: column;
text-align: center;
align-items: center;
align-self: center;
}
.radio1Div{
flex-direction: row;
margin: 0 !important;
text-align: center;
align-items: center;
width: 100%;
}
#tel, #tg{
overflow-wrap: break-word;
box-sizing: border-box;
padding-left: 3%;
}
.inputZ{
border-style: solid;
border-color: var(--blue);
}
.zayavkaH1{
font-size: 34px;
padding: 2% 0 4%;
}
.input1Width{
width: 100%;
min-height: 25px;
box-sizing: border-box;
padding: 2.5% 2.5% 2.5% 3%;
color: var(--white);
border-radius: 15px;
}
.w1{
/* align-content: flex-start;
*/ display: flex;
}
.input1Width:focus, .inpt2:focus{
border-color: var(--lightBlue);
outline: var(--lightBlue);
color: var(--white);
padding-left: 2%;
}
.inpt2{
color: var(--white);
}
.e1{
flex-direction: row;
justify-content: space-between;
width: 70%;
text-align: start;
margin: 0 !important;
padding: 0 0 2%;
align-items: center;
align-self: center;
}
#email{
margin-top: 5%;
}
#hide2{
align-items: center;
justify-content: center;
position: relative;
text-align: center;
}
#tgHover, #bt {
min-height: 70px;
border: var(--lightBlue) solid 2px;
text-align: center;
box-sizing: border-box;
color: var(--white);
width: 23vw;
align-items: center;
justify-content: center;
position: relative;
z-index: 1;
overflow: hidden;
transition: all 0.3s ease;
border-radius: 17px;
font-size: 16px;
}
#tgHover:after, #bt:after {
content: "";
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 0; /* Начинаем с нулевой ширины */
background-color: var(--lightBlue);
transition: width 0.3s ease; /* Анимируем именно ширину */
z-index: -1;
}
#tgHover:hover:after, #bt:hover:after {
width: 100%; /* Расширяем до конца */
}
.e2{
flex-direction: column;
justify-content: space-between;
width: 70%;
margin: 0 !important;
text-align: start;
float: left;
}
#or{
padding: 0;
margin: 0 0 1.5%;
}
.ent{
width: 23vw;
flex-direction: column;
}
.e3{
flex-direction: row;
justify-content: space-between;
width: 70%;
margin: 0 !important;
text-align: start;
float: left;
padding: 0 0 1%;
}
input[type="radio"] {
accent-color: var(--blue);
margin: 0 2% 0 0;
}
#tel{
width: 20vw;
}
select option{
padding: 0 !important;
margin: 0 !important;
}
select{
padding: 0 !important;
margin: 0 !important;
/* border: #4D54BA; */
border-top: 2px solid #4D54BA;
border-bottom: 2px solid #4D54BA;
border-left: 2px solid #4D54BA;
border-right: none;
color: var(--white);
min-height: 26px;
box-sizing: border-box;
}
#telind{
width: 3vw;
min-height: 25px;
}
#l1{
padding-left: 1%;
}
#linkTao{
width: 100%;
min-height: 25px;
box-sizing: border-box;
padding-left: 1.2%;
border-radius: 13px;
/* margin: 0 0 3%; */
}
#linkItem{
width: 100%;
overflow-wrap: break-word;
box-sizing: border-box;
min-height: 185px;
padding: 2% 1.3%;
margin-top: 1%;
border-radius: 15px;
/* display: none; */
}
/* .btn{
padding: 0.8% 2%;
border-radius: 5px;
border-color: var(--lightBlue);
color: var(--white);
margin: 2% 0 0 0;
}
.btn:hover{
background-color: var(--lightBlue);
color: var(--baseBlue);
transition: .7s;
} */
.ptg{
margin: 0 0 2px 2%;
margin-bottom: 2px;
}
#linkUnderneath, #linkUnderneath1{
padding: 0;
margin: 7px 0 0 0;
}
.under{
margin: 0;
padding: 2% 0 0 0;
color: var(--lightBlue);
font-size: 12px;
}
/* ----------- footer ------------- */
.notiInnner{
display: flex;
background-color: var(--blue);
text-align: center;
justify-content: center;
border: var(--white) solid 1px;
border-radius: 15px;
}
.footerP, .footerA{
background-color: var(--blue);
font-size: 15px;
}
.footerP{
padding: 0 2%;
color: var(--white);
}
.footerA{
color: #a9d4ff !important;
}
footer{
text-align: center;
margin: 3% 0 0;
}
/* ---------------------------------- @media ---------------------------------- */
/* Small Mobile: 320px - 425px (for older or compact smartphones)*/
/* Modern Mobile: 375px - 575px (for modern smartphones)*/
/* Landscape Phones / Small Tablets: 576px - 767px*/
/* Tablets (Portrait): 768px - 991px*/
/* Laptops / Small Desktops: 992px - 1199px*/
/* Desktops: 1200px - 1400px (or higher)*/
/* Large Desktops / High-Resolution Screens: 1401px and above */
@media (min-width: 1921px) {
.container{
padding: 0 calc(100%/4);
}
.input1Width, #tel {
width: 15vw;
}
#tgHover, #bt{
width: 16vw;
}
.ent p{
width: 50%;
}
.ent{
width: 43%;
}
}
@media (max-width: 1400px) and (min-width: 1200px) {
.container{
padding: 0 6%;
}
/* .input1Width {
width: 15vw;
} */
}
@media (max-width: 1199px) and (min-width: 992px) {
.container{
padding: 0 7%;
}
/* .input1Width {
width: 15vw;
} */
.f14{
font-size: 12px;
}
}
@media (max-width: 991px) and (min-width: 768px) {
input::placeholder, textarea::placeholder {
font-size:10px;
}
.container{
padding: 0 7%;
}
.input1Width, #inputLink {
min-height: 20px;
}
.zayavkaH1{
font-size: 20px;
}
#tgHover, #bt{
font-size: 12px;
}
.inputZ, .f14, .footerP, .footerA {
font-size: 10.5px;
}
}
@media (max-width: 767px) and (min-width: 576px) {
input::placeholder, textarea::placeholder {
font-size: 9px;
}
.container{
padding: 0 7%;
}
.input1Width, #inputLink {
min-height: 20px;
}
#tgHover, #bt{
font-size: 10px;
min-height: 55px;
}
.zayavkaH1{
font-size: 18px;
}
.inputZ, .f14, .footerP, .footerA {
font-size: 9.5px;
}
.logoIMG{
max-width: 75%;
height: auto;
}
#linkItem{
min-height: 200px;
}
}
@media (max-width: 575px) and (min-width: 426px) {
*{
padding: 0;
background-color: var(--baseBlue);
margin: inherit;
}
input::placeholder, textarea::placeholder {
font-size: 7px;
}
.container, .cont{
padding: 0;
}
.e1 {
flex-direction: column;
text-align: start;
margin: 5% 0 0 0;
padding: 0 0 4%;
align-items: center;
}
.input1Width, #inputLink {
min-height: 20px;
}
#tgHover, #bt{
font-size: 14px;
width: 100%;
min-height: 50px;
}
.input1Width {
box-sizing: border-box;
padding-left: 3%;
color: var(--white);
}
.colms, .input1Width{
width: 100%;
}
.zayavkaH1{
font-size: 1.3em;
padding: 4% 0;
}
.inputZ, .f14, .footerP, .footerA {
font-size: 14px;
}
.inputZ{
margin: 0 0 1%;
padding: 1% 0 0.5% 2%;
}
.logoIMG{
max-width: 70%;
height: auto;
margin: 6% 0 4% -21%;
}
#linkItem{
min-height: 200px;
}
#linkTao{
min-height: 20px;
}
#tel {
width: 100%;
}
.e3 {
flex-direction: column;
justify-content: space-between;
margin: 0 !important;
padding: 0 0 3%;
width: 100%;
}
.v{
margin-bottom: 2% !important;
}
.forDown{
margin-bottom: 3%;
}
#email{
margin-top: 3%;
}
input[type="radio"] {
margin: 0 2% 2% 0;
}
.btn{
padding: 2%;
margin: 0;
}
.e1, .e2 {
width: 80%;
}
footer{
margin: 5% 1%;
}
.footerP{
padding: 0.5%;
}
#bt{
width: 100%;
}
.cont{
width: 80%;
}
}
@media (max-width: 426px) and (min-width: 350px) {
.container{
padding: 0;
}
#tgHover, #bt{
font-size: 12px;
width: 100%;
min-height: 42px;
align-items: center;
justify-content: center;
text-align: center;
}
.zayavkaH1 {
font-size: 19px;
padding: 7% 0 8%;
}
.e1 {
flex-direction: column;
width: 70%;
text-align: start;
margin: 0 !important;
padding: 0 0 4%;
align-items: center;
}
.input1Width, #inputLink {
min-height: 20px;
}
.input1Width {
box-sizing: border-box;
padding-left: 3%;
color: var(--white);
}
.colms, .input1Width{
width: 100%;
}
.inputZ, .f14, .footerP, .footerA {
font-size: 14px;
/* padding: 0 0 3%; */
}
.inputZ{
margin: 0 0 5%;
padding: 1% 0 0.5% 2%;
margin-bottom: 3%;
}
#tel{
width: 100%;
}
.logoIMG{
max-width: 75%;
height: auto;
margin: 6% 0 0 -21%;
}
#linkItem{
min-height: 200px;
}
#linkTao{
min-height: 20px;
}
.e3 {
flex-direction: column;
justify-content: space-between;
margin: 0 !important;
padding: 0 0 3%;
width: 100%;
}
.v{
margin-bottom: 2% !important;
}
input[type="radio"] {
margin: 0 2% 2% 0;
}
.btn{
padding: 2%;
}
.e1, .e2 {
width: 85%;
}
footer{
margin: 8% 1%;
}
.footerP{
padding: 1% 2%;
}
#bt{
width: 100%;
}
#tgHover a{
margin: 0;
}
.cont{
width: 86%;
}
.forDown{
margin: 0 0 3%;
}
#email{
margin-top: 3%;
}
}

182
static/css/baseCSS.css Normal file
View File

@@ -0,0 +1,182 @@
*{
/* margin: 0; */
padding: 0;
background-color: var(--baseBlue);
}
a, h1, h2, h3, h4, h5, h6, label, p{
text-decoration: none;
color: inherit;
margin: 0 !important;
padding: 0;
}
label{
padding: 0 0 1% 2%;
}
li{
list-style: none;
}
.flex{
display: flex;
}
:root{
--baseBlue: #242430;
--blue: #4D54BA;
--lightBlue: #54AAFF;
--white: #fff;
}
.baseBlue{
color: var(--baseBlue);
}
.blue{
color: var(--blue);
}
.white{
color: var(--white);
}
.lightBlue{
color: var(--lightBlue);
}
.container{
padding: 0 7%;
}
.arial-regular{
font-family: Arial, Helvetica, sans-serif;
font-weight: 400;
}
.arial-bald{
font-family: Arial, Helvetica, sans-serif;
font-weight: 600;
}
.f14{
/* font-size: 14px; */
font-size: 0.9rem;
}
.f16{
font-size: 16px;
}
.colms{
flex-direction: column;
margin: 0 !important
}
.between{
justify-content: space-between;
}
.w100{
width: 100%;
}
.w1-5
{
width: 20%;
}
/* ---------------------- footer ----------------------- */
.footer-inner{
text-align: center;
}
.right{
width: 50%;
}
.footerLI{
padding: 9% 2% 0;
}
/* -------------------- header ----------------------*/
.pokazateli{
padding: 0;
margin: 0;
font-size: 11px;
}
.header-inner{
justify-content: space-between;
align-items: center;
}
.select{
max-width: 8vw;
font-size: 14px;
}
.header-1{
width: 9%;
text-align: center;
align-items: center;
}
.header-2{
width: 35%;
justify-content: space-between !important;
text-align: center;
align-items: center;
}
.headerUL{
justify-content: space-between !important;
text-align: center;
align-items: center;
border: none;
width: 35%;
}
.header-3{
width: 30%;
text-align: center;
align-items: center;
text-align: center;
}
#search-inpt{
border-radius: 30px;
border-color: var(--blue);
min-width: 22vw;
min-height: 2vw;
box-sizing: border-box;
padding-left: 3%;
border-style: solid;
background-color: var(--backBlue);
color: var(--white);
}
.header-4{
width: 7%;
justify-content: space-around;
text-align: center;
align-items: center;
color: var(--lightBlue);
}
.header-5{
width: 10%;
}
.login{
background-color: var(--blue);
border: var(--blue) solid 1px;
padding: 6% 20%;
}
option{
font-size: 14px !important;
}

120
static/css/errorPages.css Normal file
View File

@@ -0,0 +1,120 @@
*{
padding: 0;
background-color: var(--baseBlue);
}
a, h1, h2, h3, h4, h5, h6, label{
text-decoration: none;
color: inherit;
margin: 0 !important;
padding: 0;
}
.flex{
display: flex;
}
:root{
--baseBlue: #242430;
--blue: #4D54BA;
--lightBlue: #54AAFF;
--white: #fff;
}
.wrapper{
min-height: 80vh;
justify-content: center;
text-align: center;
align-items: center;
justify-self: center;
align-items: center;
}
.baseBlue{
color: var(--baseBlue);
}
.blue{
color: var(--blue);
}
.white{
color: var(--white);
}
.lightBlue{
color: var(--lightBlue);
}
.container{
padding: 0 7%;
justify-content: center;
text-align: center;
align-items: center;
justify-self: center;
align-items: center;
}
.arial-regular{
font-family: Arial, Helvetica, sans-serif;
font-weight: 400;
}
.arial-bald{
font-family: Arial, Helvetica, sans-serif;
font-weight: 600;
}
.f14{
/* font-size: 14px; */
font-size: 0.9rem;
}
.column{
flex-direction: column;
}
/* ------------------------ ---------------------- ------------------------------ */
.fontCenter{
justify-content: center;
text-align: center;
align-items: center;
justify-self: center;
align-items: center;
font-size: 160px;
}
.fontCenter1{
justify-content: center;
text-align: center;
align-items: center;
justify-self: center;
align-items: center;
font-size: 39px;
padding: 0 0 4%;
}
.text{
width: 50%;
justify-content: center;
text-align: center;
align-items: center;
justify-self: center;
align-items: center;
/* margin-top: 12vw; */
padding: 5%;
/* border: var(--blue) solid 3px;
border-radius: 20px; */
}
.lilText{
font-size: 20px;
text-align: center;
flex-direction: column;
}
.a1{
min-height: 100vh;
}

30
static/css/fonts.css Normal file
View File

@@ -0,0 +1,30 @@
.unbounded {
font-family: "Unbounded", sans-serif;
font-optical-sizing: auto;
font-weight: 600;
font-style: normal;
}
.onest{
font-family: "Onest", sans-serif;
font-optical-sizing: auto;
font-weight: 200;
font-style: normal;
}
.jetbrains-mono {
font-family: "JetBrains Mono", monospace;
font-optical-sizing: auto;
font-weight: 200;
font-style: normal;
}
input::placeholder, textarea::placeholder, input, textarea {
font-family: "Onest", sans-serif;
font-optical-sizing: auto;
font-weight: 200;
font-style: normal;
font-size: 12px;
}

355
static/css/normalize.css vendored Normal file
View File

@@ -0,0 +1,355 @@
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
========================================================================== */
/**
* 1. Correct the line height in all browsers.
* 2. Prevent adjustments of font size after orientation changes in iOS.
*/
html {
line-height: 1.15; /* 1 */
-webkit-text-size-adjust: 100%; /* 2 */
}
/* Sections
========================================================================== */
/**
* Remove the margin in all browsers.
*/
body {
margin: 0;
}
/**
* Render the `main` element consistently in IE.
*/
main {
display: block;
}
/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/* Grouping content
========================================================================== */
/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
hr {
box-sizing: content-box; /* 1 */
height: 0; /* 1 */
overflow: visible; /* 2 */
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
pre {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/* Text-level semantics
========================================================================== */
/**
* Remove the gray background on active links in IE 10.
*/
a {
background-color: transparent;
}
/**
* 1. Remove the bottom border in Chrome 57-
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
border-bottom: none; /* 1 */
text-decoration: underline; /* 2 */
text-decoration: underline dotted; /* 2 */
}
/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong {
font-weight: bolder;
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/**
* Add the correct font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` elements from affecting the line height in
* all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
/* Embedded content
========================================================================== */
/**
* Remove the border on images inside links in IE 10.
*/
img {
border-style: none;
}
/* Forms
========================================================================== */
/**
* 1. Change the font styles in all browsers.
* 2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
font-family: inherit; /* 1 */
font-size: 100%; /* 1 */
line-height: 1.15; /* 1 */
margin: 0; /* 2 */
}
/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
*/
button,
input {
/* 1 */
overflow: visible;
}
/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/
button,
select {
/* 1 */
text-transform: none;
}
/**
* Correct the inability to style clickable types in iOS and Safari.
*/
button,
[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
/**
* Remove the inner border and padding in Firefox.
*/
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
/**
* Restore the focus styles unset by the previous rule.
*/
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}
/**
* Correct the padding in Firefox.
*/
fieldset {
padding: 0.35em 0.75em 0.625em;
}
/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
* `fieldset` elements in all browsers.
*/
legend {
box-sizing: border-box; /* 1 */
color: inherit; /* 2 */
display: table; /* 1 */
max-width: 100%; /* 1 */
padding: 0; /* 3 */
white-space: normal; /* 1 */
}
/**
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
vertical-align: baseline;
}
/**
* Remove the default vertical scrollbar in IE 10+.
*/
textarea {
overflow: auto;
}
/**
* 1. Add the correct box sizing in IE 10.
* 2. Remove the padding in IE 10.
*/
[type="checkbox"],
[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/
[type="search"] {
-webkit-appearance: textfield; /* 1 */
outline-offset: -2px; /* 2 */
}
/**
* Remove the inner padding in Chrome and Safari on macOS.
*/
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
-webkit-appearance: button; /* 1 */
font: inherit; /* 2 */
}
/* Interactive
========================================================================== */
/*
* Add the correct display in Edge, IE 10+, and Firefox.
*/
details {
display: block;
}
/*
* Add the correct display in all browsers.
*/
summary {
display: list-item;
}
/* Misc
========================================================================== */
/**
* Add the correct display in IE 10+.
*/
template {
display: none;
}
/**
* Add the correct display in IE 10.
*/
[hidden] {
display: none;
}
ul,li{
list-style: none;
}

17
static/css/spin.css Normal file
View File

@@ -0,0 +1,17 @@
#uploader{
display: none;
}
.spin{
width: 40px;
height: 40px;
color: #4D54BA;
border: #54AAFF solid 5px;
border-radius: 10px;
animation: spin 4s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}

View File

@@ -204,7 +204,7 @@ input[type="radio"] {
.btn{ .btn{
padding: 0.8% 2%; padding: 0.8% 2%;
border-radius: 10px; border-radius: 5px;
border-color: var(--lightBlue); border-color: var(--lightBlue);
color: var(--white); color: var(--white);
margin: 4% 0 0 0; margin: 4% 0 0 0;
@@ -244,4 +244,216 @@ input[type="radio"] {
/* .input1Width { /* .input1Width {
width: 15vw; width: 15vw;
} */ } */
} }
@media (max-width: 1199px) and (min-width: 992px) {
.container{
padding: 0 7%;
}
/* .input1Width {
width: 15vw;
} */
.f14{
font-size: 12px;
}
}
@media (max-width: 991px) and (min-width: 768px) {
.container{
padding: 0 7%;
}
.input1Width, #inputLink {
min-height: 20px;
}
.zayavkaH1{
font-size: 20px;
}
.inputZ, .f14 {
font-size: 10px;
}
}
@media (max-width: 767px) and (min-width: 576px) {
.container{
padding: 0 7%;
}
.input1Width, #inputLink {
min-height: 20px;
}
.zayavkaH1{
font-size: 18px;
}
.inputZ, .f14 {
font-size: 9px;
}
.logoIMG{
max-width: 15%;
height: auto;
}
#linkItem{
min-height: 200px;
}
}
@media (max-width: 575px) and (min-width: 375px) {
.container{
padding: 0 5%;
}
.e1 {
flex-direction: column;
width: 70%;
text-align: start;
margin: 0 !important;
padding: 0 0 4%;
align-items: center;
}
.input1Width, #inputLink {
min-height: 20px;
}
.input1Width {
box-sizing: border-box;
padding-left: 3%;
color: var(--white);
}
.colms, .input1Width{
width: 100%;
}
.zayavkaH1{
font-size: 17px;
padding: 4% 0;
}
.inputZ, .f14 {
font-size: 10px;
}
.inputZ{
margin: 0 0 5%;
}
.logoIMG{
max-width: 22%;
height: auto;
margin-top: 6%;
}
#linkItem{
min-height: 200px;
}
#linkTao{
min-height: 20px;
}
.e3 {
flex-direction: column;
justify-content: space-between;
margin: 0 !important;
padding: 0 0 3%;
width: 100%;
}
.v{
margin-bottom: 2% !important;
}
input[type="radio"] {
margin: 0 2% 2% 0;
}
.btn{
padding: 2%;
}
}
@media (max-width: 425px) and (min-width: 350px) {
.container{
padding: 0 2%;
}
.e1 {
flex-direction: column;
width: 70%;
text-align: start;
margin: 0 !important;
padding: 0 0 4%;
align-items: center;
}
.input1Width, #inputLink {
min-height: 20px;
}
.input1Width {
box-sizing: border-box;
padding-left: 3%;
color: var(--white);
}
.colms, .input1Width{
width: 100%;
}
.zayavkaH1{
font-size: 17px;
padding: 4% 0;
}
.inputZ, .f14 {
font-size: 10px;
}
.inputZ{
margin: 0 0 5%;
}
.logoIMG{
max-width: 22%;
height: auto;
margin: 6% 0 0 6%;
}
#linkItem{
min-height: 200px;
}
#linkTao{
min-height: 20px;
}
.e3 {
flex-direction: column;
justify-content: space-between;
margin: 0 !important;
padding: 0 0 3%;
width: 100%;
}
.v{
margin-bottom: 2% !important;
}
input[type="radio"] {
margin: 0 2% 2% 0;
}
.btn{
padding: 2%;
}
}

3
static/imgs/cart.svg Normal file
View File

@@ -0,0 +1,3 @@
<svg width="23" height="22" viewBox="0 0 23 22" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.97462 3.98196H21.8223L19.5914 13.6733H6.20558M19.5914 16.6553H6.94923L3.23096 1H1M19.5913 19.6373C19.5913 20.4607 18.9255 21.1282 18.104 21.1282C17.2826 21.1282 16.6167 20.4607 16.6167 19.6373C16.6167 18.8138 17.2826 18.1463 18.104 18.1463C18.9255 18.1463 19.5913 18.8138 19.5913 19.6373ZM9.92387 19.6373C9.92387 20.4607 9.25798 21.1282 8.43656 21.1282C7.61514 21.1282 6.94925 20.4607 6.94925 19.6373C6.94925 18.8138 7.61514 18.1463 8.43656 18.1463C9.25798 18.1463 9.92387 18.8138 9.92387 19.6373Z" stroke="#4D54BA" stroke-width="1.38815" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 703 B

3
static/imgs/heart.svg Normal file
View File

@@ -0,0 +1,3 @@
<svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.58317 3.25C4.59209 3.25 2.1665 5.65067 2.1665 8.6125C2.1665 11.0034 3.11442 16.6779 12.4452 22.4142C12.6123 22.5159 12.8042 22.5697 12.9998 22.5697C13.1955 22.5697 13.3874 22.5159 13.5545 22.4142C22.8853 16.6779 23.8332 11.0034 23.8332 8.6125C23.8332 5.65067 21.4076 3.25 18.4165 3.25C15.4254 3.25 12.9998 6.5 12.9998 6.5C12.9998 6.5 10.5743 3.25 7.58317 3.25Z" stroke="#4D54BA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 560 B

View File

@@ -1,48 +1,87 @@
const textTaoL = document.getElementById('linkItem');
const bttn = document.getElementById('bt');
const linkTaoL = document.getElementById('linkTao');
const emal = document.getElementById('email');
const uploader = document.getElementById('uploader');
var inUnder = document.getElementById('inUnderline')
var emailUnderline = document.getElementById('emailUnderline')
// function change(){ window.onload = function () {
// if (document.getElementById('radio1').checked && document.getElementById('radio2').checked == false){ textTaoL.value = "";
// linkTao.style.display = 'block'; linkTaoL.value = "";
// textTao.style.display = 'none'; emal.value = "";
// console.log(1) }
// }
// else if (document.getElementById('radio1').checked == false && document.getElementById('radio2').checked){
// textTao.style.display = 'block';
// linkTao.style.display = 'none';
// console.log(2)
// }
// else{
// textTao.style.display = 'none';
// linkTao.style.display = 'none';
// console.log(3)
// }
// }
document.addEventListener('DOMContentLoaded', function () {
const radio1 = document.getElementById('radio1');
const radio2 = document.getElementById('radio2');
const linkTao = document.getElementById('inputLink');
const textTao = document.getElementById('inputText');
function toggleInputs() { emal.addEventListener("change", function () {
if (radio1.checked) { bttn.disabled = false;
linkTao.style.display = 'flex'; emailUnderline.textContent = '';
textTao.style.display = 'none';
console.log(1); var emailRe = /\S+@\S+\.\S+/;
} else if (radio2.checked && radio1.checked == false) { var isValid = emailRe.test(emal.value);
linkTao.style.display = 'none';
textTao.style.display = 'flex'; if (!isValid) {
console.log(2); emailUnderline.textContent = '*Введите корректный адрес электронной почты.';
} else { bttn.disabled = true;
linkTao.style.display = 'none'; }
textTao.style.display = 'none'; else {
console.log(3); bttn.disabled = false;
}
});
const inputs = document.querySelectorAll('.inpt2');
inputs.forEach(input => {
input.addEventListener("change", function () {
inUnder.textContent = '';
if (linkTaoL.value === "" && textTaoL.value === "") {
inUnder.textContent = '*Введите ссылку или текстовое описание желаемого товара.';
bttn.disabled = true;
}
else {
bttn.disabled = false;
}
})
})
document.getElementById('form').addEventListener("submit", function (event) {
bttn.disabled = false;
if (emal.value != '' && (textTaoL.value == '' || linkTaoL.value == '')) {
event.preventDefault();
uploader.style.display = "block";
const ToSend = { 'email': emal.value.toString(), 'link': linkTaoL.value, 'text': textTaoL.value };
event.preventDefault();
try {
const xhr = new XMLHttpRequest();
xhr.open('POST', '/sendedData', true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onload = function () {
if (xhr.status === 200) {
const response = JSON.parse(xhr.responseText);
console.log("Получено спустя 5 секунд:", response.status);
event.preventDefault();
const timeoutId = setTimeout(() => {
window.location.href = "OK";
window.location.replace = "OK";
}, 5000);
}
};
console.log("Данные отправлены. Ждем ответа сервера...");
xhr.send(JSON.stringify(ToSend));
}
catch (Error) {
console.log(Error)
} }
} }
linkTao.style.display = 'none';
textTao.style.display = 'none';
radio1.addEventListener('click', toggleInputs);
radio2.addEventListener('click', toggleInputs);
}); });

27
templates/404.html Normal file
View File

@@ -0,0 +1,27 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/x-icon" href="{{ url_for('static', filename='imgs/logo.svg') }}">
<link rel="stylesheet" href="{{ url_for('static', filename=" css/errorPages.css" ) }}">
<title>Document</title>
</head>
<body>
<div class="wrapper">
<div class="container flex">
<div class="flex column text">
<h1 class="flex lightBlue arial-bald fontCenter">404</h1>
<p class="flex blue arial-regular lilText">Страница не найдена. <a href="{{ url_for(" ind")
}}">Вернуться на главную</a></p>
</div>
</div>
</div>
</body>
</html>

27
templates/408.html Normal file
View File

@@ -0,0 +1,27 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/x-icon" href="{{ url_for('static', filename='imgs/logo.svg') }}">
<link rel="stylesheet" href="{{ url_for('static', filename=" css/errorPages.css" ) }}">
<title>Document</title>
</head>
<body>
<div class="wrapper">
<div class="container ">
<div class="flex column text">
<h1 class="flex lightBlue arial-bald fontCenter">408</h1>
<p class="flex blue arial-regular lilText">Превышено ожидание ответа сервера. Попробуйте ещё раз позже.
</p>
</div>
</div>
</div>
</body>
</html>

26
templates/500.html Normal file
View File

@@ -0,0 +1,26 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/x-icon" href="{{ url_for('static', filename='imgs/logo.svg') }}">
<link rel="stylesheet" href="{{ url_for('static', filename=" css/errorPages.css" ) }}">
<title>Document</title>
</head>
<body>
<div class="wrapper">
<div class="container ">
<div class="flex column text">
<h1 class="flex lightBlue arial-bald fontCenter">500</h1>
<p class="flex blue arial-regular lilText">Ошибка сервера. Попробуйте ещё раз позже.</p>
</div>
</div>
</div>
</body>
</html>

142
templates/base.html Normal file
View File

@@ -0,0 +1,142 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
{% block linking %}
<link rel="stylesheet" href="{{ url_for('static', filename='css/baseCSS.css') }}">
{% endblock %}
<title>Document</title>
</head>
<body>
{% block header %}
<header class="header f-14">
<div class="wrapper">
<div class="container">
<div class="header-inner flex w100">
<div class="header-1 w1-5">
<li class="headerLi">
<a href="" class="logoHref">
<img src="{{ url_for('static', filename='imgs/logo.svg') }}" alt="" class="logo">
</a>
</li>
</div>
<div class="header-2 flex arial-regular">
<ul class="headerUL flex">
<li class="headerLi flex">
<a href="#" class="li-a-header">Главная</a>
</li>
<li class="headerLi flex">
<select name="header-innner-links-2" id="links-2" class="select header-links">
<option class="optionHeader" value="1" disabled selected hidden>Каталог</option>
<option class="optionHeader" value="Сборки ПК">Сборки ПК</option>
<option class="optionHeader" value="Комплектующие">Комплектующие</option>
<option class="optionHeader" value="Периферия и аксессуары">Периферия и аксессуары</option>
<option class="optionHeader" value="Другое">Другое</option>
</select>
</li>
<li class="headerLi flex">
<select name="header-innner-links-3" id="links-3" class="select header-links">
<option class="optionHeader" value="1" disabled selected hidden>Покупателям</option>
<option class="optionHeader" value="Доставка и выдача заказов">Доставка и выдача заказов</option>
<option class="optionHeader" value="Пункты выдачи заказов">Пункты выдачи заказов</option>
<option class="optionHeader" value="Q&A">Q&A</option>
<option class="optionHeader" value="Контакты">Контакты</option>
<option class="optionHeader" value="Обмен и возврат">Обмен и возврат</option>
<div class="down-option">
<option value="33">Пополняй свой Steam без комиссии* с нашим сервисом LizardMoney!</option>
</div>
</select>
</li>
</ul>
</div>
<div class="header-3 flex">
<search>
<form action="./search/">
<input type="search" id="search-inpt" name="search" placeholder="Найти..."/>
</form>
</search>
</div>
<div class="header-4 flex">
<a href="#">
<div class="cart">
<!-- from db -->
<p class="pokazateli arial-regular">3</p>
<img src="{{ url_for('static', filename='imgs/cart.svg') }}" alt="cart">
</div>
</a>
<a href="#">
<div class="heart">
<!-- from db -->
<p class="pokazateli arial-regular">3</p>
<img src="{{ url_for('static', filename='imgs/heart.svg') }}" alt="heart">
</div>
</a>
</div>
<div class="header-5">
<button class="login f14 white arial-regular">Войти</button>
</div>
</div>
</div>
</div>
</header>
{% endblock %}
{% block footer %}
<footer class="footer">
<div class="container">
<div class="wrapper">
<div class="footer-inner flex between">
<div class="left">
<img src="{{ url_for('static', filename='imgs/logo.svg') }}" alt="">
</div>
<div class="right flex between">
<div class="colms">
<h6 class="footerRazd f14 arial-bald blue">
<a href="#"> Главная</a>
</h6>
</div>
<div class="colms">
<h6 class="footerRazd f14 arial-bald blue">
<a href="#">Каталог</a>
</h6>
<ul class="footerUL f14 arial-regular white">
<li class="footerLI"><a href="#">Сборки ПК</a> </li>
<li class="footerLI"><a href="#">Комплектующие</a> </li>
<li class="footerLI"><a href="#">Периферия и аксессуары</a> </li>
<li class="footerLI"><a href="#">Прочее</a> </li>
</ul>
</div>
<div class="colms">
<h6 class="footerRazd f16 arial-bald blue">
<a href="#">Покупателям</a>
</h6>
<ul class="footerUL f14 arial-regular white">
<li class="footerLI"><a href="#">Доставка и выдача заказов</a> </li>
<li class="footerLI"><a href="#">Пункты выдачи заказов</a> </li>
<li class="footerLI"><a href="#">Q&A</a> </li>
<li class="footerLI"><a href="#">Контакты</a> </li>
<li class="footerLI"><a href="#">Обмен и возврат</a> </li>
</ul>
</div>
</div>
</div>
</div>
</div>
</footer>
{% endblock %}
</body>
</html>

35
templates/end.html Normal file
View File

@@ -0,0 +1,35 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/x-icon" href="{{ url_for('static', filename='imgs/logo.svg') }}">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&family=Onest:wght@100..900&family=Unbounded:wght@200..900&display=swap"
rel="stylesheet">
<link rel="stylesheet" href="{{ url_for('static', filename='css/errorPages.css' ) }}">
<link rel="stylesheet" href="{{ url_for('static', filename='css/fonts.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='css/normalize.css') }}">
<title>Заявка отправлена</title>
</head>
<body>
<div class="wrapper flex">
<div class="container flex a1">
<div class="main-inner flex column text">
<h1 class="flex lightBlue unbounded fontCenter1">Заявка отправлена на рассмотрение!</h1>
<p class="flex white onest lilText">Вся информация о её статусе будет отправлена по почте на указанный
адрес.</p>
</div>
</div>
</div>
</body>
</html>

View File

@@ -5,8 +5,11 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="{{ url_for('static', filename='imgs/logo.svg') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}"> <link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
<title>Оставить заявку</title> <title>Оставить заявку</title>
</head> </head>
<body> <body>
@@ -18,7 +21,7 @@
<ul class="headerUL"> <ul class="headerUL">
<li class="headerLi"> <li class="headerLi">
<a href="#" class="logoLink"> <a href="#" class="logoLink">
<img src="{{ url_for('static', filename='imgs/logo.svg') }}" alt=""> <img src="{{ url_for('static', filename='imgs/logo.svg') }}" alt="" class="logoIMG">
</a> </a>
</li> </li>
<!-- <li class="headerLi">1</li> <!-- <li class="headerLi">1</li>
@@ -26,6 +29,7 @@
<li class="headerLi">1</li> <li class="headerLi">1</li>
<li class="headerLi">1</li> --> <li class="headerLi">1</li> -->
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
@@ -54,7 +58,7 @@
<!-- radio --> <!-- radio -->
<div class="e2 flex"> <div class="e2 flex">
<label for="radioDiv" class="arial-regular white f14">Тип обращения</label> <label for="radioDiv" class="arial-regular white f14 v">Тип обращения</label>
<div class="radioDiv"> <div class="radioDiv">
<div class="flex e3"> <div class="flex e3">
<div class="radio1Div flex"> <div class="radio1Div flex">
@@ -82,7 +86,7 @@
</div> </div>
</div> </div>
</div> </div>
<button class="btn">Отправить заявку</button> <button class="btn f14">Отправить заявку</button>
</form> </form>
{% endblock %} {% endblock %}
</div> </div>

34
templates/ok.html Normal file
View File

@@ -0,0 +1,34 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/x-icon" href="{{ url_for('static', filename='imgs/logo.svg') }}">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&family=Onest:wght@100..900&family=Unbounded:wght@200..900&display=swap"
rel="stylesheet">
<link rel="stylesheet" href="{{ url_for('static', filename='css/errorPages.css' ) }}">
<link rel="stylesheet" href="{{ url_for('static', filename='css/fonts.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='css/normalize.css') }}">
<title>Заявка отправлена</title>
</head>
<body>
<div class="wrapper flex">
<div class="container flex a1">
<div class="main-inner flex column text">
<h1 class="flex lightBlue unbounded fontCenter1">Заявка согласована!</h1>
<p class="flex white onest lilText">Вся информация о её статусе будет отправлена по почте на указанный
адрес.</p>
</div>
</div>
</div>
</body>
</html>

162
templates/zayavka.html Normal file
View File

@@ -0,0 +1,162 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/x-icon" href="{{ url_for('static', filename='imgs/logo.svg') }}">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&family=Onest:wght@100..900&family=Unbounded:wght@200..900&display=swap"
rel="stylesheet">
<link rel="stylesheet" href="{{ url_for('static', filename='css/ZayavkaStyle.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='css/fonts.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='css/spin.css') }}">
<title>Оставить заявку</title>
</head>
<body>
<!-- ----------- header ------------ -->
<header class="header">
<div class="wrapper">
<div class="container">
<div class="header-inner">
<div class="headerUL flex">
<div class="headerLi flex">
<!-- <a href="#" class="logoLink"> -->
<img src="{{ url_for('static', filename='imgs/logo.svg') }}" alt="" class="logoIMG">
<!-- </a> -->
</div>
</div>
</div>
</div>
</div>
</header>
<!-- --------------- main -------------- -->
<main class="main">
<div class="wrapper">
<div class="container">
<!-- form -->
<div class="main-inner">
<h1 class="zayavkaH1 unbounded lightBlue">Оставить заявку на товар</h1>
{% block content %}
<form action="/process" method="POST" id="form" class="form1 flex between w100">
<!-- <div id="radioBttns ">
<p class="radioP onest white">Выберите способ получения информации по заявке:</p>
<label for="Radio" class="onest f14 white">Почта</label>
<input type="radio" name="Radio" id="emailRadio">
<label for="Radio" class="onest f14 white">Telegram</label>
<input type="radio" name="Radio" id="tgRadio">
</div> -->
<div class="e1 flex">
<!-- <div class="colms flex">
<label for="tel" class="onest white f14">Почта для обращения</label> -->
<!-- div class="lineIn">
<input type="email" name="email" id="email" class="inputZ input1Width" placeholder="Адрес электронной почты..." required>
</div>
<p id="telUnderline" class="under onest"></p>
</div>-->
<!-- <div class="colms flex ent" id="hide1">
<input type="text" name="tg" id="tg" class="inputZ input1Width" required>
<p id="tgUnderline" class="under onest"></p>
</div> -->
<div class="colms ent">
<label for="email" class="f14 onest white">Введите адрес электронной почты:</label>
<input type="email" name="email" id="email" class="inputZ input1Width"
placeholder="Ваша почта..." required>
<p id="emailUnderline" class="under onest"></p>
</div>
<p class="white onest f14 forDown"> или </p>
<div class="colms flex" id="hide2">
<a href="#" class="f14 white jetbrains-mono flex" id="tgHover">Заполнить заявку в
Telegram-боте.</a>
</div>
</div>
<div class="e2 flex">
<!-- <label for="radioDiv" class="onest white f14 v">Тип обращения</label>
<div class="radioDiv">
<div class="flex e3">
<div class="radio1Div flex">
<input type="radio" name="radio12" id="radio1" value="link">
<label for="radio1" class="onest white f14">Ссылка</label>
</div>
<div class="radio1Div flex">
<input type="radio" name="radio12" id="radio2" value="text">
<label for="radio2" class="onest white f14" id="l1">Описать необходимый
товар</label>
</div>
</div>
</div> -->
<p for="email" class="f14 onest white forDown">Опишите, что необходимо заказать:</p>
<div class="colms flex">
<div id="inputLink">
<input type="url" name="linkI" id="linkTao" class="inputZ inpt2"
placeholder="Ссылка на товар">
<p id="linkUnderneath" class="onest white f14"></p>
</div>
<p id="inUnderline" class="under onest"></p>
<p id="or" class="f14 onest white">Или</p>
<div id="inputText">
<textarea type="text" name="textI" id="linkItem" class="inputZ inpt2"
placeholder="Опишите желаемый товар (до 1500 символов) ..."
maxlength="1500"></textarea>
<p id="linkUnderneath1" class="onest white f14"></p>
</div>
</div>
</div>
<div class="cont">
<button id="bt" class="btn f14 jetbrains-mono flex" style="margin-top: 2%;">Отправить
заявку</button>
</div>
</form>
{% endblock %}
</div>
</div>
</div>
</div>
</main>
<div id="uploader">
<div class="spin"></div>
<h5 class="spinText">Идёт обработка данных...</h5>
<p class="spinP">Это может занять несколько минут. Не закрывайте вкладку до окончания обработки.</p>
</div>
<!-- <footer class="footer">
<div class="wrapper cf">
<div class="notiInnner onest">
<p class="footerP ">Убедитесь, что в настройках конфиденциальности Telegram в графе "Сообщения" стоит "Все". Иначе бот не сможет Вам написать. Если не хотите менять настройки — нажмите кнопку /start в боте <a href="#" class="footerA">@EcoBot</a></p>
</div>
</div>
</footer> -->
<script src="{{ url_for('static', filename='js/cases.js') }}">
</script>
<!-- <script src="{{ url_for('static', filename='js/dist/bundle.js') }}"></script> -->
</body>
</html>