From 55b9201c221059daceaec8a27c428f0aff0ab506 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=9D=B0?= Date: Mon, 18 Aug 2025 14:07:34 +0800 Subject: [PATCH] feat: svg --- config/index.ts | 14 +++++++++- src/config/images.js | 11 ++++++++ src/scss/images.scss | 30 +++++++++++++++++++++ src/static/publishBall/icon-add.svg | 3 +++ src/static/publishBall/icon-arrow-right.svg | 3 +++ src/static/publishBall/icon-changda.svg | 21 +++++++++++++++ src/static/publishBall/icon-cost.svg | 7 +++++ src/static/publishBall/icon-gameplay.svg | 13 +++++++++ src/static/publishBall/icon-location.svg | 7 +++++ src/static/publishBall/icon-personal.svg | 19 +++++++++++++ src/static/publishBall/icon-remove.svg | 3 +++ src/static/publishBall/icon-tips.svg | 5 ++++ src/static/publishBall/icon-upload.svg | 20 ++++++++++++++ 13 files changed, 155 insertions(+), 1 deletion(-) create mode 100644 src/config/images.js create mode 100644 src/scss/images.scss create mode 100644 src/static/publishBall/icon-add.svg create mode 100644 src/static/publishBall/icon-arrow-right.svg create mode 100644 src/static/publishBall/icon-changda.svg create mode 100644 src/static/publishBall/icon-cost.svg create mode 100644 src/static/publishBall/icon-gameplay.svg create mode 100644 src/static/publishBall/icon-location.svg create mode 100644 src/static/publishBall/icon-personal.svg create mode 100644 src/static/publishBall/icon-remove.svg create mode 100644 src/static/publishBall/icon-tips.svg create mode 100644 src/static/publishBall/icon-upload.svg diff --git a/config/index.ts b/config/index.ts index 3eb418b..267a4ac 100644 --- a/config/index.ts +++ b/config/index.ts @@ -3,6 +3,8 @@ import TsconfigPathsPlugin from 'tsconfig-paths-webpack-plugin' import devConfig from './dev' import prodConfig from './prod' import vitePluginImp from 'vite-plugin-imp' +import path from 'path' + // https://taro-docs.jd.com/docs/next/config#defineconfig-辅助函数 export default defineConfig<'webpack5'>(async (merge, { command, mode }) => { const baseConfig: UserConfigExport<'webpack5'> = { @@ -20,6 +22,16 @@ export default defineConfig<'webpack5'>(async (merge, { command, mode }) => { plugins: ['@tarojs/plugin-html'], defineConstants: { }, + alias: { + '@': path.resolve(__dirname, '..', 'src'), + '@/assets': path.resolve(__dirname, '..', 'src/assets'), + '@/components': path.resolve(__dirname, '..', 'src/components'), + '@/utils': path.resolve(__dirname, '..', 'src/utils'), + '@/services': path.resolve(__dirname, '..', 'src/services'), + '@/store': path.resolve(__dirname, '..', 'src/store'), + '@/config': path.resolve(__dirname, '..', 'src/config'), + '@/static': path.resolve(__dirname, '..', 'src/static'), + }, copy: { patterns: [ ], @@ -29,7 +41,7 @@ export default defineConfig<'webpack5'>(async (merge, { command, mode }) => { framework: 'react', compiler: { - type: 'webpack5', + type: 'webpack5', prebundle: { enable: false } diff --git a/src/config/images.js b/src/config/images.js new file mode 100644 index 0000000..ab20192 --- /dev/null +++ b/src/config/images.js @@ -0,0 +1,11 @@ +export default { + ICON_REMOVE: require('@/static/publishBall/icon-remove.svg'), + ICON_UPLOAD: require('@/static/publishBall/icon-upload.svg'), + ICON_LOCATION: require('@/static/publishBall/icon-location.svg'), + ICON_GAMEPLAY: require('@/static/publishBall/icon-gameplay.svg'), + ICON_PERSONAL: require('@/static/publishBall/icon-personal.svg'), + ICON_CHANGDA: require('@/static/publishBall/icon-changda.svg'), + ICON_COST: require('@/static/publishBall/icon-cost.svg'), + ICON_TIPS: require('@/static/publishBall/icon-tips.svg'), + ICON_ARROW_RIGHT: require('@/static/publishBall/icon-arrow-right.svg'), + } \ No newline at end of file diff --git a/src/scss/images.scss b/src/scss/images.scss new file mode 100644 index 0000000..32d40b4 --- /dev/null +++ b/src/scss/images.scss @@ -0,0 +1,30 @@ +// src/scss/images.scss +// 暴露公共API (可选) +@forward 'sass:map'; +@forward 'sass:meta'; +@use 'sass:map'; + +// 使用私有变量命名 (前缀加 -) +$-static-path: '~@/static/' !default; + +// 图片映射表 +$-images: ( + 'icon-upload': '/publishBall/icon-upload.svg', + 'icon-add': '/publishBall/icon-add.svg', + 'icon-location': '/publishBall/icon-location.svg', + 'icon-gameplay': '/publishBall/icon-gameplay.svg', + 'icon-personal': '/publishBall/icon-personal.svg', + 'icon-changda': '/publishBall/icon-changda.svg', + 'icon-cost': '/publishBall/icon-cost.svg', + 'icon-remove': '/publishBall/icon-remove.svg' +) !default; + +// 图片获取函数 +@function taro-image($name) { + @if not map.has-key($-images, $name) { + @warn "Image `#{$name}` not found in $images map"; + @return url($-static-path + 'default.png'); + } + @return url($-static-path + map.get($-images, $name)); +} + diff --git a/src/static/publishBall/icon-add.svg b/src/static/publishBall/icon-add.svg new file mode 100644 index 0000000..5ef824e --- /dev/null +++ b/src/static/publishBall/icon-add.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/static/publishBall/icon-arrow-right.svg b/src/static/publishBall/icon-arrow-right.svg new file mode 100644 index 0000000..a490b6d --- /dev/null +++ b/src/static/publishBall/icon-arrow-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/static/publishBall/icon-changda.svg b/src/static/publishBall/icon-changda.svg new file mode 100644 index 0000000..6cc0b19 --- /dev/null +++ b/src/static/publishBall/icon-changda.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/static/publishBall/icon-cost.svg b/src/static/publishBall/icon-cost.svg new file mode 100644 index 0000000..c7cd7e5 --- /dev/null +++ b/src/static/publishBall/icon-cost.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/static/publishBall/icon-gameplay.svg b/src/static/publishBall/icon-gameplay.svg new file mode 100644 index 0000000..63a7e62 --- /dev/null +++ b/src/static/publishBall/icon-gameplay.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/static/publishBall/icon-location.svg b/src/static/publishBall/icon-location.svg new file mode 100644 index 0000000..b5236dc --- /dev/null +++ b/src/static/publishBall/icon-location.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/static/publishBall/icon-personal.svg b/src/static/publishBall/icon-personal.svg new file mode 100644 index 0000000..30a0f54 --- /dev/null +++ b/src/static/publishBall/icon-personal.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/static/publishBall/icon-remove.svg b/src/static/publishBall/icon-remove.svg new file mode 100644 index 0000000..d63cdb8 --- /dev/null +++ b/src/static/publishBall/icon-remove.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/static/publishBall/icon-tips.svg b/src/static/publishBall/icon-tips.svg new file mode 100644 index 0000000..6a4eb85 --- /dev/null +++ b/src/static/publishBall/icon-tips.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/static/publishBall/icon-upload.svg b/src/static/publishBall/icon-upload.svg new file mode 100644 index 0000000..c72d2ce --- /dev/null +++ b/src/static/publishBall/icon-upload.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + +