Skip to content

同步上游分支#2

Open
xiaolinbenben wants to merge 2 commits intobeisi-tech:masterfrom
geeeeeeeek:master
Open

同步上游分支#2
xiaolinbenben wants to merge 2 commits intobeisi-tech:masterfrom
geeeeeeeek:master

Conversation

@xiaolinbenben
Copy link
Copy Markdown
Member

No description provided.

Copilot AI review requested due to automatic review settings April 14, 2026 12:40
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ee7e5ed748

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@@ -1,25 +0,0 @@
import {GoogleAnalytics} from "@next/third-parties/google";
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Restore legacy template files or block unsupported template IDs

This commit removes entire template directories (e.g. web/src/templates/001), but runtime template selection is still dynamic (process.env.NEXT_PUBLIC_TEMPLATE_ID in web/src/app/(index)/layout.js and other route pages) and compatibility logic still references non-010 IDs. In any environment still configured to 001/002/003/004 (or other non-010 values), the app now fails with module-not-found when importing @/templates/${templateId}/*. Keep those template modules or strictly validate/force supported IDs before dynamic imports.

Useful? React with 👍 / 👎.

Comment thread web/.gitignore
Comment on lines 31 to 33
yarn-error.log*
.pnpm-debug.log*

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep .env* ignored in Git

Removing the .env* ignore rule makes environment files trackable, which substantially increases the chance of committing deployment credentials or other sensitive config in future changes. Since this repo now relies on .env-driven runtime configuration, keeping these files unignored is a security footgun; prefer restoring .env* ignore and committing a sanitized .env.example instead.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

本次 PR 主要将前端站点模板统一切换/对齐到 template10 版本(包含 BannerB、NavBar/Footer、Home 各 section 等),同时在管理后台新增了 FAQ/下载/案例等入口与基础信息配置项,并同步引入了若干部署/本地配置文件。

Changes:

  • 前端:templates/010 多页面切换为 BannerB + template10 的导航/页脚/产品列表/Home 版式,并新增若干 detail 模板文件。
  • 后台:新增“案例/下载/FAQ”管理页面入口,并在“基础信息”中加入全局变量、优势、客评等配置 UI。
  • 服务端:新增 FAQ/下载/案例/TDK 的部分管理端接口文件(同时 PR 中混入了日志/缓存/IDE 文件与 .env 跟踪)。

Reviewed changes

Copilot reviewed 124 out of 142 changed files in this pull request and generated 28 comments.

Show a summary per file
File Description
web/src/templates/010/productTemplate.jsx 产品列表页切换到 template10 ProductList + BannerB
web/src/templates/010/productDetailTemplate.jsx 新增 product detail 模板封装
web/src/templates/010/newsTemplate.jsx 新闻列表页切换到 BannerB
web/src/templates/010/newsDetailTemplate.jsx 新增 news detail 模板封装
web/src/templates/010/indexLayoutTemplate.jsx 布局层切换到 template10 NavBar/Footer
web/src/templates/010/homeTemplate.jsx 新增 template10 首页模板
web/src/templates/010/faqTemplate.jsx FAQ 页切换到 BannerB
web/src/templates/010/downloadTemplate.jsx 下载页切换到 BannerB
web/src/templates/010/contactTemplate.jsx 联系页切换到 BannerB + template10 GetInTouch
web/src/templates/010/caseTemplate.jsx 案例列表页切换到 BannerB
web/src/templates/010/caseDetailTemplate.jsx 新增 case detail 模板封装
web/src/templates/010/aboutTemplate.jsx About 页切换到 template10 WhoWeAre/Certification + BannerB
web/src/templates/004/productTemplate.jsx 删除旧模板文件
web/src/templates/004/productDetailTemplate.jsx 删除旧模板文件
web/src/templates/004/newsTemplate.jsx 删除旧模板文件
web/src/templates/004/newsDetailTemplate.jsx 删除旧模板文件
web/src/templates/004/homeTemplate.jsx 删除旧模板文件
web/src/templates/004/faqTemplate.jsx 删除旧模板文件
web/src/templates/004/downloadTemplate.jsx 删除旧模板文件
web/src/templates/004/contactTemplate.jsx 删除旧模板文件
web/src/templates/004/caseTemplate.jsx 删除旧模板文件
web/src/templates/004/caseDetailTemplate.jsx 删除旧模板文件
web/src/templates/004/aboutTemplate.jsx 删除旧模板文件
web/src/templates/003/productDetailTemplate.jsx 删除旧模板文件
web/src/templates/003/newsDetailTemplate.jsx 删除旧模板文件
web/src/templates/003/indexLayoutTemplate.jsx 删除旧模板文件
web/src/templates/003/homeTemplate.jsx 删除旧模板文件
web/src/templates/003/downloadTemplate.jsx 删除旧模板文件
web/src/templates/003/caseTemplate.jsx 删除旧模板文件
web/src/templates/003/caseDetailTemplate.jsx 删除旧模板文件
web/src/templates/003/aboutTemplate.jsx 删除旧模板文件
web/src/templates/002/productTemplate.jsx 删除旧模板文件
web/src/templates/002/productDetailTemplate.jsx 删除旧模板文件
web/src/templates/002/newsTemplate.jsx 删除旧模板文件
web/src/templates/002/newsDetailTemplate.jsx 删除旧模板文件
web/src/templates/002/indexLayoutTemplate.jsx 删除旧模板文件
web/src/templates/002/homeTemplate.jsx 删除旧模板文件
web/src/templates/002/faqTemplate.jsx 删除旧模板文件
web/src/templates/002/contactTemplate.jsx 删除旧模板文件
web/src/templates/002/caseTemplate.jsx 删除旧模板文件
web/src/templates/002/caseDetailTemplate.jsx 删除旧模板文件
web/src/templates/002/aboutTemplate.jsx 删除旧模板文件
web/src/templates/001/productTemplate.jsx 删除旧模板文件
web/src/templates/001/newsTemplate.jsx 删除旧模板文件
web/src/templates/001/indexLayoutTemplate.jsx 删除旧模板文件
web/src/templates/001/homeTemplate.jsx 删除旧模板文件
web/src/templates/001/faqTemplate.jsx 删除旧模板文件
web/src/templates/001/downloadTemplate.jsx 删除旧模板文件
web/src/templates/001/contactTemplate.jsx 删除旧模板文件
web/src/components/index/sections/template10/whoWeAre.jsx 调整 template10 WhoWeAre 版式/样式
web/src/components/index/sections/template10/productList.jsx ProductList 清理模拟数据并调整卡片结构与样式
web/src/components/index/sections/template10/ourCategories.jsx 分类卡片样式与文案键调整
web/src/components/index/sections/template10/navBarClient.jsx 桌面/移动端导航样式与交互调整
web/src/components/index/sections/template10/navBar.jsx NavBar 使用 template10 NavBarClient 并调整布局
web/src/components/index/sections/template10/getInTouch.jsx 联系信息字体样式调整
web/src/components/index/sections/template10/ftArea.jsx 新增 template10 FtArea
web/src/components/index/sections/template10/footer.jsx Footer 样式与版权区文案调整
web/src/components/index/sections/template10/featuredProducts.jsx FeaturedProducts 样式/标题键调整
web/src/components/index/sections/template10/customersSay.jsx 新增 template10 CustomersSay
web/src/components/index/sections/template10/companyNews.jsx 公司新闻标题键调整
web/src/components/index/sections/template10/categoryItem.jsx CategoryItem 移除未用图标并调整样式
web/src/components/index/sections/template10/carousel.jsx Carousel 增强 Swiper 配置并增加点击跳转逻辑
web/src/components/index/sections/template10/aboutUs.jsx AboutUs 版式与标题区样式调整
web/src/components/index/sections/template04/testimonials.jsx 删除旧模板文件
web/src/components/index/sections/template04/recommendedForYou.jsx 删除旧模板文件
web/src/components/index/sections/template04/ourMission.jsx 删除旧模板文件
web/src/components/index/sections/template04/ourFactory.jsx 删除旧模板文件
web/src/components/index/sections/template04/ourCategories.jsx 删除旧模板文件
web/src/components/index/sections/template04/ftArea.jsx 删除旧模板文件
web/src/components/index/sections/template04/footer.jsx 删除旧模板文件
web/src/components/index/sections/template04/featuredProducts.jsx 删除旧模板文件
web/src/components/index/sections/template04/customersSay.jsx 删除旧模板文件
web/src/components/index/sections/template04/contactUs.jsx 删除旧模板文件
web/src/components/index/sections/template04/companyNews.jsx 删除旧模板文件
web/src/components/index/sections/template04/certification.jsx 删除旧模板文件
web/src/components/index/sections/template04/caseList.jsx 删除旧模板文件
web/src/components/index/sections/template04/caseDetail.jsx 删除旧模板文件
web/src/components/index/sections/template04/advantages.jsx 删除旧模板文件
web/src/components/index/sections/template04/aboutUs.jsx 删除旧模板文件
web/src/components/index/sections/template03/productList.jsx 删除旧模板文件
web/src/components/index/sections/template03/navBar.jsx 删除旧模板文件
web/src/components/index/sections/template03/ftArea.jsx 删除旧模板文件
web/src/components/index/sections/template03/carousel.jsx 删除旧模板文件
web/src/components/index/sections/template02/productList.jsx 删除旧模板文件
web/src/components/index/sections/template02/ourCategories.jsx 删除旧模板文件
web/src/components/index/sections/template02/navBar.jsx 删除旧模板文件
web/src/components/index/sections/template02/featuredProducts.jsx 删除旧模板文件
web/src/components/index/sections/template02/certification.jsx 删除旧模板文件
web/src/components/index/sections/template02/carousel.jsx 删除旧模板文件
web/src/components/index/sections/template01/ourCategories.jsx 删除旧模板文件
web/src/components/index/sections/template01/featuredProducts.jsx 删除旧模板文件
web/src/components/index/sections/template01/certification.jsx 删除旧模板文件
web/src/components/index/sections/template01/carousel.jsx 删除旧模板文件
web/src/components/admin/sidebar.jsx 后台侧边栏新增案例/下载/FAQ 菜单项
web/src/components/admin/basicInfo/globalSettings.jsx 新增“全局变量”配置 UI
web/src/components/admin/basicInfo/commentSettings.jsx 新增“客评变量”列表管理 UI
web/src/components/admin/basicInfo/commentModal.jsx 新增“客评”编辑/新增弹窗
web/src/components/admin/basicInfo/advantageSettings.jsx 新增“优势变量”列表管理 UI
web/src/components/admin/basicInfo/advantageModal.jsx 新增“优势”编辑/新增弹窗
web/src/app/(admin)/admin/faq/page.jsx 新增 FAQ 管理页面入口
web/src/app/(admin)/admin/download/page.jsx 新增 下载 管理页面入口
web/src/app/(admin)/admin/case/page.jsx 新增 案例 管理页面入口
web/src/app/(admin)/admin/basicInfo/page.jsx 基础信息页增加多个 Tab
web/my.conf 新增 Nginx 配置文件
web/.gitignore 修改忽略规则(移除 .env* 忽略)
web/.env 新增并提交前端环境变量文件
server/server/settings.py DB 配置占位符调整
server/server/pycache/settings.cpython-38.pyc 编译产物被提交
server/myapp/views/admin/faq.py 新增 FAQ 管理端接口
server/myapp/views/admin/download.py 新增 下载 管理端接口
server/myapp/views/admin/case.py 新增 案例 管理端接口
server/myapp/views/admin/basicTdk.py 新增 TDK 管理端接口
server/myapp/views/admin/pycache/faq.cpython-38.pyc 编译产物被提交
server/myapp/views/admin/pycache/download.cpython-38.pyc 编译产物被提交
server/myapp/views/admin/pycache/case.cpython-38.pyc 编译产物被提交
server/myapp/views/admin/pycache/basicTdk.cpython-38.pyc 编译产物被提交
server/info.log 运行日志被提交
README.md 文案与部署步骤更新
.idea/web_b2b.iml IDE 工程文件被提交
.idea/vcs.xml IDE 工程文件被提交
.idea/modules.xml IDE 工程文件被提交
.idea/misc.xml IDE 工程文件被提交
.idea/inspectionProfiles/Project_Default.xml IDE 工程文件被提交
.idea/aws.xml IDE 工程文件被提交
.idea/.gitignore IDE 工程文件被提交
Files not reviewed (7)
  • .idea/.gitignore: Language not supported
  • .idea/aws.xml: Language not supported
  • .idea/inspectionProfiles/Project_Default.xml: Language not supported
  • .idea/misc.xml: Language not supported
  • .idea/modules.xml: Language not supported
  • .idea/vcs.xml: Language not supported
  • .idea/web_b2b.iml: Language not supported
Comments suppressed due to low confidence (2)

web/src/templates/010/contactTemplate.jsx:5

  • Banner is still imported but no longer used after switching to BannerB. Please remove the unused Banner import to avoid lint/build warnings.
    web/src/components/index/sections/template10/carousel.jsx:13
  • lang is imported but no longer used after removing the CTA/link text from the carousel. Please remove the unused import to avoid lint warnings.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +1 to +13
'use client';
import FormLabel from "@/components/admin/formLabel";
import React, {useCallback, useEffect, useState} from "react";
import {Button, Input, message, Pagination, Popconfirm, Radio, Space, Spin, Table} from 'antd';
import axiosInstance from "@/utils/axios";
import {useDispatch, useSelector} from "react-redux";
import CommentModal from "@/components/admin/basicInfo/commentModal";

const CommentSettings = () => {

const adminApp = useSelector((state) => state.adminSetting);
const dispatch = useDispatch();
const [loading, setLoading] = useState(false);
Copy link

Copilot AI Apr 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are multiple unused imports/variables here (FormLabel, useCallback, Input, Radio, useDispatch, useSelector, and the adminApp/dispatch variables). Please remove them to keep the file lint-clean and easier to maintain.

Copilot uses AI. Check for mistakes.
Comment on lines +4 to +62
import React, {useEffect, useState} from "react";
import {Button, Input, message, Radio, Spin} from 'antd';
import ImageUpload from "@/components/admin/imageUpload";
import {Divider} from "antd/lib";
import axiosInstance from "@/utils/axios";

const GlobalSettings = () => {

const [currentItem, setCurrentItem] = useState({});
const [loading, setLoading] = useState(false);

// 为了制造Upload而用
const [imageList, setImageList] = useState([]);


const fetchData = async () => {
try {
setLoading(true)
const {code, msg, data} = await axiosInstance.get('/myapp/admin/basicGlobal/list');
if (code === 0) {
setCurrentItem(data);
fixToImageData(data);
} else {
message.error(msg || '网络异常')
}
setLoading(false)
} catch (err) {
console.log(err)
message.error('网络异常')
setLoading(false)
}
};

const fixToImageData = (initialData) => {
// 制造适合Upload的数据格式
if (initialData?.global_wechat_qrcode?.length > 0) {
setImageList(initialData?.global_wechat_qrcode?.split("#").map((item) => ({
success: true,
name: item,
status: 'done',
url: process.env.NEXT_PUBLIC_BASE_URL + '/upload/img/' + item,
})));
} else {
setImageList([]);
}
}

useEffect(() => {
fetchData();
}, []);


const handleInputChange = (name, value) => {
setCurrentItem((prev) => ({...prev, [name]: value}));
}

const handleSave = async () => {
console.log(currentItem);
try {
Copy link

Copilot AI Apr 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are unused imports here (e.g. Radio) and a debug console.log(currentItem) in handleSave. Please remove unused imports and avoid logging potentially sensitive config to the console in production.

Copilot uses AI. Check for mistakes.
Comment on lines +5 to +25
// 客户评价数据
const testimonials = [
{
id: 1,
content: "Fast shipping and excellent customer service. The product was even better than expected. I will definitely be a returning customer.",
name: "JENNIFER LEWIS",
avatar: "https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=150&h=150&q=80",
},
{
id: 2,
content: "Great user experience on your website. Great user experience on your website.I found exactly what I was looking for at a great price. I will definitely be telling my friends.",
name: "ALICIA HEART",
avatar: "https://images.unsplash.com/photo-1438761681033-6461ffad8d80?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=150&h=150&q=80",
},
{
id: 3,
content: "Thank you for the excellent shopping experience. It arrived quickly and was exactly as described. I will definitely be shopping with you again in the future.",
name: "JUAN CARLOS",
avatar: "https://images.unsplash.com/photo-1506794778202-cad84cf45f1d?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=150&h=150&q=80",
}
];
Copy link

Copilot AI Apr 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

testimonials is declared but never used (rendering uses commentData instead). Please remove the unused constant to avoid confusion and keep the component lint-clean.

Copilot uses AI. Check for mistakes.
Comment thread web/.gitignore
Comment on lines +34 to 35


Copy link

Copilot AI Apr 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removing the .env* ignore rule means environment-specific configuration (and potentially secrets in the future) will be committed. Please restore ignoring .env* and commit an example file instead (e.g. .env.example).

Suggested change
# env files
.env*
!.env.example

Copilot uses AI. Check for mistakes.
Comment on lines +75 to +77
console.log('current-----------', currentItem)


Copy link

Copilot AI Apr 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This component currently logs currentItem to the console on every render. Please remove console.log('current-----------', currentItem) to avoid noisy logs and accidental data exposure.

Suggested change
console.log('current-----------', currentItem)

Copilot uses AI. Check for mistakes.
from myapp.auth.authentication import AdminTokenAuthtication
from myapp.handler import APIResponse
from myapp.models import BasicTdk
from myapp.permission.permission import isDemoAdminUser, check_if_demo
Copy link

Copilot AI Apr 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

isDemoAdminUser is imported but never used in this module. Please remove the unused import to keep the file clean.

Suggested change
from myapp.permission.permission import isDemoAdminUser, check_if_demo
from myapp.permission.permission import check_if_demo

Copilot uses AI. Check for mistakes.
Comment on lines +1 to +10
'use client';
import React, {useEffect, useState} from 'react';
import {Tabs} from "antd";
import FaqList from "@/components/admin/faq/faqList";

export default function Page() {
const onChange = (key) => {
console.log(key);
};
const items = [
Copy link

Copilot AI Apr 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

useEffect/useState are imported but not used, and onChange only logs to console. Please remove unused hooks and avoid leaving debug console.log in production UI code.

Copilot uses AI. Check for mistakes.
Comment on lines +2 to +12
import FormLabel from "@/components/admin/formLabel";
import React, {useCallback, useEffect, useState} from "react";
import {Button, Input, message, Pagination, Popconfirm, Radio, Space, Spin, Table} from 'antd';
import axiosInstance from "@/utils/axios";
import {useDispatch, useSelector} from "react-redux";
import AdvantageModal from "@/components/admin/basicInfo/advantageModal";

const AdvantageSettings = () => {

const adminApp = useSelector((state) => state.adminSetting);
const dispatch = useDispatch();
Copy link

Copilot AI Apr 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are multiple unused imports/variables here (FormLabel, useCallback, Input, Radio, useDispatch, useSelector, and the adminApp/dispatch variables). Please remove them to keep the file lint-clean and easier to maintain.

Suggested change
import FormLabel from "@/components/admin/formLabel";
import React, {useCallback, useEffect, useState} from "react";
import {Button, Input, message, Pagination, Popconfirm, Radio, Space, Spin, Table} from 'antd';
import axiosInstance from "@/utils/axios";
import {useDispatch, useSelector} from "react-redux";
import AdvantageModal from "@/components/admin/basicInfo/advantageModal";
const AdvantageSettings = () => {
const adminApp = useSelector((state) => state.adminSetting);
const dispatch = useDispatch();
import React, {useEffect, useState} from "react";
import {Button, message, Pagination, Popconfirm, Space, Spin, Table} from 'antd';
import axiosInstance from "@/utils/axios";
import AdvantageModal from "@/components/admin/basicInfo/advantageModal";
const AdvantageSettings = () => {

Copilot uses AI. Check for mistakes.
Comment on lines +74 to +76
console.log('current-----------', currentItem)


Copy link

Copilot AI Apr 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This component currently logs currentItem to the console on every render. Please remove console.log('current-----------', currentItem) to avoid noisy logs and accidental data exposure.

Suggested change
console.log('current-----------', currentItem)

Copilot uses AI. Check for mistakes.
Comment on lines +1 to +10
'use client';
import React, {useEffect, useState} from 'react';
import {Tabs} from "antd";
import DownloadList from "@/components/admin/download/downloadList";

export default function Page() {
const onChange = (key) => {
console.log(key);
};
const items = [
Copy link

Copilot AI Apr 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

useEffect/useState are imported but not used, and onChange only logs to console. Please remove unused hooks and avoid leaving debug console.log in production UI code.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants