feat: devops 改造

This commit is contained in:
liulujian 2026-05-03 15:01:18 +08:00
parent 0d5d50f130
commit 404f0d9710
52 changed files with 2016 additions and 136 deletions

4
.gitignore vendored
View File

@ -3,7 +3,11 @@
target target
classes classes
.m2
prd prd
devops/images
devops/nacos
devops/web
# Log file # Log file
*.log *.log

117
devops/Dockerfile Normal file
View File

@ -0,0 +1,117 @@
# ============================================================
# 碳信网 - 统一后端构建镜像
# 使用方式: docker run -e SERVICE_NAME=gateway txw-all:latest
# ============================================================
# Stage 1: Build
FROM maven:3.6.3-openjdk-8 AS builder
WORKDIR /build
# -------------------------------------------
# Step 1: 复制所有 pom.xml 和 settings
# -------------------------------------------
# 公共模块
COPY txw-common/pom.xml txw-common/pom.xml
COPY txw-common/src txw-common/src
# Gateway
COPY txw-gateway/pom.xml gateway/pom.xml
COPY txw-gateway/devops/settings-offline.xml gateway/settings.xml
COPY txw-gateway/src gateway/src
# SSO
COPY txw-sso/pom.xml sso/pom.xml
COPY txw-sso/devops/settings-offline.xml sso/settings.xml
COPY txw-sso/txw-sso-service-api/pom.xml sso/txw-sso-service-api/pom.xml
COPY txw-sso/txw-sso-service-api/src sso/txw-sso-service-api/src
COPY txw-sso/txw-sso-service-biz/pom.xml sso/txw-sso-service-biz/pom.xml
COPY txw-sso/txw-sso-service-biz/src sso/txw-sso-service-biz/src
# MHZC
COPY txw-mhzc/pom.xml mhzc/pom.xml
COPY txw-mhzc/devops/settings-offline.xml mhzc/settings.xml
COPY txw-mhzc/txw-mhzc-service-api/pom.xml mhzc/txw-mhzc-service-api/pom.xml
COPY txw-mhzc/txw-mhzc-service-api/src mhzc/txw-mhzc-service-api/src
COPY txw-mhzc/txw-mhzc-service-biz/pom.xml mhzc/txw-mhzc-service-biz/pom.xml
COPY txw-mhzc/txw-mhzc-service-biz/src mhzc/txw-mhzc-service-biz/src
# YYGL
COPY txw-yygl/pom.xml yygl/pom.xml
COPY txw-yygl/settings.xml yygl/settings.xml
COPY txw-yygl/txw-yygl-service-api/pom.xml yygl/txw-yygl-service-api/pom.xml
COPY txw-yygl/txw-yygl-service-api/src yygl/txw-yygl-service-api/src
COPY txw-yygl/txw-yygl-service-biz/pom.xml yygl/txw-yygl-service-biz/pom.xml
COPY txw-yygl/txw-yygl-service-biz/src yygl/txw-yygl-service-biz/src
# -------------------------------------------
# Step 2: 复制 Maven 本地仓库(离线构建)
# -------------------------------------------
COPY script/.m2/repository /root/.m2/repository
# -------------------------------------------
# Step 3: 按依赖顺序构建
# -------------------------------------------
# 3.1 构建公共模块
WORKDIR /build/txw-common
RUN mvn clean install -DskipTests -s ../gateway/settings.xml -o || mvn clean install -DskipTests
# 3.2 构建 API 模块
WORKDIR /build/mhzc/txw-mhzc-service-api
RUN mvn clean install -DskipTests -s ../../gateway/settings.xml -o || mvn clean install -DskipTests
WORKDIR /build/sso/txw-sso-service-api
RUN mvn clean install -DskipTests -s ../../gateway/settings.xml -o || mvn clean install -DskipTests
WORKDIR /build/yygl/txw-yygl-service-api
RUN mvn clean install -DskipTests -s ../../gateway/settings.xml -o || mvn clean install -DskipTests
# 3.3 构建 BIZ 模块
WORKDIR /build/mhzc/txw-mhzc-service-biz
RUN mvn clean package -DskipTests -s ../../gateway/settings.xml -o || mvn clean package -DskipTests
WORKDIR /build/sso/txw-sso-service-biz
RUN mvn clean package -DskipTests -s ../../gateway/settings.xml -o || mvn clean package -DskipTests
WORKDIR /build/yygl/txw-yygl-service-biz
RUN mvn clean package -DskipTests -s ../../gateway/settings.xml -o || mvn clean package -DskipTests
# 3.4 构建 Gateway
WORKDIR /build/gateway
RUN mvn clean package -DskipTests -s settings.xml -o || mvn clean package -DskipTests
# Stage 2: Package
FROM eclipse-temurin:8-jre
WORKDIR /app
# 安装字体(用于验证码 Captcha
RUN apt-get update && apt-get install -y \
fonts-noto-cjk \
fontconfig \
&& fc-cache -f -v \
&& apt-get clean -y \
&& rm -rf /var/lib/apt/lists/*
COPY devops/start.sh /app/start.sh
RUN chmod +x /app/start.sh
# 复制所有构建产物
COPY --from=builder /build/gateway/target/springboot.jar /app/gateway.jar
COPY --from=builder /build/sso/txw-sso-service-biz/target/txw-sso-service-biz.jar /app/sso.jar
COPY --from=builder /build/mhzc/txw-mhzc-service-biz/target/txw-mhzc-service-biz.jar /app/mhzc.jar
COPY --from=builder /build/yygl/txw-yygl-service-biz/target/txw-yygl-service-biz.jar /app/yygl.jar
# 清理构建缓存
RUN rm -rf /root/.m2 /root/.mvn
# 环境变量:指定启动的服务名
ENV SERVICE_NAME=gateway
# 激活正式环境 profile
ENV SPRING_PROFILES_ACTIVE=prod
EXPOSE 9300 9301 9302 9303 20010
ENTRYPOINT ["/app/start.sh"]

219
devops/README.md Normal file
View File

@ -0,0 +1,219 @@
# 碳信网 - Docker 部署指南
## 概述
本目录包含碳信网项目的 Docker 编排配置,分为两部分:
- **基础设施服务**nacos、redis、minio
- **业务服务**gateway、sso、mhzc、yygl
---
## 构建镜像
### 前置要求
- Docker 20.10+
- Maven 3.6+
- Node.js 16+
- npm
### 构建命令
```bash
cd devops
# 构建所有镜像(前后端)
bash build.sh [VERSION]
# 示例:构建 1.0.0-BETA 版本
bash build.sh 1.0.0-BETA
```
构建脚本会依次完成:
1. 构建前端 mhzc-web
2. 构建前端 yygl-web
3. 构建后端统一镜像 `txw-all`
4. 构建前端镜像 `txw-web`
仅构建后端
```
docker build -t txw-all:1.0.0-BETA -t txw-all:latest -f devops/Dockerfile .
```
仅构建前端
```
docker build -t txw-web:1.0.0-BETA -t txw-web:latest -f devops/web/Dockerfile .
```
### 更新镜像
代码变更后,重新构建并启动:
```bash
# 1. 重新构建镜像
bash build.sh 1.0.0-BETA
# 2. 重启业务服务(使用新镜像)
docker-compose -f docker-compose.svc.yml up -d --build
```
### 查看镜像
```bash
docker images | grep txw-
```
---
## 目录结构
```
devops/
├── docker-compose.infra.yml # 基础设施编排
├── docker-compose.svc.yml # 业务服务编排
├── nacos/ # Nacos 数据持久化目录
│ ├── data/
│ └── logs/
└── README.md
```
---
## 快速开始
### 1. 准备docker网络首次必须
```
docker network create txw-network
```
### 2. 启动基础设施(首次必须)
```bash
cd devops
docker-compose -f docker-compose.infra.yml up -d
```
### 3. 启动业务服务
```bash
docker-compose -f docker-compose.svc.yml up -d
```
### 4. 查看服务状态
```bash
docker-compose -f docker-compose.infra.yml ps
docker-compose -f docker-compose.svc.yml ps
```
---
## 服务访问
| 服务 | 地址 | 说明 |
| ------- | --------------------------- | ----------------------------- |
| Nacos | http://localhost:8848/nacos | 默认账号: nacos / nacos |
| Redis | localhost:6379 | 密码: redis_password |
| MinIO | http://localhost:9000 | 控制台: http://localhost:9001 |
| Gateway | http://localhost:9300 | API 网关 |
| SSO | http://localhost:9301 | 单点登录 |
| MHZC | http://localhost:9302 | 碳资产服务 |
| YYGL | http://localhost:20010 | 运营管理服务 |
---
## 常用操作
### 查看日志
```bash
# 基础设施日志
docker-compose -f docker-compose.infra.yml logs -f
# 业务服务日志
docker-compose -f docker-compose.svc.yml logs -f
# 单个服务日志
docker-compose -f docker-compose.infra.yml logs -f nacos
docker-compose -f docker-compose.svc.yml logs -f gateway
```
### 重启服务
```bash
# 重启单个服务
docker-compose -f docker-compose.svc.yml restart gateway
# 重启所有业务服务
docker-compose -f docker-compose.svc.yml restart
```
### 停止服务
```bash
# 停止业务服务
docker-compose -f docker-compose.svc.yml down
# 停止所有服务(包括基础设施)
docker-compose -f docker-compose.infra.yml down
docker-compose -f docker-compose.svc.yml down
```
### 重建服务
```bash
# 重新构建并启动(代码更新后使用)
docker-compose -f docker-compose.svc.yml up -d --build
```
---
## 数据持久化
| 服务 | 宿主机路径 |
| ---------- | ------------------------- |
| Nacos data | ./nacos/data |
| Nacos logs | ./nacos/logs |
| Redis data | Docker volume: redis-data |
| MinIO data | Docker volume: minio-data |
---
## 网络说明
所有服务通过 `txw-network` 桥接网络互通:
- 基础设施创建网络并定义 volumes
- 业务服务通过 `external: true` 加入网络
**注意**:启动业务服务前,必须先启动基础设施,确保网络已创建。
---
## 开发调试
### 进入容器
```bash
docker exec -it txw-nacos bash
docker exec -it txw-gateway bash
```
### 检查网络
```bash
docker network inspect devops_txw-network
```
### 检查服务健康状态
```bash
curl http://localhost:8848/nacos/v1/ns/operator/metrics
docker exec txw-redis redis-cli -a redis_password ping
```

69
devops/build.sh Normal file
View File

@ -0,0 +1,69 @@
#!/bin/bash
set -e
# ============================================================
# 碳信网 - 统一构建脚本
# 用法: bash devops/build.sh [VERSION]
# 示例: bash devops/build.sh 1.0.0-BETA
# ============================================================
VERSION=${1:-1.0.0-BETA}
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
echo "========================================="
echo " 碳信网 - 统一构建"
echo "========================================="
echo " 版本: ${VERSION}"
echo " 项目目录: ${PROJECT_DIR}"
echo "========================================="
cd "${PROJECT_DIR}"
echo ""
echo ">>> [1/3] 构建前端 (mhzc-web) ..."
cd txw-mhzc-web
if [ ! -d "node_modules" ]; then
npm install
fi
npm run build
cd "${PROJECT_DIR}"
echo ""
echo ">>> [2/3] 构建前端 (yygl-web) ..."
cd txw-yygl-web
if [ ! -d "node_modules" ]; then
npm install
fi
npm run build
cd "${PROJECT_DIR}"
echo ""
echo ">>> [3/4] 构建后端镜像 (txw-all) ..."
docker build \
-t txw-all:${VERSION} \
-t txw-all:latest \
-f devops/Dockerfile "${PROJECT_DIR}"
echo ">>> 后端镜像构建完成"
echo ""
echo ">>> [4/4] 构建前端镜像 (txw-web) ..."
docker build \
-t txw-web:${VERSION} \
-t txw-web:latest \
-f devops/web/Dockerfile "${PROJECT_DIR}"
echo ">>> 前端镜像构建完成"
echo ""
echo "========================================="
echo " 所有镜像构建完成!"
echo "========================================="
echo ""
echo "镜像列表:"
echo " 后端: txw-all:${VERSION}"
echo " 前端: txw-web:${VERSION}"
echo ""
echo "运行示例:"
echo " docker run -e SERVICE_NAME=gateway txw-all:${VERSION}"
echo " docker run -p 8080:8080 txw-web:${VERSION}"

View File

@ -0,0 +1,84 @@
version: '3.8'
# ============================================================
# 碳信网 - 基础设施服务
# 使用方式:
# 启动基础设施: docker-compose up -d
# ============================================================
services:
nacos:
image: nacos/nacos-server:v2.3.2
container_name: txw-nacos
ports:
- "8848:8848"
- "9848:9848"
- "9849:9849"
environment:
- MODE=standalone
- PREFER_HOST_MODE=hostname
- JVM_XMS=512m
- JVM_XMX=512m
- JVM_XMN=256m
- NACOS_AUTH_ENABLE=true
- NACOS_AUTH_TOKEN=TmFjb3NBdXRoVG9rZW5TZWNyZXRLZXkyMDI0Rm9yRGV2RW52aXJvbm1lbnQ=
- NACOS_CORE_AUTH_SERVER_IDENTITY_KEY=nacos
- NACOS_CORE_AUTH_SERVER_IDENTITY_VALUE=nacos2024
volumes:
- ./nacos/data:/home/nacos/data
- ./nacos/logs:/home/nacos/logs
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8848/nacos"]
interval: 30s
timeout: 10s
retries: 5
networks:
- txw-network
redis:
image: redis:latest
container_name: txw-redis
ports:
- "6379:6379"
command: redis-server --requirepass redis_password
volumes:
- redis-data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 30s
timeout: 10s
retries: 5
networks:
- txw-network
minio:
image: minio/minio:latest
container_name: txw-minio
ports:
- "9000:9000"
- "9001:9001"
environment:
- MINIO_ROOT_USER=minioadmin
- MINIO_ROOT_PASSWORD=minioadmin123
command: server /data --console-address ":9001"
volumes:
- ./minio-data:/data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 10s
retries: 5
networks:
- txw-network
networks:
txw-network:
name: txw-network
driver: bridge
external: true
volumes:
nacos-data:
redis-data:
minio-data:

View File

@ -0,0 +1,73 @@
version: '3.8'
# ============================================================
# 碳信网 - 业务服务
# 使用方式:
# 启动所有服务: docker-compose up -d
# 前提: 先启动 docker-compose -f docker-compose.infra.yml up -d
# ============================================================
services:
gateway:
image: txw-all:1.0.0-BETA
container_name: txw-gateway
environment:
- SERVICE_NAME=gateway
- SPRING_PROFILES_ACTIVE=test
- NACOS_SERVER_ADDR=nacos:8848
ports:
- "9300:9300"
networks:
- txw
sso:
image: txw-all:1.0.0-BETA
container_name: txw-sso
environment:
- SERVICE_NAME=sso
- SPRING_PROFILES_ACTIVE=test
- NACOS_SERVER_ADDR=nacos:8848
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
- SPRING_REDIS_PASSWORD=redis_password
ports:
- "9301:9301"
networks:
- txw
mhzc:
image: txw-all:1.0.0-BETA
container_name: txw-mhzc
environment:
- SERVICE_NAME=mhzc
- SPRING_PROFILES_ACTIVE=test
- NACOS_SERVER_ADDR=nacos:8848
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
- SPRING_REDIS_PASSWORD=redis_password
ports:
- "9302:9302"
networks:
- txw
yygl:
image: txw-all:1.0.0-BETA
container_name: txw-yygl
environment:
- SERVICE_NAME=yygl
- SPRING_PROFILES_ACTIVE=test
- NACOS_SERVER_ADDR=nacos:8848
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
- SPRING_REDIS_PASSWORD=redis_password
ports:
- "20010:20010"
networks:
- txw
networks:
txw:
name: txw
driver: bridge
external: true

View File

@ -0,0 +1,73 @@
version: '3.8'
# ============================================================
# 碳信网 - 业务服务
# 使用方式:
# 启动所有服务: docker-compose up -d
# 前提: 先启动 docker-compose -f docker-compose.infra.yml up -d
# ============================================================
services:
gateway:
image: txw-all:1.0.0-BETA
container_name: txw-gateway
environment:
- SERVICE_NAME=gateway
- SPRING_PROFILES_ACTIVE=prod
- NACOS_SERVER_ADDR=nacos:8848
ports:
- "9300:9300"
networks:
- txw-network
sso:
image: txw-all:1.0.0-BETA
container_name: txw-sso
environment:
- SERVICE_NAME=sso
- SPRING_PROFILES_ACTIVE=prod
- NACOS_SERVER_ADDR=nacos:8848
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
- SPRING_REDIS_PASSWORD=redis_password
ports:
- "9301:9301"
networks:
- txw-network
mhzc:
image: txw-all:1.0.0-BETA
container_name: txw-mhzc
environment:
- SERVICE_NAME=mhzc
- SPRING_PROFILES_ACTIVE=prod
- NACOS_SERVER_ADDR=nacos:8848
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
- SPRING_REDIS_PASSWORD=redis_password
ports:
- "9302:9302"
networks:
- txw-network
yygl:
image: txw-all:1.0.0-BETA
container_name: txw-yygl
environment:
- SERVICE_NAME=yygl
- SPRING_PROFILES_ACTIVE=prod
- NACOS_SERVER_ADDR=nacos:8848
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
- SPRING_REDIS_PASSWORD=redis_password
ports:
- "20010:20010"
networks:
- txw-network
networks:
txw-network:
name: txw-network
driver: bridge
external: true

View File

@ -0,0 +1,30 @@
version: '3.8'
# ============================================================
# 碳信网 - 业务服务
# 使用方式:
# 启动所有服务: docker-compose up -d
# 前提: 先启动 docker-compose -f docker-compose.infra.yml up -d
# ============================================================
services:
web:
image: txw-web:1.0.0-BETA
container_name: txw-web
ports:
- "30090:80"
deploy:
replicas: 1
resources:
limits:
cpus: '1.0'
memory: 1G
networks:
- txw
networks:
txw:
name: txw
driver: bridge
external: true

View File

@ -0,0 +1,34 @@
version: '3.8'
# ============================================================
# 碳信网 - 业务服务
# 使用方式:
# 启动所有服务: docker-compose up -d
# 前提: 先启动 docker-compose -f docker-compose.infra.yml up -d
# ============================================================
services:
web:
image: txw-web:1.0.0-BETA
container_name: txw-web
environment:
- SERVICE_NAME=gateway
- SPRING_PROFILES_ACTIVE=test
- NACOS_SERVER_ADDR=nacos:8848
ports:
- "30090:80"
deploy:
replicas: 1
resources:
limits:
cpus: '1.0'
memory: 1G
networks:
- txw-network
networks:
txw-network:
name: txw-network
driver: bridge
external: true

186
devops/docker-compose.yml Normal file
View File

@ -0,0 +1,186 @@
version: '3.8'
# ============================================================
# 碳信网 - 服务编排
# 使用方式:
# 单服务启动: docker-compose up -d gateway
# 启动所有: docker-compose up -d
# ============================================================
services:
# ============================================
# 基础设施服务
# ============================================
nacos:
image: nacos/nacos-server:v2.3.2 # Nacos 官方镜像指定稳定版本避免latest
container_name: txw-nacos # 容器名称,方便管理
ports:
- "8848:8848" # Nacos 核心端口Web控制台+API
- "9848:9848" # Nacos 2.x 新增的客户端通信端口
- "9849:9849" # Nacos 2.x 新增的客户端grpc端口
environment:
# 核心配置:单机模式启动(必选)
- MODE=standalone
# 首选主机模式单机环境用hostname即可
- PREFER_HOST_MODE=hostname
# JVM 内存配置(避免默认内存过大/过小)
- JVM_XMS=512m
- JVM_XMX=512m
- JVM_XMN=256m
# 开启鉴权
- NACOS_AUTH_ENABLE=true
# 鉴权 Token 密钥Base64 编码,至少 32 字节)
- NACOS_AUTH_TOKEN=TmFjb3NBdXRoVG9rZW5TZWNyZXRLZXkyMDI0Rm9yRGV2RW52aXJvbm1lbnQ=
# 服务身份验证密钥
- NACOS_CORE_AUTH_SERVER_IDENTITY_KEY=nacos
- NACOS_CORE_AUTH_SERVER_IDENTITY_VALUE=nacos2024
volumes:
# 数据持久化挂载Nacos的数据目录到宿主机
- ./nacos/data:/home/nacos/data
# 日志持久化:挂载日志目录到宿主机
- ./nacos/logs:/home/nacos/logs
# 配置文件挂载(如需自定义配置,可先从容器拷贝再挂载)
# - ./nacos/conf:/home/nacos/conf
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8848/nacos"]
interval: 30s
timeout: 10s
retries: 5
networks:
- txw-network
redis:
image: redis:latest
container_name: txw-redis
ports:
- "6379:6379"
command: redis-server --requirepass redis_password
volumes:
- redis-data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 30s
timeout: 10s
retries: 5
networks:
- txw-network
minio:
image: minio/minio:latest
container_name: txw-minio
ports:
- "9000:9000"
- "9001:9001"
environment:
- MINIO_ROOT_USER=minioadmin
- MINIO_ROOT_PASSWORD=minioadmin123
command: server /data --console-address ":9001"
volumes:
- minio-data:/data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 10s
retries: 5
networks:
- txw-network
# ============================================
# 业务服务(统一后端镜像)
# ============================================
gateway:
image: txw-all:1.0.0-BETA
container_name: txw-gateway
environment:
- SERVICE_NAME=gateway
- SPRING_PROFILES_ACTIVE=prod
- NACOS_SERVER_ADDR=nacos:8848
ports:
- "9300:9300"
depends_on:
nacos:
condition: service_healthy
redis:
condition: service_healthy
networks:
- txw-network
sso:
image: txw-all:1.0.0-BETA
container_name: txw-sso
environment:
- SERVICE_NAME=sso
- SPRING_PROFILES_ACTIVE=prod
- NACOS_SERVER_ADDR=nacos:8848
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
- SPRING_REDIS_PASSWORD=redis_password
ports:
- "9301:9301"
depends_on:
nacos:
condition: service_healthy
redis:
condition: service_healthy
networks:
- txw-network
mhzc:
image: txw-all:1.0.0-BETA
container_name: txw-mhzc
environment:
- SERVICE_NAME=mhzc
- SPRING_PROFILES_ACTIVE=prod
- NACOS_SERVER_ADDR=nacos:8848
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
- SPRING_REDIS_PASSWORD=redis_password
ports:
- "9302:9302"
depends_on:
nacos:
condition: service_healthy
redis:
condition: service_healthy
networks:
- txw-network
yygl:
image: txw-all:1.0.0-BETA
container_name: txw-yygl
environment:
- SERVICE_NAME=yygl
- SPRING_PROFILES_ACTIVE=prod
- NACOS_SERVER_ADDR=nacos:8848
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
- SPRING_REDIS_PASSWORD=redis_password
ports:
- "20010:20010"
depends_on:
nacos:
condition: service_healthy
redis:
condition: service_healthy
networks:
- txw-network
# ============================================
# 前端服务
# ============================================
# ============================================
# 网络和存储卷
# ============================================
networks:
txw-network:
driver: bridge
volumes:
nacos-data:
redis-data:
minio-data:

188
devops/pack-image.sh Normal file
View File

@ -0,0 +1,188 @@
#!/bin/bash
set -e
# ============================================================
# 碳信网 - 镜像打包脚本
# 用法: bash devops/pack-image.sh <txw-web|txw-all> [VERSION] [SERVER_USER] [SERVER_HOST]
# 示例:
# bash devops/pack-image.sh txw-web 1.0.0 root 192.168.1.100
# bash devops/pack-image.sh txw-all
# ============================================================
# 默认配置
DEFAULT_VERSION="latest"
DEFAULT_SERVER_USER="root"
DEFAULT_SERVER_HOST="192.168.1.100"
# 参数解析
IMAGE_TYPE=${1:-}
VERSION=${2:-${DEFAULT_VERSION}}
SERVER_USER=${3:-${DEFAULT_SERVER_USER}}
SERVER_HOST=${4:-${DEFAULT_SERVER_HOST}}
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
IMAGE_NAME=""
REMOTE_IMAGE_PATH=""
REMOTE_DIR=""
SERVICE_NAME=""
# 镜像元数据
case "${IMAGE_TYPE}" in
txw-web)
IMAGE_NAME="txw-web:${VERSION}"
REMOTE_IMAGE_PATH="/opt/txw/images/txw-web-${VERSION}.tar"
REMOTE_DIR="/opt/txw/txw-web"
SERVICE_NAME="txw-web"
;;
txw-all)
IMAGE_NAME="txw-all:${VERSION}"
REMOTE_IMAGE_PATH="/opt/txw/images/txw-all-${VERSION}.tar"
REMOTE_DIR="/opt/txw/txw-all"
SERVICE_NAME="txw-all"
;;
*)
echo "============================================"
echo " 碳信网 - 镜像打包脚本"
echo "============================================"
echo ""
echo "用法: bash devops/pack-image.sh <txw-web|txw-all> [VERSION] [SERVER_USER] [SERVER_HOST]"
echo ""
echo "参数说明:"
echo " txw-web 前端镜像 (默认版本: ${DEFAULT_VERSION})"
echo " txw-all 后端镜像 (默认版本: ${DEFAULT_VERSION})"
echo " VERSION 镜像版本,默认为 ${DEFAULT_VERSION}"
echo " SERVER_USER 服务器用户,默认为 ${DEFAULT_SERVER_USER}"
echo " SERVER_HOST 服务器地址,默认为 ${DEFAULT_SERVER_HOST}"
echo ""
echo "示例:"
echo " bash devops/pack-image.sh txw-web 1.0.0 root 192.168.1.100"
echo " bash devops/pack-image.sh txw-all"
echo ""
echo "============================================"
exit 1
;;
esac
# 确保镜像是最新的
ensure_image() {
local local_image=$(docker images -q ${IMAGE_NAME} 2>/dev/null)
if [ -z "${local_image}" ]; then
echo ""
echo "[!] 本地未找到镜像: ${IMAGE_NAME}"
echo "[*] 正在尝试构建..."
case "${IMAGE_TYPE}" in
txw-web)
bash "${SCRIPT_DIR}/build.sh" "${VERSION}"
;;
txw-all)
echo "[!] 后端镜像需要完整构建,请执行:"
echo " bash devops/build.sh ${VERSION}"
exit 1
;;
esac
fi
}
# 打包镜像
pack_image() {
echo ""
echo "============================================"
echo " 碳信网 - 镜像打包"
echo "============================================"
echo " 镜像类型: ${IMAGE_TYPE}"
echo " 版本: ${VERSION}"
echo " 镜像名称: ${IMAGE_NAME}"
echo "============================================"
# 确保镜像存在
ensure_image
# 镜像输出目录
PACK_DIR="${SCRIPT_DIR}/images"
mkdir -p "${PACK_DIR}"
TIMESTAMP=$(date +%Y-%m-%d%H%M%S)
PACKAGE_FILE="${PACK_DIR}/${IMAGE_TYPE}-${VERSION}-${TIMESTAMP}.tar"
MD5_FILE="${PACKAGE_FILE}.md5"
echo ""
echo ">>> [1/3] 打包镜像 -> ${PACKAGE_FILE}"
docker save -o "${PACKAGE_FILE}" "${IMAGE_NAME}"
echo ""
echo ">>> [2/3] 生成校验文件"
md5sum "${PACKAGE_FILE}" > "${MD5_FILE}"
echo ""
echo ">>> [3/3] 打包完成"
ls -lh "${PACKAGE_FILE}" "${MD5_FILE}"
echo ""
echo "============================================"
echo " 下一步操作提示"
echo "============================================"
echo ""
echo ">>> 1. 传输镜像到服务器"
echo ""
echo " # 方式一: scp 传输"
echo " scp ${PACKAGE_FILE} ${SERVER_USER}@${SERVER_HOST}:/opt/txw/images/"
echo " scp ${MD5_FILE} ${SERVER_USER}@${SERVER_HOST}:/opt/txw/images/"
echo ""
echo " # 方式二: 手动复制后执行 (推荐生产环境先上传再解压)"
echo ""
echo ">>> 2. SSH 到服务器后,执行以下命令:"
echo ""
echo " # 创建目录"
echo " ssh ${SERVER_USER}@${SERVER_HOST} 'mkdir -p /opt/txw/images'"
echo ""
echo " # 加载镜像"
echo " ssh ${SERVER_USER}@${SERVER_HOST} 'docker load -i /opt/txw/images/${IMAGE_TYPE}-${VERSION}-${TIMESTAMP}.tar'"
echo ""
echo ">>> 3. 更新并重启服务"
echo ""
echo " # 停止旧容器"
echo " ssh ${SERVER_USER}@${SERVER_HOST} 'docker stop ${SERVICE_NAME} || true'"
echo ""
echo " # 移除旧容器"
echo " ssh ${SERVER_USER}@${SERVER_HOST} 'docker rm ${SERVICE_NAME} || true'"
echo ""
echo " # 启动新容器 (txw-all 示例)"
echo " ssh ${SERVER_USER}@${SERVER_HOST} 'docker run -d \\'"
echo " --name ${SERVICE_NAME} \\"
echo " --restart=always \\"
echo " -p 8080:8080 \\"
echo " ${IMAGE_NAME}'"
echo ""
echo ">>> 4. 一键执行脚本 (上传后ssh内执行)"
echo ""
echo " ssh ${SERVER_USER}@${SERVER_HOST} << 'EOF'"
echo " #!/bin/bash"
echo " IMAGE_PATH=\"/opt/txw/images/${IMAGE_TYPE}-${VERSION}-${TIMESTAMP}.tar\""
echo " "
echo " # 加载镜像"
echo " docker load -i \${IMAGE_PATH}"
echo " "
echo " # 停止并移除旧容器"
echo " docker stop ${SERVICE_NAME} 2>/dev/null || true"
echo " docker rm ${SERVICE_NAME} 2>/dev/null || true"
echo " "
echo " # 启动新容器"
echo " docker run -d \\"
echo " --name ${SERVICE_NAME} \\"
echo " --restart=always \\"
echo " -p 8080:8080 \\"
echo " ${IMAGE_NAME}"
echo " EOF"
echo ""
echo "============================================"
echo ""
echo "[*] 打包文件: ${PACKAGE_FILE}"
echo "[*] 校验文件: ${MD5_FILE}"
echo ""
}
# 执行打包
pack_image

12
devops/settings.xml Normal file
View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- 本地仓库路径 -->
<localRepository>/root/.m2/repository</localRepository>
<!-- 离线模式:不尝试任何网络访问 -->
<offline>true</offline>
</settings>

41
devops/start.sh Normal file
View File

@ -0,0 +1,41 @@
#!/bin/sh
# ============================================================
# 碳信网 - 服务启动脚本
# 使用方式: docker run -e SERVICE_NAME=gateway txw-all:latest
# 或: docker run -e SERVICE_NAME=sso txw-all:latest
# ============================================================
case "$SERVICE_NAME" in
gateway)
echo ">>> 启动 Gateway 服务 (端口 9300)"
java -Dspring.profiles.active=${SPRING_PROFILES_ACTIVE} -jar /app/gateway.jar
;;
sso)
echo ">>> 启动 SSO 服务 (端口 9301)"
java -Dspring.profiles.active=${SPRING_PROFILES_ACTIVE} -jar /app/sso.jar
;;
mhzc)
echo ">>> 启动 MHZC 服务 (端口 9302)"
java -Dspring.profiles.active=${SPRING_PROFILES_ACTIVE} -jar /app/mhzc.jar
;;
yygl)
echo ">>> 启动 YYGL 服务 (端口 20010)"
java -Dspring.profiles.active=${SPRING_PROFILES_ACTIVE} -jar /app/yygl.jar
;;
all)
echo ">>> 启动所有服务 (后台运行)..."
# 启动所有服务作为后台进程
java -Dspring.profiles.active=${SPRING_PROFILES_ACTIVE} -jar /app/gateway.jar &
java -Dspring.profiles.active=${SPRING_PROFILES_ACTIVE} -jar /app/sso.jar &
java -Dspring.profiles.active=${SPRING_PROFILES_ACTIVE} -jar /app/mhzc.jar &
java -Dspring.profiles.active=${SPRING_PROFILES_ACTIVE} -jar /app/yygl.jar &
# 等待所有后台进程
wait
;;
*)
echo ">>> 错误: 未指定服务名或服务名无效"
echo ">>> 可用服务: gateway, sso, mhzc, yygl, all"
echo ">>> 使用方式: docker run -e SERVICE_NAME=gateway txw-all:latest"
exit 1
;;
esac

39
docs/deploy.md Normal file
View File

@ -0,0 +1,39 @@
## 方式一:一键构建传输部署
```bash
# 本地执行(自动完成构建+传输+部署)
cd e:\00项目\T_碳信网\code\txw
bash script/build-local.sh 1.0.0-BETA root 192.168.1.100 /opt/txw/images
```
## 方式二:分布执行
```bash
# Step 1: 本地构建
cd txw-gateway && bash devops/build.sh 1.0.0-BETA
# ... 其他服务同理
# Step 2: 打包并传输
bash script/build-local.sh 1.0.0-BETA root 服务器IP /opt/txw/images
# Step 3: 服务器部署
ssh root@服务器IP
bash /opt/txw/images/deploy.sh 1.0.0-BETA redeploy
```
## 方式三:使用 docker-compose
```bash
# 本地构建所有镜像
for svc in gateway sso mhzc yygl gxzx; do
cd $svc && docker build -t ${svc}:1.0.0-BETA -f devops/Dockerfile . && cd ..
done
# 本地启动(需要先修改 docker-compose.yml 中的环境变量)
cd script && docker-compose up -d
```

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- 本地仓库路径 -->
<localRepository>/root/.m2/repository</localRepository>
<!-- 离线模式:不尝试任何网络访问 -->
<offline>true</offline>
</settings>

View File

@ -50,6 +50,9 @@
<goals> <goals>
<goal>repackage</goal> <!-- 将引入的 jar 打入其中 --> <goal>repackage</goal> <!-- 将引入的 jar 打入其中 -->
</goals> </goals>
<configuration>
<mainClass>com.css.txw.gateway.app.DevAppStarter</mainClass>
</configuration>
</execution> </execution>
</executions> </executions>
</plugin> </plugin>

View File

@ -30,7 +30,7 @@
</releases> </releases>
<snapshots> <snapshots>
<enabled>true</enabled> <enabled>true</enabled>
<updatePolicy>always</updatePolicy> <updatePolicy>never</updatePolicy>
</snapshots> </snapshots>
</repository> </repository>
</repositories> </repositories>

View File

@ -0,0 +1,27 @@
--- #################### 注册中心相关配置 ####################
spring:
cloud:
nacos:
server-addr: txw-nacos:8848
username: qyddev
password: "9!1%Sw#QydNacosDev"
discovery:
namespace: bcf8de57-7215-4934-aced-ab382d504aff # 命名空间。这里使用本地开发环境
metadata:
version: 1.0.0-SNAPSHOT # 服务实例的版本号,可用于灰度发布
--- #################### 配置中心相关配置 ####################
spring:
cloud:
nacos:
# Nacos Config 配置项,对应 NacosConfigProperties 配置属性类
config:
server-addr: txw-nacos:8848 # Nacos 服务器地址(本地开发环境)
username: qyddev
password: "9!1%Sw#QydNacosDev"
namespace: bcf8de57-7215-4934-aced-ab382d504aff # 命名空间。这里使用本地开发环境
group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
name: ${spring.application.name} # 使用的 Nacos 配置集的 dataId默认为 spring.application.name
file-extension: yaml # 使用的 Nacos 配置集的 dataId 的文件拓展名,同时也是 Nacos 配置集的配置格式,默认为 properties

View File

@ -0,0 +1,27 @@
--- #################### 注册中心相关配置 ####################
spring:
cloud:
nacos:
server-addr: txw-nacos:8848
username: qyddev
password: "9!1%Sw#QydNacosDev"
discovery:
namespace: 2fd09a25-3ac4-48ac-a2f1-eb7e93163529 # 命名空间。这里使用本地开发环境
metadata:
version: 1.0.0-SNAPSHOT # 服务实例的版本号,可用于灰度发布
--- #################### 配置中心相关配置 ####################
spring:
cloud:
nacos:
# Nacos Config 配置项,对应 NacosConfigProperties 配置属性类
config:
server-addr: txw-nacos:8848 # Nacos 服务器地址(本地开发环境)
username: qyddev
password: "9!1%Sw#QydNacosDev"
namespace: 2fd09a25-3ac4-48ac-a2f1-eb7e93163529 # 命名空间。这里使用本地开发环境
group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
name: ${spring.application.name} # 使用的 Nacos 配置集的 dataId默认为 spring.application.name
file-extension: yaml # 使用的 Nacos 配置集的 dataId 的文件拓展名,同时也是 Nacos 配置集的配置格式,默认为 properties

View File

@ -30,7 +30,7 @@
</releases> </releases>
<snapshots> <snapshots>
<enabled>true</enabled> <enabled>true</enabled>
<updatePolicy>always</updatePolicy> <updatePolicy>never</updatePolicy>
</snapshots> </snapshots>
</repository> </repository>
</repositories> </repositories>

View File

@ -91,6 +91,7 @@
<version>${spring.boot.version}</version> <version>${spring.boot.version}</version>
<configuration> <configuration>
<fork>true</fork> <fork>true</fork>
<mainClass>com.css.txw.gxzx.app.DevAppStarter</mainClass>
</configuration> </configuration>
<executions> <executions>
<execution> <execution>

View File

@ -8,7 +8,8 @@
"dev:mock": "cross-env VUE_APP_MOCK=true nodemon -x vue-cli-service serve", "dev:mock": "cross-env VUE_APP_MOCK=true nodemon -x vue-cli-service serve",
"serve": "vue-cli-service serve", "serve": "vue-cli-service serve",
"build:site": "vue-cli-service build", "build:site": "vue-cli-service build",
"build": "vue-cli-service build",
"build": "cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build",
"build:site:dev": "vue-cli-service build --mode development", "build:site:dev": "vue-cli-service build --mode development",
"build:site:test": "vue-cli-service build --mode test", "build:site:test": "vue-cli-service build --mode test",
"lint": "vue-cli-service lint", "lint": "vue-cli-service lint",

View File

@ -0,0 +1,129 @@
# **碳身份使用典型场景介绍**
碳身份CID是企业、产品、碳报告在区块链上的唯一可信数字身份证依托碳证中心存证、确权、托管通过验碳中心核验、质证、溯源让碳数据来源可溯、过程可信、结果可证一站式满足碳管理、合规出海、绿色金融、供应链可信协同需求。
## **一** **、** **产品碳足迹与出口合规场景**
**基于碳身份,打通产品出海绿色通关路**
**适用对象:** 出口制造企业、电池/ 钢铁 / 水泥 / 化工企业
**核心价值:** 应对欧盟CBAM、电池法规降低跨境合规成本
企业在碳证中心为产品生成碳足迹CID覆盖从原料、生产、运输到回收全阶段数据存证。
- 碳足迹全链路可追溯,满足国际碳披露标准
- 验碳中心提供第三方核验,报告国际认可度更高
- 出口申报时直接出示碳身份凭证,快速通过碳核查
- 避免因碳数据不透明导致的关税增加、订单受阻
## **二、企业组织碳管理场景**
**让企业碳数据上链可信、** **核查高效**
**适用对象:** 重点用能单位、控排企业、园区等
**核心价值:** 碳数据不可篡改、核查一次通行、监管可信认可
企业将组织碳核算报告、年度碳报告、核查报告、碳配额数据在碳证中心完成上链存证自动生成专属碳身份CID
- 碳数据全生命周期留痕,杜绝篡改风险
- 监管、核查机构可直接链上核验
- 碳报告、核查结论一键生成可信凭证,支持下载与分享
## **三** **、** **环境声明场景**
**环境声明****上链存证,绿色品质一证可见**
**适用对象:** 建材、消费品、绿色产品认证企业等
**核心价值:** 环境声明报告可信存证、市场采信度提升
企业将环境声明 报告、LCA 分析、第三方审核结果在碳证中心托管并上链,生成 环境声明 专属碳身份。
- 报告不可篡改,审核过程全记录
- 采购方、业主、认证机构扫码即可验真
- 用于绿色采购、投标、市场宣传更具公信力
- 支持全生命周期溯源,强化产品绿色竞争力
## **四** **、** **ESG 信息披露与资本市场可信场景**
**碳身份为 ESG 背书,让披露更可信**
**适用对象:** 上市公司、发债企业、品牌企业等
**核心价值:** ESG 碳数据可验、披露可信、投资更放心
企业将ESG 报告、碳绩效数据、减排证明在碳证中心完成可信存证。
- 碳数据链上固化,提升 ESG 报告真实性
- 投资者、券商、评级机构可在线核验
- 验碳中心对质疑数据快速核验,提升公信力
- 助力绿色评级、融资、品牌形象提升
## **五** **、CBAM 欧盟碳边境调节机制场景**
**CBAM 上链存证,出海欧盟更安心**
**适用对象:** 钢铁、水泥、铝、电力、化肥等出口欧盟企业
**核心价值:** CBAM 申报可信、数据可验、海关认可、降低碳关税
企业将CBAM 申报数据、产品碳排放报告、全流程核算材料在碳证中心统一存证、托管生成CBAM 专属碳身份CID
- 申报数据上链不可篡改,满足欧盟海关核验要求
- 核算过程、数据来源、排放因子全程可追溯
- 验碳中心提供权威核验,提升申报材料采信度
- 支持申报材料一键导出、扫码验真,应对海关核查
- 减少重复核算、现场核验、数据补报成本
## **六、** **绿色金融与碳资产质押场景**
**碳身份做担保,绿色金融更顺畅**
适用对象:申请绿色信贷、碳质押、绿色保险的企业
核心价值:碳资产确权、数据可信、融资更快
企业通过碳证中心为碳资产、碳减排量、碳报告确权存证,形成金融机构认可的可信凭证。
- 银行、保险机构可直接核验碳数据真实性
- 减少尽调时间,降低融资门槛与成本
- 碳资产确权清晰,便于质押、交易、流转
- 助力获得绿色信贷、绿色债券、碳质押融资
## **七、供应链碳可信协同场景**
**基于可信碳链,贯通全供应链低碳信任**
**适用对象:** 核心企业、一级 / 二级供应商
**核心价值:** 供应链碳数据互认、减排可追溯、低碳采购
核心企业要求供应商在碳证中心办理碳身份,上传碳足迹、碳报告。
- 供应链上下游碳数据统一标准、统一存证
- 采购方可一键核验供应商碳数据真伪
- 减排成果可追溯、可量化、可采信
- 支撑低碳采购、绿色供应链评级

View File

@ -195,14 +195,14 @@ export default {
content: '碳服务市场', content: '碳服务市场',
divider: true, divider: true,
}, },
{ // {
name: 'tjrsc', // name: 'tjrsc',
title: '碳金融市场', // title: '',
value: 'tjrsc', // value: 'tjrsc',
content: '碳金融市场', // content: '',
divider: true, // divider: true,
parentName: 'fwsc', // parentName: 'fwsc',
}, // },
{ {
name: 'txqsc', name: 'txqsc',
title: '碳需求市场', title: '碳需求市场',

View File

@ -8,7 +8,7 @@
<div class="secondary-nav-content"> <div class="secondary-nav-content">
<div class="nav-tabs"> <div class="nav-tabs">
<button v-for="tab in navTabs" :key="tab.path" :class="['nav-tab', { active: isActiveTab(tab.path) }]" <button v-for="tab in navTabs" :key="tab.path" :class="['nav-tab', { active: isActiveTab(tab.path) }]"
@click="goToTab(tab.path)"> @click="goToTab(tab)">
{{ tab.label }} {{ tab.label }}
</button> </button>
</div> </div>
@ -196,8 +196,8 @@ export default {
navTabs: [ navTabs: [
{ label: '碳服务市场', path: '/tfwsc' }, { label: '碳服务市场', path: '/tfwsc' },
{ label: '碳需求市场', path: '/txqsc' }, { label: '碳需求市场', path: '/txqsc' },
{ label: '碳金融市场', path: '/tjrsc' },
{ label: '碳数据市场', path: '/tsjsc' }, { label: '碳数据市场', path: '/tsjsc' },
{ label: '碳金融市场', path: '/tjrsc', disable: true },
], ],
// //
filter: { filter: {
@ -429,7 +429,7 @@ export default {
handleContact(card) { handleContact(card) {
this.contactData = { this.contactData = {
lxr: card.lxr || '', lxr: card.lxr || '',
lxdh: card.lxdh || '', lxdh: card.lxrdh || '',
email: card.email || '', email: card.email || '',
}; };
this.contactVisible = true; this.contactVisible = true;
@ -442,7 +442,11 @@ export default {
isActiveTab(path) { isActiveTab(path) {
return this.$route.path === path; return this.$route.path === path;
}, },
goToTab(path) { goToTab({path, disable}) {
if (disable) {
this.$message.info('敬请期待');
return
}
this.$router.push(path); this.$router.push(path);
}, },
// //

View File

@ -29,7 +29,7 @@
<div class="service-card" @click="goToPage('/tfwsc')"> <div class="service-card" @click="goToPage('/tfwsc')">
<div class="service-card-inner"> <div class="service-card-inner">
<div class="service-card-header blue-header"> <div class="service-card-header blue-header">
<span class="service-card-num">01</span> <!-- <span class="service-card-num">01</span> -->
<h3 class="service-card-title">碳服务市场</h3> <h3 class="service-card-title">碳服务市场</h3>
</div> </div>
<p class="service-card-desc">汇聚全国优质第三方服务机构提供从核算到认证的全链条专业服务</p> <p class="service-card-desc">汇聚全国优质第三方服务机构提供从核算到认证的全链条专业服务</p>
@ -44,7 +44,7 @@
<div class="service-card" @click="goToPage('/txqsc')"> <div class="service-card" @click="goToPage('/txqsc')">
<div class="service-card-inner"> <div class="service-card-inner">
<div class="service-card-header green-header"> <div class="service-card-header green-header">
<span class="service-card-num">02</span> <!-- <span class="service-card-num">02</span> -->
<h3 class="service-card-title">碳需求市场</h3> <h3 class="service-card-title">碳需求市场</h3>
</div> </div>
<p class="service-card-desc">企业发布真实服务采购需求智能匹配靠谱服务商杜绝中间商差价</p> <p class="service-card-desc">企业发布真实服务采购需求智能匹配靠谱服务商杜绝中间商差价</p>
@ -55,26 +55,11 @@
</div> </div>
</div> </div>
<!-- 碳金融市场 -->
<div class="service-card" @click="goToPage('/tjrsc')">
<div class="service-card-inner">
<div class="service-card-header cyan-header">
<span class="service-card-num">03</span>
<h3 class="service-card-title">碳金融市场</h3>
</div>
<p class="service-card-desc">打通"碳""钱"的通道提供碳质押碳回购绿色信贷及碳基金对接服务</p>
<div class="service-card-buttons">
<t-button theme="primary" @click.stop="goToPage('/tjrsc')">查看金融产品</t-button>
<!-- <t-button theme="primary" @click.stop="goToPage('/tjrsc')">金融机构入驻</t-button> -->
</div>
</div>
</div>
<!-- 碳数据市场 --> <!-- 碳数据市场 -->
<div class="service-card" @click="goToPage('/tsjsc')"> <div class="service-card" @click="goToPage('/tsjsc')">
<div class="service-card-inner"> <div class="service-card-inner">
<div class="service-card-header purple-header"> <div class="service-card-header purple-header">
<span class="service-card-num">04</span> <!-- <span class="service-card-num">04</span> -->
<h3 class="service-card-title">碳数据市场</h3> <h3 class="service-card-title">碳数据市场</h3>
</div> </div>
<p class="service-card-desc">合规高效的碳数据流转平台包括公共数据社会性数据因子库等多类数据库</p> <p class="service-card-desc">合规高效的碳数据流转平台包括公共数据社会性数据因子库等多类数据库</p>
@ -84,6 +69,21 @@
</div> </div>
</div> </div>
</div> </div>
<!-- 碳金融市场 -->
<div class="service-card" @click="goToPage()">
<div class="service-card-inner">
<div class="service-card-header cyan-header">
<!-- <span class="service-card-num">03</span> -->
<h3 class="service-card-title">碳金融市场</h3>
</div>
<p class="service-card-desc">打通"碳""金融"的通道提供碳质押碳回购绿色信贷及碳基金对接服务</p>
<div class="service-card-buttons">
<t-button theme="default" variant="base" @click.stop="goToPage()">查看金融产品</t-button>
<!-- <t-button theme="primary" @click.stop="goToPage('/tjrsc')">金融机构入驻</t-button> -->
</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -107,7 +107,11 @@ export default {
this.$router.push('/view/mhzc/home'); this.$router.push('/view/mhzc/home');
}, },
goToPage(path) { goToPage(path) {
this.$router.push(path); if (path) {
this.$router.push(path);
} else {
this.$message.info('敬请期待');
}
} }
} }
}; };

View File

@ -340,7 +340,7 @@ export default {
navTabs: [ navTabs: [
{ label: '碳服务市场', path: '/tfwsc' }, { label: '碳服务市场', path: '/tfwsc' },
{ label: '碳需求市场', path: '/txqsc' }, { label: '碳需求市场', path: '/txqsc' },
{ label: '碳金融市场', path: '/tjrsc' }, // { label: '', path: '/tjrsc' },
{ label: '碳数据市场', path: '/tsjsc' }, { label: '碳数据市场', path: '/tsjsc' },
], ],
// //

View File

@ -9,7 +9,7 @@
<div class="secondary-nav-content"> <div class="secondary-nav-content">
<div class="nav-tabs"> <div class="nav-tabs">
<button v-for="tab in navTabs" :key="tab.path" :class="['nav-tab', { active: isActiveTab(tab.path) }]" <button v-for="tab in navTabs" :key="tab.path" :class="['nav-tab', { active: isActiveTab(tab.path) }]"
@click="goToTab(tab.path)"> @click="goToTab(tab)">
{{ tab.label }} {{ tab.label }}
</button> </button>
</div> </div>
@ -107,8 +107,8 @@ export default {
navTabs: [ navTabs: [
{ label: '碳服务市场', path: '/tfwsc' }, { label: '碳服务市场', path: '/tfwsc' },
{ label: '碳需求市场', path: '/txqsc' }, { label: '碳需求市场', path: '/txqsc' },
{ label: '碳金融市场', path: '/tjrsc' },
{ label: '碳数据市场', path: '/tsjsc' }, { label: '碳数据市场', path: '/tsjsc' },
{ label: '碳金融市场', path: '/tjrsc', disable: true },
], ],
selectedType: 'all', selectedType: 'all',
dataTypeList: [ dataTypeList: [
@ -169,7 +169,11 @@ export default {
isActiveTab(path) { isActiveTab(path) {
return this.$route.path === path; return this.$route.path === path;
}, },
goToTab(path) { goToTab({path, disable}) {
if (disable) {
this.$message.info('敬请期待');
return
}
this.$router.push(path); this.$router.push(path);
}, },
handlePublish() { handlePublish() {

View File

@ -11,7 +11,7 @@
v-for="tab in navTabs" v-for="tab in navTabs"
:key="tab.path" :key="tab.path"
:class="['nav-tab', { active: isActiveTab(tab.path) }]" :class="['nav-tab', { active: isActiveTab(tab.path) }]"
@click="goToTab(tab.path)" @click="goToTab(tab)"
> >
{{ tab.label }} {{ tab.label }}
</button> </button>
@ -224,8 +224,8 @@ export default {
navTabs: [ navTabs: [
{ label: '碳服务市场', path: '/tfwsc' }, { label: '碳服务市场', path: '/tfwsc' },
{ label: '碳需求市场', path: '/txqsc' }, { label: '碳需求市场', path: '/txqsc' },
{ label: '碳金融市场', path: '/tjrsc' },
{ label: '碳数据市场', path: '/tsjsc' }, { label: '碳数据市场', path: '/tsjsc' },
{ label: '碳金融市场', path: '/tjrsc', disable: true },
], ],
// //
filter: { filter: {
@ -410,7 +410,11 @@ export default {
isActiveTab(path) { isActiveTab(path) {
return this.$route.path === path; return this.$route.path === path;
}, },
goToTab(path) { goToTab({path, disable}) {
if (disable) {
this.$message.info('敬请期待');
return
}
this.$router.push(path); this.$router.push(path);
}, },
// //

View File

@ -63,8 +63,8 @@
<div class="card-body"> <div class="card-body">
<div class="card-btn" @click="handleNavigate(buttonLinks['服务市场'])">服务市场</div> <div class="card-btn" @click="handleNavigate(buttonLinks['服务市场'])">服务市场</div>
<div class="card-btn" @click="handleNavigate(buttonLinks['需求市场'])">需求市场</div> <div class="card-btn" @click="handleNavigate(buttonLinks['需求市场'])">需求市场</div>
<div class="card-btn" @click="handleNavigate(buttonLinks['金融市场'])">金融市场</div>
<div class="card-btn" @click="handleNavigate(buttonLinks['数据市场'])">数据市场</div> <div class="card-btn" @click="handleNavigate(buttonLinks['数据市场'])">数据市场</div>
<div class="card-btn" @click="handleNavigate(buttonLinks['金融市场'])">金融市场</div>
</div> </div>
</div> </div>
</div> </div>
@ -140,7 +140,7 @@
<span class="overseas2-item-desc">{{ item.desc }}</span> <span class="overseas2-item-desc">{{ item.desc }}</span>
</div> </div>
</div> </div>
<div class="overseas2-btn">{{ item.btnName }}</div> <div class="overseas2-btn" @click="openNewTab(item.link)">{{ item.btnName }}</div>
</div> </div>
</div> </div>
</div> </div>
@ -322,9 +322,9 @@ export default {
hotSearchTags: ["碳核查", "ESG", "碳资产管理", "ISO 14067"], hotSearchTags: ["碳核查", "ESG", "碳资产管理", "ISO 14067"],
// //
overseas2List: [ overseas2List: [
{ name: '电池法案', btnName: "申请服务", desc: "欧盟电池法案管控电池全生命周期,涉及回收、碳足迹等要求。", icon: require('@/pages/index/assets/home-dcfa-icon.png') }, { name: '电池法案', btnName: "申请服务", link: '', desc: "欧盟电池法案管控电池全生命周期,用碳足迹、电池护照、再生料、回收、供应链尽调设硬性准入门槛,强制绿色循环。", icon: require('@/pages/index/assets/home-dcfa-icon.png') },
{ name: 'CBAM', btnName: "CBAM\n试算", desc: "欧盟对进口高碳产品按隐含排放征收碳关税。", icon: require('@/pages/index/assets/home-cbam-icon.png') }, { name: 'CBAM', btnName: "CBAM\n试算", link: 'https://www.ouyeel.com/cbam/login', desc: "欧盟对进口高碳产品按隐含排放征收碳关税。", icon: require('@/pages/index/assets/home-cbam-icon.png') },
{ name: '航运燃料', btnName: "申请服务", desc: "从化石油基向LNG、绿甲醇、绿氨等多元低碳方向加速转型。", icon: require('@/pages/index/assets/home-hyrl-icon.png') } { name: '航运燃料', btnName: "申请服务", link: '', desc: "从化石油基向LNG、绿甲醇、绿氨等多元低碳方向加速转型。", icon: require('@/pages/index/assets/home-hyrl-icon.png') }
], ],
// tabs // tabs
newsTabs: [ newsTabs: [
@ -366,7 +366,7 @@ export default {
// 绿 // 绿
'服务市场': '/tfwsc', '服务市场': '/tfwsc',
'需求市场': '/txqsc', '需求市场': '/txqsc',
'金融市场': '/tjrsc', '金融市场': '',
'数据市场': '/tsjsc', '数据市场': '/tsjsc',
}, },
}; };
@ -453,7 +453,11 @@ export default {
}, 800); }, 800);
}, },
openNewTab(url) { openNewTab(url) {
window.open(url); if (url) {
window.open(url);
} else {
this.$message.info('敬请期待');
}
}, },
openService() { openService() {
window.open('http://carbon_did.liantu.tech/'); window.open('http://carbon_did.liantu.tech/');
@ -1397,7 +1401,7 @@ export default {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
color: #666; color: #666;
white-space: nowrap; word-break: break-word;
} }
.overseas2-btn { .overseas2-btn {
@ -1405,6 +1409,7 @@ export default {
border-radius: 4px; border-radius: 4px;
width: 72px; width: 72px;
height: 72px; height: 72px;
min-width: 72px;
color: #fff; color: #fff;
font-size: 14px; font-size: 14px;
font-weight: 500; font-weight: 500;

View File

@ -2,7 +2,7 @@
<div class="hyzt-wrap"> <div class="hyzt-wrap">
<div class="banner"> <div class="banner">
<div class="word">行业专题</div> <div class="word">行业专题</div>
<button class="desc">查看绿色低碳政策动态行业碳数据与推荐服务</button> <!-- <button class="desc">查看绿色低碳政策动态行业碳数据与推荐服务</button> -->
</div> </div>
<div class="hyzt-list-wrap"> <div class="hyzt-list-wrap">
<div class="hyzt-list"> <div class="hyzt-list">
@ -54,7 +54,11 @@ export default {
} }
}, },
goToHref(href) { goToHref(href) {
window.open(href); if (href) {
window.open(href);
} else {
this.$message.info('敬请期待');
}
}, },
}, },
}; };

View File

@ -53,18 +53,15 @@
<div class="text-section-content"> <div class="text-section-content">
<div class="content-item1"> <div class="content-item1">
<ul class="info-list"> <ul class="info-list">
<li>核心条款碳足迹回收目标可追溯性等</li> <div>法案核心用碳足迹电池护照再生料回收供应链尽调设硬性准入门槛强制绿色循环</div>
<li>时间表阶段性实施节点与过渡安排</li> <div>时间表阶段性实施节点与过渡安排</div>
<li> <li> 2024 2 18 法案核心条款正式实施旧电池指令部分废止有害物质基础限量电池安全与耐久性基础要求生效 </li>
适用电池类别便携式启动 / 照明 / <li> 2024 8 18 便携式电池铅含量强制限量生效储能系统安全合规要求生效电池性能与耐久性技术文件强制要求生效</li>
点火SLI轻型电动交通工具LMT电动汽车EV工业电池覆盖欧盟境内生产或进口单独或嵌入整机的电池军事 <li> 2025 2 18 EV 动力电池强制碳足迹声明要求生效 </li>
/ 航天 / 核能等除外 <div>核心关键词解读</div>
</li> <li>EU 2023/1542欧盟新电池法的正式法规编号是具备直接法律效力的欧盟条例无需成员国转化为本国法律全欧盟统一适用违规处罚标准由各成员国同步制定</li>
<li>经济运营商制造商生产商进口商分销商均需承担合规义务</li> <li>全生命周期监管法案核心监管逻辑区别于旧指令仅聚焦末端回收和有害物质管控新规覆盖电池从原材料开采生产制造运输销售使用维护到废弃回收材料再生的全链条全环节</li>
<li> <li>PEF产品环境足迹欧盟制定的产品全生命周期环境影响核算方法是电池碳足迹核算的唯一合规标准明确了核算边界方法学数据质量要求</li>
布局数字护照与二维码 2026-05 前完成2 kWh 电池的数字护照注册并为所有电池配置二维码与 CE
标志
</li>
</ul> </ul>
</div> </div>
<div class="content-item2"> <div class="content-item2">
@ -73,14 +70,18 @@
<div style="height: calc(100% - 50px)"> <div style="height: calc(100% - 50px)">
<div class="service-card card1"> <div class="service-card card1">
<div class="card-item1"> <div class="card-item1">
<h4>电池碳足迹核算系统</h4> <div>
<p>生成产品碳足迹报告</p> <h4>电池碳足迹核算系统</h4>
<p>生成产品碳足迹报告</p>
</div>
</div> </div>
</div> </div>
<div class="service-card card2"> <div class="service-card card2">
<div class="card-item2"> <div class="card-item2">
<h4>电池出口合规检测系统</h4> <div>
<p>合规检测与留存</p> <h4>电池出口合规检测系统</h4>
<p>合规检测与留存</p>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -107,15 +108,15 @@
<div class="text-section-content"> <div class="text-section-content">
<div class="content-item1"> <div class="content-item1">
<ul class="info-list"> <ul class="info-list">
<li>分行业钢铁水泥等解读申报要求运营后台支持富文本维护</li> <div>CBAM核心通过对标本土碳市场定价对进口高碳产品征收碳成本差额拉平跨境碳成本防范碳泄漏推动全球产业链低碳转型</div>
<li>成本随欧盟碳价波动直接抬升高碳进口门槛合规与透明度成为准入关键</li> <div>时间表阶段性实施节点与过渡安排</div>
<li>与欧盟 ETS新电池法案能效与关键原材料政策联动形成系统约束</li> <li>2023年5月10日 | 正式立法 | 欧盟议会与理事会正式通过 Regulation (EU) 2023/956 CBAM 条例</li>
<li>国际扩散加速英国拟 2027 年实施美国虽联邦碳定价未定但多提案推进中长期风险上升</li> <li>2026年1月1日起 | 正式实施期确定制度阶段 | 全面进入 申报 + 缴费 双强制阶段授权申报人制度落地进口商需购买并清缴 CBAM 证书</li>
<li> <li>2028年起 | 扩围实施期 | 计划纳入 180 余种钢铝密集型下游产品管控范围向产业链下游延伸</li>
欧盟 CBAM 已自 2023-10-01 进入过渡期2026-01-01 <div>核心关键词解读</div>
起对水泥钢铁化肥电力等产品按实际隐含碳排放征收调节费并与欧盟 ETS <li>碳泄漏Carbon Leakage: CBAM 的核心立法动因指欧盟企业为规避本土 ETS 高昂的碳成本将高碳生产环节转移至碳排放管控宽松碳价更低的国家 / 地区导致欧盟减排成果被抵消全球碳排放总量不降反升的现象</li>
免费配额退出同步实施旨在防止碳泄漏巩固本土减排成效 <li>EU ETS欧盟碳排放交易体系: 欧盟境内核心碳定价机制也是 CBAM 的定价基准CBAM 证书价格完全对标 ETS 配额的拍卖价格确保进口产品与欧盟本土产品承担完全同等的碳成本</li>
</li> <li>CBAM 证书CBAM Certificate: 欧盟成员国主管机构发行的电子凭证是进口商清缴碳排放成本的唯一合法载体进口商需按年度核算的碳排放量购买对应数量的证书并完成清缴未清缴部分将触发高额处罚</li>
</ul> </ul>
</div> </div>
<div class="content-item2"> <div class="content-item2">
@ -124,14 +125,21 @@
<div style="height: calc(100% - 50px)"> <div style="height: calc(100% - 50px)">
<div class="service-card card1"> <div class="service-card card1">
<div class="card-item1"> <div class="card-item1">
<h4>CBAM 申报辅助系统</h4> <div class="card-text">
<p>材料整理与填报指导</p> <h4>CBAM 辅助核算系统</h4>
<p>助力企业快速填报碳排放数据</p>
</div>
<div class="open-page" @click="goPage('https://www.ouyeel.com/cbam/login')">
立即申请
</div>
</div> </div>
</div> </div>
<div class="service-card card2"> <div class="service-card card2">
<div class="card-item2"> <div class="card-item2">
<h4>CBAM 碳成本测算系统</h4> <div>
<p>测算进口碳成本</p> <h4>CBAM 碳成本测算系统</h4>
<p>测算进口碳成本</p>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -157,23 +165,15 @@
<div class="text-section-content"> <div class="text-section-content">
<div class="content-item1"> <div class="content-item1">
<ul class="info-list"> <ul class="info-list">
<li>国际海事组织IMO燃料碳排放要求与合规路径简介</li> <div>航运燃料低碳政策已形成全球统一规则区域强监管各国落地细则的三层治理体系核心通过全生命周期碳排放管控与刚性约束推动航运业低碳燃料替代与净零排放转型</div>
<li> <div>时间表阶段性实施节点与过渡安排</div>
数据与报告建立年度 WTW 碳强度台账覆盖燃料采购消耗与排放欧盟需于每年 1 31 <li>2023年7月, IMO 发布修订版船舶温室气体减排战略, 确立全球航运 2050 年前后净零排放的顶层里程碑</li>
日前提交并第三方核查国际海事组织IMO燃料碳排放要求与合规路径简介 <li>2025年4月, 中国十部门发布交通运输与能源融合发展指导意见, 明确航运绿色燃料全链条发展支持政策</li>
</li> <li>2026, 欧盟 EU ETS 取消航运业全部免费碳配额, 航运企业碳排放成本完全自担倒逼燃料低碳转型加速</li>
<li> <div>核心关键词解读</div>
技术与燃料路径优先 OPS可再生 / 低碳燃料先进生物燃料RFNBOs与能效提升欧盟允许合规池与 <li>NZF / 净零框架IMO净零框架全球首个航运强制减排与碳定价结合的统一规则核心管控船用燃料全生命周期碳排放</li>
"技术中性" 合规 <li>GFI / 燃料温室气体强度IMO 净零框架核心考核指标核算单位船用燃料全生命周期的温室气体排放量</li>
</li> <li>全生命周期碳排放LCA低碳燃料合规性认证的核心方法用于杜绝燃料漂绿行为</li>
<li>
数据与报告建立年度 WTW 碳强度台账覆盖燃料采购消耗与排放欧盟需于每年 1 31
日前提交并第三方核查国际海事组织IMO燃料碳排放要求与合规路径简介
</li>
<li>
技术与燃料路径优先 OPS可再生 / 低碳燃料先进生物燃料RFNBOs与能效提升欧盟允许合规池与
"技术中性" 合规
</li>
</ul> </ul>
</div> </div>
<div class="content-item2"> <div class="content-item2">
@ -182,14 +182,24 @@
<div style="height: calc(100% - 50px)"> <div style="height: calc(100% - 50px)">
<div class="service-card card1"> <div class="service-card card1">
<div class="card-item1"> <div class="card-item1">
<h4>系统占位</h4> <div>
<p>字段占位字段占位字段占位</p> <h4>海事 一网通办</h4>
<p>上海港船舶低碳合规政务官方办理入口</p>
</div>
<div class="open-page" @click="goPage('https://zwfw.msa.gov.cn/')">
立即访问
</div>
</div> </div>
</div> </div>
<div class="service-card card2"> <div class="service-card card2">
<div class="card-item2"> <div class="card-item2">
<h4>系统占位</h4> <div>
<p>字段占位字段占位字段占位</p> <h4>国际航运绿色能源认证平台</h4>
<p>航运绿色燃料全链条认证合规服务平台</p>
</div>
<div class="open-page" @click="goPage('https://www.lingang.gov.cn/')">
立即访问
</div>
</div> </div>
</div> </div>
</div> </div>
@ -245,6 +255,13 @@ export default {
}; };
}, },
methods: { methods: {
goPage(url) {
if (url) {
window.open(url);
} else {
this.$message.info('敬请期待')
}
},
setNavActive(idx) { setNavActive(idx) {
console.log('idx'); console.log('idx');
this.navList = this.navList.map((item, index) => ({ this.navList = this.navList.map((item, index) => ({
@ -504,8 +521,22 @@ body {
padding: 20px; padding: 20px;
background-image: linear-gradient(180deg, #fffaf6 0%, #fff0e3 100%); background-image: linear-gradient(180deg, #fffaf6 0%, #fff0e3 100%);
border-radius: 6px; border-radius: 6px;
flex-direction: column; flex-direction: row;
justify-content: space-around; align-items: center;
justify-content: flex-start;
cursor: pointer;
}
.card-text {
flex: 1;
h4 {
font-size: 22px;
color: #1a1b24;
}
p {
font-size: 14px;
color: #666;
margin-top: 8px;
}
} }
.card-item2 { .card-item2 {
display: flex; display: flex;
@ -513,8 +544,9 @@ body {
padding: 20px; padding: 20px;
background-image: linear-gradient(180deg, #ebfcff 0%, #daf9fc 100%); background-image: linear-gradient(180deg, #ebfcff 0%, #daf9fc 100%);
border-radius: 6px; border-radius: 6px;
flex-direction: column; flex-direction: row;
justify-content: space-around; justify-content: flex-start;
cursor: pointer;
} }
} }
} }
@ -528,6 +560,18 @@ body {
background-size: contain; background-size: contain;
} }
.open-page {
flex-shrink: 0;
white-space: nowrap;
padding: 8px 16px;
background: linear-gradient(180deg, #99d2fe 0%, #2196f3 100%);
border-radius: 4px;
color: #fff;
font-size: 14px;
cursor: pointer;
margin-left: 20px;
}
/* 模块样式 */ /* 模块样式 */
.module { .module {
max-width: 1300px; max-width: 1300px;
@ -638,8 +682,9 @@ body {
padding: 20px; padding: 20px;
background-image: linear-gradient(180deg, #f5f4ff 0%, #ebe8ff 100%); background-image: linear-gradient(180deg, #f5f4ff 0%, #ebe8ff 100%);
border-radius: 6px; border-radius: 6px;
flex-direction: column; flex-direction: row;
justify-content: space-around; justify-content: flex-start;
align-items: center;
} }
.card-item2 { .card-item2 {
display: flex; display: flex;
@ -647,8 +692,9 @@ body {
padding: 20px; padding: 20px;
background-image: linear-gradient(180deg, #f0f9ff 0%, #e0efff 100%); background-image: linear-gradient(180deg, #f0f9ff 0%, #e0efff 100%);
border-radius: 6px; border-radius: 6px;
flex-direction: column; flex-direction: row;
justify-content: space-around; justify-content: flex-start;
align-items: center;
} }
} }
} }
@ -724,8 +770,9 @@ body {
padding: 20px; padding: 20px;
background-image: linear-gradient(180deg, #fffaf6 0%, #fff0e3 100%); background-image: linear-gradient(180deg, #fffaf6 0%, #fff0e3 100%);
border-radius: 6px; border-radius: 6px;
flex-direction: column; flex-direction: row;
justify-content: space-around; justify-content: flex-start;
align-items: center;
} }
.card-item2 { .card-item2 {
display: flex; display: flex;
@ -733,8 +780,9 @@ body {
padding: 20px; padding: 20px;
background-image: linear-gradient(180deg, #ebfcff 0%, #daf9fc 100%); background-image: linear-gradient(180deg, #ebfcff 0%, #daf9fc 100%);
border-radius: 6px; border-radius: 6px;
flex-direction: column; flex-direction: row;
justify-content: space-around; justify-content: flex-start;
align-items: center;
} }
} }
} }
@ -818,8 +866,9 @@ body {
padding: 20px; padding: 20px;
background-image: linear-gradient(180deg, #f0f9ff 0%, #e0efff 100%); background-image: linear-gradient(180deg, #f0f9ff 0%, #e0efff 100%);
border-radius: 6px; border-radius: 6px;
flex-direction: column; flex-direction: row;
justify-content: space-around; justify-content: space-around;
align-items: center;
} }
.card-item2 { .card-item2 {
display: flex; display: flex;
@ -827,8 +876,9 @@ body {
padding: 20px; padding: 20px;
background-image: linear-gradient(180deg, #ebfcff 0%, #daf9fc 100%); background-image: linear-gradient(180deg, #ebfcff 0%, #daf9fc 100%);
border-radius: 6px; border-radius: 6px;
flex-direction: column; flex-direction: row;
justify-content: space-around; justify-content: space-around;
align-items: center;
} }
} }
} }
@ -878,18 +928,26 @@ body {
/* 列表样式 */ /* 列表样式 */
.info-list { .info-list {
padding: 30px 20px; padding: 20px 20px;
list-style: none; list-style: none;
height: max-content;
overflow: hidden;
}
.info-list > div {
font-size: 16px;
line-height: 26px;
color: #333;
font-weight: 600;
margin: 4px 0;
} }
.info-list li { .info-list li {
position: relative; position: relative;
/* padding: 25px; */
padding-left: 20px; padding-left: 20px;
margin-bottom: 6px; margin-bottom: 4px;
font-size: 15px; font-size: 13px;
line-height: 24px; line-height: 20px;
letter-spacing: 0; letter-spacing: 0;
color: #000; color: #000;
text-align: justify; text-align: justify;
@ -924,7 +982,7 @@ body {
} }
.card-item1 { .card-item1 {
display: flex; display: flex;
flex-direction: column; flex-direction: row;
justify-content: space-around; justify-content: space-around;
height: 100%; height: 100%;
padding: 20px; padding: 20px;

View File

@ -38,8 +38,8 @@ export default {
{ {
title: '钢铁行业', title: '钢铁行业',
href: 'https://www.greenscs.com/', href: 'https://www.greenscs.com/',
category: ['碳动态', '碳数据', '服务入口'], category: ['LCA', 'EPD', 'CBAM'],
desc: '行业碳动态、数据与服务对接', desc: '构建符合中国国情、衔接国际规则的绿色低碳供应链管理体系,为企业提供全方位的碳减排综合解决方案。',
bgImg: '1.png', bgImg: '1.png',
icon: 'icon1.png', icon: 'icon1.png',
id: '1', id: '1',
@ -47,17 +47,17 @@ export default {
{ {
title: '装备制造', title: '装备制造',
href: 'https://ssc.shanghai-electric.com/', href: 'https://ssc.shanghai-electric.com/',
category: ['碳动态', '碳数据', '服务入口'], category: ['产品碳足迹', '绿色供应链'],
desc: '行业碳动态、数据与服务对接', desc: '以"扎根装备制造、实施数字赋能、推动创新转型"为导向,推进能源与工业企业的数智转型。',
bgImg: '2.png', bgImg: '2.png',
icon: 'icon2.png', icon: 'icon2.png',
id: '2', id: '2',
}, },
{ {
title: '航运燃料', title: '航运燃料',
href: '#', href: '',
category: ['碳动态', '碳数据', '服务入口'], category: ['产品碳足迹', '国际认证'],
desc: '行业碳动态、数据与服务对接', desc: '加强国际交流,深化绿色航运国际合作,以点带面协同推进航运绿色低碳转型发展。',
bgImg: '3.png', bgImg: '3.png',
icon: 'icon3.png', icon: 'icon3.png',
id: '3', id: '3',

View File

@ -287,14 +287,14 @@ module.exports = {
// 会误伤 SPA 路由 /view/mhzc/...,刷新时整页请求被转发到后端导致 Proxy error。必须用 ^ 限定为路径前缀。 // 会误伤 SPA 路由 /view/mhzc/...,刷新时整页请求被转发到后端导致 Proxy error。必须用 ^ 限定为路径前缀。
proxy: { proxy: {
'^/sso': { '^/sso': {
target: 'http://192.168.110.29:9301', // target: 'http://localhost:9301',
// target: 'http://carbon.liantu.tech', target: 'http://carbon.liantu.tech',
// target: 'http://10.23.20.13:94/', // target: 'http://10.23.20.13:94/',
changeOrigin: true, changeOrigin: true,
}, },
'^/mhzc': { '^/mhzc': {
target: 'http://192.168.110.29:9302', // target: 'http://localhost:9302',
// target: 'http://carbon.liantu.tech', target: 'http://carbon.liantu.tech',
// target: 'http://10.23.20.13:94/', // target: 'http://10.23.20.13:94/',
changeOrigin: true, changeOrigin: true,
}, },

View File

@ -0,0 +1,37 @@
# Stage 1: Build
FROM maven:3.6.3-openjdk-8 AS builder
WORKDIR /build
# 复制 pom.xml 和 settings
COPY txw-mhzc/pom.xml .
COPY txw-mhzc/devops/settings-offline.xml settings.xml
# 复制子模块 pom.xml
COPY txw-mhzc/txw-mhzc-service-api/pom.xml txw-mhzc-service-api/
COPY txw-mhzc/txw-mhzc-service-biz/pom.xml txw-mhzc-service-biz/
# 复制本地 Maven 仓库(从项目根目录的共享 .m2
COPY script/.m2/repository /root/.m2/repository
# 复制源码
COPY txw-mhzc/txw-mhzc-service-api/src txw-mhzc-service-api/src
COPY txw-mhzc/txw-mhzc-service-biz/src txw-mhzc-service-biz/src
# 构建(-am: 同时构建依赖模块)
RUN mvn clean package -pl txw-mhzc-service-biz -am -DskipTests -s settings.xml -o
# Stage 2: Package
FROM eclipse-temurin:8-jre-alpine
WORKDIR /app
# 复制构建产物
COPY --from=builder /build/txw-mhzc-service-biz/target/txw-mhzc-service-biz.jar ./app.jar
# 清理构建缓存
RUN rm -rf /root/.m2 /root/.mvn
EXPOSE 9302
ENTRYPOINT ["java", "-jar", "/app/app.jar"]

43
txw-mhzc/devops/build.sh Normal file
View File

@ -0,0 +1,43 @@
#!/bin/bash
set -e
SERVICE_NAME="txw-mhzc"
VERSION=${1:-1.0.0-BETA}
# 自动检测本地 .m2 路径
detect_local_m2() {
if [ -d "$HOME/.m2/repository" ]; then
echo "$HOME/.m2"
elif [ -d "$USERPROFILE/.m2/repository" ]; then
echo "$USERPROFILE/.m2"
else
echo ""
fi
}
LOCAL_M2_PATH=$(detect_local_m2)
echo ">>> 构建 ${SERVICE_NAME} v${VERSION} ..."
# 本地 .m2 副本目录
M2_COPY_DIR="devops/.m2"
if [ -n "$LOCAL_M2_PATH" ] && [ -d "$LOCAL_M2_PATH/repository" ]; then
echo ">>> 复制本地 .m2/repository 到 devops/.m2 ..."
rm -rf "$M2_COPY_DIR/repository"
cp -R "$LOCAL_M2_PATH/repository" "$M2_COPY_DIR/repository"
echo ">>> 复制完成"
else
echo ">>> 错误: 未找到本地 .m2/repository"
exit 1
fi
# 构建镜像
docker build \
-t ${SERVICE_NAME}:${VERSION} \
-t ${SERVICE_NAME}:latest \
-f devops/Dockerfile .
echo ">>> 构建完成: ${SERVICE_NAME}:${VERSION}"

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- 本地仓库路径 -->
<localRepository>/root/.m2/repository</localRepository>
<!-- 离线模式:不尝试任何网络访问 -->
<offline>true</offline>
</settings>

View File

@ -30,7 +30,7 @@
</releases> </releases>
<snapshots> <snapshots>
<enabled>true</enabled> <enabled>true</enabled>
<updatePolicy>always</updatePolicy> <updatePolicy>never</updatePolicy>
</snapshots> </snapshots>
</repository> </repository>
</repositories> </repositories>

View File

@ -0,0 +1,151 @@
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '绿色企业认定', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '联合征信', NULL, NULL, NULL, '提供企业绿色属性全面评估与认证服务,通过多维度指标核查企业碳排放表现、环境管理水平和可持续发展能力,颁发权威绿色企业资质证书,适用于绿色信贷、招投标等商业场景', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '绿色项目认定', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '联合征信', NULL, NULL, NULL, '对项目的碳减排效果进行量化评估与认证,核验项目方法学适用性,核算实际产生的碳资产价值,出具符合国内外标准的绿色项目认定报告,支撑项目融资与碳资产开发', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '中小企业环境信息披露', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '联合征信', NULL, NULL, NULL, '协助企业完成环境信息合规披露涵盖碳排放数据核算、ESG信息编制及监管上报满足上市公司和出口企业的碳信息披露要求提升企业ESG评级与市场竞争力', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '碳资产管理平台解决方案', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '零数科技', NULL, NULL, NULL, '提供碳资产全生命周期数字化管理服务支持碳排放权配额登记、国际碳信用CCER等管理、交易撮合、结算清缴等功能助力企业实现碳资产保值增值', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '碳交易最优策略模拟平台解决方案', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '零数科技', NULL, NULL, NULL, '基于大数据与AI算法构建碳交易策略模型模拟不同市场情景下的交易收益辅助企业制定碳资产配置方案优化买入卖出时机降低履约成本并提升碳资产收益', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), 'CCER 碳资产开发平台解决方案', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '零数科技', NULL, NULL, NULL, '辅助企业开发核证自愿减排量CCER项目覆盖减排方法学选择、项目设计、第三方审定、减排量核查及国家发改委签发全流程提供项目全周期管理与价值评估', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), 'CBAM 辅助核算系统', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '欧冶云商', NULL, NULL, NULL, '依据欧盟碳边境调节机制CBAM法规要求为出口企业提供商品隐含碳排放量核算服务支持钢铁、铝、水泥等六大行业的数据填报生成符合欧盟要求的合规报告', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '钢铁全产业链 EPD 平台', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '欧冶云商', NULL, NULL, NULL, '提供钢铁产品环境产品声明EPD全流程服务包括产品碳足迹计算、生命周期评估LCA、第三方独立审核及国际EPD注册帮助企业获取绿色贸易通行证', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), 'OYLCA 工具', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '欧冶云商', NULL, NULL, NULL, '提供专业的生命周期碳足迹LCA评估工具支持企业快速建立产品碳核算模型引用权威排放因子数据库自动生成符合ISO 14040/14044标准的碳足迹报告', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '建筑节能降碳服务解决方案', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '时链科技', NULL, NULL, NULL, '提供建筑全生命周期节能降碳服务,涵盖能耗诊断审计、机电系统节能改造、可再生能源应用、智慧楼宇管控及碳减排量核算,实现建筑近零碳运行', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '基于医院建筑运行特征智能化碳评价', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '上海建工四建', NULL, NULL, NULL, '针对医院建筑能耗特性进行深度数据分析,建立医疗行业专属碳排放核算模型,输出智能化碳评价报告,为医院制定科学的碳减排路径与节能改造方案', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '能碳智慧管家解决方案', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '上海电气', NULL, NULL, NULL, '提供综合能源管理与碳排放监测一体化平台,实时采集企业用能数据,智能分析碳排放结构,自动生成碳排放报告,并提供优化建议支撑企业碳减排决策', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), 'ISO 14064-1 温室气体核查认证解决方案', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, 'TUV 北德', NULL, NULL, NULL, '提供组织层面温室气体排放核查认证服务指导企业建立碳排放清单通过第三方独立核查出具国际认可的ISO 14064-1核查报告证书全球通用', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), 'ISO 14067 产品碳足迹核查认证解决方案', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, 'TUV 北德', NULL, NULL, NULL, '依据ISO 14067标准提供产品碳足迹核查认证服务覆盖产品全生命周期碳排放量化、数据质量评估与第三方验证帮助企业获得产品碳足迹认证并获取绿色产品标识', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), 'ISO 14068-1 碳中和核查认证解决方案', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, 'TUV 北德', NULL, NULL, NULL, '核查组织或产品的碳中和路径规划与抵消方案评估碳抵消项目的真实性与有效性出具符合ISO 14068-1标准的碳中和认证证书提升企业绿色品牌公信力', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), 'ISO 14064 盘查 & 核查服务流程', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '必维认证', NULL, NULL, NULL, '提供温室气体排放量盘查及第三方核查服务全流程指导,帮助企业建立碳排放核算体系,完成数据收集、排放量计算及第三方核查认证,确保符合国内外碳披露要求', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), 'ISO 14067 产品碳足迹服务流程', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '必维认证', NULL, NULL, NULL, '按照ISO 14067标准提供产品碳足迹核算与认证全流程服务覆盖碳足迹建模、数据收集、排放计算及第三方验证帮助企业量化产品碳排放并获取国际认可的碳标签', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), 'ISO 14068 碳中和服务流程', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '必维认证', NULL, NULL, NULL, '提供碳中和认证全流程服务,包括碳足迹盘查、碳抵消方案设计、碳信用购买指导及碳中和声明验证,协助企业实现碳中和目标并获得权威认证', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), 'PAS 2080 碳管理体系服务流程', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '必维认证', NULL, NULL, NULL, '提供碳管理体系建设咨询与认证服务依据PAS 2080标准帮助企业建立碳管理治理架构制定碳减排目标与路径推动供应链协同降碳提升整体碳效率', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), 'CBAM 填报 & 核验服务流程', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '必维认证', NULL, NULL, NULL, '提供欧盟碳边境调节机制CBAM合规服务全流程辅助完成数据收集、隐含碳计算、季度报告填报及年度第三方核验确保对欧出口企业符合CBAM法规要求', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), 'HiQLCD 数据库 + HiQEditor', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '易碳数科', NULL, NULL, NULL, '提供权威碳排放因子数据库及可视化编辑工具支持企业快速建立产品碳足迹核算模型内置行业标准排放因子库自动生成符合国内国际标准的碳足迹报告与EPD文档', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '积木 LCA 云', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '易碳数科', NULL, NULL, NULL, '基于SaaS模式的生命周期评估LCA云平台提供模块化碳核算工具与可视化看板支持产品碳足迹、企业碳足迹、项目碳减排量等多场景LCA分析数据可追溯可共享', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '积木碳云', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '易碳数科', NULL, NULL, NULL, '提供企业碳管理一站式云服务,涵盖碳排放监测与管理、减排项目管理、碳资产对接、碳普惠积分等功能,支持与碳交易所对接,助力企业实现碳数字化管理', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '碳边境调节机制计算工具 CBAM TOOL', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '易碳数科', NULL, NULL, NULL, '依据欧盟CBAM法规提供在线碳排放计算工具支持多行业多产品隐含碳排放量自动核算一键生成符合欧盟格式要求的CBAM填报报表与合规证明文件', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '零碳园区解决方案', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, 'AMT 企源', NULL, NULL, NULL, '提供零碳园区顶层规划与实施全流程解决方案,涵盖碳排放盘查、零碳路径规划、智慧能源系统建设、碳中和实施路径设计及第三方认证,打造近零碳示范园区', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '基于区块链技术的组织碳管理平台', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, 'AMT 企源', NULL, NULL, NULL, '利用区块链去中心化、不可篡改的特性建立可信碳管理账本,实现组织碳排放数据的链上存证、可信溯源与跨机构共享,杜绝数据造假,提升碳数据公信力', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '可持续供应链溯源解决方案', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, 'AMT 企源', NULL, NULL, NULL, '基于区块链技术构建绿色供应链追溯体系,追踪上游原材料碳足迹与环保属性,确保供应链碳排放数据透明可信,帮助企业满足欧盟碳边境调节机制对供应链的要求', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '基于区块链技术的能碳双控解决方案', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, 'AMT 企源', NULL, NULL, NULL, '融合能源管理与碳排放监测两大系统,利用区块链技术实现能耗与碳排放数据的可信关联与协同管控,支持绿电溯源、碳排放计量及碳资产确权', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '区块链驱动的全生命周期碳足迹溯源', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, 'AMT 企源', NULL, NULL, NULL, '通过区块链技术记录产品从原材料、生产、运输到使用、废弃的全生命周期碳数据,实现碳足迹的的可信溯源、防篡改验证与多方共识,服务于绿色贸易与品牌建设', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '绿色产品生态设计平台', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, 'AMT 企源', NULL, NULL, NULL, '提供绿色产品生态设计数字化工具,辅助企业在产品研发阶段融入低碳理念,进行材料选型、工艺优化、碳影响评估,推动产品全生命周期绿色化', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), 'ESG 综合服务平台', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, 'AMT 企源', NULL, NULL, NULL, '提供ESG评级提升、ESG报告编制、信息披露指导、ESG管理培训等一站式服务帮助企业系统性提升ESG表现满足资本市场与监管机构的可持续发展信息披露要求', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), 'CBAM 申报平台', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, 'AMT 企源', NULL, NULL, NULL, '提供CBAM数据智能采集、报表自动生成、在线申报及进度追踪等一站式服务支持与欧盟CBAM系统对接确保数据准确完整降低企业合规申报成本与风险', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '可再生能源溯源解决方案(源侧)', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '中国电气装备', NULL, NULL, NULL, '提供可再生能源发电碳减排量核算与绿证溯源服务,利用区块链技术追踪绿色电力从发电到消纳的全生命周期,支撑企业实现绿电消费与碳减排目标', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '智能微电网自洽系统解决方案(网侧)', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '中国电气装备', NULL, NULL, NULL, '提供智能微电网能量管理系统解决方案,实现分布式光伏、储能、充电桩等资源的协调优化控制,提升新能源消纳率,降低电网碳排放强度', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '零碳园区解决方案(荷侧)', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '中国电气装备', NULL, NULL, NULL, '提供园区负荷侧综合能源管理与碳排放监测服务,涵盖智慧照明、空调群控、能耗优化及碳排放计量,通过需求侧响应实现园区碳排放精细化管理', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '电化学储能解决方案(储侧)', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '中国电气装备', NULL, NULL, NULL, '提供电化学储能系统集成与运维服务,通过峰谷套利、需求响应、调频辅助服务等模式优化电力碳排放结构,支撑企业降低碳排放强度与用能成本', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '碳数据库解决方案(装备侧)', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '中国电气装备', NULL, NULL, NULL, '提供能源装备碳排放数据库建设与运维服务,建立设备级碳排放计量标准与数据集,为企业碳排放精细化管理提供数据支撑,服务于企业碳资产核算与碳交易', NULL);
INSERT INTO `txw_gxzx_gxxxb`
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
VALUES(REPLACE(UUID(), '-', ''), '虚拟电厂场景解决方案(调控侧)', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '中国电气装备', NULL, NULL, NULL, '提供虚拟电厂运营管理平台,聚合分布式可再生能源、储能、可控负荷等资源,参与电力辅助服务和碳减排权交易,实现多能互补与碳排放优化协同调控', NULL);

