اصلاحات جدید کلی
This commit is contained in:
parent
9fa7ce7f20
commit
27c4e3eb1e
|
|
@ -1,3 +1,4 @@
|
||||||
|
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import style from "./footer.module.css";
|
import style from "./footer.module.css";
|
||||||
import styles from "../../../pages/index.module.css";
|
import styles from "../../../pages/index.module.css";
|
||||||
|
|
@ -9,41 +10,19 @@ import panelAxios from "../../services/panelAxios";
|
||||||
import dotenv from "dotenv";
|
import dotenv from "dotenv";
|
||||||
dotenv.config();
|
dotenv.config();
|
||||||
|
|
||||||
function footer({ token, data }) {
|
|
||||||
|
function Footer({ data }) {
|
||||||
const [email, setEmail] = useState("");
|
const [email, setEmail] = useState("");
|
||||||
const [comment, setComment] = useState("");
|
const [comment, setComment] = useState("");
|
||||||
const submitComment = async () => {
|
const submitComment = async () => {
|
||||||
if (email != "") {
|
if (email != "") {
|
||||||
const raw = JSON.stringify({
|
const raw = JSON.stringify({
|
||||||
// ProcessName: "ConnectToUs",
|
|
||||||
// FieldValues: [
|
|
||||||
// {
|
|
||||||
// Name: "Email",
|
|
||||||
// Value: email,
|
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// Name: "Comment",
|
|
||||||
// Value: comment,
|
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// Name: "submitDate",
|
|
||||||
// Value: "",
|
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// Name: "submitTime",
|
|
||||||
// Value: "",
|
|
||||||
// },
|
|
||||||
// ],
|
|
||||||
ConnectToUs: {
|
ConnectToUs: {
|
||||||
Email: email,
|
Email: email,
|
||||||
Comment: comment,
|
Comment: comment,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
await panelAxios.post("api/save", raw, {
|
await panelAxios.post("api/save", raw,{ });
|
||||||
headers: {
|
|
||||||
Authorization: `Bearer ${token}`,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
setEmail("");
|
setEmail("");
|
||||||
setComment("");
|
setComment("");
|
||||||
|
|
@ -71,20 +50,20 @@ function footer({ token, data }) {
|
||||||
</div>
|
</div>
|
||||||
{data?.mobile1 && (
|
{data?.mobile1 && (
|
||||||
<div className={style.phone}>
|
<div className={style.phone}>
|
||||||
<Link href={`tel:${data.mobile1}`}>همراه:{data.mobile1}</Link>
|
<Link href={`tel:${data?.mobile1}`}>همراه: {data?.mobile1}</Link>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{data?.mobile2 && (
|
{data?.mobile2 && (
|
||||||
<div className={style.phone}>
|
<div className={style.phone}>
|
||||||
<Link href="tel:+989394396139">همراه:{data.mobile2}</Link>
|
<Link href={`tel:${data?.mobile2}`}>همراه: {data?.mobile2}</Link>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
<div className={style.links}>
|
<div className={style.links}>
|
||||||
<Link href="/telegram" className="icon telegramIcon"></Link>
|
<Link href={data?.link_social_title1 ?? ''} target="_blank" className="icon telegramIcon"></Link>
|
||||||
<Link href="whatsApp" className="icon whatsAppIcon"></Link>
|
<Link href={data?.link_social_title2 ?? ''} target="_blank" className="icon whatsAppIcon"></Link>
|
||||||
<Link href="/instagram" className="icon instagramIcon"></Link>
|
<Link href={data?.link_social_title3 ?? ''} target="_blank" className="icon instagramIcon"></Link>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span>رایانامه: {data?.email1}</span>
|
<span>رایانامه: {data?.email1}</span>
|
||||||
|
|
@ -141,7 +120,7 @@ function footer({ token, data }) {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<span className={style.copyRight}>
|
<span className={style.copyRight}>
|
||||||
تمام حقوق مادی و معنوی این وبسایت متعلق به این{" "}
|
تمام حقوق مادی و معنوی این وبسایت متعلق به شرکت{" "}
|
||||||
<span className={style.domains}>{data?.company_name}</span> می باشد.
|
<span className={style.domains}>{data?.company_name}</span> می باشد.
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -149,4 +128,4 @@ function footer({ token, data }) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default footer;
|
export default Footer;
|
||||||
|
|
|
||||||
|
|
@ -39,12 +39,12 @@
|
||||||
|
|
||||||
.logo {
|
.logo {
|
||||||
width: 50px;
|
width: 50px;
|
||||||
height: 50px;
|
/* height: 50px; */
|
||||||
}
|
}
|
||||||
|
|
||||||
.logo img {
|
.logo img {
|
||||||
width: 100%;
|
width: 120%;
|
||||||
height: 100%;
|
height: 120%;
|
||||||
object-fit: contain;
|
object-fit: contain;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -62,7 +62,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.logoContent h1:last-child {
|
.logoContent h1:last-child {
|
||||||
font-size: 10pt;
|
font-size: 17pt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
import logo from "../../../public/assets/photos/logo.svg";
|
import logo from "../../../public/assets/photos/logo.svg";
|
||||||
|
|
@ -35,13 +36,13 @@ const header = ({ backwardStatus, setbackwardStatus, data }) => {
|
||||||
pageScroll(0);
|
pageScroll(0);
|
||||||
break;
|
break;
|
||||||
case "services":
|
case "services":
|
||||||
pageScroll(550);
|
pageScroll(610);
|
||||||
break;
|
break;
|
||||||
case "customers":
|
case "customers":
|
||||||
pageScroll(1450);
|
pageScroll(1750);
|
||||||
break;
|
break;
|
||||||
case "aboutUs":
|
case "aboutUs":
|
||||||
pageScroll(1830);
|
pageScroll(2170);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,25 @@
|
||||||
export async function fetchPageContent() {
|
import panelAxios from "../services/panelAxios";
|
||||||
|
|
||||||
|
export async function fetchPageContent(ip) {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
|
try {
|
||||||
|
const raw = JSON.stringify({
|
||||||
|
ViewStatisticsFromTheSite: {
|
||||||
|
IP: ip,
|
||||||
|
ViewTime: "",
|
||||||
|
ViewDate: "",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
await panelAxios.post("http://bpms-back.sepehrdata.com/api/save", raw);
|
||||||
|
} catch (err) {
|
||||||
|
console.log("Submit failed:", err);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const response = await fetch("http://bpms-back.sepehrdata.com/api/select", {
|
const response = await fetch("http://bpms-back.sepehrdata.com/api/select", {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
headers: {
|
headers: {
|
||||||
|
|
@ -17,6 +37,8 @@ export async function fetchPageContent() {
|
||||||
"email1",
|
"email1",
|
||||||
"logo",
|
"logo",
|
||||||
"product_introduction",
|
"product_introduction",
|
||||||
|
"title_product_introduction1",
|
||||||
|
"title_product_introduction2",
|
||||||
"product_introduction_image",
|
"product_introduction_image",
|
||||||
"location_company",
|
"location_company",
|
||||||
"link_social_title1",
|
"link_social_title1",
|
||||||
|
|
@ -57,3 +79,5 @@ export async function fetchPageContent() {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
"use client";
|
||||||
|
|
||||||
import "../public/assets/styles/main.css";
|
import "../public/assets/styles/main.css";
|
||||||
export const metadata = {
|
export const metadata = {
|
||||||
title: "Create Next App",
|
title: "Create Next App",
|
||||||
|
|
|
||||||
|
|
@ -1,23 +1,14 @@
|
||||||
"use client";
|
"use client";
|
||||||
import Header from "../../app/components/navbar";
|
import Header from "../../app/components/navbar";
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
import dataMining from "../../public/assets/icons/mining.svg";
|
|
||||||
import bmpImage from "../../public/assets/icons/bpms.svg";
|
|
||||||
import alImage from "../../public/assets/icons/al.svg";
|
|
||||||
import style from "../index.module.css";
|
import style from "../index.module.css";
|
||||||
import interduceImg from "../../public/assets/photos/secondInterDuce.png";
|
import interduceImg from "../../public/assets/photos/secondInterDuce.png";
|
||||||
import Slider from "react-slick";
|
import Slider from "react-slick";
|
||||||
import boton from "../../public/assets/photos/boton.png";
|
|
||||||
import denik from "../../public/assets/photos/denik.jpg";
|
|
||||||
import firstCustomer from "../../public/assets/photos/customer.jpg";
|
|
||||||
import Customer2 from "../../public/assets/photos/customer2.jpg";
|
|
||||||
import "slick-carousel/slick/slick.css";
|
import "slick-carousel/slick/slick.css";
|
||||||
import "slick-carousel/slick/slick-theme.css";
|
import "slick-carousel/slick/slick-theme.css";
|
||||||
import Footer from "../../app/components/footer";
|
import Footer from "../../app/components/footer";
|
||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import Head from "next/head";
|
import Head from "next/head";
|
||||||
import panelAxios from "../../app/services/panelAxios";
|
|
||||||
import dotenv from "dotenv";
|
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
|
|
||||||
const MainClient = ({ data }) => {
|
const MainClient = ({ data }) => {
|
||||||
|
|
@ -60,101 +51,15 @@ const MainClient = ({ data }) => {
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
const [authtoken, setAuthToken] = useState("");
|
|
||||||
dotenv.config();
|
|
||||||
|
|
||||||
// const getUser = async () => {
|
|
||||||
// debugger;
|
|
||||||
// const res = await panelAxios
|
|
||||||
// .post("person/login", {
|
|
||||||
// userName: "mehrdad",
|
|
||||||
// password: "13811381",
|
|
||||||
// })
|
|
||||||
// .catch((err) => {
|
|
||||||
// console.log(err);
|
|
||||||
// });
|
|
||||||
// const data = await JSON.parse(res.data.data)?.Token?.AccessToken;
|
|
||||||
// return data;
|
|
||||||
// };
|
|
||||||
|
|
||||||
const submitView = async (tokenFromEnv, ip) => {
|
|
||||||
const raw = JSON.stringify({
|
|
||||||
// ViewStatisticsFromTheSite: [
|
|
||||||
// {
|
|
||||||
// Name: "IP",
|
|
||||||
// Value: ip
|
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// Name: "ViewTime",
|
|
||||||
// Value: ""
|
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// Name: "ViewDate",
|
|
||||||
// Value: ""
|
|
||||||
// }
|
|
||||||
// ]
|
|
||||||
ViewStatisticsFromTheSite: {
|
|
||||||
IP: ip,
|
|
||||||
ViewTime: "",
|
|
||||||
ViewDate: "",
|
|
||||||
},
|
|
||||||
});
|
|
||||||
await panelAxios
|
|
||||||
.post("api/save", raw, {
|
|
||||||
headers: {
|
|
||||||
Authorization: `Bearer ${tokenFromEnv}`,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
.catch(async (err) => {
|
|
||||||
console.log("error is Active!", err);
|
|
||||||
const userToken = await getUser();
|
|
||||||
const ipAddress = await getIP();
|
|
||||||
const raw = JSON.stringify({
|
|
||||||
ViewStatisticsFromTheSite: {
|
|
||||||
IP: ipAddress,
|
|
||||||
ViewTime: "",
|
|
||||||
ViewDate: "",
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
await panelAxios.post("api/save", raw, {
|
|
||||||
headers: {
|
|
||||||
Authorization: `Bearer ${userToken}`,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
// const getIP = async () => {
|
|
||||||
// try {
|
|
||||||
// const res = await fetch("https://api64.ipify.org?format=json");
|
|
||||||
// const data = await res.json();
|
|
||||||
// return data.ip;
|
|
||||||
// } catch (e) {
|
|
||||||
// console.log(e);
|
|
||||||
// }
|
|
||||||
// };
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setCustomerSlider(JSON.parse(data.customer));
|
setCustomerSlider(JSON.parse(data.customer));
|
||||||
setCompanyServices(JSON.parse(data.service));
|
setCompanyServices(JSON.parse(data.service));
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
// useEffect(async () => {
|
|
||||||
// let tokenFromEnv = process.env.TOKEN;
|
|
||||||
// if (tokenFromEnv != "" && tokenFromEnv != undefined) {
|
|
||||||
// console.log("have token");
|
|
||||||
// const ipAddress = await getIP();
|
|
||||||
// await submitView(tokenFromEnv, ipAddress);
|
|
||||||
// } else {
|
|
||||||
// console.log("Do Not Have Token");
|
|
||||||
// const userToken = await getUser();
|
|
||||||
// // process.env.TOKEN = userToken;
|
|
||||||
// setAuthToken(userToken);
|
|
||||||
// const ipAddress = await getIP();
|
|
||||||
// await submitView(userToken, ipAddress);
|
|
||||||
// }
|
|
||||||
// }, []);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
|
|
@ -172,30 +77,71 @@ const MainClient = ({ data }) => {
|
||||||
<div className="container">
|
<div className="container">
|
||||||
<div className={style.headContent}>
|
<div className={style.headContent}>
|
||||||
<div className={style.content}>
|
<div className={style.content}>
|
||||||
<div className={style.desc}>
|
{/* <div className={style.desc}>
|
||||||
<div className={`${style.title} right`}>
|
<div className={`${style.title} right`}>
|
||||||
<h1 className="txtPrimary">معرفی</h1>
|
<h1 className="txtPrimary">معرفی</h1>
|
||||||
<h1 className="txtSecondPrimary">{data?.company_name}</h1>
|
<h1 className="txtSecondPrimary">{data?.company_name}</h1>
|
||||||
</div>
|
</div>
|
||||||
<p>
|
<p>
|
||||||
{data?.company_introduction}
|
{data?.company_introduction}
|
||||||
{/* با گسترش فناوری اطلاعات در سراسر دنیا و پیشرفت های شگرف در
|
|
||||||
ساخت تجهیزات الکترونیکی، مفهوم جدیدی در دنیای اقتصاد مطرح شد
|
|
||||||
که اکنون ارزشمندترین عنصر کمپانی های کوچک و بزرگ در تمام دنیا
|
|
||||||
به حساب می آید و آن چیزی نیست جز مفهوم "داده". با وجود کلان
|
|
||||||
داده هایی که در اختیار کمپانی های مختلف قرار دارد، علم "داده
|
|
||||||
کاوی" و مزیت های فوق العاده ارزشمند این علم که به صورت پیدا و
|
|
||||||
پنهان برای کمپانی ها به ارمغان می آورد، از درجه اهمیت روزافزون
|
|
||||||
برخوردار می شود. این مهم، جمعی از متخصصین علم کامپیوتر در مشهد
|
|
||||||
را بر آن داشت تا با کوله باری بیش از ده ساله در زمینه های
|
|
||||||
مختلف کامپیوتری اقدام به راه اندازی شرکت "داده کاوی سپهر توس"
|
|
||||||
نمایند. متخصصینی تحصیل کرده در رشته های نرم افزار، فناوری
|
|
||||||
اطلاعات، هوش مصنوعی و ... در دانشگاه های خواجه نصیرالدین طوسی،
|
|
||||||
فردوسی، آزاد و ...، با توانمندی در زمینه های برنامه نویسی های
|
|
||||||
پیشرفته و متخصص در علوم داده و ...، در این شرکت گرد هم آمده
|
|
||||||
اند. */}
|
|
||||||
</p>
|
</p>
|
||||||
|
</div> */}
|
||||||
|
|
||||||
|
|
||||||
|
<div className={style.introduceSlider}>
|
||||||
|
<Slider
|
||||||
|
dots={true}
|
||||||
|
infinite={true}
|
||||||
|
autoplay={true}
|
||||||
|
autoplaySpeed={4000}
|
||||||
|
speed={1000}
|
||||||
|
slidesToShow={1}
|
||||||
|
slidesToScroll={1}
|
||||||
|
arrows={false}
|
||||||
|
>
|
||||||
|
{(() => {
|
||||||
|
let slides = [];
|
||||||
|
|
||||||
|
try {
|
||||||
|
slides = data?.slider ? JSON.parse(data.slider) : [];
|
||||||
|
} catch {
|
||||||
|
slides = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Array.isArray(slides) || slides.length === 0) return null;
|
||||||
|
|
||||||
|
return slides.map((el, index) => (
|
||||||
|
<div key={`intro-slide-${index}`} className={style.slideItem}>
|
||||||
|
<div className={style.slideContent}>
|
||||||
|
<div className={style.slideImage}>
|
||||||
|
<Image
|
||||||
|
src={`http://bpms-back.sepehrdata.com/api/getimage?stageID=${el.ValueP1160S1746StageID}&nameOrID=image&token=`}
|
||||||
|
width={600}
|
||||||
|
height={600}
|
||||||
|
style={{ width: "100%", height: "auto", borderRadius: "20px" }}
|
||||||
|
alt={el.title ?? ""}
|
||||||
|
priority={true}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
<div className={style.slideText}>
|
||||||
|
<h1 className="txtPrimary">{el.title}</h1>
|
||||||
|
<p className="content">{el.description}</p>
|
||||||
|
{el.link && (
|
||||||
|
<Link href={el.link} target="_blank" className={style.slideLink}></Link>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
));
|
||||||
|
})()}
|
||||||
|
|
||||||
|
</Slider>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div className={style.image}>
|
<div className={style.image}>
|
||||||
<Image src={interduceImg} alt="interduce" priority={true} />
|
<Image src={interduceImg} alt="interduce" priority={true} />
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -217,12 +163,15 @@ const MainClient = ({ data }) => {
|
||||||
<div className="head">
|
<div className="head">
|
||||||
<div className="cardLogo">
|
<div className="cardLogo">
|
||||||
<Image
|
<Image
|
||||||
src={dataMining}
|
src={`http://bpms-back.sepehrdata.com/api/getimage?stageID=${el.ValueP1161S1750StageID}&nameOrID=patent_first_page_image&token=`}
|
||||||
alt="DataMining"
|
width={500} // یک مقدار عددی
|
||||||
|
height={300} // یک مقدار عددی
|
||||||
|
style={{ width: '100%', height: 'auto' }} // ریسپانسیو
|
||||||
|
alt={el.title}
|
||||||
priority={true}
|
priority={true}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<h1>{data?.title}</h1>
|
<h1>{el?.title}</h1>
|
||||||
</div>
|
</div>
|
||||||
<div className="content">
|
<div className="content">
|
||||||
<p className="minimize">{el?.description}</p>
|
<p className="minimize">{el?.description}</p>
|
||||||
|
|
@ -231,97 +180,34 @@ const MainClient = ({ data }) => {
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
|
|
||||||
{/* <div className="card">
|
|
||||||
<div className="head">
|
|
||||||
<div className="cardLogo">
|
|
||||||
<Image src={bmpImage} alt="DataMining" priority={true} />
|
|
||||||
</div>
|
|
||||||
<h1>BPMS</h1>
|
|
||||||
</div>
|
|
||||||
<div className="content">
|
|
||||||
<p className="minimize ">
|
|
||||||
مدیریت فرایند کسب و کار (BPM) بر استقرار فرایندی خودکار و
|
|
||||||
یکپارچه برای معاملات معمول و تعاملات انسانی متمرکز است. این
|
|
||||||
حوزه از مدیریت از طریق کاهش دوبارهکاری و اتلاف، به کاهش
|
|
||||||
هزینه در سازمان و کارایی تیمها کمک میکند.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className="card">
|
|
||||||
<div className="head">
|
|
||||||
<div className="cardLogo">
|
|
||||||
<Image src={alImage} alt="DataMining" priority={true} />
|
|
||||||
</div>
|
|
||||||
<h1>Artificial Intelligence</h1>
|
|
||||||
</div>
|
|
||||||
<div className="content">
|
|
||||||
<p className="minimize">
|
|
||||||
هوش مصنوعی شامل شاخه های متنوعی است که مباحث داده کاوی،
|
|
||||||
پردازش متن، پردازش تصویر و در کل هوشمند سازی سامانه های
|
|
||||||
مختلف با استفاده از پیشرفته ترین الگوریتم ها از توانمندی های
|
|
||||||
متخصصین سپهر می باشد.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div> */}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className={style.mainContent}>
|
<div className={style.mainContent}>
|
||||||
<div className={style.hyperAutomation}>
|
<div className={style.hyperAutomation}>
|
||||||
<div className={style.aboutHyper}>
|
<div className={style.aboutHyper}>
|
||||||
<div className={`${style.title} right`}>
|
<div className={`${style.title} right`}>
|
||||||
<h1 className="icon triAngleIcon txtPrimary">هایپر</h1>
|
<h1 className="icon triAngleIcon txtPrimary">{data?.title_product_introduction1}</h1>
|
||||||
<h1 className="txtSecondPrimary">اتوماسیون</h1>
|
<h1 className="txtSecondPrimary">{data?.title_product_introduction2}</h1>
|
||||||
</div>
|
</div>
|
||||||
<div className={style.hyperDesc}>
|
<div className={style.hyperDesc}>
|
||||||
<p className="minimize seventh">
|
<p className="minimize seventh">
|
||||||
{data?.product_introduction}
|
{data?.product_introduction}
|
||||||
{/* هایپر اتوماسیون ابزاری است که از فناوری های هوشمند برای
|
|
||||||
خودکارسازی فعالیت هایی که توسط انسان انجام می شوند، استفاده
|
|
||||||
می کند. فناوری های مورد استفاده در هایپر اتوماسیون شامل هوش
|
|
||||||
مصنوعی (Artificial intelligence)، یادگیری ماشین (Machine
|
|
||||||
Learning)، سیستم مدیریت فرآیندهای تجاری (Business Process
|
|
||||||
Management System) و اتوماسیون فرآیند رباتیک (Robotic
|
|
||||||
Process Automation) می باشند. هایپر اتوماسیون بر وظایف و
|
|
||||||
فرآیندهای قابل خودکارسازی تمرکز دارد و اغلب از آن به عنوان
|
|
||||||
مرحله اصلی بعدی تحول دیجیتال یاد میشود. */}
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className={style.descRobot}>
|
<div className={style.descRobot}>
|
||||||
<div className={style.interduce}>
|
<div className={style.imageSection}>
|
||||||
<div className={`${style.BPMS} ${style.circleRight}`}>
|
<img
|
||||||
<h2>BPMS</h2>
|
src={`http://bpms-back.sepehrdata.com/api/getimage?stageID=${data?.ValueP1166S1770StageID}&nameOrID=product_introduction_image&token=`}
|
||||||
<p className="minimize forth">
|
alt={data?.title_product_introduction1 +' ' +data?.title_product_introduction2}
|
||||||
Business Process Management System
|
className={style.robotImage}
|
||||||
</p>
|
/>
|
||||||
</div>
|
|
||||||
<div className={style.AL}>
|
|
||||||
<h2>AL</h2>
|
|
||||||
<p className="minimize forth">Artificial Intelligence</p>
|
|
||||||
</div>
|
|
||||||
<div className={`${style.Others} ${style.circleRight}`}>
|
|
||||||
<h2>Others</h2>
|
|
||||||
<p className="minimize forth">
|
|
||||||
Other AdvancedAutomation Tools And Analytics
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div className={style.ML}>
|
|
||||||
<h2>ML</h2>
|
|
||||||
<p className="minimize forth">Machine Learning</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className={style.robotic}>
|
|
||||||
<div className={`${style.field} ${style.first}`}></div>
|
|
||||||
<div className={`${style.field} ${style.seconde}`}></div>
|
|
||||||
<div className={style.interduce}>
|
|
||||||
<span>Robotic Process Automation</span>
|
|
||||||
</div>
|
|
||||||
<div className={`${style.field} ${style.third}`}></div>
|
|
||||||
<div className={`${style.field} ${style.fourth}`}></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div className="customer">
|
<div className="customer">
|
||||||
<div className={style.title}>
|
<div className={style.title}>
|
||||||
<h1 className="icon triAngleIcon txtPrimary">مشتریان</h1>
|
<h1 className="icon triAngleIcon txtPrimary">مشتریان</h1>
|
||||||
|
|
@ -330,44 +216,28 @@ const MainClient = ({ data }) => {
|
||||||
<Slider {...settings}>
|
<Slider {...settings}>
|
||||||
{customerSlider?.map((el) => {
|
{customerSlider?.map((el) => {
|
||||||
return (
|
return (
|
||||||
|
<div key={`customer-${el.WorkflowID}-${el.ValueP1162S1754StageID}`} className={style.customerItem}>
|
||||||
<Link
|
<Link
|
||||||
key={`customer-${el.WorkflowID}-${el.ValueP1162S1754StageID}`}
|
|
||||||
className={style.customerBrand}
|
className={style.customerBrand}
|
||||||
href={el.website}
|
href={el.website}
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
<Image src={firstCustomer} alt="brand" priority={true} />
|
<Image
|
||||||
|
src={`http://bpms-back.sepehrdata.com/api/getimage?stageID=${el.ValueP1162S1754StageID}&nameOrID=image&token=`}
|
||||||
|
width={500}
|
||||||
|
height={300}
|
||||||
|
style={{ width: '100%', height: 'auto' }}
|
||||||
|
alt="brand"
|
||||||
|
priority={true}
|
||||||
|
/>
|
||||||
</Link>
|
</Link>
|
||||||
|
{/* عنوان */}
|
||||||
|
<div className="customerTitle">
|
||||||
|
<p>{el?.title}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
{/* <Link
|
|
||||||
className={style.customerBrand}
|
|
||||||
href="https://smdpcb.ir/"
|
|
||||||
target="_blank"
|
|
||||||
>
|
|
||||||
<Image src={firstCustomer} alt="brand" priority={true} />
|
|
||||||
</Link>
|
|
||||||
<Link
|
|
||||||
className={style.customerBrand}
|
|
||||||
href="http://mojntco.ir/"
|
|
||||||
target="_blank"
|
|
||||||
>
|
|
||||||
<Image src={Customer2} alt="brand" priority={true} />
|
|
||||||
</Link>
|
|
||||||
<Link
|
|
||||||
className={style.customerBrand}
|
|
||||||
href="http://hyper.deniklaser.ir/"
|
|
||||||
target="_blank"
|
|
||||||
>
|
|
||||||
<Image src={denik} alt="brand" priority={true} />
|
|
||||||
</Link>
|
|
||||||
<Link
|
|
||||||
className={style.customerBrand}
|
|
||||||
href="http://betonbs.com/"
|
|
||||||
target="_blank"
|
|
||||||
>
|
|
||||||
<Image src={boton} alt="brand" priority={true} />
|
|
||||||
</Link> */}
|
|
||||||
</Slider>
|
</Slider>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -380,14 +250,11 @@ const MainClient = ({ data }) => {
|
||||||
</div>
|
</div>
|
||||||
<div className={style.sepehrDesc}>
|
<div className={style.sepehrDesc}>
|
||||||
<p>
|
<p>
|
||||||
هم اکنون شرکت داده کاوی سپهر توس بعد از پذیرش در{" "}
|
{data?.company_introduction}
|
||||||
<span className="special">پارک علم و فناوری خراسان</span> حول
|
|
||||||
محصولات <span className="special">مبتنی بر هوش مصنوعی</span>{" "}
|
|
||||||
مشغول به فعالیت می باشد.
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<Footer token={authtoken} data={data} />
|
<Footer data={data} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,22 @@
|
||||||
// pages/index.js
|
// pages/index.js
|
||||||
import { fetchPageContent } from "../app/composables";
|
import { fetchPageContent } from "../app/composables";
|
||||||
|
import { submitView } from "../app/composables";
|
||||||
|
|
||||||
import MainClient from "./components/mainClient";
|
import MainClient from "./components/mainClient";
|
||||||
|
|
||||||
export async function getServerSideProps() {
|
export async function getServerSideProps({ req }) {
|
||||||
const data = await fetchPageContent();
|
const ip =
|
||||||
|
req.headers["x-forwarded-for"]?.split(",")[0] ||
|
||||||
|
req.socket.remoteAddress ||
|
||||||
|
"";
|
||||||
|
|
||||||
|
const data = await fetchPageContent(ip);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export default function Home({ data }) {
|
export default function Home({ data }) {
|
||||||
return <MainClient data={data} />;
|
return <MainClient data={data} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,190 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.introduceSlider {
|
||||||
|
width: 100%;
|
||||||
|
height: 600px;
|
||||||
|
margin-top: 40px;
|
||||||
|
direction: rtl;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slideItem {
|
||||||
|
display: flex !important;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
height: 440px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slideContent {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
gap: 40px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slideImage {
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slideText {
|
||||||
|
flex: 1;
|
||||||
|
text-align: right;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slideText h1 {
|
||||||
|
font-size: 2rem;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slideText p {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
line-height: 1.8rem;
|
||||||
|
/* color: #333; */
|
||||||
|
color: var(--secondTextColor);
|
||||||
|
text-align: justify;
|
||||||
|
direction: rtl;
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slideLink {
|
||||||
|
margin-top: 15px;
|
||||||
|
display: inline-block;
|
||||||
|
color: #0070f3;
|
||||||
|
text-decoration: underline;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* --- نقطههای پایین اسلایدر --- */
|
||||||
|
.customDots {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 10px; /* نزدیکتر به داخل کادر */
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
|
||||||
|
display: flex !important;
|
||||||
|
justify-content: center;
|
||||||
|
pointer-events: none; /* روی نقاط کلیک هنوز کار میکنه */
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.customDots ul {
|
||||||
|
display: flex !important;
|
||||||
|
gap: 8px;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dot {
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
background-color: rgba(255, 255, 255, 0.6);
|
||||||
|
border-radius: 50%;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
pointer-events: auto; /* برای کلیک روی نقاط */
|
||||||
|
}
|
||||||
|
|
||||||
|
.customDots li.slick-active .dot {
|
||||||
|
background-color: #0070f3;
|
||||||
|
transform: scale(1.2);
|
||||||
|
box-shadow: 0 0 4px rgba(0, 112, 243, 0.8);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* --- واکنشگرا --- */
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.slideContent {
|
||||||
|
flex-direction: column;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slideImage,
|
||||||
|
.slideText {
|
||||||
|
flex: none;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.introduceSlider {
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slideItem {
|
||||||
|
height: auto;
|
||||||
|
padding: 20px 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.hyperAutomation {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
background: inherit; /* رنگ زمینه همونی که هست */
|
||||||
|
height: 100%; /* ارتفاع همون اندازه قبلی بمونه */
|
||||||
|
padding: 2rem 0;
|
||||||
|
font-family: inherit; /* فونت جاری سامانه حفظ شود */
|
||||||
|
}
|
||||||
|
|
||||||
|
.contentWrapper {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row; /* عکس چپ، متن راست */
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 90%;
|
||||||
|
max-width: 1200px;
|
||||||
|
height: 100%; /* برای حفظ ارتفاع */
|
||||||
|
}
|
||||||
|
|
||||||
|
.imageSection {
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.robotImage {
|
||||||
|
max-width: 100%;
|
||||||
|
height: auto;
|
||||||
|
object-fit: contain;
|
||||||
|
}
|
||||||
|
|
||||||
|
.textSection {
|
||||||
|
flex: 1;
|
||||||
|
padding-right: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
display: flex;
|
||||||
|
align-items: baseline;
|
||||||
|
gap: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.parent::before {
|
.parent::before {
|
||||||
content: "";
|
content: "";
|
||||||
display: flow-root;
|
display: flow-root;
|
||||||
|
|
@ -93,6 +277,7 @@
|
||||||
margin-top: 60px;
|
margin-top: 60px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* services */
|
/* services */
|
||||||
.services {
|
.services {
|
||||||
margin: 50px 0;
|
margin: 50px 0;
|
||||||
|
|
|
||||||
|
|
@ -551,3 +551,37 @@ button {
|
||||||
width: 280px;
|
width: 280px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.customerItem {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
text-align: center;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.customerBrand {
|
||||||
|
display: block;
|
||||||
|
text-align: center;
|
||||||
|
text-decoration: none;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.titleContainer {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
margin-top: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.customerTitle {
|
||||||
|
font-size: 18px;
|
||||||
|
color:var(--textColor);
|
||||||
|
text-align: center;
|
||||||
|
line-height: 1.4;
|
||||||
|
font-weight: normal;
|
||||||
|
margin-top: 10px;
|
||||||
|
padding: 0 10px;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user