diff --git a/devops/.figma-hydt-banner-api.json b/devops/.figma-hydt-banner-api.json new file mode 100644 index 0000000..b3aa4eb --- /dev/null +++ b/devops/.figma-hydt-banner-api.json @@ -0,0 +1,479 @@ +{ + "name": "碳信网-正式设计稿", + "lastModified": "2026-05-23T10:49:08Z", + "thumbnailUrl": "https://s3-alpha.figma.com/thumbnails/61f20188-408f-4871-98c7-92cf0c72d7d6?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Credential=AKIAQ4GOSFWCUPUXLFMB%2F20260521%2Fus-west-2%2Fs3%2Faws4_request\u0026X-Amz-Date=20260521T000000Z\u0026X-Amz-Expires=604800\u0026X-Amz-SignedHeaders=host\u0026X-Amz-Signature=b67e1be98b6a995b838bd4659abe85ac296d99ccc5ebb6f9bec5dec64cdd8d34", + "version": "2356712417208056783", + "role": "editor", + "editorType": "figma", + "linkAccess": "view", + "nodes": { + "150622:19115": { + "document": { + "id": "150622:19115", + "name": "banner-bg", + "type": "FRAME", + "scrollBehavior": "SCROLLS", + "children": [ + { + "id": "150622:19116", + "name": "轮播背景", + "visible": false, + "type": "GROUP", + "scrollBehavior": "SCROLLS", + "children": [ + { + "id": "150622:19117", + "name": "轮播图", + "visible": false, + "type": "RECTANGLE", + "scrollBehavior": "SCROLLS", + "blendMode": "PASS_THROUGH", + "fills": [ + "@{blendMode=NORMAL; type=IMAGE; scaleMode=FILL; imageRef=58751fea63b49a07308d7b2b993b5637578504f1}", + "@{blendMode=NORMAL; visible=False; type=GRADIENT_LINEAR; gradientHandlePositions=System.Object[]; gradientStops=System.Object[]}" + ], + "strokes": [ + + ], + "strokeWeight": 1.0, + "strokeAlign": "INSIDE", + "absoluteBoundingBox": { + "x": -5750.6093750, + "y": 2851.3713378906250, + "width": 725.21246337890625, + "height": 237.960449218750 + }, + "absoluteRenderBounds": null, + "preserveRatio": true, + "targetAspectRatio": { + "x": 1920.0, + "y": 630.0 + }, + "constraints": { + "vertical": "CENTER", + "horizontal": "CENTER" + }, + "effects": [ + + ], + "interactions": [ + + ], + "complexStrokeProperties": { + "strokeType": "BASIC" + } + }, + { + "id": "150622:19118", + "name": "图层 1 1", + "type": "RECTANGLE", + "scrollBehavior": "SCROLLS", + "blendMode": "PASS_THROUGH", + "fills": [ + "@{blendMode=NORMAL; type=IMAGE; scaleMode=FIT; imageRef=1846bf7c8552900a6aa81501b26c6bd000a6b090}" + ], + "strokes": [ + + ], + "strokeWeight": 1.0, + "strokeAlign": "INSIDE", + "absoluteBoundingBox": { + "x": -5783.0, + "y": 2828.0, + "width": 1440.0, + "height": 617.0 + }, + "absoluteRenderBounds": null, + "preserveRatio": true, + "targetAspectRatio": { + "x": 4096.0, + "y": 1755.0 + }, + "constraints": { + "vertical": "TOP", + "horizontal": "LEFT" + }, + "effects": [ + + ], + "interactions": [ + + ], + "complexStrokeProperties": { + "strokeType": "BASIC" + } + }, + { + "id": "150622:19119", + "name": "image 68", + "type": "RECTANGLE", + "scrollBehavior": "SCROLLS", + "blendMode": "PASS_THROUGH", + "fills": [ + "@{blendMode=NORMAL; type=IMAGE; scaleMode=FILL; imageRef=f93f77317801ca8cd07e66f0aee7b2c6966f4e79}" + ], + "strokes": [ + + ], + "strokeWeight": 1.0, + "strokeAlign": "INSIDE", + "absoluteBoundingBox": { + "x": -5783.0, + "y": 2837.0, + "width": 1440.0, + "height": 450.0 + }, + "absoluteRenderBounds": null, + "preserveRatio": true, + "targetAspectRatio": { + "x": 1200.0, + "y": 375.0 + }, + "constraints": { + "vertical": "TOP", + "horizontal": "LEFT" + }, + "effects": [ + + ], + "interactions": [ + + ], + "complexStrokeProperties": { + "strokeType": "BASIC" + } + } + ], + "blendMode": "PASS_THROUGH", + "clipsContent": false, + "background": [ + + ], + "fills": [ + + ], + "strokes": [ + + ], + "strokeWeight": 1.0, + "strokeAlign": "INSIDE", + "backgroundColor": { + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "absoluteBoundingBox": { + "x": -5783.0, + "y": 2828.0, + "width": 1440.0, + "height": 617.0 + }, + "absoluteRenderBounds": null, + "targetAspectRatio": { + "x": 1440.0, + "y": 617.0 + }, + "constraints": { + "vertical": "TOP", + "horizontal": "CENTER" + }, + "layoutAlign": "INHERIT", + "layoutGrow": 0.0, + "layoutPositioning": "ABSOLUTE", + "layoutSizingHorizontal": "FIXED", + "layoutSizingVertical": "FIXED", + "exportSettings": [ + { + "suffix": "", + "format": "PNG", + "constraint": { + "type": "SCALE", + "value": 1.0 + } + }, + { + "suffix": "@2x", + "format": "PNG", + "constraint": { + "type": "SCALE", + "value": 2.0 + } + } + ], + "effects": [ + + ], + "interactions": [ + + ], + "complexStrokeProperties": { + "strokeType": "BASIC" + } + }, + { + "id": "150622:19144", + "name": "Frame 299", + "type": "FRAME", + "scrollBehavior": "SCROLLS", + "children": [ + { + "id": "150622:19151", + "name": "Frame 300", + "type": "FRAME", + "scrollBehavior": "SCROLLS", + "children": [ + "@{id=150660:3096; name=Frame 330; type=FRAME; scrollBehavior=SCROLLS; children=System.Object[]; blendMode=PASS_THROUGH; clipsContent=False; background=System.Object[]; fills=System.Object[]; strokes=System.Object[]; strokeWeight=1.0; strokeAlign=INSIDE; backgroundColor=; layoutMode=HORIZONTAL; counterAxisAlignItems=CENTER; primaryAxisAlignItems=CENTER; layoutWrap=NO_WRAP; absoluteBoundingBox=; absoluteRenderBounds=; constraints=; layoutAlign=INHERIT; layoutGrow=0.0; layoutSizingHorizontal=HUG; layoutSizingVertical=HUG; effects=System.Object[]; interactions=System.Object[]; complexStrokeProperties=}" + ], + "blendMode": "PASS_THROUGH", + "clipsContent": false, + "background": [ + + ], + "fills": [ + + ], + "strokes": [ + + ], + "strokeWeight": 1.0, + "strokeAlign": "INSIDE", + "backgroundColor": { + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "layoutMode": "HORIZONTAL", + "primaryAxisSizingMode": "FIXED", + "counterAxisAlignItems": "CENTER", + "itemSpacing": 10.0, + "layoutWrap": "NO_WRAP", + "absoluteBoundingBox": { + "x": -5663.0, + "y": 2887.0, + "width": 1200.0, + "height": 18.0 + }, + "absoluteRenderBounds": { + "x": -5663.0, + "y": 2887.0, + "width": 1200.0, + "height": 18.0 + }, + "constraints": { + "vertical": "TOP", + "horizontal": "LEFT" + }, + "layoutAlign": "STRETCH", + "layoutGrow": 0.0, + "layoutSizingHorizontal": "FILL", + "layoutSizingVertical": "HUG", + "effects": [ + + ], + "interactions": [ + + ], + "complexStrokeProperties": { + "strokeType": "BASIC" + } + }, + { + "id": "150622:19120", + "name": "title", + "type": "FRAME", + "scrollBehavior": "SCROLLS", + "children": [ + "@{id=150622:19121; name=Frame 289; type=FRAME; scrollBehavior=SCROLLS; children=System.Object[]; blendMode=PASS_THROUGH; clipsContent=False; background=System.Object[]; fills=System.Object[]; strokes=System.Object[]; strokeWeight=1.0; individualStrokeWeights=; strokeAlign=INSIDE; backgroundColor=; layoutMode=HORIZONTAL; counterAxisAlignItems=CENTER; primaryAxisAlignItems=CENTER; paddingBottom=20.0; layoutWrap=NO_WRAP; absoluteBoundingBox=; absoluteRenderBounds=; constraints=; layoutAlign=INHERIT; layoutGrow=0.0; layoutSizingHorizontal=HUG; layoutSizingVertical=HUG; effects=System.Object[]; interactions=System.Object[]; complexStrokeProperties=}", + "@{id=150622:19123; name=动态; type=TEXT; scrollBehavior=SCROLLS; blendMode=PASS_THROUGH; fills=System.Object[]; strokes=System.Object[]; strokeWeight=2.0; strokeAlign=OUTSIDE; absoluteBoundingBox=; absoluteRenderBounds=; constraints=; layoutAlign=INHERIT; layoutGrow=0.0; layoutSizingHorizontal=HUG; layoutSizingVertical=HUG; characters=动态; characterStyleOverrides=System.Object[]; styleOverrideTable=; lineTypes=System.Object[]; lineIndentations=System.Object[]; style=; layoutVersion=5; effects=System.Object[]; interactions=System.Object[]; complexStrokeProperties=}" + ], + "blendMode": "PASS_THROUGH", + "clipsContent": false, + "background": [ + + ], + "fills": [ + + ], + "strokes": [ + + ], + "strokeWeight": 1.0, + "strokeAlign": "INSIDE", + "backgroundColor": { + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "layoutMode": "HORIZONTAL", + "primaryAxisSizingMode": "FIXED", + "paddingTop": 20.0, + "paddingBottom": 20.0, + "layoutWrap": "NO_WRAP", + "absoluteBoundingBox": { + "x": -5663.0, + "y": 2971.0, + "width": 1300.0, + "height": 128.0 + }, + "absoluteRenderBounds": { + "x": -5663.0, + "y": 2971.0, + "width": 1300.0, + "height": 128.0 + }, + "constraints": { + "vertical": "TOP", + "horizontal": "LEFT" + }, + "layoutAlign": "INHERIT", + "layoutGrow": 0.0, + "layoutSizingHorizontal": "FIXED", + "layoutSizingVertical": "HUG", + "effects": [ + + ], + "interactions": [ + + ], + "complexStrokeProperties": { + "strokeType": "BASIC" + } + } + ], + "blendMode": "PASS_THROUGH", + "clipsContent": false, + "background": [ + + ], + "fills": [ + + ], + "strokes": [ + + ], + "strokeWeight": 1.0, + "strokeAlign": "INSIDE", + "backgroundColor": { + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "layoutMode": "VERTICAL", + "counterAxisSizingMode": "FIXED", + "itemSpacing": 66.0, + "layoutWrap": "NO_WRAP", + "absoluteBoundingBox": { + "x": -5663.0, + "y": 2887.0, + "width": 1200.0, + "height": 212.0 + }, + "absoluteRenderBounds": { + "x": -5663.0, + "y": 2887.0, + "width": 1300.0, + "height": 212.0 + }, + "constraints": { + "vertical": "TOP", + "horizontal": "LEFT" + }, + "layoutAlign": "INHERIT", + "layoutGrow": 0.0, + "layoutSizingHorizontal": "FIXED", + "layoutSizingVertical": "HUG", + "effects": [ + + ], + "interactions": [ + + ], + "complexStrokeProperties": { + "strokeType": "BASIC" + } + } + ], + "blendMode": "PASS_THROUGH", + "clipsContent": true, + "background": [ + { + "blendMode": "NORMAL", + "type": "IMAGE", + "scaleMode": "FILL", + "imageRef": "ec2e3dd7712a18b5bc9453353f13d8202930c6bd" + } + ], + "fills": [ + { + "blendMode": "NORMAL", + "type": "IMAGE", + "scaleMode": "FILL", + "imageRef": "ec2e3dd7712a18b5bc9453353f13d8202930c6bd" + } + ], + "strokes": [ + + ], + "strokeWeight": 1.0, + "strokeAlign": "INSIDE", + "backgroundColor": { + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "layoutMode": "VERTICAL", + "counterAxisSizingMode": "FIXED", + "primaryAxisSizingMode": "FIXED", + "counterAxisAlignItems": "CENTER", + "paddingLeft": 286.0, + "paddingRight": 286.0, + "paddingTop": 24.0, + "paddingBottom": 75.0, + "itemSpacing": 10.0, + "layoutWrap": "NO_WRAP", + "absoluteBoundingBox": { + "x": -5783.0, + "y": 2863.0, + "width": 1440.0, + "height": 350.0 + }, + "absoluteRenderBounds": { + "x": -5783.0, + "y": 2863.0, + "width": 1440.0, + "height": 350.0 + }, + "constraints": { + "vertical": "TOP", + "horizontal": "LEFT" + }, + "layoutSizingHorizontal": "FIXED", + "layoutSizingVertical": "FIXED", + "effects": [ + + ], + "interactions": [ + + ], + "complexStrokeProperties": { + "strokeType": "BASIC" + } + }, + "components": { + + }, + "componentSets": { + + }, + "schemaVersion": 0, + "styles": { + + } + } + } +} diff --git a/devops/.figma-hyzt-banner-api.json b/devops/.figma-hyzt-banner-api.json new file mode 100644 index 0000000..e69de29 diff --git a/devops/.figma-hyzt-fresh.json b/devops/.figma-hyzt-fresh.json new file mode 100644 index 0000000..365ea98 --- /dev/null +++ b/devops/.figma-hyzt-fresh.json @@ -0,0 +1,7 @@ +C:\nvm4w\nodejs\npx.cmd : Invalid URL +所在位置 C:\Users\23721\AppData\Local\Temp\ps-script-5862c083-c1f6-43bc-823a-aa3dea431e6c.ps1:114 字符: 143 ++ ... I_KEY=',''; C:\nvm4w\nodejs\npx.cmd -y figma-developer-mcp fetch --en ... ++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + CategoryInfo : NotSpecified: (Invalid URL:String) [], RemoteException + + FullyQualifiedErrorId : NativeCommandError + diff --git a/docs/superpowers/plans/2026-04-22-gxzx-migration-plan.md b/docs/superpowers/plans/2026-04-22-gxzx-migration-plan.md deleted file mode 100644 index 0dd9fd2..0000000 --- a/docs/superpowers/plans/2026-04-22-gxzx-migration-plan.md +++ /dev/null @@ -1,280 +0,0 @@ -# gxzx 服务迁移至 mhzc - 完整执行方案 - -> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task. - -**Goal:** 将 `txw-gxzx` 微服务(供需大厅/绿色金融/绿色交易/企业入驻)的全部代码和数据库迁移到 `txw-mhzc` 服务 - -**Architecture:** 代码迁移采用"整体迁移+批量修改包名"的策略,先迁移文件再统一修改import;数据库采用"目标库创建表+数据同步"的方案 - -**Tech Stack:** Java/Spring Boot, MyBatis, MySQL/达梦数据库, Maven多模块 - ---- - -## 一、文件迁移清单(共62个文件) - -### 1.1 Controller层(4个) - -| # | 源文件 | 目标路径 | -|---|--------|----------| -| 1 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/controller/GxdtController.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/controller/gxzx/GxdtController.java` | -| 2 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/controller/LsjrController.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/controller/gxzx/LsjrController.java` | -| 3 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/controller/LsjyController.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/controller/gxzx/LsjyController.java` | -| 4 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/controller/QyRzController.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/controller/gxzx/QyRzController.java` | - -### 1.2 Service接口层(10个) - -| # | 源文件 | 目标路径 | -|---|--------|----------| -| 5 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/TxwGxzxGxbqbService.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/TxwGxzxGxbqbService.java` | -| 6 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/TxwGxzxGxscbService.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/TxwGxzxGxscbService.java` | -| 7 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/TxwGxzxGxxxbService.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/TxwGxzxGxxxbService.java` | -| 8 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/TxwGxzxQybqbService.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/TxwGxzxQybqbService.java` | -| 9 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/TxwGxzxRzsqjlbService.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/TxwGxzxRzsqjlbService.java` | -| 10 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/TxwGxzxShqkbService.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/TxwGxzxShqkbService.java` | -| 11 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/lsjr/GxzxDkbxsqxxService.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/lsjr/GxzxDkbxsqxxService.java` | -| 12 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/lsjr/GxzxLsjrService.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/lsjr/GxzxLsjrService.java` | -| 13 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/lsjr/GxzxLsjrcpxxService.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/lsjr/GxzxLsjrcpxxService.java` | -| 14 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/lsjy/GxzxLsjyZcxxService.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/lsjy/GxzxLsjyZcxxService.java` | - -### 1.3 Service实现层(10个) - -| # | 源文件 | 目标路径 | -|---|--------|----------| -| 15 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/impl/TxwGxzxGxbqbServiceImpl.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/impl/TxwGxzxGxbqbServiceImpl.java` | -| 16 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/impl/TxwGxzxGxscbServiceImpl.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/impl/TxwGxzxGxscbServiceImpl.java` | -| 17 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/impl/TxwGxzxGxxxbServiceImpl.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/impl/TxwGxzxGxxxbServiceImpl.java` | -| 18 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/impl/TxwGxzxQybqbServiceImpl.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/impl/TxwGxzxQybqbServiceImpl.java` | -| 19 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/impl/TxwGxzxRzsqjlbServiceImpl.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/impl/TxwGxzxRzsqjlbServiceImpl.java` | -| 20 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/impl/TxwGxzxShqkbServiceImpl.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/impl/TxwGxzxShqkbServiceImpl.java` | -| 21 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/lsjr/impl/GxzxDkbxsqxxServiceImpl.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/lsjr/impl/GxzxDkbxsqxxServiceImpl.java` | -| 22 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/lsjr/impl/GxzxLsjrcpxxServiceImpl.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/lsjr/impl/GxzxLsjrcpxxServiceImpl.java` | -| 23 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/lsjr/impl/GxzxLsjrServiceImpl.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/lsjr/impl/GxzxLsjrServiceImpl.java` | -| 24 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/lsjy/impl/GxzxLsjyZcxxServiceImpl.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/lsjy/impl/GxzxLsjyZcxxServiceImpl.java` | - -### 1.4 Mapper接口层(9个) - -| # | 源文件 | 目标路径 | -|---|--------|----------| -| 25 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/mapper/TxwGxzxGxbqbMapper.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/gxzx/TxwGxzxGxbqbMapper.java` | -| 26 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/mapper/TxwGxzxGxscbMapper.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/gxzx/TxwGxzxGxscbMapper.java` | -| 27 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/mapper/TxwGxzxGxxxbMapper.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/gxzx/TxwGxzxGxxxbMapper.java` | -| 28 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/mapper/TxwGxzxQybqbMapper.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/gxzx/TxwGxzxQybqbMapper.java` | -| 29 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/mapper/TxwGxzxRzsqjlbMapper.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/gxzx/TxwGxzxRzsqjlbMapper.java` | -| 30 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/mapper/TxwGxzxShqkbMapper.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/gxzx/TxwGxzxShqkbMapper.java` | -| 31 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/mapper/lsjr/GxzxDkbxsqxxMapper.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/gxzx/lsjr/GxzxDkbxsqxxMapper.java` | -| 32 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/mapper/lsjr/GxzxLsjrcpxxMapper.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/gxzx/lsjr/GxzxLsjrcpxxMapper.java` | -| 33 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/mapper/lsjy/GxzxLsjyZcxxMapper.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/gxzx/lsjy/GxzxLsjyZcxxMapper.java` | - -### 1.5 Domain层(6个) - -| # | 源文件 | 目标路径 | -|---|--------|----------| -| 34 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/domain/TxwGxzxGxbqbDO.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/domain/gxzx/TxwGxzxGxbqbDO.java` | -| 35 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/domain/TxwGxzxGxscbDO.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/domain/gxzx/TxwGxzxGxscbDO.java` | -| 36 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/domain/TxwGxzxGxxxbDO.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/domain/gxzx/TxwGxzxGxxxbDO.java` | -| 37 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/domain/TxwGxzxQybqbDO.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/domain/gxzx/TxwGxzxQybqbDO.java` | -| 38 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/domain/TxwGxzxRzsqjlbDO.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/domain/gxzx/TxwGxzxRzsqjlbDO.java` | -| 39 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/domain/TxwGxzxShqkbDO.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/domain/gxzx/TxwGxzxShqkbDO.java` | - -### 1.6 VO层(13个) - -| # | 源文件 | 目标路径 | -|---|--------|----------| -| 40 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/GetGxSqListReqVO.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/GetGxSqListReqVO.java` | -| 41 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/GxfbReqVO.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/GxfbReqVO.java` | -| 42 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/GxscReqVO.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/GxscReqVO.java` | -| 43 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/GxsjReqVO.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/GxsjReqVO.java` | -| 44 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/GxspReqVO.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/GxspReqVO.java` | -| 45 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/GxsqResVO.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/GxsqResVO.java` | -| 46 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/GxxxReqVO.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/GxxxReqVO.java` | -| 47 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/GxxxVO.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/GxxxVO.java` | -| 48 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/QyrzListReqVO.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/QyrzListReqVO.java` | -| 49 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/QyRzSpReqVO.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/QyRzSpReqVO.java` | -| 50 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/QyRzSqReqVO.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/QyRzSqReqVO.java` | -| 51 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/QyRzSqxxVO.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/QyRzSqxxVO.java` | -| 52 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/vo/ShqkxxVO.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/ShqkxxVO.java` | - -### 1.7 Dto层(1个) - -| # | 源文件 | 目标路径 | -|---|--------|----------| -| 53 | `txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/pojo/dto/GxzxLsjrcpImportDto.java` | `txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/dto/gxzx/GxzxLsjrcpImportDto.java` | - -### 1.8 Mapper XML层(9个) - -| # | 源文件 | 目标路径 | -|---|--------|----------| -| 54 | `txw-gxzx-service-biz/src/main/resources/mapper/TxwGxzxGxbqbMapper.xml` | `txw-mhzc-service-biz/src/main/resources/mapper/gxzx/TxwGxzxGxbqbMapper.xml` | -| 55 | `txw-gxzx-service-biz/src/main/resources/mapper/TxwGxzxGxscbMapper.xml` | `txw-mhzc-service-biz/src/main/resources/mapper/gxzx/TxwGxzxGxscbMapper.xml` | -| 56 | `txw-gxzx-service-biz/src/main/resources/mapper/TxwGxzxGxxxbMapper.xml` | `txw-mhzc-service-biz/src/main/resources/mapper/gxzx/TxwGxzxGxxxbMapper.xml` | -| 57 | `txw-gxzx-service-biz/src/main/resources/mapper/TxwGxzxQybqbMapper.xml` | `txw-mhzc-service-biz/src/main/resources/mapper/gxzx/TxwGxzxQybqbMapper.xml` | -| 58 | `txw-gxzx-service-biz/src/main/resources/mapper/TxwGxzxRzsqjlbMapper.xml` | `txw-mhzc-service-biz/src/main/resources/mapper/gxzx/TxwGxzxRzsqjlbMapper.xml` | -| 59 | `txw-gxzx-service-biz/src/main/resources/mapper/TxwGxzxShqkbMapper.xml` | `txw-mhzc-service-biz/src/main/resources/mapper/gxzx/TxwGxzxShqkbMapper.xml` | -| 60 | `txw-gxzx-service-biz/src/main/resources/mapper/lsjr/GxzxDkbxsqxxMapper.xml` | `txw-mhzc-service-biz/src/main/resources/mapper/gxzx/lsjr/GxzxDkbxsqxxMapper.xml` | -| 61 | `txw-gxzx-service-biz/src/main/resources/mapper/lsjr/GxzxLsjrcpxxMapper.xml` | `txw-mhzc-service-biz/src/main/resources/mapper/gxzx/lsjr/GxzxLsjrcpxxMapper.xml` | -| 62 | `txw-gxzx-service-biz/src/main/resources/mapper/lsjy/GxzxLsjyZcxxMapper.xml` | `txw-mhzc-service-biz/src/main/resources/mapper/gxzx/lsjy/GxzxLsjyZcxxMapper.xml` | - ---- - -## 二、数据库表(9张) - -| # | 表名 | 说明 | -|---|------|------| -| 1 | `txw_gxzx_gxxxb` | 供需信息表 | -| 2 | `txw_gxzx_shqkb` | 审核情况表 | -| 3 | `txw_gxzx_gxscb` | 供需收藏表 | -| 4 | `txw_gxzx_gxbqb` | 供需标签表 | -| 5 | `txw_gxzx_qybqb` | 企业标签表 | -| 6 | `txw_gxzx_rzsqjlb` | 入驻申请记录表 | -| 7 | `txw_gxzx_lsjrcpxx` | 绿色金融产品信息表 | -| 8 | `txw_gxzx_dkbxsqxx` | 贷款保险申请信息表 | -| 9 | `txw_gxzx_lsjy_zcxx` | 绿色交易资产信息表 | - ---- - -## 三、执行步骤 - -### Phase 1: 数据库迁移(生产环境执行) - -- [ ] 3.1 备份原库 gxzx 相关9张表 -- [ ] 3.2 在 mhzc 库创建目标表 -- [ ] 3.3 迁移数据 -- [ ] 3.4 验证数据完整性 - -### Phase 2: 代码迁移(开发环境执行) - -#### 目录创建 -- [ ] 3.5 创建目标目录结构 - -#### 文件迁移(按层级) -- [ ] 3.6 迁移 Domain 层(6个文件) -- [ ] 3.7 迁移 VO/Req 层(14个文件) -- [ ] 3.8 迁移 Mapper 接口层(9个文件) -- [ ] 3.9 迁移 Mapper XML 层(9个文件) -- [ ] 3.10 迁移 Service 接口层(10个文件) -- [ ] 3.11 迁移 Service 实现层(10个文件) -- [ ] 3.12 迁移 Controller 层(4个文件) - -#### 包名修改 -- [ ] 3.13 修改所有文件的 package 声明 -- [ ] 3.14 修改所有文件的 import 语句 - -### Phase 3: 配置更新 -- [ ] 3.15 更新 MapperScan 配置 -- [ ] 3.16 检查 pom.xml 依赖 - -### Phase 4: 编译验证 -- [ ] 3.17 编译验证 -- [ ] 3.18 启动测试 - ---- - -## 四、生产环境升级步骤(详细) - -### 4.1 升级前准备 - -```bash -# 1. 备份数据库 -mysqldump -h host -u user -p gxzx_db txw_gxzx_gxxxb txw_gxzx_shqkb txw_gxzx_gxscb txw_gxzx_gxbqb txw_gxzx_qybqb txw_gxzx_rzsqjlb txw_gxzx_lsjrcpxx txw_gxzx_dkbxsqxx txw_gxzx_lsjy_zcxx > gxzx_backup_$(date +%Y%m%d).sql - -# 2. 确认 mhzc 服务最新代码已部署 -# 3. 通知相关团队停机维护时间窗口 -``` - -### 4.2 数据迁移 - -```sql --- 在 mhzc 数据库执行 --- 1. 创建表(DDL 从 gxzx 库导出) -CREATE TABLE txw_gxzx_gxxxb LIKE gxzx_db.txw_gxzx_gxxxb; -CREATE TABLE txw_gxzx_shqkb LIKE gxzx_db.txw_gxzx_shqkb; --- ... 其他7张表同理 - --- 2. 数据迁移 -INSERT INTO mhzc_db.txw_gxzx_gxxxb SELECT * FROM gxzx_db.txw_gxzx_gxxxb; -INSERT INTO mhzc_db.txw_gxzx_shqkb SELECT * FROM gxzx_db.txw_gxzx_shqkb; --- ... 其他7张表同理 - --- 3. 验证 -SELECT COUNT(*) FROM txw_gxzx_gxxxb; -- 源库和目标库应该一致 -SELECT COUNT(*) FROM txw_gxzx_shqkb; --- ... 其他表验证 -``` - -### 4.3 应用部署 - -```bash -# 1. 停止 gxzx 服务 -# 2. 部署新 mhzc 服务(包含 gxzx 代码) -# 3. 启动 mhzc 服务 -# 4. 验证接口 -``` - ---- - -## 五、回滚方案 - -如果迁移失败,执行以下回滚: - -```sql --- 恢复原状 --- 1. 停止 mhzc 服务 --- 2. 恢复 gxzx 服务 --- 3. 如果需要,回滚数据库 -DROP TABLE IF EXISTS mhzc_db.txw_gxzx_gxxxb; --- 使用备份恢复 -``` - ---- - -## 六、验证清单 - -| # | 验证项 | 验证方法 | -|---|--------|----------| -| 1 | 数据库表记录数一致 | `SELECT COUNT(*) FROM txw_gxzx_gxxxb` 对比 | -| 2 | Controller 注入正常 | 启动应用无报错 | -| 3 | 接口路径可访问 | `curl http://mhzc:9002/gxdt/gxxxList` | -| 4 | 供需发布功能正常 | 实际测试发布流程 | -| 5 | 绿色金融功能正常 | 测试信贷/保险产品查询 | -| 6 | 企业入驻功能正常 | 测试入驻申请流程 | -| 7 | 搜索服务聚合供需 | 调用搜索接口验证 | - ---- - -## 七、文件变更汇总 - -### 新增目录 -``` -txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/controller/gxzx/ -txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/impl/ -txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/lsjr/impl/ -txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/gxzx/lsjy/impl/ -txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/gxzx/lsjr/ -txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/gxzx/lsjy/ -txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/domain/gxzx/ -txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/vo/gxzx/ -txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/pojo/dto/gxzx/ -txw-mhzc-service-biz/src/main/resources/mapper/gxzx/lsjr/ -txw-mhzc-service-biz/src/main/resources/mapper/gxzx/lsjy/ -``` - -### 修改文件 -``` -txw-mhzc/pom.xml(可能需要新增依赖) -txw-mhzc/.../MhzcServiceConfiguration.java(MapperScan 更新) -``` - -### 包名映射规则 -``` -com.css.txw.gxzx.controller → com.css.txw.mhzc.controller.gxzx -com.css.txw.gxzx.service → com.css.txw.mhzc.service.gxzx -com.css.txw.gxzx.service.impl → com.css.txw.mhzc.service.gxzx.impl -com.css.txw.gxzx.service.lsjr.impl → com.css.txw.mhzc.service.gxzx.lsjr.impl -com.css.txw.gxzx.service.lsjy.impl → com.css.txw.mhzc.service.gxzx.lsjy.impl -com.css.txw.gxzx.mapper → com.css.txw.mhzc.mapper.gxzx -com.css.txw.gxzx.mapper.lsjr → com.css.txw.mhzc.mapper.gxzx.lsjr -com.css.txw.gxzx.mapper.lsjy → com.css.txw.mhzc.mapper.gxzx.lsjy -com.css.txw.gxzx.pojo.domain → com.css.txw.mhzc.pojo.domain.gxzx -com.css.txw.gxzx.pojo.vo → com.css.txw.mhzc.pojo.vo.gxzx -com.css.txw.gxzx.pojo.dto → com.css.txw.mhzc.pojo.dto.gxzx -``` \ No newline at end of file diff --git a/trae-mcp-figma-snippet.json b/trae-mcp-figma-snippet.json new file mode 100644 index 0000000..57537d2 --- /dev/null +++ b/trae-mcp-figma-snippet.json @@ -0,0 +1,15 @@ +{ + "Framelink MCP for Figma": { + "command": "cmd", + "args": [ + "/c", + "npx", + "-y", + "figma-developer-mcp", + "--stdio" + ], + "env": { + "FIGMA_API_KEY": "" + } + } +} diff --git a/txw-mhzc-web/scripts/migrate-home-styles.mjs b/txw-mhzc-web/scripts/migrate-home-styles.mjs new file mode 100644 index 0000000..5f285da --- /dev/null +++ b/txw-mhzc-web/scripts/migrate-home-styles.mjs @@ -0,0 +1,146 @@ +import fs from 'fs'; + +const path = 'e:/develop/code/txw/txw-mhzc-web/src/pages/index/views/home2/index.vue'; +let s = fs.readFileSync(path, 'utf8'); +const start = s.indexOf('', start); +if (start < 0 || end < 0) throw new Error('style block not found'); +let css = s.slice(start, end); + +const reps = [ + [/#f5f7fa\b/g, '@home-color-page-bg'], + [/#003b1a\b/gi, '@home-color-primary-dark'], + [/#556659\b/gi, '@home-color-text-body'], + [/#1a1a2e\b/gi, '@home-color-text-title'], + [/#999999\b/g, '@home-color-text-muted'], + [/\b#999\b/g, '@home-color-text-muted'], + [/#333333\b/g, '@home-color-text-dark'], + [/\b#333\b/g, '@home-color-text-dark'], + [/#666666\b/g, '@home-color-text-secondary'], + [/\b#666\b/g, '@home-color-text-secondary'], + [/#222222\b/g, '@home-color-text-partner'], + [/\b#222\b/g, '@home-color-text-partner'], + [/#000000\b/g, '@home-color-black'], + [/\b#000\b/g, '@home-color-black'], + [/#ffffff\b/gi, '@home-color-white'], + [/\b#fff\b/gi, '@home-color-white'], + [/#00b96b\b/gi, '@home-color-primary-green'], + [/#00a25d\b/gi, '@home-color-primary-green-dark'], + [/#2e7d32\b/gi, '@home-color-secondary-green'], + [/#e6efe6\b/gi, '@home-color-tab-bg'], + [/#008cff\b/gi, '@home-color-accent-blue'], + [/#2196f3\b/gi, '@home-color-btn-blue-to'], + [/#99d2fe\b/gi, '@home-color-btn-blue-from'], + [/#007242\b/gi, '@home-color-cta-btn-from'], + [/#00d87d\b/gi, '@home-color-cta-btn-to'], + [/#f0f7f2\b/gi, '@home-color-footer-bg'], + [/'PingFang SC', 'Microsoft YaHei', sans-serif/g, '@home-font-family'], + [/'PingFang SC', sans-serif/g, '@home-font-family'], + [/font-family: PingFang SC;/g, 'font-family: @home-font-family;'], + [/font-family: 'PingFang SC';/g, 'font-family: @home-font-family;'], + [/linear-gradient\(180deg, #00b96b 0%, #00a25d 100%\)/g, '@home-gradient-search-btn'], + [/linear-gradient\(180deg, rgba\(245, 247, 250, 0\) 0%, rgba\(245, 247, 250\) 100%\)/g, '@home-gradient-hero-fade'], + [/linear-gradient\(180deg, rgba\(245, 247, 250, 0\) 0%, rgba\(245, 247, 250, 1\) 100%\)/g, '@home-gradient-hero-fade'], + [/linear-gradient\(90deg, #ffffff 0%, #e6efff 36\.06%, #e6efff 62\.5%, #ffffff 100%\)/g, '@home-gradient-core-tag'], + [/linear-gradient\(0deg, rgba\(255, 255, 255, 0\.9\) 0%, rgba\(255, 255, 255, 0\.4\) 100%\)/g, '@home-gradient-ability-card'], + [/linear-gradient\(180deg, #99d2fe 0%, #2196f3 100%\)/g, '@home-gradient-export-btn'], + [/linear-gradient\(90deg, #007242 0%, #00d87d 100%\)/g, '@home-gradient-cta-btn'], + [/0 8px 12px rgba\(0, 0, 0, 0\.08\)/g, '@home-shadow-search'], + [/0 8px 12px rgba\(127, 179, 213, 0\.2\)/g, '@home-shadow-card-blue'], + [/0 8px 12px rgba\(0, 185, 107, 0\.1\)/g, '@home-shadow-card-green'], + [/0 8px 20px rgba\(0, 209, 121, 0\.3\)/g, '@home-shadow-card-green-strong'], + [/0 2px 5px rgba\(0, 0, 0, 0\.1\)/g, '@home-shadow-news-item'], + [/0 2px 10px rgba\(0, 0, 0, 0\.1\)/g, '@home-shadow-news-item'], + [/0px 4px 8px 0px rgba\(0, 185, 107, 0\.06\)/g, '@home-shadow-partner-logo'], + [/0 4px 12px rgba\(255, 255, 255, 1\)/g, '@home-shadow-title-sub'], + [/0 0 8px rgba\(255, 255, 255, 1\)/g, '@home-shadow-card-title'], + [/0 0 8px #ffffff/g, '@home-shadow-card-title'], + [/0 4px 12px #ffffff/g, '@home-shadow-title-sub'], + [/rgba\(255, 255, 255, 0\.7\)/g, '@home-color-white-70'], + [/rgba\(255, 255, 255, 0\.6\)/g, '@home-color-white-60'], + [/background: rgba\(245, 247, 250, 1\)/g, 'background: @home-color-page-bg'], + [/background: rgba\(222, 243, 255, 0\.75\)/g, '@home-color-card-blue-btn-primary-bg'], + [/background: rgba\(222, 243, 255, 0\.95\)/g, 'fade(@home-color-card-blue-btn-primary-bg, 95%)'], + [/background: rgba\(222, 243, 255, 0\.5\)/g, '@home-color-card-blue-btn-secondary-bg'], + [/border: 1px solid rgba\(0, 141, 213, 0\.4\)/g, 'border: 1px solid @home-color-card-blue-btn-secondary-border'], + [/background: rgba\(255, 255, 255, 0\.35\)/g, '@home-color-card-chain-bg'], + [/background: rgba\(255, 255, 255, 0\.4\)/g, '@home-color-card-chain-btn-secondary-bg'], + [/border: 1px solid rgba\(0, 0, 0, 0\.2\)/g, 'border: 1px solid @home-color-card-chain-btn-secondary-border'], + [/background: rgba\(232, 255, 234, 0\.5\)/g, '@home-color-card-green-btn-secondary-bg'], + [/border: 1px solid rgba\(0, 180, 42, 0\.4\)/g, 'border: 1px solid @home-color-card-green-btn-secondary-border'], +]; + +for (const [re, rep] of reps) css = css.replace(re, rep); + +const numReps = [ + ['max-width: 867px', 'max-width: @home-hero-title-width'], + ['max-width: 600px', 'max-width: @home-search-box-width'], + ['width: 92px', 'width: @home-search-btn-width'], + ['height: 300px', 'height: @home-hero-fade-height'], + ['padding: 8px 8px 8px 16px', 'padding: @home-search-box-padding'], + ['padding: 2px 8px', 'padding: @home-search-tag-padding'], + ['padding: 0 0 24px', 'padding: 0 0 @home-space-24'], + ['gap: 36px', 'gap: @home-feature-cards-gap'], + ['gap: 32px', 'gap: @home-space-32'], + ['gap: 16px', 'gap: @home-space-16'], + ['gap: 12px', 'gap: @home-search-tag-gap'], + ['gap: 28px', 'gap: @home-export-card-gap'], + ['gap: 14px', 'gap: @home-core-col-gap'], + ['gap: 42px', 'gap: @home-section-gap'], + ['gap: 52px', 'gap: @home-space-52'], + ['gap: 56px', 'gap: @home-space-56'], + ['font-size: 56px', 'font-size: @home-font-size-56'], + ['font-size: 40px', 'font-size: @home-font-size-40'], + ['font-size: 32px', 'font-size: @home-font-size-32'], + ['font-size: 28px', 'font-size: @home-font-size-28'], + ['font-size: 24px', 'font-size: @home-font-size-24'], + ['font-size: 22px', 'font-size: @home-font-size-22'], + ['font-size: 20px', 'font-size: @home-font-size-20'], + ['font-size: 16px', 'font-size: @home-font-size-16'], + ['font-size: 14px', 'font-size: @home-font-size-14'], + ['font-size: 12px', 'font-size: @home-font-size-12'], + ['line-height: 38px', 'line-height: @home-line-height-38'], + ['line-height: 28px', 'line-height: @home-line-height-28'], + ['line-height: 26px', 'line-height: @home-line-height-26'], + ['line-height: 22px', 'line-height: @home-line-height-22'], + ['line-height: 20px', 'line-height: @home-line-height-20'], + ['font-weight: 600', 'font-weight: @home-font-weight-semibold'], + ['font-weight: 500', 'font-weight: @home-font-weight-medium'], + ['font-weight: 400', 'font-weight: @home-font-weight-regular'], + ['border-radius: 16px', 'border-radius: @home-radius-xl'], + ['border-radius: 12px', 'border-radius: @home-radius-lg'], + ['border-radius: 10px', 'border-radius: @home-radius-md'], + ['border-radius: 8px', 'border-radius: @home-radius-sm'], + ['border-radius: 4px', 'border-radius: @home-radius-xs'], + ['border-radius: 24px', 'border-radius: @home-radius-pill'], + ['backdrop-filter: blur(20px)', 'backdrop-filter: blur(@home-blur-tag)'], + ['backdrop-filter: blur(10px)', 'backdrop-filter: blur(@home-blur-md)'], + ['backdrop-filter: blur(8px)', 'backdrop-filter: blur(@home-blur-sm)'], + ['backdrop-filter: blur(4px)', 'backdrop-filter: blur(@home-blur-ability)'], + ['width: 145px', 'width: @home-news-thumb-width'], + ['width: 282px', 'width: @home-partner-logo-card-width'], + ['height: 89px', 'height: @home-partner-logo-card-height'], + ['height: 66px', 'height: @home-cta-btn-height'], + ['width: 360px', 'width: @home-cta-btn-width'], + ['width: 77px', 'width: @home-export-btn-size'], + ['height: 77px', 'height: @home-export-btn-size'], + ['min-height: 119px', 'min-height: @home-export-card-height'], + ['max-width: 628px', 'max-width: @home-export-list-width'], + ['padding: 0 30px', 'padding: 0 @home-core-grid-padding-x'], + ['column-gap: 13px', 'column-gap: @home-ability-grid-col-gap'], + ['row-gap: 70px', 'row-gap: @home-ability-grid-row-gap'], + ['min-height: 330px', 'min-height: @home-ability-grid-min-height'], + ['padding: 16px 16px 16px 32px', 'padding: @home-ability-card-padding'], +]; + +for (const [from, to] of numReps) css = css.replaceAll(from, to); + +// Fix double-replaced height on search btn line-height +css = css.replace( + /line-height: @home-search-btn-height;\s*\n\s*font-family: @home-font-family;/g, + 'line-height: @home-search-btn-height;\n font-family: @home-font-family;' +); + +s = s.slice(0, start) + css + s.slice(end); +fs.writeFileSync(path, s); +console.log('migration complete'); diff --git a/txw-mhzc-web/src/pages/index/assets/hyzt/banner-bg-figma.png b/txw-mhzc-web/src/pages/index/assets/hyzt/banner-bg-figma.png deleted file mode 100644 index bd6c01e..0000000 Binary files a/txw-mhzc-web/src/pages/index/assets/hyzt/banner-bg-figma.png and /dev/null differ diff --git a/txw-mhzc-web/src/pages/index/assets/hyzt/banner-bg.png b/txw-mhzc-web/src/pages/index/assets/hyzt/banner-bg.png new file mode 100644 index 0000000..e122262 Binary files /dev/null and b/txw-mhzc-web/src/pages/index/assets/hyzt/banner-bg.png differ diff --git a/txw-mhzc-web/src/pages/index/assets/hyzt/banner-figma.png b/txw-mhzc-web/src/pages/index/assets/hyzt/banner-figma.png deleted file mode 100644 index 1ea799d..0000000 Binary files a/txw-mhzc-web/src/pages/index/assets/hyzt/banner-figma.png and /dev/null differ diff --git a/txw-mhzc-web/src/pages/index/assets/hyzt/banner.png b/txw-mhzc-web/src/pages/index/assets/hyzt/banner.png deleted file mode 100644 index ba9e706..0000000 Binary files a/txw-mhzc-web/src/pages/index/assets/hyzt/banner.png and /dev/null differ diff --git a/txw-mhzc-web/src/pages/index/assets/hyzt/banner3.png b/txw-mhzc-web/src/pages/index/assets/hyzt/banner3.png deleted file mode 100644 index c7a428a..0000000 Binary files a/txw-mhzc-web/src/pages/index/assets/hyzt/banner3.png and /dev/null differ diff --git a/txw-mhzc-web/src/pages/index/assets/qych/banner-bg.png b/txw-mhzc-web/src/pages/index/assets/qych/banner-bg.png new file mode 100644 index 0000000..1e44aaf Binary files /dev/null and b/txw-mhzc-web/src/pages/index/assets/qych/banner-bg.png differ diff --git a/txw-mhzc-web/src/pages/index/assets/qych/service-card-icon-1.png b/txw-mhzc-web/src/pages/index/assets/qych/service-card-icon-1.png new file mode 100644 index 0000000..06cd3e0 Binary files /dev/null and b/txw-mhzc-web/src/pages/index/assets/qych/service-card-icon-1.png differ diff --git a/txw-mhzc-web/src/pages/index/assets/qych/service-card-icon-2.png b/txw-mhzc-web/src/pages/index/assets/qych/service-card-icon-2.png new file mode 100644 index 0000000..f0f9a13 Binary files /dev/null and b/txw-mhzc-web/src/pages/index/assets/qych/service-card-icon-2.png differ diff --git a/txw-mhzc-web/src/pages/index/components/footer/index.vue b/txw-mhzc-web/src/pages/index/components/footer/index.vue index e1c0ac9..04b093e 100644 --- a/txw-mhzc-web/src/pages/index/components/footer/index.vue +++ b/txw-mhzc-web/src/pages/index/components/footer/index.vue @@ -1,7 +1,7 @@