View File

@ -125,6 +125,7 @@
<version>${spring.boot.version}</version> <version>${spring.boot.version}</version>
<configuration> <configuration>
<fork>true</fork> <fork>true</fork>
<mainClass>com.css.txw.mhzc.app.DevAppStarter</mainClass>
</configuration> </configuration>
<executions> <executions>
<execution> <execution>

View File

@ -0,0 +1,25 @@
--- #################### 注册中心相关配置 ####################
spring:
cloud:
nacos:
server-addr: txw-nacos:8848
username: qyddev
password: "9!1%Sw#QydNacosDev"
discovery:
namespace: bcf8de57-7215-4934-aced-ab382d504aff # 命名空间。这里使用本地开发环境
--- #################### 配置中心相关配置 ####################
spring:
cloud:
nacos:
# Nacos Config 配置项,对应 NacosConfigProperties 配置属性类
config:
server-addr: txw-nacos:8848 # Nacos 服务器地址(本地开发环境)
username: qyddev
password: "9!1%Sw#QydNacosDev"
namespace: bcf8de57-7215-4934-aced-ab382d504aff # 命名空间。这里使用本地开发环境
group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
name: ${spring.application.name} # 使用的 Nacos 配置集的 dataId默认为 spring.application.name
file-extension: yaml # 使用的 Nacos 配置集的 dataId 的文件拓展名,同时也是 Nacos 配置集的配置格式,默认为 properties

