diff --git a/.env.example b/.env.example deleted file mode 100644 index f53bd29e3..000000000 --- a/.env.example +++ /dev/null @@ -1,16 +0,0 @@ -APP_BASE_URL=https://demo-ecshopx.ishopex.cn/api/h5app/wxapp -APP_WEBSOCKET=wss://demo-ecshopx.ishopex.cn/ws -APP_COMPANY_ID=38 -APP_PLATFORM=standard -APP_CUSTOM_SERVER=https://ecshopx-h5.ex-sandbox.com/ -APP_HOME_PAGE=/pages/index -APP_TRACK=youshu -APP_YOUSHU_TOKEN=bi281e87ab2424481a -APP_ID=wx1e25e45145b70faa -APP_MAP_KEY=PSPBZ-KQ5CW-CSGRF-ON2S4-K2HQJ-XEBQG -APP_MAP_NAME=oneX新零售门店定位 -APP_IMAGE_CDN=https://b-img-cdn.yuanyuanke.cn/ecshopx-vshop -APP_DIANWU_URL=https://demo-ecshopx-dianwu.shopex123.com -APP_MERCHANT_URL= -APP_ADAPAY= - diff --git a/.gitignore b/.gitignore index 8e9f2798b..97484e8f5 100644 --- a/.gitignore +++ b/.gitignore @@ -11,5 +11,4 @@ dist/ .history .swc .vscode -.env .env.local diff --git a/companys.conf b/companys.conf index 4f4e4d4d6..ed3ab0873 100644 --- a/companys.conf +++ b/companys.conf @@ -1,15 +1,3 @@ -[Ecshopx测试环境--生产标准测试版] -appid = wx5e27f0cc25fa9898 -base_url = https://b.yuanyuanke.cn/api/h5app/wxapp -app_name = 通用小程序 -websocket = wss://b-websocket.yuanyuanke.cn/ws -company_id = 1 -platform = standard -custom_server = https://b.yuanyuanke.cn -home_page = /pages/index -map_key = PVUBZ-E24HK-7SXJY-AGQZC-DN3IT-6EB6V -map_name = oneX新零售门店定位 -image_cdn = https://b-img-cdn.yuanyuanke.cn/ecshopx-vshop [Ecshopx测试环境--标准版] appid = wx912913df9fef6ddd @@ -1059,4 +1047,32 @@ home_page = /pages/index map_key = NWBBZ-NKJ6J-LMOFT-D3LBD-IEYKE-JRFOY map_name = oneX新零售门店定位 image_cdn = https://b-img-cdn.yuanyuanke.cn/ecshopx-vshop -dianwu_url= +dianwu_url= + +[辉绮-生产] +appid = wx27fc041381fe1e0d +base_url = https://dtc.amandax.com.cn/api/h5app/wxapp +app_name = 通用小程序 +websocket = wss://dtc.amandax.com.cn/ws +company_id = 1 +platform = standard +custom_server = https://dtc.amandax.com.cn +home_page = /pages/index +map_key = NWBBZ-NKJ6J-LMOFT-D3LBD-IEYKE-JRFOY +map_name = oneX新零售门店定位 +image_cdn = https://b-img-cdn.yuanyuanke.cn/ecshopx-vshop +dianwu_url= + + +[辉绮-sit] +appid = wx27fc041381fe1e0d +base_url = https://test-dtc-sit.amandax.com.cn/api/h5app/wxapp +app_name = 通用小程序 +websocket = wss://test-dtc.amandax.com.cn/ws +company_id = 1 +platform = standard +custom_server = https://test-dtc-sit.amandax.com.cn +home_page = /pages/index +map_key = NWBBZ-NKJ6J-LMOFT-D3LBD-IEYKE-JRFOY +map_name = oneX新零售门店定位 +image_cdn = https://b-img-cdn.yuanyuanke.cn/ecshopx-vshop diff --git a/config/index.js b/config/index.js index 4b7be1e76..5a0aa9541 100644 --- a/config/index.js +++ b/config/index.js @@ -2,7 +2,7 @@ import path from 'path' import pkg from '../package.json' const webpackPluginsAutoI18n = require('webpack-auto-i18n-plugin') -const { YoudaoTranslator } = require('webpack-auto-i18n-plugin') +const { YoudaoTranslator, EmptyTranslator } = require('webpack-auto-i18n-plugin') const chalk = require('chalk') const { getEnvs, getDefineConstants, getCacheIdentifier } = require('./utils') @@ -82,8 +82,8 @@ const config = { defineConstants: getDefineConstants(CONST_ENVS), alias: { 'taro-ui$': 'taro-ui/lib/index', - '@': path.join(__dirname, '../src'), - '@lang': path.join(__dirname, '../lang') + '@': path.join(__dirname, '../src') + // '@lang': path.join(__dirname, '../lang') // 'lodash': 'lodash-es' }, copy: { @@ -98,7 +98,6 @@ const config = { } }, plugins: [ - // i18nPlugin // '@shopex/taro-plugin-modules', // path.join(__dirname, "../src/plugin/test.js") // path.join(__dirname, "./modify-taro.js") @@ -106,9 +105,25 @@ const config = { mini: { webpackChain(chain) { - if (process.env.APP_I18N_APP_ID && process.env.APP_I18N_APP_KEY) { - chain.plugin('auto-i18n').use(webpackPluginsAutoI18n.default, [AutoI18nOptions]) - } + chain.plugin('auto-i18n').use(webpackPluginsAutoI18n.default, [ + { + rewriteConfig: false, // 是否重写配置js , 小程序需要魔改配置文件,所以不要重新生成,以现在的为准 + excludedPath: [ + path.resolve(__dirname, './../src/lang/index.js'), + path.resolve(__dirname, './../src/lang/consts.js') + ], + globalPath: path.resolve(__dirname, './../src/subpages/i18n/lang'), + targetLangList: ['en', 'zh-tw'], // 目标语言 + originLang: 'zh-cn', // 源语言 + translator: process.env.APP_I18N_APP_KEY + ? new YoudaoTranslator({ + appId: process.env.APP_I18N_APP_ID, + appKey: process.env.APP_I18N_APP_KEY + }) + : new EmptyTranslator(), + includePath: [/src/] // 仅扫描 src 目录 + } + ]) }, miniCssExtractPluginOption: { diff --git a/package-lock.json b/package-lock.json index 02c9d61b2..5325d16d6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -91,13 +91,6 @@ "node": "16.16.0" } }, - "node_modules/@adobe/css-tools": { - "version": "4.3.3", - "resolved": "https://registry.npmmirror.com/@adobe/css-tools/-/css-tools-4.3.3.tgz", - "integrity": "sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==", - "dev": true, - "peer": true - }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -440,12 +433,12 @@ } }, "node_modules/@babel/helpers": { - "version": "7.27.6", - "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.27.6.tgz", - "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "version": "7.28.2", + "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.28.2.tgz", + "integrity": "sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==", "dependencies": { "@babel/template": "^7.27.2", - "@babel/types": "^7.27.6" + "@babel/types": "^7.28.2" }, "engines": { "node": ">=6.9.0" @@ -2046,17 +2039,17 @@ } }, "node_modules/@babel/runtime": { - "version": "7.27.6", - "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.27.6.tgz", - "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", + "version": "7.28.2", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.28.2.tgz", + "integrity": "sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.28.0", - "resolved": "https://registry.npmmirror.com/@babel/runtime-corejs3/-/runtime-corejs3-7.28.0.tgz", - "integrity": "sha512-nlIXnSqLcBij8K8TtkxbBJgfzfvi75V1pAKSM7dUXejGw12vJAqez74jZrHTsJ3Z+Aczc5Q/6JgNjKRMsVU44g==", + "version": "7.28.2", + "resolved": "https://registry.npmmirror.com/@babel/runtime-corejs3/-/runtime-corejs3-7.28.2.tgz", + "integrity": "sha512-FVFaVs2/dZgD3Y9ZD+AKNKjyGKzwu0C54laAXWUXgLcVXcCX6YZ6GhK2cp7FogSN2OA0Fu+QT8dP3FUdo9ShSQ==", "dev": true, "dependencies": { "core-js-pure": "^3.43.0" @@ -2096,9 +2089,9 @@ } }, "node_modules/@babel/types": { - "version": "7.28.1", - "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.28.1.tgz", - "integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==", + "version": "7.28.2", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.28.2.tgz", + "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" @@ -4653,15 +4646,6 @@ "node": ">=0.10.0" } }, - "node_modules/@tarojs/mini-runner/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, "node_modules/@tarojs/mini-runner/node_modules/define-property": { "version": "2.0.2", "resolved": "https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz", @@ -4856,12 +4840,6 @@ "webpack": "^4.4.0" } }, - "node_modules/@tarojs/mini-runner/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, "node_modules/@tarojs/mini-runner/node_modules/normalize-url": { "version": "1.9.1", "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-1.9.1.tgz", @@ -4943,37 +4921,6 @@ "node": ">=0.10.0" } }, - "node_modules/@tarojs/mini-runner/node_modules/stylus": { - "version": "0.55.0", - "resolved": "https://registry.npmmirror.com/stylus/-/stylus-0.55.0.tgz", - "integrity": "sha512-MuzIIVRSbc8XxHH7FjkvWqkIcr1BvoMZoR/oFuAJDlh7VSaNJzrB4uJ38GRQa+mWjLXODAMzeDe0xi9GYbGwnw==", - "dev": true, - "dependencies": { - "css": "^3.0.0", - "debug": "~3.1.0", - "glob": "^7.1.6", - "mkdirp": "~1.0.4", - "safer-buffer": "^2.1.2", - "sax": "~1.2.4", - "semver": "^6.3.0", - "source-map": "^0.7.3" - }, - "bin": { - "stylus": "bin/stylus" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@tarojs/mini-runner/node_modules/stylus/node_modules/source-map": { - "version": "0.7.6", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.6.tgz", - "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, "node_modules/@tarojs/mini-runner/node_modules/terser": { "version": "4.8.1", "resolved": "https://registry.npmmirror.com/terser/-/terser-4.8.1.tgz", @@ -6104,15 +6051,6 @@ } } }, - "node_modules/@tarojs/webpack5-runner/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, "node_modules/@tarojs/webpack5-runner/node_modules/deepmerge": { "version": "1.5.2", "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz", @@ -6276,12 +6214,6 @@ "json5": "lib/cli.js" } }, - "node_modules/@tarojs/webpack5-runner/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, "node_modules/@tarojs/webpack5-runner/node_modules/postcss-loader": { "version": "7.3.4", "resolved": "https://registry.npmmirror.com/postcss-loader/-/postcss-loader-7.3.4.tgz", @@ -6410,28 +6342,6 @@ "node": ">=0.10.0" } }, - "node_modules/@tarojs/webpack5-runner/node_modules/stylus": { - "version": "0.55.0", - "resolved": "https://registry.npmmirror.com/stylus/-/stylus-0.55.0.tgz", - "integrity": "sha512-MuzIIVRSbc8XxHH7FjkvWqkIcr1BvoMZoR/oFuAJDlh7VSaNJzrB4uJ38GRQa+mWjLXODAMzeDe0xi9GYbGwnw==", - "dev": true, - "dependencies": { - "css": "^3.0.0", - "debug": "~3.1.0", - "glob": "^7.1.6", - "mkdirp": "~1.0.4", - "safer-buffer": "^2.1.2", - "sax": "~1.2.4", - "semver": "^6.3.0", - "source-map": "^0.7.3" - }, - "bin": { - "stylus": "bin/stylus" - }, - "engines": { - "node": "*" - } - }, "node_modules/@tarojs/webpack5-runner/node_modules/stylus-loader": { "version": "6.2.0", "resolved": "https://registry.npmmirror.com/stylus-loader/-/stylus-loader-6.2.0.tgz", @@ -6454,24 +6364,6 @@ "webpack": "^5.0.0" } }, - "node_modules/@tarojs/webpack5-runner/node_modules/stylus/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@tarojs/webpack5-runner/node_modules/stylus/node_modules/source-map": { - "version": "0.7.6", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.6.tgz", - "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, "node_modules/@tarojs/webpack5-runner/node_modules/terser-webpack-plugin": { "version": "5.3.14", "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", @@ -6660,12 +6552,12 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.7", - "resolved": "https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", - "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", + "version": "7.28.0", + "resolved": "https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", "devOptional": true, "dependencies": { - "@babel/types": "^7.20.7" + "@babel/types": "^7.28.2" } }, "node_modules/@types/body-parser": { @@ -6820,10 +6712,9 @@ "dev": true }, "node_modules/@types/http-errors": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/@types/http-errors/-/http-errors-2.0.5.tgz", - "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", - "dev": true + "version": "1.8.2", + "resolved": "https://registry.npmmirror.com/@types/http-errors/-/http-errors-1.8.2.tgz", + "integrity": "sha512-EqX+YQxINb+MeXaIqYDASb6U6FCHbWjkj4a1CKDBks3d/QiB2+PqBLyO72vLDgAO1wUI4O+9gweRcQK11bTL/w==" }, "node_modules/@types/http-proxy": { "version": "1.17.16", @@ -6954,9 +6845,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.19.120", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-18.19.120.tgz", - "integrity": "sha512-WtCGHFXnVI8WHLxDAt5TbnCM4eSE+nI0QN2NJtwzcgMhht2eNz6V9evJrk+lwC8bCY8OWV5Ym8Jz7ZEyGnKnMA==", + "version": "18.19.121", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-18.19.121.tgz", + "integrity": "sha512-bHOrbyztmyYIi4f1R0s17QsPs1uyyYnGcXeZoGEd227oZjry0q6XQBQxd82X1I57zEfwO8h9Xo+Kl5gX1d9MwQ==", "dependencies": { "undici-types": "~5.26.4" } @@ -7341,11 +7232,6 @@ "node": ">=14" } }, - "node_modules/@vitalets/google-translate-api/node_modules/@types/http-errors": { - "version": "1.8.2", - "resolved": "https://registry.npmmirror.com/@types/http-errors/-/http-errors-1.8.2.tgz", - "integrity": "sha512-EqX+YQxINb+MeXaIqYDASb6U6FCHbWjkj4a1CKDBks3d/QiB2+PqBLyO72vLDgAO1wUI4O+9gweRcQK11bTL/w==" - }, "node_modules/@vue/compiler-core": { "version": "3.5.18", "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.18.tgz", @@ -8812,9 +8698,9 @@ } }, "node_modules/babel-preset-current-node-syntax": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", - "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", "dev": true, "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", @@ -8834,7 +8720,7 @@ "@babel/plugin-syntax-top-level-await": "^7.14.5" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0 || ^8.0.0-0" } }, "node_modules/babel-preset-jest": { @@ -9692,9 +9578,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001727", - "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz", - "integrity": "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==", + "version": "1.0.30001731", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001731.tgz", + "integrity": "sha512-lDdp2/wrOmTRWuoB5DpfNkC0rJDU8DqRa6nYL6HK6sytw70QMopt/NIc/9SM7ylItlBWfACXk0tEn37UWM/+mg==", "funding": [ { "type": "opencollective", @@ -11319,17 +11205,6 @@ "node": ">=0.10.0" } }, - "node_modules/css/node_modules/source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", @@ -13045,9 +12920,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.5.190", - "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.190.tgz", - "integrity": "sha512-k4McmnB2091YIsdCgkS0fMVMPOJgxl93ltFzaryXqwip1AaxeDqKCGLxkXODDA5Ab/D+tV5EL5+aTx76RvLRxw==" + "version": "1.5.194", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.194.tgz", + "integrity": "sha512-SdnWJwSUot04UR51I2oPD8kuP2VI37/CADR1OHsFOUzZIvfWJBO6q11k5P/uKNyTT3cdOsnyjkrZ+DDShqYqJA==" }, "node_modules/elliptic": { "version": "6.6.1", @@ -15105,9 +14980,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "version": "1.15.11", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", "funding": [ { "type": "individual", @@ -21728,9 +21603,9 @@ "dev": true }, "node_modules/nwsapi": { - "version": "2.2.20", - "resolved": "https://registry.npmmirror.com/nwsapi/-/nwsapi-2.2.20.tgz", - "integrity": "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==", + "version": "2.2.21", + "resolved": "https://registry.npmmirror.com/nwsapi/-/nwsapi-2.2.21.tgz", + "integrity": "sha512-o6nIY3qwiSXl7/LuOU0Dmuctd34Yay0yeuZRLFmDPrrdHpXKFndPj3hM+YEPVHYC5fx2otBx4Ilc/gyYSAUaIA==", "dev": true }, "node_modules/oauth-sign": { @@ -22208,13 +22083,6 @@ "node": ">=8" } }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "peer": true - }, "node_modules/package-json/node_modules/@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz", @@ -26206,6 +26074,20 @@ "node": ">=0.10.0" } }, + "node_modules/snapdragon/node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, "node_modules/sockjs": { "version": "0.3.24", "resolved": "https://registry.npmmirror.com/sockjs/-/sockjs-0.3.24.tgz", @@ -26269,11 +26151,11 @@ "dev": true }, "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "version": "0.7.6", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", "engines": { - "node": ">= 8" + "node": ">= 12" } }, "node_modules/source-map-js": { @@ -26285,17 +26167,14 @@ } }, "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, "dependencies": { "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "decode-uri-component": "^0.2.0" } }, "node_modules/source-map-support": { @@ -27117,27 +26996,25 @@ } }, "node_modules/stylus": { - "version": "0.64.0", - "resolved": "https://registry.npmmirror.com/stylus/-/stylus-0.64.0.tgz", - "integrity": "sha512-ZIdT8eUv8tegmqy1tTIdJv9We2DumkNZFdCF5mz/Kpq3OcTaxSuCAYZge6HKK2CmNC02G1eJig2RV7XTw5hQrA==", + "version": "0.55.0", + "resolved": "https://registry.npmmirror.com/stylus/-/stylus-0.55.0.tgz", + "integrity": "sha512-MuzIIVRSbc8XxHH7FjkvWqkIcr1BvoMZoR/oFuAJDlh7VSaNJzrB4uJ38GRQa+mWjLXODAMzeDe0xi9GYbGwnw==", "dev": true, - "license": "MIT", - "peer": true, "dependencies": { - "@adobe/css-tools": "~4.3.3", - "debug": "^4.3.2", - "glob": "^10.4.5", - "sax": "~1.4.1", + "css": "^3.0.0", + "debug": "~3.1.0", + "glob": "^7.1.6", + "mkdirp": "~1.0.4", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "semver": "^6.3.0", "source-map": "^0.7.3" }, "bin": { "stylus": "bin/stylus" }, "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://opencollective.com/stylus" + "node": "*" } }, "node_modules/stylus-loader": { @@ -27189,85 +27066,20 @@ "node": ">=4.0.0" } }, - "node_modules/stylus/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "node_modules/stylus/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, - "peer": true, "dependencies": { - "balanced-match": "^1.0.0" + "ms": "2.0.0" } }, - "node_modules/stylus/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmmirror.com/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "peer": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/stylus/node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmmirror.com/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "peer": true, - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/stylus/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "peer": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/stylus/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmmirror.com/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/stylus/node_modules/sax": { - "version": "1.4.1", - "resolved": "https://registry.npmmirror.com/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "dev": true, - "peer": true + "node_modules/stylus/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, "node_modules/supports-color": { "version": "7.2.0", @@ -28594,9 +28406,9 @@ } }, "node_modules/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "version": "5.9.2", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -30004,9 +29816,9 @@ } }, "node_modules/webpack-auto-i18n-plugin/node_modules/webpack": { - "version": "5.100.2", - "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.100.2.tgz", - "integrity": "sha512-QaNKAvGCDRh3wW1dsDjeMdDXwZm2vqq3zn6Pvq4rHOEOGSaUMgOOjG2Y9ZbIGzpfkJk9ZYTHpDqgDfeBDcnLaw==", + "version": "5.101.0", + "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.101.0.tgz", + "integrity": "sha512-B4t+nJqytPeuZlHuIKTbalhljIFXeNRqrUGAQgTGlfOl2lXXKXw+yZu6bicycP+PUlM44CxBjCFD6aciKFT3LQ==", "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", @@ -30943,9 +30755,9 @@ } }, "node_modules/yup": { - "version": "1.6.1", - "resolved": "https://registry.npmmirror.com/yup/-/yup-1.6.1.tgz", - "integrity": "sha512-JED8pB50qbA4FOkDol0bYF/p60qSEDQqBD0/qeIrUCG1KbPBIQ776fCUNb9ldbPcSTxA69g/47XTo4TqWiuXOA==", + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/yup/-/yup-1.7.0.tgz", + "integrity": "sha512-VJce62dBd+JQvoc+fCVq+KZfPHr+hXaxCcVgotfwWvlR0Ja3ffYKaJBT8rptPOSKOGJDCUnW2C2JWpud7aRP6Q==", "dependencies": { "property-expr": "^2.0.5", "tiny-case": "^1.0.3", @@ -30966,13 +30778,6 @@ } }, "dependencies": { - "@adobe/css-tools": { - "version": "4.3.3", - "resolved": "https://registry.npmmirror.com/@adobe/css-tools/-/css-tools-4.3.3.tgz", - "integrity": "sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==", - "dev": true, - "peer": true - }, "@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -31216,12 +31021,12 @@ } }, "@babel/helpers": { - "version": "7.27.6", - "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.27.6.tgz", - "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "version": "7.28.2", + "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.28.2.tgz", + "integrity": "sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==", "requires": { "@babel/template": "^7.27.2", - "@babel/types": "^7.27.6" + "@babel/types": "^7.28.2" } }, "@babel/parser": { @@ -32235,14 +32040,14 @@ } }, "@babel/runtime": { - "version": "7.27.6", - "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.27.6.tgz", - "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==" + "version": "7.28.2", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.28.2.tgz", + "integrity": "sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==" }, "@babel/runtime-corejs3": { - "version": "7.28.0", - "resolved": "https://registry.npmmirror.com/@babel/runtime-corejs3/-/runtime-corejs3-7.28.0.tgz", - "integrity": "sha512-nlIXnSqLcBij8K8TtkxbBJgfzfvi75V1pAKSM7dUXejGw12vJAqez74jZrHTsJ3Z+Aczc5Q/6JgNjKRMsVU44g==", + "version": "7.28.2", + "resolved": "https://registry.npmmirror.com/@babel/runtime-corejs3/-/runtime-corejs3-7.28.2.tgz", + "integrity": "sha512-FVFaVs2/dZgD3Y9ZD+AKNKjyGKzwu0C54laAXWUXgLcVXcCX6YZ6GhK2cp7FogSN2OA0Fu+QT8dP3FUdo9ShSQ==", "dev": true, "requires": { "core-js-pure": "^3.43.0" @@ -32273,9 +32078,9 @@ } }, "@babel/types": { - "version": "7.28.1", - "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.28.1.tgz", - "integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==", + "version": "7.28.2", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.28.2.tgz", + "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", "requires": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" @@ -34036,15 +33841,6 @@ "to-regex": "^3.0.1" } }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, "define-property": { "version": "2.0.2", "resolved": "https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz", @@ -34195,12 +33991,6 @@ "webpack-sources": "^1.1.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, "normalize-url": { "version": "1.9.1", "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-1.9.1.tgz", @@ -34261,30 +34051,6 @@ "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", "dev": true }, - "stylus": { - "version": "0.55.0", - "resolved": "https://registry.npmmirror.com/stylus/-/stylus-0.55.0.tgz", - "integrity": "sha512-MuzIIVRSbc8XxHH7FjkvWqkIcr1BvoMZoR/oFuAJDlh7VSaNJzrB4uJ38GRQa+mWjLXODAMzeDe0xi9GYbGwnw==", - "dev": true, - "requires": { - "css": "^3.0.0", - "debug": "~3.1.0", - "glob": "^7.1.6", - "mkdirp": "~1.0.4", - "safer-buffer": "^2.1.2", - "sax": "~1.2.4", - "semver": "^6.3.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.6", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.6.tgz", - "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", - "dev": true - } - } - }, "terser": { "version": "4.8.1", "resolved": "https://registry.npmmirror.com/terser/-/terser-4.8.1.tgz", @@ -35076,15 +34842,6 @@ "semver": "^7.5.4" } }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, "deepmerge": { "version": "1.5.2", "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz", @@ -35200,12 +34957,6 @@ } } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, "postcss-loader": { "version": "7.3.4", "resolved": "https://registry.npmmirror.com/postcss-loader/-/postcss-loader-7.3.4.tgz", @@ -35280,36 +35031,6 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, - "stylus": { - "version": "0.55.0", - "resolved": "https://registry.npmmirror.com/stylus/-/stylus-0.55.0.tgz", - "integrity": "sha512-MuzIIVRSbc8XxHH7FjkvWqkIcr1BvoMZoR/oFuAJDlh7VSaNJzrB4uJ38GRQa+mWjLXODAMzeDe0xi9GYbGwnw==", - "dev": true, - "requires": { - "css": "^3.0.0", - "debug": "~3.1.0", - "glob": "^7.1.6", - "mkdirp": "~1.0.4", - "safer-buffer": "^2.1.2", - "sax": "~1.2.4", - "semver": "^6.3.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - }, - "source-map": { - "version": "0.7.6", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.6.tgz", - "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", - "dev": true - } - } - }, "stylus-loader": { "version": "6.2.0", "resolved": "https://registry.npmmirror.com/stylus-loader/-/stylus-loader-6.2.0.tgz", @@ -35456,12 +35177,12 @@ } }, "@types/babel__traverse": { - "version": "7.20.7", - "resolved": "https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", - "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", + "version": "7.28.0", + "resolved": "https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", "devOptional": true, "requires": { - "@babel/types": "^7.20.7" + "@babel/types": "^7.28.2" } }, "@types/body-parser": { @@ -35615,10 +35336,9 @@ "dev": true }, "@types/http-errors": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/@types/http-errors/-/http-errors-2.0.5.tgz", - "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", - "dev": true + "version": "1.8.2", + "resolved": "https://registry.npmmirror.com/@types/http-errors/-/http-errors-1.8.2.tgz", + "integrity": "sha512-EqX+YQxINb+MeXaIqYDASb6U6FCHbWjkj4a1CKDBks3d/QiB2+PqBLyO72vLDgAO1wUI4O+9gweRcQK11bTL/w==" }, "@types/http-proxy": { "version": "1.17.16", @@ -35742,9 +35462,9 @@ "dev": true }, "@types/node": { - "version": "18.19.120", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-18.19.120.tgz", - "integrity": "sha512-WtCGHFXnVI8WHLxDAt5TbnCM4eSE+nI0QN2NJtwzcgMhht2eNz6V9evJrk+lwC8bCY8OWV5Ym8Jz7ZEyGnKnMA==", + "version": "18.19.121", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-18.19.121.tgz", + "integrity": "sha512-bHOrbyztmyYIi4f1R0s17QsPs1uyyYnGcXeZoGEd227oZjry0q6XQBQxd82X1I57zEfwO8h9Xo+Kl5gX1d9MwQ==", "requires": { "undici-types": "~5.26.4" } @@ -36052,13 +35772,6 @@ "@types/http-errors": "^1.8.2", "http-errors": "^2.0.0", "node-fetch": "^2.6.7" - }, - "dependencies": { - "@types/http-errors": { - "version": "1.8.2", - "resolved": "https://registry.npmmirror.com/@types/http-errors/-/http-errors-1.8.2.tgz", - "integrity": "sha512-EqX+YQxINb+MeXaIqYDASb6U6FCHbWjkj4a1CKDBks3d/QiB2+PqBLyO72vLDgAO1wUI4O+9gweRcQK11bTL/w==" - } } }, "@vue/compiler-core": { @@ -37259,9 +36972,9 @@ } }, "babel-preset-current-node-syntax": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", - "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", "dev": true, "requires": { "@babel/plugin-syntax-async-generators": "^7.8.4", @@ -37962,9 +37675,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001727", - "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz", - "integrity": "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==" + "version": "1.0.30001731", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001731.tgz", + "integrity": "sha512-lDdp2/wrOmTRWuoB5DpfNkC0rJDU8DqRa6nYL6HK6sytw70QMopt/NIc/9SM7ylItlBWfACXk0tEn37UWM/+mg==" }, "capital-case": { "version": "1.0.4", @@ -39041,16 +38754,6 @@ "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true - }, - "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } } } }, @@ -40542,9 +40245,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.5.190", - "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.190.tgz", - "integrity": "sha512-k4McmnB2091YIsdCgkS0fMVMPOJgxl93ltFzaryXqwip1AaxeDqKCGLxkXODDA5Ab/D+tV5EL5+aTx76RvLRxw==" + "version": "1.5.194", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.194.tgz", + "integrity": "sha512-SdnWJwSUot04UR51I2oPD8kuP2VI37/CADR1OHsFOUzZIvfWJBO6q11k5P/uKNyTT3cdOsnyjkrZ+DDShqYqJA==" }, "elliptic": { "version": "6.6.1", @@ -42059,9 +41762,9 @@ } }, "follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==" + "version": "1.15.11", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==" }, "for-each": { "version": "0.3.5", @@ -46976,9 +46679,9 @@ "dev": true }, "nwsapi": { - "version": "2.2.20", - "resolved": "https://registry.npmmirror.com/nwsapi/-/nwsapi-2.2.20.tgz", - "integrity": "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==", + "version": "2.2.21", + "resolved": "https://registry.npmmirror.com/nwsapi/-/nwsapi-2.2.21.tgz", + "integrity": "sha512-o6nIY3qwiSXl7/LuOU0Dmuctd34Yay0yeuZRLFmDPrrdHpXKFndPj3hM+YEPVHYC5fx2otBx4Ilc/gyYSAUaIA==", "dev": true }, "oauth-sign": { @@ -47420,13 +47123,6 @@ } } }, - "package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "peer": true - }, "pako": { "version": "1.0.11", "resolved": "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz", @@ -50251,6 +49947,19 @@ "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } } } }, @@ -50361,9 +50070,9 @@ "dev": true }, "source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" + "version": "0.7.6", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==" }, "source-map-js": { "version": "1.2.1", @@ -50371,16 +50080,13 @@ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" }, "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", "dev": true, "requires": { "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "decode-uri-component": "^0.2.0" } }, "source-map-support": { @@ -51044,78 +50750,35 @@ } }, "stylus": { - "version": "0.64.0", - "resolved": "https://registry.npmmirror.com/stylus/-/stylus-0.64.0.tgz", - "integrity": "sha512-ZIdT8eUv8tegmqy1tTIdJv9We2DumkNZFdCF5mz/Kpq3OcTaxSuCAYZge6HKK2CmNC02G1eJig2RV7XTw5hQrA==", + "version": "0.55.0", + "resolved": "https://registry.npmmirror.com/stylus/-/stylus-0.55.0.tgz", + "integrity": "sha512-MuzIIVRSbc8XxHH7FjkvWqkIcr1BvoMZoR/oFuAJDlh7VSaNJzrB4uJ38GRQa+mWjLXODAMzeDe0xi9GYbGwnw==", "dev": true, - "peer": true, "requires": { - "@adobe/css-tools": "~4.3.3", - "debug": "^4.3.2", - "glob": "^10.4.5", - "sax": "~1.4.1", + "css": "^3.0.0", + "debug": "~3.1.0", + "glob": "^7.1.6", + "mkdirp": "~1.0.4", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "semver": "^6.3.0", "source-map": "^0.7.3" }, "dependencies": { - "brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, - "peer": true, "requires": { - "balanced-match": "^1.0.0" + "ms": "2.0.0" } }, - "glob": { - "version": "10.4.5", - "resolved": "https://registry.npmmirror.com/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "peer": true, - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - } - }, - "jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmmirror.com/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "peer": true, - "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" - } - }, - "minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "peer": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmmirror.com/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "peer": true - }, - "sax": { - "version": "1.4.1", - "resolved": "https://registry.npmmirror.com/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "dev": true, - "peer": true + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true } } }, @@ -52158,9 +51821,9 @@ } }, "typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "version": "5.9.2", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", "dev": true }, "uglify-js": { @@ -53398,9 +53061,9 @@ } }, "webpack": { - "version": "5.100.2", - "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.100.2.tgz", - "integrity": "sha512-QaNKAvGCDRh3wW1dsDjeMdDXwZm2vqq3zn6Pvq4rHOEOGSaUMgOOjG2Y9ZbIGzpfkJk9ZYTHpDqgDfeBDcnLaw==", + "version": "5.101.0", + "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.101.0.tgz", + "integrity": "sha512-B4t+nJqytPeuZlHuIKTbalhljIFXeNRqrUGAQgTGlfOl2lXXKXw+yZu6bicycP+PUlM44CxBjCFD6aciKFT3LQ==", "requires": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", @@ -53959,9 +53622,9 @@ "dev": true }, "yup": { - "version": "1.6.1", - "resolved": "https://registry.npmmirror.com/yup/-/yup-1.6.1.tgz", - "integrity": "sha512-JED8pB50qbA4FOkDol0bYF/p60qSEDQqBD0/qeIrUCG1KbPBIQ776fCUNb9ldbPcSTxA69g/47XTo4TqWiuXOA==", + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/yup/-/yup-1.7.0.tgz", + "integrity": "sha512-VJce62dBd+JQvoc+fCVq+KZfPHr+hXaxCcVgotfwWvlR0Ja3ffYKaJBT8rptPOSKOGJDCUnW2C2JWpud7aRP6Q==", "requires": { "property-expr": "^2.0.5", "tiny-case": "^1.0.3", diff --git a/package.json b/package.json index 0b2fca3d6..0d79b8da9 100644 --- a/package.json +++ b/package.json @@ -8,13 +8,13 @@ "clean": "rm -rf node_modules/.cache", "release:h5": "RELEASE=h5 npm run build:h5", "lint": "prettier-eslint 'src/**/*.{js,jsx}' --write", - "build:weapp": "cross-env taro build --type weapp --trace-warnings", + "build:weapp": "taro build --type weapp --trace-warnings", "build:weapp:live": "cross-env APP_LIVE=true taro build --type weapp --trace-warnings", - "build:swan": "cross-env taro build --type swan", - "build:alipay": "cross-env taro build --type alipay", - "build:tt": "cross-env taro build --type tt", - "build:h5": "cross-env taro build --type h5", - "build:rn": "cross-env taro build --type rn", + "build:swan": "taro build --type swan", + "build:alipay": "taro build --type alipay", + "build:tt": "taro build --type tt", + "build:h5": "taro build --type h5", + "build:rn": "taro build --type rn", "build:app": "cross-env TARGET=app taro build --type h5", "build:app:server": "cross-env TARGET=app SERVER=server taro build --type h5", "dev:weapp": "npm run build:weapp -- --watch", diff --git a/src/app.js b/src/app.js index e849b14d1..db616685a 100644 --- a/src/app.js +++ b/src/app.js @@ -70,6 +70,17 @@ function App({ children }) { checkAppVersion() } + // 导购参数缓存处理 + const guideUpdateTime = Taro.getStorageSync(SG_GUIDE_PARAMS_UPDATETIME) || 0 + if (guideUpdateTime != 0) { + const diffMilliseconds = dayjs().diff(dayjs(guideUpdateTime)) + // 参数保存超过3天,清除导购参数 + if (diffMilliseconds > 3 * 86400000) { + Taro.removeStorageSync(SG_GUIDE_PARAMS) + Taro.removeStorageSync(SG_GUIDE_PARAMS_UPDATETIME) + } + } + const { show_time } = await api.promotion.getScreenAd() let showAdv if (show_time === 'always') { @@ -79,34 +90,35 @@ function App({ children }) { payload: showAdv }) } - getSystemConfig() - - // 导购参数缓存处理 - const guideUpdateTime = Taro.getStorageSync(SG_GUIDE_PARAMS_UPDATETIME) || 0 - const diffMilliseconds = dayjs().diff(dayjs(guideUpdateTime)) - // 参数保存超过3天,清除导购参数 - if (diffMilliseconds > 3 * 86400000) { - Taro.removeStorageSync(SG_GUIDE_PARAMS) - Taro.removeStorageSync(SG_GUIDE_PARAMS_UPDATETIME) - } }, []) useLaunch((options) => { console.log('useLaunch ***********', options) - // __non_webpack_require__ && - // __non_webpack_require__('subpages/i18n/index', (res) => { - // const langJSON = Taro['langJSON'] - // console.log('langJSON--------', langJSON) - // langObj.setLanguagePackage(langJSON) - // }) + + // 分包异步加载语言包 + __non_webpack_require__ && + __non_webpack_require__('subpages/i18n/index', (res) => { + const langJSON = Taro['langJSON'] + console.log('langJSON--------', langJSON) + langObj.setLanguagePackage(langJSON) + }) }) useDidShow(async (options) => { console.log('useDidShow &&&&&&&&&&&&', options) entryLaunch.getRouteParams(isWeb ? { query: options } : options).then((params) => { - console.log(`app componentDidShow:`, options, params) Taro.setStorageSync(SG_ROUTER_PARAMS, params) + if (params.gu || params.gu_user_id) { + Taro.setStorageSync(SG_GUIDE_PARAMS, { + ...params, + gu_user_id: params.gu_user_id || params.gu.split('_')[0] + }) + Taro.setStorageSync(SG_GUIDE_PARAMS_UPDATETIME, dayjs().unix() * 1000) + } + + console.log(`app componentDidShow:`, params) + if (typeof params.runFlag === 'undefined') { Taro.setStorageSync(SG_CHECK_STORE_RULE, 0) @@ -115,11 +127,8 @@ function App({ children }) { Taro.removeStorageSync(SG_GUIDE_PARAMS) Taro.removeStorageSync(SG_GUIDE_PARAMS_UPDATETIME) } - } - if (params.gu || params.gu_user_id) { - Taro.setStorageSync(SG_GUIDE_PARAMS, params) - Taro.setStorageSync(SG_GUIDE_PARAMS_UPDATETIME, dayjs().unix()) + getSystemConfig() } }) }) @@ -182,7 +191,7 @@ function App({ children }) { entryStoreByStoreCode: enterStoreRule?.distributor_code, entryStoreByGuideMaterial: enterStoreRule?.shop_assistant, - enterStoreWhiteList: enterStoreRule?.white_list, + enterStoreWhiteList: enterStoreRule?.shop_white, entryStoreByGuide: enterStoreRule?.shop_assistant_pro, entryStoreByLBS: enterStoreRule?.shop_lbs, entryDefalutStore: enterStoreRule?.radio_type, diff --git a/src/components/sp-goods-item/index.js b/src/components/sp-goods-item/index.js index dde5d57bf..7a142bd16 100644 --- a/src/components/sp-goods-item/index.js +++ b/src/components/sp-goods-item/index.js @@ -152,12 +152,14 @@ function SpGoodsItem(props) { {/* 商品价格、积分 */} - {info.point && ( + {info.point && info.point > 0 ? ( {info.price > 0 ? + : ''} {info.price > 0 ? : ''} + ) : ( + '' )} {!info.point && showPrice && ( @@ -231,13 +233,15 @@ function SpGoodsItem(props) { )} - {showAddCart && ( + {showAddCart ? ( onChangeToolBar(e)}> + ) : ( + '' )} - {info.point && 兑换} + {info.point && info.point > 0 ? 兑换 : ''} diff --git a/src/components/sp-page/index.js b/src/components/sp-page/index.js index f37406fca..9a538e8b8 100644 --- a/src/components/sp-page/index.js +++ b/src/components/sp-page/index.js @@ -395,6 +395,25 @@ const SpPage = memo( /> ) } + if (citem.id == 'homeSearch') { + return ( + { + Taro.navigateTo({ + url: '/pages/item/list' + }) + }} + /> + ) + } return ( is_point, price: ({ price }) => price / 100, // 销售价 - activityPrice: ({ activity_price }) => activity_price / 100, // 秒杀价 + activityPrice: ({ activity_price, act_price }) => (activity_price || act_price) / 100, // 秒杀价 marketPrice: ({ market_price }) => market_price / 100, // 原价 memberPrice: ({ member_price }) => member_price / 100, // 当前会员等级价 vipPrice: ({ vip_price }) => vip_price / 100, // vip价格 diff --git a/src/doc/point.js b/src/doc/point.js index 74963b050..4a026333e 100644 --- a/src/doc/point.js +++ b/src/doc/point.js @@ -29,7 +29,7 @@ const JOURNAL_TYPE = { export const POINT_LIST_ITEM = { journalType: ({ journal_type }) => JOURNAL_TYPE[journal_type], - outinType: 'outin_type', + outinType: ({ income, outcome }) => (income ? 'in' : outcome ? 'out' : ''), point: ({ point }) => thousandthFormat(point), orderId: 'order_id', created: ({ created }) => formatDateTime(created) diff --git a/src/hocs/withPageWrapper.js b/src/hocs/withPageWrapper.js index 811e694f7..1325b620f 100644 --- a/src/hocs/withPageWrapper.js +++ b/src/hocs/withPageWrapper.js @@ -16,6 +16,7 @@ function withPageWrapper(Component) { return function EnhancedComponent(props) { const dispatch = useDispatch() const { initState, entryDefalutStore, guidderTemplateId } = useSelector((state) => state.sys) + const { shopInfo } = useSelector((state) => state.shop) const { checkEnterStoreRule, checkStoreWhiteList, @@ -28,30 +29,44 @@ function withPageWrapper(Component) { useEffectAsync(async () => { if (initState) { - // 启动时(冷启动+热启动)执行云店进店规则 - if (VERSION_STANDARD && Taro.getStorageSync(SG_CHECK_STORE_RULE) == 0) { - // 云店进店规则 - try { - Taro.setStorageSync(SG_CHECK_STORE_RULE, 1) - await checkEnterStoreRule() - setState(true) - } catch (error) { - // 检查店铺开启了白名单,需要登录授权 - if (error.message == 'AUTH_REQUIRED') { - await handleToLogin() - await handleStoreWhiteList() - setState(true) - } else if (error.message == 'CHECK_WHITE_LIST') { - await handleStoreWhiteList() - setState(true) - } - } - } else { - setState(true) - } + resolveInStoreRule() } }, [initState]) + useEffect(() => { + if (state) { + setState(false) + + setTimeout(() => { + resolveInStoreRule() + }, 1000) + } + }, [shopInfo]) + + const resolveInStoreRule = async () => { + // 启动时(冷启动+热启动)执行云店进店规则 + if (VERSION_STANDARD && Taro.getStorageSync(SG_CHECK_STORE_RULE) == 0) { + // 云店进店规则 + try { + Taro.setStorageSync(SG_CHECK_STORE_RULE, 1) + await checkEnterStoreRule() + setState(true) + } catch (error) { + // 检查店铺开启了白名单,需要登录授权 + if (error.message == 'AUTH_REQUIRED') { + await handleToLogin() + await handleStoreWhiteList() + setState(true) + } else if (error.message == 'CHECK_WHITE_LIST') { + await handleStoreWhiteList() + setState(true) + } + } + } else { + setState(true) + } + } + const handleToLogin = async () => { try { await showLoinModal() @@ -59,14 +74,27 @@ function withPageWrapper(Component) { const res = await showModal({ title: '提示', content: '你还未登录,请先登录!', - cancelText: '退出', + cancelText: '返回', confirmText: '继续登录', contentAlign: 'center' }) if (res.confirm) { await handleToLogin() } else { - Taro.exitMiniProgram() + // 返回兜底店铺逻辑 + if (entryDefalutStore == '1') { + try { + await checkStoreWhiteList(null, false) + } catch (err) { + await handleToLogin() + } + } else { + Taro.redirectTo({ + url: `/pages/custom/custom-page?id=${guidderTemplateId}&fromConnect=davild` + }) + throw new Error('TO_STORE_GUIDE_PAGE') + } + // Taro.exitMiniProgram() } } } @@ -85,11 +113,16 @@ function withPageWrapper(Component) { }) if (res.confirm) { if (entryDefalutStore == '1') { - await checkStoreWhiteList() + try { + await checkStoreWhiteList(null, false) + } catch (err) { + await handleStoreWhiteList() + } } else { Taro.redirectTo({ url: `/pages/custom/custom-page?id=${guidderTemplateId}&fromConnect=davild` }) + throw new Error('TO_STORE_GUIDE_PAGE') } // Taro.exitMiniProgram() // throw new Error('EXIT_MINI_PROGRAM') @@ -121,7 +154,6 @@ function withPageWrapper(Component) { dispatch(updateShopInfo(myShopInfo)) } } - if (state) { return } else { diff --git a/src/hooks/useLocation.js b/src/hooks/useLocation.js index 90b0c3e5e..b8aa5cf4e 100644 --- a/src/hooks/useLocation.js +++ b/src/hooks/useLocation.js @@ -8,15 +8,13 @@ import S from '@/spx' export default (props) => { const dispatch = useDispatch() const { location } = useSelector((state) => state.user) - const { open_divided } = useSelector((state) => state.sys) /** * 未登录状态 && 授权定位 == 定位 * 未登录状态 && 不授权定位 == 默认值 */ const updateAddress = async () => { - // open_divided店铺隔离,只取定位地址 - if (S.getAuthToken() && !open_divided) { + if (S.getAuthToken()) { await addressLogic() } else { const res1 = await fetchLocation() diff --git a/src/hooks/useWhiteShop.js b/src/hooks/useWhiteShop.js index 195f333de..6f76a88cd 100644 --- a/src/hooks/useWhiteShop.js +++ b/src/hooks/useWhiteShop.js @@ -3,10 +3,11 @@ import { useSelector, useDispatch } from 'react-redux' import Taro from '@tarojs/taro' import api from '@/api' import S from '@/spx' -import { pickBy, getDistributorId } from '@/utils' +import { pickBy, getDistributorId, entryLaunch, isEmpty } from '@/utils' import doc from '@/doc' import { useShopInfo } from '@/hooks' import { updateShopInfo } from '@/store/slices/shop' +import { updateLocation } from '@/store/slices/user' import { SG_ROUTER_PARAMS, SG_GUIDE_PARAMS } from '@/consts/localstorage' import configStore from '@/store' @@ -25,28 +26,35 @@ export default () => { const shopInfoRef = useRef(null) - const checkStoreWhiteList = async (dtid) => { + const checkStoreWhiteList = async (dtid, isLocation = true) => { const params = {} if (dtid) { params['distributor_id'] = dtid - } else if (entryStoreByLBS) { - params['lat'] = location?.lat - params['lng'] = location?.lng + } else if (entryStoreByLBS && isLocation) { + if (isEmpty(location)) { + const locationInfo = await entryLaunch.getLocationInfo() + dispatch(updateLocation(locationInfo)) + params['lat'] = locationInfo?.lat + params['lng'] = locationInfo?.lng + } else { + params['lat'] = location?.lat + params['lng'] = location?.lng + } } // 开启店铺码进店 const currentShopInfo = await api.shop.getShop(params) shopInfoRef.current = currentShopInfo - // 如果请求的店铺ID和接口返回的店铺ID不一致(店铺可能关闭或禁用),此时需要根据兜底策略来决定跳转到引导页和默认店铺页 if ( dtid > 0 && currentShopInfo.distributor_id !== 0 && currentShopInfo.distributor_id !== dtid && - entryDefalutStore === '2' + entryDefalutStore == '2' ) { Taro.redirectTo({ url: `/pages/custom/custom-page?id=${guidderTemplateId}&fromConnect=davild` }) + throw new Error('TO_STORE_GUIDE_PAGE') } if (currentShopInfo.distributor_id !== 0 && currentShopInfo.open_divided == '1') { @@ -65,7 +73,6 @@ export default () => { const checkEnterStoreRule = async () => { const { dtid } = Taro.getStorageSync(SG_ROUTER_PARAMS) const { gu_user_id } = Taro.getStorageSync(SG_GUIDE_PARAMS) // gu_user_id = 导购工号 - // 路由带参 if (dtid) { if (entryStoreByStoreCode) { @@ -82,38 +89,42 @@ export default () => { work_userid: gu_user_id }) if (guideStoreInfo?.distributor_id) { - await checkStoreWhiteList(guideStoreInfo?.distributor_id) + await checkStoreWhiteList(guideStoreInfo?.distributor_id, false) } else { // 兜底策略 - if (entryDefalutStore === '1') { + if (entryDefalutStore == '1') { // 当前导购未绑定店铺 - await checkStoreWhiteList() - } else if (entryDefalutStore === '2') { + await checkStoreWhiteList(null, false) + } else if (entryDefalutStore == '2') { Taro.redirectTo({ url: `/pages/custom/custom-page?id=${guidderTemplateId}&fromConnect=davild` }) + throw new Error('TO_STORE_GUIDE_PAGE') } } } else { await checkStoreWhiteList() } } else { + // 进入专属导购所属店 if (entryStoreByGuide && S.getAuthToken()) { const guideStoreInfo = await api.shop.checkStoreEnterRule() if (guideStoreInfo?.distributor_id) { await checkStoreWhiteList(guideStoreInfo?.distributor_id) } else { // 兜底策略 - if (entryDefalutStore === '1') { + if (entryDefalutStore == '1') { // 当前导购未绑定店铺 - await checkStoreWhiteList() - } else if (entryDefalutStore === '2') { + await checkStoreWhiteList(null, false) + } else if (entryDefalutStore == '2') { Taro.redirectTo({ url: `/pages/custom/custom-page?id=${guidderTemplateId}&fromConnect=davild` }) + throw new Error('TO_STORE_GUIDE_PAGE') } } } else if (enterStoreWhiteList && S.getAuthToken()) { + // 进入白名单会员店 const myShopInfo = await getUserWhiteShop() if (myShopInfo) { dispatch(updateShopInfo(myShopInfo)) @@ -143,6 +154,7 @@ export default () => { return { checkEnterStoreRule, + checkStoreWhiteList, checkUserInStoreWhiteList, getUserWhiteShop } diff --git a/src/pages/cart/espier-checkout.js b/src/pages/cart/espier-checkout.js index 6934517c9..bdc29c3dd 100644 --- a/src/pages/cart/espier-checkout.js +++ b/src/pages/cart/espier-checkout.js @@ -317,9 +317,13 @@ function CartCheckout(props) { draft.submitLoading = false }) Taro.hideLoading() + Taro.showToast({ + title: `${e?.message || '创建订单失败,请稍后再试'}`, + icon: 'none' + }) setTimeout(() => { Taro.navigateBack() - }, 100) + }, 800) return } Taro.hideLoading() diff --git a/src/pages/custom/custom-page.js b/src/pages/custom/custom-page.js index 9f5106189..11d088760 100644 --- a/src/pages/custom/custom-page.js +++ b/src/pages/custom/custom-page.js @@ -42,7 +42,6 @@ function CustomPage(props) { const MSpSkuSelect = React.memo(SpSkuSelect) const pageRef = useRef() const loginRef = useRef() - const { open_divided } = useSelector((state) => state.sys) const router = useRouter() useEffect(() => { @@ -108,11 +107,8 @@ function CustomPage(props) { const { id } = await entryLaunch.getRouteParams($instance.router.params) const { userId } = Taro.getStorageSync('userinfo') const query = userId ? `?uid=${userId}&id=${id}` : `?id=${id}` - let path = `/pages/custom/custom-page${query}` - if (open_divided) { - path += `&tdid=${getDistributorId() || 0}` - } + log.debug(`getAppShareInfo: ${path}`) return { title: shareInfo.page_share_title, diff --git a/src/pages/home/wgts/full-slider.js b/src/pages/home/wgts/full-slider.js index b61e774c5..2cf7a75fc 100644 --- a/src/pages/home/wgts/full-slider.js +++ b/src/pages/home/wgts/full-slider.js @@ -146,36 +146,54 @@ function WgtFullSlider(props) { if (!config) return null const page = Number(curIdx + 1) const { dotbottom, indicatorText, indicatorFontSize, indicatorColor } = config + const currentItem = localData[curIdx] return ( - + { + if (currentItem?.moreLink) { + linkPage(currentItem?.moreLink) + } + }} + > {page < 10 ? '0' + page : page} / {localData.length < 10 ? '0' + localData.length : localData.length} - - {indicatorText} - - + {currentItem?.moreLink ? ( + linkPage(currentItem?.moreLink)} + > + {indicatorText} + + ) : null} + {currentItem?.moreLink ? ( + linkPage(currentItem?.moreLink)} + style={{ + marginRight: 4, + width: 0, + height: 0, + borderTop: '8px solid transparent', + borderBottom: '8px solid transparent', + borderLeft: `12px solid ${indicatorColor}`, + position: 'absolute', + right: '-22px', + top: indicatorText ? '40%' : '30%', + color: indicatorColor + }} + /> + ) : null} ) } @@ -307,7 +325,7 @@ function WgtFullSlider(props) { objectFit='cover' showCenterPlayBtn={false} showFullscreenBtn={false} - muted + muted={false} id={`swiperVideo_${index}${props.index}`} onEnded={(e) => handlePlayEnd(e, item)} onPlay={(e) => handlePlayStart(e, item, index)} diff --git a/src/pages/home/wgts/imghot-zone.scss b/src/pages/home/wgts/imghot-zone.scss index 17877505c..473231521 100644 --- a/src/pages/home/wgts/imghot-zone.scss +++ b/src/pages/home/wgts/imghot-zone.scss @@ -1,7 +1,6 @@ .wgt-imghot-zone { .img-hotzone { position: relative; - border-radius: 16px; overflow: hidden; &_zone { position: absolute; diff --git a/src/pages/item/espier-detail.js b/src/pages/item/espier-detail.js index c7ff6ebe4..ead8842f5 100644 --- a/src/pages/item/espier-detail.js +++ b/src/pages/item/espier-detail.js @@ -166,8 +166,11 @@ function EspierDetail(props) { fetch() getPackageList() getEvaluationList() - // 导购浏览记录 - api.member.itemHistorySave(id) + + if (S.getAuthToken()) { + // 导购浏览记录 + api.member.itemHistorySave(id) + } } }, [id]) @@ -301,7 +304,7 @@ function EspierDetail(props) { distributor_id: dtid }) - setNavigationBarTitle(data.itemName) + // setNavigationBarTitle(data.itemName) console.log(ACTIVITY_LIST[data.activityType]) if (ACTIVITY_LIST[data.activityType]) { @@ -354,11 +357,11 @@ function EspierDetail(props) { .catch((error) => { console.log('获取图片信息失败:', url, error) // 返回一个默认高度或 null - return { width: 0, height: 750 } + return { width: 0, height: 650 } }) ) const results = await Promise.all(promises) - return results.map((info) => info.height / 2) + return results.map((info) => (info.height / 2 > 650 ? 650 : info.height / 2)) } const getRecommendList = async () => { @@ -427,9 +430,10 @@ function EspierDetail(props) { return { height: '100%', width: '100%', - backgroundSize: '100% auto', + backgroundSize: 'cover', backgroundImage: `url(${item})`, - backgroundRepeat: 'no-repeat' + backgroundRepeat: 'no-repeat', + backgroundPosition: 'center' } } diff --git a/src/subpages/guide/components/wgts/imghot-zone.scss b/src/subpages/guide/components/wgts/imghot-zone.scss index 17877505c..473231521 100644 --- a/src/subpages/guide/components/wgts/imghot-zone.scss +++ b/src/subpages/guide/components/wgts/imghot-zone.scss @@ -1,7 +1,6 @@ .wgt-imghot-zone { .img-hotzone { position: relative; - border-radius: 16px; overflow: hidden; &_zone { position: absolute; diff --git a/src/subpages/guide/item/espier-detail.js b/src/subpages/guide/item/espier-detail.js index 0bf4a38a0..2086b4167 100644 --- a/src/subpages/guide/item/espier-detail.js +++ b/src/subpages/guide/item/espier-detail.js @@ -428,7 +428,7 @@ function EspierDetail(props) { {info.itemName} - {isWeixin && ( + {/* {isWeixin && ( { @@ -440,7 +440,7 @@ function EspierDetail(props) { 分享 - )} + )} */} diff --git a/src/subpages/i18n/lang/index.json b/src/subpages/i18n/lang/index.json index 461d0d49b..81d5f697c 100644 --- a/src/subpages/i18n/lang/index.json +++ b/src/subpages/i18n/lang/index.json @@ -12888,5 +12888,10 @@ "zh-cn": "取消1", "en": "Cancel 1", "zh-tw": "取消1" + }, + "dai4x2c": { + "zh-cn": "创建订单失败,请稍后再试", + "en": "The order creation failed. Please try again later", + "zh-tw": "創建訂單失敗,請稍後再試" } } \ No newline at end of file diff --git a/src/subpages/member/index copy.js b/src/subpages/member/index copy.js deleted file mode 100644 index 7bbd75b15..000000000 --- a/src/subpages/member/index copy.js +++ /dev/null @@ -1,688 +0,0 @@ -import Taro, { - useDidShow, - useShareAppMessage, - getCurrentPages, - getCurrentInstance -} from '@tarojs/taro' -import { useState, useEffect, useCallback, useRef } from 'react' -import { updateUserInfo, fetchUserFavs, updateCheckChief } from '@/store/slices/user' -import { View, ScrollView, Text, Image, Button } from '@tarojs/components' -import { SG_APP_CONFIG, MERCHANT_TOKEN, SG_TOKEN } from '@/consts' -import { useSelector, useDispatch } from 'react-redux' -import { useImmer } from 'use-immer' - -import { - SpLogin, - SpImage, - SpPrice, - CouponModal, - SpPrivacyModal, - SpTabbar, - SpPage -} from '@/components' -import api from '@/api' -import { - navigateTo, - getThemeStyle, - styleNames, - classNames, - showToast, - showModal, - isWeixin, - normalizeQuerys, - log, - VERSION_PLATFORM, - VERSION_STANDARD, - getDistributorId -} from '@/utils' -import S from '@/spx' -import { - updatePurchaseShareInfo, - updateInviteCode, - updateCurDistributorId, - updateIsOpenPurchase -} from '@/store/slices/purchase' -import { useLogin, useLocation } from '@/hooks' -import { updateDeliveryPersonnel } from '@/store/slices/cart' -import CompVipCard from './comps/comp-vipcard' -import CompBanner from './comps/comp-banner' -import CompPanel from './comps/comp-panel' -import CompMenu from './comps/comp-menu' -import CompHelpCenter from './comps/comp-helpcenter' -import './index.scss' - -const initialConfigState = { - banner: { - isShow: false, - loginBanner: '', - noLoginBanner: '', - pageUrl: '', - urlOpen: false, - appId: null - }, - menu: { - pointMenu: false, // 积分菜单 - activity: false, // 活动预约 - offline_order: false, // 线下订单 - boost_activity: false, // 助力活动 - boost_order: false, // 助力订单 - complaint: false, // 投诉记录 - community_order: false, // 社区团购订单 - community_group_enable: false, // 社区团购 - ext_info: false, - group: false, // 我的拼团 - member_code: false, // 会员二维码 - recharge: false, // 储值 - ziti_order: false, // 自提 - share_enable: false, // 分享 - memberinfo_enable: false, // 个人信息 - tenants: true, //商家入驻 - purchase: true, // 员工内购 - dianwu: false, // 店务, - community: false, // 社区 - salesman: true - }, - infoAppId: '', - infoPage: '', - infoUrlIsOpen: true, - pointAppId: '', - pointPage: '', - pointUrlIsOpen: true, - memberConfig: { - // defaultImg: null, - vipImg: null - }, - purchaseRes: {} -} - -const initialState = { - favCount: 0, - point: 0, - couponCount: 0, - username: '', - avatar: '', - mobile: '', - waitPayNum: 0, - waitSendNum: 0, - waitRecevieNum: 0, - waitEvaluateNum: 0, - afterSalesNum: 0, - zitiNum: 0, - deposit: 0, - salesPersonList: {}, - deliveryStaffList: [] //配送员 -} - -function MemberIndex(props) { - // console.log('===>getCurrentPages==>', getCurrentPages(), getCurrentInstance()) - const $instance = getCurrentInstance() - const { updateAddress } = useLocation() - const { isLogin, isNewUser, login, getUserInfoAuth } = useLogin({ - autoLogin: true, - // policyUpdateHook: (isUpdate) => { - // // isUpdate && setPolicyModal(true) - // if (isUpdate) { - // RefLogin.current._setPolicyModal() - // } - - loginSuccess: () => { - updateAddress() - } - }) - const [config, setConfig] = useImmer(initialConfigState) - const [state, setState] = useImmer(initialState) - const [policyModal, setPolicyModal] = useState(false) - - const { userInfo = {}, vipInfo = {} } = useSelector((state) => state.user) - const { pointName, open_divided } = useSelector((state) => state.sys) - const { - shopInfo: { store_name } - } = useSelector((state) => state.shop) - log.debug(`store userInfo: ${JSON.stringify(userInfo)}`) - const dispatch = useDispatch() - - useEffect(() => { - if (isLogin) { - getMemberCenterData() - setMemberBackground() - getEmployeeIsOpen() - const { redirect } = $instance.router.params - if (redirect) { - Taro.redirectTo({ url: decodeURIComponent(redirect) }) - } - } - }, [isLogin]) - - useEffect(() => { - getMemberCenterConfig() - // 白名单 - getSettings() - }, []) - - useDidShow(() => { - if (isLogin) { - getMemberCenterData() - } - }) - - // useDidShow(() => { - // if (isLogin) { - // getMemberCenterData() - // setMemberBackground() - // } - // // if (S.get(MERCHANT_TOKEN, true)) { - // // S.delete(MERCHANT_TOKEN, true) - // // } - // // if (S.get(SG_TOKEN)) { - // // setHeaderBlock() - // // } - // }) - - async function getSettings() { - const { whitelist_status = false } = await api.shop.homeSetting() - // 白名单配置 - Taro.setStorageSync(SG_APP_CONFIG, { - whitelist_status - }) - } - - // 分享 - useShareAppMessage(async (res) => { - const { share_title, share_pic_wechatapp } = await api.member.getMemberShareConfig() - const { logo } = await api.distribution.getDistributorInfo({ - distributor_id: 0 - }) - return { - title: share_title, - imageUrl: share_pic_wechatapp || logo, - path: '/pages/index' - } - }) - - const setHeaderBlock = async () => { - const resAssets = await api.member.memberAssets() - const { discount_total_count, fav_total_count, point_total_count } = resAssets - setState((draft) => { - draft.favCount = fav_total_count - draft.point = point_total_count - draft.couponCount = discount_total_count - }) - } - - const getEmployeeIsOpen = async () => { - const purchaseRes = await api.purchase.getEmployeeIsOpen() - setConfig((draft) => { - draft.purchaseRes = purchaseRes - }) - dispatch(updateIsOpenPurchase(purchaseRes.is_open)) - } - - const getMemberCenterConfig = async () => { - const [bannerRes, menuRes, redirectRes, pointShopRes] = await Promise.all([ - // 会员中心banner - await api.shop.getPageParamsConfig({ - page_name: 'member_center_setting' - }), - // 菜单自定义 - await api.shop.getPageParamsConfig({ - page_name: 'member_center_menu_setting' - }), - // 积分跳转配置 - await api.shop.getPageParamsConfig({ - page_name: 'member_center_redirect_setting' - }), - // 积分商城 - await api.pointitem.getPointitemSetting() - ]) - let banner, - menu, - redirectInfo = {} - - if (bannerRes.list.length > 0) { - const { app_id, is_show, login_banner, no_login_banner, page, url_is_open } = - bannerRes.list[0].params.data - banner = { - isShow: is_show, - loginBanner: login_banner, - noLoginBanner: no_login_banner, - pageUrl: page, - urlOpen: url_is_open, - appId: app_id - } - } - if (menuRes.list.length > 0) { - menu = { ...menuRes.list[0].params.data } - } - if (S.getAuthToken() && (VERSION_PLATFORM || VERSION_STANDARD)) { - const { result, status } = await api.member.is_admin() - console.log('env:result', result) - console.log('env:status', status) - S.set('DIANWU_CONFIG', result, status) - menu = { - ...menu, - dianwu: status - } - } - if (redirectRes.list.length > 0) { - const { - info_app_id, - info_page, - info_url_is_open, - point_app_id, - point_page, - point_url_is_open - } = redirectRes.list[0].params.data - redirectInfo = { - infoAppId: info_app_id, - infoPage: info_page, - infoUrlIsOpen: info_url_is_open, - pointAppId: point_app_id, - pointPage: point_page, - pointUrlIsOpen: point_url_is_open - } - } - - setConfig((draft) => { - draft.banner = banner - draft.menu = { - ...menu, - pointMenu: pointShopRes.entrance.mobile_openstatus - } - draft.infoAppId = redirectInfo.info_app_id - draft.infoPage = redirectInfo.info_page - draft.infoUrlIsOpen = redirectInfo.info_url_is_open - draft.pointAppId = redirectInfo.point_app_id - draft.pointPage = redirectInfo.point_page - draft.pointUrlIsOpen = redirectInfo.point_url_is_open - }) - } - - const setMemberBackground = async () => { - let memberRes = await api.member.memberInfo() - let deliveryPersonnel = memberRes?.deliveryStaffList?.list.map((item) => item.operator_id) ?? [] - setConfig((draft) => { - draft.memberConfig = { - // defaultImg: memberRes?.cardInfo?.background_pic_url, - vipImg: memberRes?.vipgrade?.background_pic_url, - backgroundImg: memberRes?.memberInfo?.gradeInfo?.background_pic_url - } - }) - setState((draft) => { - draft.deposit = memberRes.deposit / 100 - draft.salesPersonList = memberRes?.salesPersonList - draft.deliveryStaffList = memberRes?.deliveryStaffList - }) - - dispatch( - updateDeliveryPersonnel({ self_delivery_operator_id: deliveryPersonnel, distributor_id: '' }) - ) //存配送员信息 - dispatch(updateUserInfo(memberRes)) - } - - const getMemberCenterData = async () => { - // const resSales = await api.member.getSalesperson() - const resTrade = await api.trade.getCount() - // const resVip = await api.vip.getList() - // 大转盘 - // const resTurntable = await api.wheel.getTurntableconfig() - const resAssets = await api.member.memberAssets() - const { discount_total_count, fav_total_count, point_total_count } = resAssets - - const { - aftersales, // 待处理售后 - normal_notpay_notdelivery, // 未付款未发货 - normal_payed_daifahuo, // 待发货 - normal_payed_daishouhuo, // 待收货 - normal_payed_daiziti, // 待自提订单 - normal_not_rate // 待评论 - } = resTrade - - setState((draft) => { - draft.favCount = fav_total_count - draft.point = point_total_count - draft.couponCount = discount_total_count - draft.waitPayNum = normal_notpay_notdelivery - draft.waitSendNum = normal_payed_daifahuo - draft.waitRecevieNum = normal_payed_daishouhuo - draft.afterSalesNum = aftersales - draft.zitiNum = normal_payed_daiziti - draft.waitEvaluateNum = normal_not_rate - }) - } - - const handleClickLink = async (link) => { - // await getUserInfoAuth() - Taro.navigateTo({ url: link }) - } - - const handleClickPoint = () => { - const { pointAppId, pointPage, pointUrlIsOpen } = config - if (pointUrlIsOpen) { - Taro.navigateToMiniProgram({ - appId: pointAppId, - path: pointPage - }) - } - } - - const handleClickService = async (item) => { - const { link, key } = item - // await getUserInfoAuth(key !== 'tenants') - // 分销推广 - if (key == 'popularize') { - // 已经是分销员 - if (userInfo.isPromoter) { - Taro.navigateTo({ url: link }) - } else { - const { confirm } = await Taro.showModal({ - title: '邀请推广', - content: '确定申请成为推广员?', - showCancel: true, - cancel: '取消', - confirmText: '确认', - confirmColor: '#0b4137' - }) - if (!confirm) return - const { status } = await api.distribution.become() - if (status) { - Taro.showModal({ - title: '恭喜', - content: '已成为推广员', - showCancel: false, - confirmText: '好' - }) - } - } - return - } - if (key == 'useinfo') { - const { infoAppId, infoPage, infoUrlIsOpen } = config - if (infoUrlIsOpen) { - Taro.navigateToMiniProgram({ - appId: infoAppId, - path: infoPage - }) - } - } - if (key == 'community') { - const res = await api.community.checkChief() - dispatch(updateCheckChief(res)) - if (res.status) { - Taro.navigateTo({ url: link }) - } else { - Taro.navigateTo({ url: `/subpages/community/order` }) - } - } - - if (key == 'purchase') { - const data = await api.purchase.getUserEnterprises({ - disabled: 0, - distributor_id: getDistributorId() - }) - if (data?.length > 0) { - Taro.navigateTo({ url: '/subpages/purchase/select-identity?is_redirt=1' }) - } else { - Taro.navigateTo({ url: '/pages/purchase/auth' }) - } - dispatch(updatePurchaseShareInfo()) - dispatch(updateInviteCode()) - dispatch(updateCurDistributorId(null)) - return - } - - if (link) { - Taro.navigateTo({ url: link }) - } - } - const VipGradeDom = () => { - if (isLogin) { - return ( - - - {(userInfo && (userInfo.username || userInfo.mobile)) || '获取昵称'} - - { - Taro.navigateTo({ url: '/subpages/member/member-level' }) - }} - > - { - { - true: vipInfo.grade_name || '会员', - false: userInfo?.gradeInfo?.grade_name || '' - }[vipInfo.isVip] - } - - - ) - } else { - return ( - - 登录查看全部订单 - - ) - } - } - - if (!config) { - return null - } - - // console.log(`member page:`, state, config); - - const { memberConfig } = config - - console.log('====config===', config.menu) - - return ( - }> - - - {VERSION_STANDARD && open_divided && ( - { - Taro.navigateTo({ - url: '/subpages/store/list' - }) - }} - > - - 我的店铺 {store_name || '暂无店铺信息'} - - - - )} - - - - - - - {VipGradeDom()} - - - - {config.menu.member_code && ( - - - - )} - - - - - - - {/* {config.menu.member_code && ( - - - - )} - - - */} - - 优惠券(张) - {state.couponCount} - - - {`${pointName}`} - {state.point} - - {/* {process.env.NODE_ENV === 'development' && ( - - 储值(¥) - - - - - )} */} - - 收藏(个) - {state.favCount} - - - - {/* 会员卡等级 */} - {vipInfo.isOpen && ( - - - - )} - - - - - {config.banner?.isShow && ( - - )} - - - 查看全部订单 - - } - > - {config.menu.ziti_order && ( - - - - 自提订单 - - 您有{state.zitiNum} - 个等待自提的订单 - - - - - - )} - - - - - {state.waitPayNum > 0 && ( - - {state.waitPayNum} - - )} - 待支付 - - - - {state.waitRecevieNum + state.waitSendNum > 0 && ( - - {state.waitRecevieNum + state.waitSendNum} - - )} - 待收货 - - - - {state.waitEvaluateNum > 0 && ( - - {state.waitEvaluateNum} - - )} - 待评价 - - - - {state.afterSalesNum > 0 && ( - - {state.afterSalesNum} - - )} - 售后 - - - - - - - - - - - - - - ) -} - -export default MemberIndex diff --git a/src/subpages/member/point-detail.js b/src/subpages/member/point-detail.js index 1e3740db5..b27a2b94b 100644 --- a/src/subpages/member/point-detail.js +++ b/src/subpages/member/point-detail.js @@ -7,7 +7,6 @@ import { SpPage, SpScrollView, SpImage } from '@/components' import api from '@/api' import doc from '@/doc' import { classNames, pickBy, thousandthFormat } from '@/utils' -import { POINT_TYPE } from '@/consts' import './point-detail.scss' const btns = [ diff --git a/src/subpages/member/user-info.js b/src/subpages/member/user-info.js index ba7525eed..dcabed105 100644 --- a/src/subpages/member/user-info.js +++ b/src/subpages/member/user-info.js @@ -10,7 +10,6 @@ import { SG_POLICY } from '@/consts' import { classNames, showToast, formatTime, isWeixin, isWeb, VERSION_SHUYUN } from '@/utils' import imgUploader from '@/utils/upload' import { View, Input, Picker, Button } from '@tarojs/components' -import { updateLang } from '@/store/slices/user' import i18n from '@/lang/consts' import './user-info.scss' diff --git a/src/subpages/pointshop/espier-detail.js b/src/subpages/pointshop/espier-detail.js index ec4c6038f..29fd8a0cd 100644 --- a/src/subpages/pointshop/espier-detail.js +++ b/src/subpages/pointshop/espier-detail.js @@ -322,6 +322,19 @@ function PointShopEspierDetail(props) { + {info.video && ( + + + + + )} {info.imgs.map((img, idx) => ( {info.imgs.length > 1 && ( - {`${curImgIdx + 1}/${info.imgs.length}`} + {`${curImgIdx + 1}/${ + info.imgs.length + (info.video ? 1 : 0) + }`} )} - {info.video && play && ( - - - )} - - {info.video && ( + {/* {info.video && ( {!play && } {play ? '退出视频' : '播放视频'} - - )} + */} + {/* )} */} diff --git a/src/subpages/pointshop/espier-detail.scss b/src/subpages/pointshop/espier-detail.scss index 823e50139..1e7ea03bf 100644 --- a/src/subpages/pointshop/espier-detail.scss +++ b/src/subpages/pointshop/espier-detail.scss @@ -14,12 +14,7 @@ bottom: 0; .item-video { width: 100%; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - z-index: 100; - // height: auto; + height: 100%; } .btn-play { position: absolute; @@ -92,7 +87,7 @@ } } .goods-desc { - margin: 24px 16px; + margin: 24px 0px; background-color: #fff; box-shadow: 0px 2px 10px 0px #eae7e0; .desc-hd { diff --git a/src/subpages/pointshop/list.js b/src/subpages/pointshop/list.js index 9f438ec78..f2d3996ef 100644 --- a/src/subpages/pointshop/list.js +++ b/src/subpages/pointshop/list.js @@ -250,7 +250,15 @@ function PointShopList() { {userInfo?.username} - + { + console.log('point-total') + Taro.navigateTo({ + url: '/subpages/member/point-detail' + }) + }} + > diff --git a/src/subpages/store/comps/comp-shopitem.js b/src/subpages/store/comps/comp-shopitem.js index f7dfa88f5..cdde14884 100644 --- a/src/subpages/store/comps/comp-shopitem.js +++ b/src/subpages/store/comps/comp-shopitem.js @@ -6,7 +6,6 @@ import './comp-shopitem.scss' function CompShopItem(props) { const { info } = props - const { open_divided } = useSelector((state) => state.sys) if (!info) { return null @@ -19,7 +18,7 @@ function CompShopItem(props) { */} - {!open_divided && {info.distance || '100km'}} + {info.distance || '100km'} {info.store_name} {info.isOpenDivided && ( diff --git a/src/subpages/store/list.js b/src/subpages/store/list.js index a7a683809..f93f8e500 100644 --- a/src/subpages/store/list.js +++ b/src/subpages/store/list.js @@ -8,7 +8,7 @@ import { updateLocation, updateChooseAddress } from '@/store/slices/user' import { updateShopInfo } from '@/store/slices/shop' import api from '@/api' import { useLogin } from '@/hooks' -import { SG_ROUTER_PARAMS } from '@/consts/localstorage' +import { SG_ROUTER_PARAMS, SG_CHECK_STORE_RULE } from '@/consts/localstorage' import doc from '@/doc' import { entryLaunch, pickBy, classNames, showToast, log, isArray, isObject } from '@/utils' import CompShopItem from './comps/comp-shopitem' @@ -61,7 +61,6 @@ function NearlyShop(props) { const [policyModal, setPolicyModal] = useState(false) const { location = {}, address } = useSelector((state) => state.user) const { shopInfo } = useSelector((state) => state.shop) - const { open_divided } = useSelector((state) => state.sys) const shopRef = useRef() const pageRef = useRef() const dispatch = useDispatch() @@ -226,6 +225,7 @@ function NearlyShop(props) { const handleClickShop = (info) => { dispatch(updateShopInfo(info)) //新增非门店自提,开启distributor_id 取值为store_id + Taro.setStorageSync(SG_CHECK_STORE_RULE, 0) // 清空小程序启动时携带的参数 Taro.setStorageSync(SG_ROUTER_PARAMS, {}) setTimeout(() => { @@ -250,87 +250,79 @@ function NearlyShop(props) { return ( - {!open_divided && ( - <> - - - - { - setState((draft) => { - draft.isSpAddressOpened = true - }) - }} - > - - {chooseValue.join('') || '选择地区'} - {/* */} - - - - - - - {state.keyword && state.keyword.length > 0 && ( - - )} - + + + + { + setState((draft) => { + draft.isSpAddressOpened = true + }) + }} + > + + {chooseValue.join('') || '选择地区'} + {/* */} - {isRecommend && ( - - - 您想要地区的店铺暂时未入驻网上商城 - - )} - - - 当前定位地址 - - - {location?.address || '无法获取您的位置信息'} - - - - {location?.address ? (state.locationIng ? '定位中...' : '重新定位') : '开启定位'} - - - {address && ( - - 我的收货地址 - + + + + {state.keyword && state.keyword.length > 0 && ( + )} - - - {address && ( - onLocationChange(address)} - >{`${address.province}${address.city}${address.county}${address.adrdetail}`} - )} - - + + + + {isRecommend && ( + + + 您想要地区的店铺暂时未入驻网上商城 + )} - - - {!open_divided ? (location?.address ? '附近门店' : '推荐门店') : ''} + + 当前定位地址 + + {location?.address || '无法获取您的位置信息'} + + + {location?.address ? (state.locationIng ? '定位中...' : '重新定位') : '开启定位'} + + {address && ( + + 我的收货地址 + + )} + + + {address && ( + onLocationChange(address)} + >{`${address.province}${address.city}${address.county}${address.adrdetail}`} + )} + + + + + {location?.address ? '附近门店' : '推荐门店'} {state.shopList.map((item, index) => ( - {headquarters && !open_divided && ( + {headquarters && ( handleClickShop(headquarters)}> {headquarters.store_name} @@ -352,17 +344,15 @@ function NearlyShop(props) { )} - {!open_divided && ( - { - setState((draft) => { - draft.isSpAddressOpened = false - }) - }} - onChange={onPickerChange} - /> - )} + { + setState((draft) => { + draft.isSpAddressOpened = false + }) + }} + onChange={onPickerChange} + /> ) } diff --git a/src/subpages/trade/after-sale.js b/src/subpages/trade/after-sale.js index 3810e2b58..565b71b17 100644 --- a/src/subpages/trade/after-sale.js +++ b/src/subpages/trade/after-sale.js @@ -471,6 +471,7 @@ function TradeAfterSale(props) { value={description} placeholder='请输入您的补充描述(选填)' maxLength={200} + placeholderStyle='padding-left: 10px;' onChange={(e) => { setState((draft) => { draft.description = e diff --git a/src/subpages/trade/after-sale.scss b/src/subpages/trade/after-sale.scss index 967eef6cc..2840f9154 100644 --- a/src/subpages/trade/after-sale.scss +++ b/src/subpages/trade/after-sale.scss @@ -184,7 +184,6 @@ padding-bottom: 10px; border-bottom: 1px solid #f5f5f5; - &::after { content: ''; /* prettier-ignore */ @@ -209,7 +208,6 @@ margin-bottom: 40px; } - .return-goods-type { margin: 24px 16px 0; border-radius: 6px; @@ -249,19 +247,27 @@ margin: 0 32px; display: flex; overflow: hidden; - } + position: relative; - .icon-bianji1 { - color: #aaaaaa; - } + .icon-bianji1 { + color: #aaaaaa; + position: absolute; + z-index: 999; + top: 13px; + left: 10px; + } - .at-textarea { - border-width: 0; - padding: 0; - margin: 6px 0 0 10px; + .at-textarea { + border-width: 0; + padding: 0; + margin: 0; + width: 100%; - &__textarea { - font-size: 24px; + &__textarea { + font-size: 24px; + line-height: normal; + padding: 0px 10px 20px 40px; + } } } @@ -390,7 +396,7 @@ margin-left: 30px; } } - .prescription-drug{ + .prescription-drug { font-size: 22px; color: var(--color-primary); padding: 0 4px; diff --git a/src/subpages/trade/comps/comp-aftertrade-item.js b/src/subpages/trade/comps/comp-aftertrade-item.js index 64476bcae..40d1f7046 100644 --- a/src/subpages/trade/comps/comp-aftertrade-item.js +++ b/src/subpages/trade/comps/comp-aftertrade-item.js @@ -52,7 +52,7 @@ function CompTradeItem(props) { - + {/* {distributorInfo?.name} diff --git a/src/subpages/trade/comps/comp-aftertrade-item.scss b/src/subpages/trade/comps/comp-aftertrade-item.scss index 43346e0a3..3493e4216 100644 --- a/src/subpages/trade/comps/comp-aftertrade-item.scss +++ b/src/subpages/trade/comps/comp-aftertrade-item.scss @@ -11,7 +11,6 @@ .trade-no { font-size: 24px; color: #333; - margin-top: 24px; } .trade-time { diff --git a/src/subpages/trade/logistics-info.js b/src/subpages/trade/logistics-info.js index 8e87fa413..7e6295c21 100644 --- a/src/subpages/trade/logistics-info.js +++ b/src/subpages/trade/logistics-info.js @@ -1,13 +1,12 @@ import React, { useEffect } from 'react' -import { useSelector } from 'react-redux' import { useImmer } from 'use-immer' import Taro, { getCurrentInstance } from '@tarojs/taro' import { AtButton } from 'taro-ui' import api from '@/api' -import doc from '@/doc' +import S from '@/spx' import { View, Picker } from '@tarojs/components' import { LOGISTICS_CODE } from '@/consts' -import { SpPage, SpCell, SpInput as AtInput } from '@/components' +import { SpPage, SpCell, SpInput as AtInput, SpToast } from '@/components' import { showToast } from '@/utils' import './logistics-info.scss' @@ -44,19 +43,25 @@ function TradeLogisticsInfo(props) { showToast('请填写物流单号') return } - await api.aftersales.sendback({ - item_id, - order_id, - aftersales_bn, - logi_no, - corp_code - }) - showToast('操作成功') - setTimeout(() => { - Taro.navigateBack({ - delta: 2 + try { + await api.aftersales.sendback({ + item_id, + order_id, + aftersales_bn, + logi_no, + corp_code, + showError: false }) - }, 1000) + showToast('操作成功') + setTimeout(() => { + Taro.navigateBack({ + delta: 2 + }) + }, 1000) + } catch (error) { + console.log(error) + S.toast(error.message) + } } const onChangeExpress = (e) => { @@ -109,6 +114,7 @@ function TradeLogisticsInfo(props) { /> } > + ) } diff --git a/src/utils/entryLaunch.js b/src/utils/entryLaunch.js index 9f95ff29e..9d21ea570 100644 --- a/src/utils/entryLaunch.js +++ b/src/utils/entryLaunch.js @@ -379,7 +379,6 @@ class EntryLaunch { async postGuideUV() { const routerParams = Taro.getStorageSync(SG_ROUTER_PARAMS) || Taro.getStorageSync(SG_GUIDE_PARAMS) - const { gu, gu_user_id } = routerParams || {} let work_userid = '' if (gu) { diff --git a/src/utils/log copy.js b/src/utils/log copy.js new file mode 100644 index 000000000..a279a8737 --- /dev/null +++ b/src/utils/log copy.js @@ -0,0 +1,101 @@ +const log = wx.getRealtimeLogManager ? wx.getRealtimeLogManager() : null // 手机端点击投诉可以在平台看到日志 + +const levels = { + DEBUG: 'debug', // 开发和调试阶段使用 + INFO: 'info', // 记录程序正常运行情况 + WARN: 'warn', // 记录程序运行出现的潜在问题 + ERROR: 'error' // 程序运行过程出现严重错误 +} + +const prefixes = { + DEBUG: '[DEBUG]', + INFO: '[INFO]', + WARN: '[WARN]', + ERROR: '[ERROR]' +} + +class Logger { + constructor(level = levels.INFO) { + this.level = level + } + + setLevel(level) { + this.level = level + } + + log(level, ...args) { + if (this.shouldLog(level)) { + const timestamp = new Date().toLocaleString() + const prefix = prefixes[level.toUpperCase()] || '' + const logMessage = `[${timestamp}] ${prefix} ${args.join(' ')}` + console.log(logMessage) + this.sendToRealtimeLog(level, ...args) + } + } + + debug(...args) { + this.log(levels.DEBUG, ...args) + } + + info(...args) { + this.log(levels.INFO, ...args) + } + + warn(...args) { + this.log(levels.WARN, ...args) + } + + error(...args) { + this.log(levels.ERROR, ...args) + } + + shouldLog(level) { + const levelOrder = [levels.DEBUG, levels.INFO, levels.WARN, levels.ERROR] + return levelOrder.indexOf(level) >= levelOrder.indexOf(this.level) + } + + sendToRealtimeLog(level, ...args) { + if (!log) { + return + } + switch (level) { + case levels.INFO: + log.info.apply(log, args) + break + case levels.WARN: + log.warn.apply(log, args) + break + case levels.ERROR: + log.error.apply(log, args) + break + default: + log.debug ? log.debug.apply(log, args) : log.info.apply(log, args) + break + } + } + + setFilterMsg(msg) { + if (!log || !log.setFilterMsg) { + return + } + if (typeof msg !== 'string') { + return + } + log.setFilterMsg(msg) + } + + addFilterMsg(msg) { + if (!log || !log.addFilterMsg) { + return + } + if (typeof msg !== 'string') { + return + } + log.addFilterMsg(msg) + } +} + +const logger = new Logger(levels.DEBUG) // 默认日志级别为 DEBUG + +export default logger +export { levels }