recette2
cherif 2024-05-16 13:03:56 +02:00
parent 2ad11d67c4
commit 0aabb0b99f
3 changed files with 133 additions and 15 deletions

View File

@ -129,7 +129,7 @@ function App() {
<Route path="/Survey/:survey_id/" exact component={SurveyDocument} /> <Route path="/Survey/:survey_id/" exact component={SurveyDocument} />
<Route path="/UpadateAttendeeList/:client_id/:session_id/:partner_owner_recid/" exact component={UpdateAttendeeList} /> <Route path="/UpadateAttendeeList/:client_id/:session_id/:partner_owner_recid/" exact component={UpdateAttendeeList} />
<Route path="/Automatic-Quotation/:partner_owner_recid/:objid" exact component={AutomaticQuotation} /> <Route path="/automatic-auotation/:partner_owner_recid/:objid/" exact component={AutomaticQuotation} />
<Route component={NotFound} /> <Route component={NotFound} />
</Switch> </Switch>

View File

@ -1,33 +1,102 @@
import React, { useState, useEffect } from "react"; import React, { useState, useEffect, useRef } from "react";
import Navigation from "../components/Navigation"; import Navigation from "../components/Navigation";
import bannerimg2 from "./../mysy_img/MYSY-LOGO-BLUE.png"; import bannerimg2 from "./../mysy_img/MYSY-LOGO-BLUE.png";
import ok_png from "./../mysy_img/Ok_PNG.png"; import ok_png from "./../mysy_img/Ok_PNG.png";
import { Helmet } from "react-helmet"; import { Helmet } from "react-helmet";
import Footer from "./../components/Fotter"; import Footer from "./../components/Fotter";
import Header from "./../components/Header"; import Header from "./../components/Header";
import { useParams } from 'react-router-dom' import { useParams } from 'react-router-dom';
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
import axios from "axios";
const Automaticquotation = () => { const Automaticquotation = () => {
const { objid, partner_owner_recid } = useParams(); const { objid, partner_owner_recid } = useParams();
const [tempo, settempo] = useState("."); const [tempo, settempo] = useState(".");
setInterval(check, 2300); //setInterval(check, 2300);
/* /*
window.setTimeout(function () { window.setTimeout(function () {
window.location.href = process.env.REACT_APP_BASE_URL window.location.href = process.env.REACT_APP_BASE_URL
}, 7000); }, 7000);
*/ */
function check() { function check() {
var val = tempo + " ."; var val = tempo + " .";
//alert(" val = "+val); //alert(" val = "+val);
settempo(val); //settempo(val);
} }
const [isLoading, setLoading] = useState();
const [Create_Automatic_Quotation_api, setCreate_Automatic_Quotation_api] = useState();
const [Create_Automatic_Quotation_message, setCreate_Automatic_Quotation_message] = useState();
const [Create_Automatic_Quotation_result, setCreate_Automatic_Quotation_result] = useState();
function Create_Automatic_Quotation() {
var form = new FormData();
//form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA");
form.append("partner_owner_recid", partner_owner_recid);
form.append("lead_website_id", objid);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Create_Automatic_Quotation/";
// setLoading(true);
axios.post(myurl, form).then(res => {
console.log(" In Create_Automatic_Quotation res.data.status = " + res.data.status);
console.log(" In Create_Automatic_Quotation res.data.message r_class = " + res.data.message);
// setLoading(false);
if (String(res.data.status) === String("true")) {
setCreate_Automatic_Quotation_api("true");
setCreate_Automatic_Quotation_result(res.data.message);
//myRef_head.current.scrollIntoView({ behavior: "smooth" });
}
else {
setCreate_Automatic_Quotation_api("false");
setCreate_Automatic_Quotation_message(res.data.message);
alert(res.data.message);
}
}).catch((error) => {
//setLoading(false);
console.warn('UpdateStagiaireData : Not good man :( Create_Automatic_Quotation = ' + error);
setCreate_Automatic_Quotation_api("false");
alert(" Impossible de créer le devis");
})
}
const initialized = useRef(false)
useEffect(() => {
if (!initialized.current) {
initialized.current = true
console.log(" aaaaaa")
Create_Automatic_Quotation();
}
}, [Create_Automatic_Quotation_api]);
return ( return (
<div className="notfound"> <div className="notfound">
{isLoading && <div className="loader-container">
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
<div> <div>
<Navigation /> <Navigation />
</div> </div>
@ -43,12 +112,27 @@ const Automaticquotation = () => {
<div className="div_mobile"> <div className="div_mobile">
<div className="nom_prenom"> Votre devis est en cours de création <img src={ok_png} className="img_ok"/> </div> {isLoading && <div className="loader-container">
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
{/*<div className="nom_prenom"> Votre devis est en cours de création <img src={ok_png} className="img_ok" /> </div>*/}
<div className="nom_prenom"> <div className="nom_prenom">
<div> <div>
Vous allez être redirigé vers le moteur de recherche dans quelques secondes. {tempo} Votre devis est en cours de création . {tempo}
Create_Automatic_Quotation_api = {Create_Automatic_Quotation_api}
objid = {objid} {Create_Automatic_Quotation_api && String(Create_Automatic_Quotation_api) === "false" &&
<div style={{ "color": "red" }}>
Impossible de créer le devis : {Create_Automatic_Quotation_message}
</div>
}
{Create_Automatic_Quotation_api && String(Create_Automatic_Quotation_api) === "true" &&
<div style={{ "color": "green" }}>
{Create_Automatic_Quotation_message}
</div>
}
</div> </div>
</div> </div>
</div> </div>

View File

@ -1,4 +1,38 @@
.notfound { .notfound {
.loader-container {
width: 100%;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
position: fixed;
background: white;
background-color: transparent;
z-index: 1;
top: 0px;
opacity: 80%;
left: 0px;
}
.spinner {
width: 20rem;
height: 10rem;
border: 8px solid;
border-color: #3d5af1 transparent #3d5af1 transparent;
border-radius: 50%;
animation: spin-anim 1.2s linear infinite;
background-color: red;
color: black;
}
.mysy_spinner {
border-radius: 5px;
//border: 1px solid black;
opacity: 100%;
}
@media only screen and (max-width: 600px) { @media only screen and (max-width: 600px) {
.nom_prenom { .nom_prenom {
font-family: "verdana", "Quicksand", "Signika", sans-serif; font-family: "verdana", "Quicksand", "Signika", sans-serif;