View File

@ -0,0 +1,25 @@
--- #################### 注册中心相关配置 ####################
spring:
cloud:
nacos:
server-addr: txw-nacos:8848
username: qyddev
password: "9!1%Sw#QydNacosDev"
discovery:
namespace: 2fd09a25-3ac4-48ac-a2f1-eb7e93163529 # 命名空间。这里使用本地开发环境
--- #################### 配置中心相关配置 ####################
spring:
cloud:
nacos:
# Nacos Config 配置项,对应 NacosConfigProperties 配置属性类
config:
server-addr: txw-nacos:8848 # Nacos 服务器地址(本地开发环境)
username: qyddev
password: "9!1%Sw#QydNacosDev"
namespace: 2fd09a25-3ac4-48ac-a2f1-eb7e93163529 # 命名空间。这里使用本地开发环境
group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
name: ${spring.application.name} # 使用的 Nacos 配置集的 dataId默认为 spring.application.name
file-extension: yaml # 使用的 Nacos 配置集的 dataId 的文件拓展名,同时也是 Nacos 配置集的配置格式,默认为 properties

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- 本地仓库路径 -->
<localRepository>/root/.m2/repository</localRepository>
<!-- 离线模式:不尝试任何网络访问 -->
<offline>true</offline>
</settings>

View File

@ -30,7 +30,7 @@
</releases> </releases>
<snapshots> <snapshots>
<enabled>true</enabled> <enabled>true</enabled>
<updatePolicy>always</updatePolicy> <updatePolicy>never</updatePolicy>
</snapshots> </snapshots>
</repository> </repository>
</repositories> </repositories>

View File

@ -129,6 +129,7 @@
<version>${spring.boot.version}</version> <version>${spring.boot.version}</version>
<configuration> <configuration>
<fork>true</fork> <fork>true</fork>
<mainClass>com.css.txw.sso.app.DevAppStarter</mainClass>
</configuration> </configuration>
<executions> <executions>
<execution> <execution>

View File

@ -0,0 +1,27 @@
--- #################### 注册中心相关配置 ####################
spring:
cloud:
nacos:
server-addr: txw-nacos:8848
username: qyddev
password: "9!1%Sw#QydNacosDev"
discovery:
namespace: bcf8de57-7215-4934-aced-ab382d504aff # 命名空间。这里使用本地开发环境
metadata:
version: 1.0.0-SNAPSHOT # 服务实例的版本号,可用于灰度发布
--- #################### 配置中心相关配置 ####################
spring:
cloud:
nacos:
# Nacos Config 配置项,对应 NacosConfigProperties 配置属性类
config:
server-addr: txw-nacos:8848 # Nacos 服务器地址(本地开发环境)
username: qyddev
password: "9!1%Sw#QydNacosDev"
namespace: bcf8de57-7215-4934-aced-ab382d504aff # 命名空间。这里使用本地开发环境
group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
name: ${spring.application.name} # 使用的 Nacos 配置集的 dataId默认为 spring.application.name
file-extension: yaml # 使用的 Nacos 配置集的 dataId 的文件拓展名,同时也是 Nacos 配置集的配置格式,默认为 properties

View File

@ -0,0 +1,27 @@
--- #################### 注册中心相关配置 ####################
spring:
cloud:
nacos:
server-addr: txw-nacos:8848
username: qyddev
password: "9!1%Sw#QydNacosDev"
discovery:
namespace: 2fd09a25-3ac4-48ac-a2f1-eb7e93163529 # 命名空间。这里使用本地开发环境
metadata:
version: 1.0.0-SNAPSHOT # 服务实例的版本号,可用于灰度发布
--- #################### 配置中心相关配置 ####################
spring:
cloud:
nacos:
# Nacos Config 配置项,对应 NacosConfigProperties 配置属性类
config:
server-addr: txw-nacos:8848 # Nacos 服务器地址(本地开发环境)
username: qyddev
password: "9!1%Sw#QydNacosDev"
namespace: 2fd09a25-3ac4-48ac-a2f1-eb7e93163529 # 命名空间。这里使用本地开发环境
group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
name: ${spring.application.name} # 使用的 Nacos 配置集的 dataId默认为 spring.application.name
file-extension: yaml # 使用的 Nacos 配置集的 dataId 的文件拓展名,同时也是 Nacos 配置集的配置格式,默认为 properties

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- 本地仓库路径 -->
<localRepository>/root/.m2/repository</localRepository>
<!-- 离线模式:不尝试任何网络访问 -->
<offline>true</offline>
</settings>

View File

@ -30,7 +30,7 @@
</releases> </releases>
<snapshots> <snapshots>
<enabled>true</enabled> <enabled>true</enabled>
<updatePolicy>always</updatePolicy> <updatePolicy>never</updatePolicy>
</snapshots> </snapshots>
</repository> </repository>
</repositories> </repositories>

View File

@ -107,6 +107,7 @@
<version>${spring.boot.version}</version> <version>${spring.boot.version}</version>
<configuration> <configuration>
<fork>true</fork> <fork>true</fork>
<mainClass>com.css.txw.yygl.app.DevAppStarter</mainClass>
</configuration> </configuration>
<executions> <executions>
<execution> <execution>

View File

@ -0,0 +1,27 @@
--- #################### 注册中心相关配置 ####################
spring:
cloud:
nacos:
server-addr: txw-nacos:8848
username: qyddev
password: 9!1%Sw#QydNacosDev
discovery:
namespace: bcf8de57-7215-4934-aced-ab382d504aff # 命名空间。这里使用本地开发环境
metadata:
version: 1.0.0-SNAPSHOT # 服务实例的版本号,可用于灰度发布
--- #################### 配置中心相关配置 ####################
spring:
cloud:
nacos:
# Nacos Config 配置项,对应 NacosConfigProperties 配置属性类
config:
server-addr: txw-nacos:8848 # Nacos 服务器地址(本地开发环境)
username: qyddev
password: 9!1%Sw#QydNacosDev
namespace: bcf8de57-7215-4934-aced-ab382d504aff # 命名空间。这里使用本地开发环境
group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
name: ${spring.application.name} # 使用的 Nacos 配置集的 dataId默认为 spring.application.name
file-extension: yaml # 使用的 Nacos 配置集的 dataId 的文件拓展名,同时也是 Nacos 配置集的配置格式,默认为 properties

View File

@ -0,0 +1,27 @@
--- #################### 注册中心相关配置 ####################
spring:
cloud:
nacos:
server-addr: txw-nacos:8848
username: qyddev
password: 9!1%Sw#QydNacosDev
discovery:
namespace: 2fd09a25-3ac4-48ac-a2f1-eb7e93163529 # 命名空间。这里使用本地开发环境
metadata:
version: 1.0.0-SNAPSHOT # 服务实例的版本号,可用于灰度发布
--- #################### 配置中心相关配置 ####################
spring:
cloud:
nacos:
# Nacos Config 配置项,对应 NacosConfigProperties 配置属性类
config:
server-addr: txw-nacos:8848 # Nacos 服务器地址(本地开发环境)
username: qyddev
password: 9!1%Sw#QydNacosDev
namespace: 2fd09a25-3ac4-48ac-a2f1-eb7e93163529 # 命名空间。这里使用本地开发环境
group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
name: ${spring.application.name} # 使用的 Nacos 配置集的 dataId默认为 spring.application.name
file-extension: yaml # 使用的 Nacos 配置集的 dataId 的文件拓展名,同时也是 Nacos 配置集的配置格式,默认为 properties