diff --git a/.local.config.js b/.local.config.js
index 139decf..fc3e332 100644
--- a/.local.config.js
+++ b/.local.config.js
@@ -42,6 +42,10 @@ const localDevConfig = ({
uniacid: 1,
domain: 'https://test.aigc-quickapp.com',
},
+ '11-test': { // 测试平台
+ uniacid: 11,
+ domain: 'https://test.aigc-quickapp.com',
+ },
'local-2': { // 测试平台
uniacid: 2,
domain: 'http://localhost:8050/',
@@ -50,6 +54,10 @@ const localDevConfig = ({
uniacid: 1,
domain: 'http://localhost:8050/',
},
+ 'local-11': { // 测试平台
+ uniacid: 11,
+ domain: 'http://localhost:8050/',
+ },
'100': {
uniacid: 100,
domain: 'https://5g.aigc-quickapp.com/',
@@ -62,6 +70,10 @@ const localDevConfig = ({
uniacid: 115,
domain: 'https://5g.aigc-quickapp.com/',
},
+ '5g-11': {
+ uniacid: 11,
+ domain: 'https://5g.aigc-quickapp.com/',
+ },
'47': { // 修改弹窗
uniacid: 47,
domain: 'https://5g.aigc-quickapp.com/',
@@ -70,9 +82,16 @@ const localDevConfig = ({
uniacid: 145,
domain: 'https://5g.aigc-quickapp.com/',
},
- '2075': { //
- uniacid: 2075,
+ '2847': { //
+ uniacid: 2847,
domain: 'https://xcx.aigc-quickapp.com/',
- }
-})['2881']; // 选择要使用的环境配置
+ },
+ '2482': { // 低空经济
+ uniacid: 2482,
+ domain: 'https://xcx6.aigc-quickapp.com/',
+ }
+// })['2847']; // 选择要使用的环境配置
+ })['2482']; // 选择要使用的环境配置
+// })['2811']; // 选择要使用的环境配置
+// })['local-11']; // 选择要使用的环境配置
export default localDevConfig;
\ No newline at end of file
diff --git a/CLAUDE.md b/CLAUDE.md
new file mode 100644
index 0000000..364b2ad
--- /dev/null
+++ b/CLAUDE.md
@@ -0,0 +1,145 @@
+# CLAUDE.md —— 给 AI 看的项目守则
+
+> 本文件是仓库根目录给 AI 助手的强制约束文档。**做 i18n 改造前必须先读这份文件**,违反任意一条都会导致运行时崩溃或被审计拦截。
+
+## 0 · 项目身份
+
+- **uni-app 商城前端**(基于 Vue 2 + Webpack 5),多端编译(H5 / 微信小程序 / 鸿蒙元服务 / 支付宝 / 百度 / 头条)
+- 主语言:简体中文(zh-cn),辅:en-us
+- 构建入口:`main.js` + `common/js/lang.js` + `lang/.js`
+- 鸿蒙 / 快应用独立工程,与根目录无代码关系,跳过
+
+## 1 · i18n 铁律(必读 · 违反会 throw / 拦截 / 阻断)
+
+### 1.1 唯一权威 lang 源
+- **lang 包只在 `lang/en-us.js` + `lang/zh-cn.js` 两份文件里改**
+- 旧的 `lang/en-us/**` 与 `lang/zh-cn/**` 281 个文件**已删除**(详见 `lang/DEPRECATED.md`,可用 `git restore` 恢复)
+- 不允许重建旧的分散目录、不允许往里加 key
+- 改两份文件必须**同步**:先 zh-cn,后 en-us,**两侧 key 必须一一对应**
+
+### 1.2 命名空间强制
+- 所有 key 必须以业务命名空间开头(`goods.*` / `member.*` / `order.*` 等)
+- 扁平无前缀 key 一律重命名:`save` → `.save`、`login` → `.loginButton`
+- 命名空间清单:`docs/i18n-taxonomy.md`
+- 反例(禁止):`save: '保存'` / `login: '登录'` / `title: '订单列表'`
+- 正例:`common.save: '保存'` / `login.button: '登录'` / `order.list.title: '订单列表'`
+
+### 1.3 禁止重复定义 key
+- 新增前必须 `grep -r "" lang/en-us.js lang/zh-cn.js`
+- 已存在就**复用**,不允许再加一份
+- 当前架构下没有 page module 这种"分散文件",**物理上不可能重复**
+
+### 1.4 运行时覆盖即 throw
+- `common/js/lang.js` 的 `detectShadowing()` 在 merge 前检测 page 是否覆盖 common 已有 key,**直接 throw 阻断**
+- 当前架构下 page 永远是空对象 `{}`,detectShadowing 仅作防御保留
+- 任何 i18n 改造如果触发 throw,必须**改 key 名字**而不是覆盖
+- 这是 hard rule,dev/prod 一视同仁
+
+### 1.5 其他铁律
+1. 禁止在一次 commit 里"先加 i18n 再回退硬编码"
+2. 禁止改 CSS / 模板结构 / 与本次任务无关的代码
+3. 禁止改写业务文案语义——diff 里"原值→新值"的语义变化必须 commit message 列"语义变更"段
+4. 禁止把 `'+ '{{ $lang(...) }}'` 这种字面模板写到 JS 字符串里(运行时会显示字面)
+5. 提交前必须跑 `python scripts/i18n_check.py`,全过才允许 commit
+6. en-us 端禁止把 `Waitpay`/`Waitsend` 这种首字母大写英文单词当翻译——必须给完整短语如 `Pending Payment`
+
+## 2 · 改动 i18n 时的标准流程
+
+```
+1. 读 docs/i18n-taxonomy.md 确认 key 归属命名空间
+2. grep "<新 key>" lang/en-us.js lang/zh-cn.js 确认无重复
+3. 同步改 lang/en-us.js 与 lang/zh-cn.js(同 key 同结构)
+4. 调用侧改 $lang('oldKey') 为 $lang('newKey')
+5. 跑 python scripts/i18n_check.py 验证(基础+严格+覆盖 三项全过)
+6. commit
+```
+
+## 3 · 命名空间快速参考
+
+| 前缀 | 归属 |
+|------|------|
+| `common.*` | 全站通用 |
+| `tabBar.*` / `customer.*` | tabBar / 客服 |
+| `goods.*` / `cart.*` / `order.*` / `pay.*` | 商品 / 购物车 / 订单 / 支付 |
+| `member.*` | 个人中心 |
+| `coupon.*` / `point.*` / `hongbao.*` | 营销资产 |
+| `fenxiao.*` / `merch.*` | 分销 / 商家后台 |
+| `login.*` / `register.*` / `find.*` | 登录 / 注册 / 找回密码 |
+| `article.*` / `topics.*` / `notice.*` / `help.*` | 内容 |
+| `chat.*` / `ai_chat.*` | 客服 / AI |
+| `verification.*` / `recharge.*` / `diy.*` | 验证码 / 充值 / DIY |
+| `bargain.*` / `pintuan.*` / `groupbuy.*` / `seckill.*` / `combo.*` / `presale.*` / `bale.*` | 营销活动 |
+
+完整清单见 `docs/i18n-taxonomy.md`。
+
+## 4 · 占位符语法(唯一支持)
+
+- 位置风格:`{0}`、`{1}`、`{2}`
+- 例:`discountDesc: '专享{0}折'` → 调用 `$lang('discountDesc', '9')` 得 `'专享9折'`
+- 命名风格 `{name}` **不支持**
+- `%s`/`%d` **不支持**
+
+## 5 · 检测 / 校验命令
+
+```bash
+# 一键跑全部审计(基础 + 严格 + 覆盖)
+python scripts/i18n_check.py
+
+# Windows 等价入口
+scripts\i18n_check.bat
+
+# bash 等价入口
+./scripts/i18n_check.sh
+
+# 子命令
+python scripts/i18n_check.py basic # 只跑 i18n_audit.py
+python scripts/i18n_check.py strict # 只跑 i18n_strict_audit.py
+python scripts/i18n_check.py shadow # 只跑 i18n_class_c.py
+
+# 应用调用侧改写(先用 dry-run 看 scope)
+python scripts/i18n_rewrite_calls.py # dry-run,不改文件
+python scripts/i18n_rewrite_calls.py --apply # 真正改写
+
+# 清理死 key
+python scripts/i18n_clean_dead.py # dry-run
+python scripts/i18n_clean_dead.py --apply # 真删
+```
+
+等价 npm scripts(package.json 里也定义了):
+```bash
+npm run i18n:check # 等价 python scripts/i18n_check.py
+npm run i18n:audit # 等价 python scripts/i18n_audit.py
+npm run i18n:strict # 等价 python scripts/i18n_check.py strict
+npm run i18n:apply # 等价 python scripts/i18n_rewrite_calls.py --apply
+npm run i18n:merge # 等价 python scripts/i18n_merge.py
+npm run i18n:clean-dead # 等价 python scripts/i18n_clean_dead.py --apply
+```
+
+## 6 · 历史教训(避免再犯)
+
+| commit | 错误类型 | 教训 |
+|--------|----------|------|
+| f258987 | 把前 9 个 commit 的 i18n 一刀切删掉 | "先加 i18n 再全删"是白做 |
+| 750ed2d | `customerService.noServiceOffline` + `common.noCustomerService` 同义不同 key | 同义 key 必须合并 |
+| 47098bd | `saveSuccess` / `yuan` / `searchResultCount` 在 common/member/article 三处定义 | 同 key 三处重复=后续无法判断权威 |
+| cb81aad | `level.vue:221` 写出 `+ '{{ $lang(...) }}'` 字面字符串 | JS 字符串里 `{{ }}` 不执行 |
+| e9483e2 | 删除 `lang/zh-cn/agreement/contenr.js` 没确认是否被引用 | 删除文件前先 grep 引用 |
+| b30ba91 | `this.$lang('order.noOrderInfo')` 但同 commit 没添加 key | 先加 key 再改调用点 |
+
+完整复盘见 `docs/i18n-rules.md` 与各 `docs/i18n-*-audit.json`。
+
+## 7 · 运行时的硬卡点
+
+| 卡点 | 行为 |
+|------|------|
+| `common/js/lang.js#detectShadowing` | page 覆盖 common → throw(防御性保留,新架构下不会触发) |
+| `python scripts/i18n_check.py` | 跑全部审计,发现问题输出 docs/i18n-*-audit.json |
+| `vue.config.js#I18nGuardPlugin` | 生产构建 → 跑 class_c 审计 + 失败阻断(可 `SKIP_I18N_GUARD=1` 紧急绕过) |
+
+## 8 · 不要做的事(清单)
+
+- ❌ 不要重建 `lang/en-us/` 或 `lang/zh-cn/` 分散目录
+- ❌ 不要在 `*.vue` 里写 `'login'` 这种无前缀扁平 key(写成 `common.login` / `login.button`)
+- ❌ 不要在 `main.js` / `common/js/lang.js` 里加新逻辑绕过 throw
+- ❌ 不要删 `lang/DEPRECATED.md` 或 `lang/_migration-map.json`
+- ❌ 不要在生产构建里设 `SKIP_I18N_GUARD=1`(除非紧急)
\ No newline at end of file
diff --git a/common/js/lang.js b/common/js/lang.js
index 511113c..dd10e31 100644
--- a/common/js/lang.js
+++ b/common/js/lang.js
@@ -182,20 +182,91 @@ function processRoutePath(route) {
}
// 加载语言包(同步方式)
+// 2026-06-24 升级为多文件结构:lang//index.js 聚合各业务模块
+// 同时保留旧单文件 lang/.js 作为过渡,新结构优先,旧结构兜底
+// path 参数保留仅为兼容旧调用签名(忽略值)。
function loadLangPackSync(lang, path) {
try {
- if (loadedLangPacks[`${lang}_${path}`]) {
- return loadedLangPacks[`${lang}_${path}`];
+ const cacheKey = `${lang}__single`;
+ if (loadedLangPacks[cacheKey]) {
+ return loadedLangPacks[cacheKey];
}
- const langData = require(`@/lang/${lang}/${path}.js`).lang;
- loadedLangPacks[`${lang}_${path}`] = langData;
+ // 1. 先加载旧单文件(兜底)
+ let legacyData = {};
+ try {
+ legacyData = require(`@/lang/${lang}.js`).lang || {};
+ } catch (e) {
+ // 旧文件不存在也没关系
+ }
+ // 2. 再加载新多文件聚合(优先)
+ let modularData = {};
+ try {
+ modularData = require(`@/lang/${lang}/index.js`).lang || {};
+ } catch (e) {
+ // 新文件不存在也没关系
+ }
+ // 3. 深度合并:新结构覆盖旧结构
+ const langData = deepMergeLang(legacyData, modularData);
+ loadedLangPacks[cacheKey] = langData;
return langData;
} catch (error) {
- // console.error(`加载语言包 ${lang}/${path} 失败:`, error);
+ // console.error(`加载语言包 ${lang} 失败:`, error);
return {};
}
}
+// 深度合并语言包对象,新值覆盖旧值
+function deepMergeLang(target, source) {
+ const result = { ...target };
+ for (const key of Object.keys(source)) {
+ const srcVal = source[key];
+ const tgtVal = result[key];
+ if (srcVal && typeof srcVal === 'object' && !Array.isArray(srcVal)
+ && tgtVal && typeof tgtVal === 'object' && !Array.isArray(tgtVal)) {
+ result[key] = deepMergeLang(tgtVal, srcVal);
+ } else {
+ result[key] = srcVal;
+ }
+ }
+ return result;
+}
+
+// 检测 page module 是否覆盖 common 已有 key。
+// 自 2026-06-23 起强制:page 覆盖 common 直接 throw 阻断,防止 AI 默默改文案。
+// 历史上 commit f258987 / 47098bd 都曾让 page 覆盖 common 引发翻译错乱。
+function detectShadowing(commonLang, pageLang, langPath) {
+ if (!pageLang || typeof pageLang !== 'object') return;
+ if (!commonLang || typeof commonLang !== 'object') return;
+ const conflicts = [];
+ const walk = (pageNode, commonNode, prefix) => {
+ if (!pageNode || typeof pageNode !== 'object') return;
+ if (!commonNode || typeof commonNode !== 'object') return;
+ for (const k of Object.keys(pageNode)) {
+ const fullKey = prefix ? `${prefix}.${k}` : k;
+ if (Object.prototype.hasOwnProperty.call(commonNode, k)) {
+ const pageVal = pageNode[k];
+ const commonVal = commonNode[k];
+ // 仅当 page 想覆盖 common 的"叶子"值(字符串)时报错
+ if (typeof pageVal === 'string' && typeof commonVal === 'string' && pageVal !== commonVal) {
+ conflicts.push({ key: fullKey, commonVal, pageVal });
+ } else if (typeof pageVal === 'object' && pageVal !== null && typeof commonVal === 'object' && commonVal !== null) {
+ // 嵌套结构继续递归
+ walk(pageVal, commonVal, fullKey);
+ }
+ }
+ }
+ };
+ walk(pageLang, commonLang, '');
+ if (conflicts.length > 0) {
+ const list = conflicts.map(c => ` - "${c.key}": common="${c.commonVal}" vs page="${c.pageVal}"`).join('\n');
+ throw new Error(
+ `[i18n] page module "${langPath || 'unknown'}" overrides common.js keys:\n${list}\n` +
+ `Fix: rename the page key with a business namespace prefix, e.g. ".${conflicts[0].key.split('.').pop()}"\n` +
+ `See docs/i18n-rules.md for the rule.`
+ );
+ }
+}
+
/**
* 获得当前本地语言
* @returns
@@ -563,12 +634,20 @@ export default {
let mergedLang = _mergedLangCache[mergeCacheKey];
if (!mergedLang) {
try {
- const lang = loadLangPackSync(locale, 'common');
- const currentPageLang = langPath ? loadLangPackSync(locale, langPath) : {};
+ // 自 2026-06-23 起:只加载单一权威 lang/.js
+ // page module 已废弃,因此不再读取 lang//.js
+ const lang = loadLangPackSync(locale, langPath);
+ const currentPageLang = {}; // 兼容旧调用;旧 page module 已废弃
+ // detectShadowing 在 page 部分为空时直接返回,不抛错
+ detectShadowing(lang, currentPageLang, langPath);
mergedLang = Object.assign(deepCloneLang(lang), deepCloneLang(currentPageLang));
const ovr = overrideCache[getOverrideMemKey(locale)];
if (ovr && ovr.map) applyOverrides(mergedLang, ovr.map);
} catch (e) {
+ // detectShadowing 抛错时不应该被静默吞掉——直接重抛
+ if (e && e.message && e.message.startsWith('[i18n]')) {
+ throw e;
+ }
console.error('解析语言包失败:', e, { langPath, field, locale });
mergedLang = {};
}
@@ -680,7 +759,15 @@ export default {
_refreshInProgress = true;
try {
let _page = getCurrentPages()[getCurrentPages().length - 1];
- if (_page) this.title(this.lang("title"));
+ if (_page) {
+ // 自 2026-06-23 起:每个 page 的 title 集中到 pageTitles. 命名空间
+ // processRoutePath() 已经把 route 映射成 langPath(如 'order/list')
+ const _langPath = processRoutePath(_page.route || (_page.$page && _page.$page.path) || '');
+ const _titleKey = _langPath ? `pageTitles.${_langPath.replace(/\//g, '.')}` : 'pageTitles';
+ const _title = this.lang(_titleKey);
+ // 兜底:旧 page module 仍可能在 lang 包外自定义 title,没匹配时用通用 title
+ this.title(_title && _title !== _titleKey ? _title : this.lang('title'));
+ }
if (emit) {
// 远端 i18n 翻译更新后,推送重渲染信号;
diff --git a/components-diy/diy-article.vue b/components-diy/diy-article.vue
index 5f615b7..7925d69 100644
--- a/components-diy/diy-article.vue
+++ b/components-diy/diy-article.vue
@@ -1,1199 +1,1199 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ item.article_title }}
-
- {{ item.article_abstract }}
-
-
- {{ tn }}
-
-
-
-
- {{ item.category_name }}
-
-
-
- {{ _humanizeNum(item.read_num || 0) }}
-
-
-
- {{ _humanizeNum(item.dianzan_num || 0) }}
-
- {{ $util.timeStampTurnTime(item.create_time, 'date') }}
-
-
-
-
-
-
-
-
-
-
-
-
- {{ item.article_title }}
-
- {{ item.article_abstract }}
-
-
- {{ tn }}
-
-
-
-
- {{ item.category_name }}
-
-
-
- {{ _humanizeNum(item.read_num || 0) }}
-
-
-
- {{ _humanizeNum(item.dianzan_num || 0) }}
-
- {{ $util.timeStampTurnTime(item.create_time, 'date') }}
-
-
-
-
-
- {{ viewMore.text || '查看更多' }}
-
-
-
-
- 暂无相关文章
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/components-diy/diy-bargain.vue b/components-diy/diy-bargain.vue
index 3135710..acdb53b 100644
--- a/components-diy/diy-bargain.vue
+++ b/components-diy/diy-bargain.vue
@@ -12,7 +12,7 @@
低至0元免费拿
+ :style="{ color: value.titleStyle.textColor }">{{ $lang("diy.diy-bargain.l15.t0") }}
diff --git a/components-diy/diy-category-item.vue b/components-diy/diy-category-item.vue
index 5be555e..2f596d6 100644
--- a/components-diy/diy-category-item.vue
+++ b/components-diy/diy-category-item.vue
@@ -44,7 +44,7 @@
:class="{ 'screen-category-4': value.template == 4 }" :scroll-with-animation="true"
:scroll-into-view="scrollIntoView">
全部
+ @tap.stop="selectCategory(-1)">{{ $lang("diy.diy-category-item.l47.t0") }}
@@ -57,7 +57,7 @@
@@ -160,7 +160,7 @@
-
-
+
-
@@ -29,7 +29,7 @@
-
@@ -51,7 +51,7 @@
- 展开
+ {{ $lang("diy.diy-category.l54.t0") }}
@@ -68,7 +68,7 @@
- 点击收起
+ {{ $lang("diy.diy-category.l71.t0") }}
@@ -102,7 +102,7 @@
@tologin="toLogin" @selectsku="selectSku($event, index)" @addCart="addCartPoint"
@loadfinish="getHeightArea">
- 已经到底了~
+ {{ $lang("diy.diy-category-item.l163.t0") }}
- 暂时没有分类哦!
+ {{ $lang("diy.diy-category.l123.t0") }}
- 暂时没有分类哦!
+ {{ $lang("diy.diy-category.l123.t0") }}
@@ -409,7 +409,7 @@ export default {
success: res => {
if (res.code >= 0) {
let item = res.data;
- item.unit = item.unit || '件';
+ item.unit = item.unit || $lang('common.ns-goods-sku.ns-goods-sku-index.l150.t0');
if (item.sku_images) item.sku_images = item.sku_images.split(',');
else item.sku_images = [];
diff --git a/components-diy/diy-channel-list.vue b/components-diy/diy-channel-list.vue
index 348f177..2e5b1f3 100644
--- a/components-diy/diy-channel-list.vue
+++ b/components-diy/diy-channel-list.vue
@@ -1,631 +1,631 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/components-diy/diy-coupon.vue b/components-diy/diy-coupon.vue
index 7859302..d8200f2 100644
--- a/components-diy/diy-coupon.vue
+++ b/components-diy/diy-coupon.vue
@@ -26,16 +26,16 @@
{{ item.discount | moneyConduct }}
- 折
+ {{ $lang("common.register-reward.l60.t1") }}
- {{ item.at_least > 0 ? '满' + Number(item.at_least) + '元可用' : '无门槛优惠券' }}
+ {{ item.at_least > 0 ? $lang('diy.diy-coupon.l32.t0') + Number(item.at_least) + '元可用' : $lang('diy.diy-coupon.l32.t2') }}
{{ value.btnStyle.text }}
- 去使用
+ {{ $lang("diy.diy-coupon.l38.t0") }}
@@ -61,14 +61,14 @@
{{ item.discount | moneyConduct }}
- 折
+ {{ $lang("common.register-reward.l60.t1") }}
- {{ item.at_least > 0 ? '满' + Number(item.at_least) + '元可用' : '无门槛优惠券' }}
+ {{ item.at_least > 0 ? $lang('diy.diy-coupon.l32.t0') + Number(item.at_least) + '元可用' : $lang('diy.diy-coupon.l32.t2') }}
- {{ value.btnStyle.text || '领取' }}
+ {{ value.btnStyle.text || $lang('diy.diy-coupon.l71.t0') }}
去使用
@@ -95,20 +95,20 @@
{{ item.discount | moneyConduct }}
- 折
+ {{ $lang("common.register-reward.l60.t1") }}
- {{ item.at_least > 0 ? '满' +
- Number(item.at_least) + '元可用' : '无门槛优惠券' }}
- 所有商品可用
- 指定商品可用
- 指定商品不可用
+ {{ item.at_least > 0 ? $lang('diy.diy-coupon.l32.t0') +
+ Number(item.at_least) + '元可用' : $lang('diy.diy-coupon.l32.t2') }}
+ {{ $lang("diy.diy-coupon.l103.t0") }}
+ {{ $lang("diy.diy-coupon.l104.t0") }}
+ {{ $lang("diy.diy-coupon.l105.t0") }}
- {{ value.btnStyle.text || '领取' }}
+ {{ value.btnStyle.text || $lang('diy.diy-coupon.l71.t0') }}
- 去使用
+ {{ $lang("diy.diy-coupon.l38.t0") }}
@@ -133,16 +133,16 @@
{{ item.discount | moneyConduct }}
- 折
+ {{ $lang("common.register-reward.l60.t1") }}
- {{ item.at_least > 0 ? '满' + Number(item.at_least) + '元可用' : '无门槛优惠券' }}
+ {{ item.at_least > 0 ? $lang('diy.diy-coupon.l32.t0') + Number(item.at_least) + '元可用' : $lang('diy.diy-coupon.l32.t2') }}
- {{ value.btnStyle.text || '立即使用' }}
+ {{ value.btnStyle.text || $lang('diy.diy-coupon.l143.t0') }}
- 去使用
+ {{ $lang("diy.diy-coupon.l38.t0") }}
@@ -160,11 +160,11 @@
{{ item.money | moneyConduct }}
- 元
+ {{ $lang("common.register-reward.l45.t0") }}
{{ item.discount | moneyConduct }}
- 折
+ {{ $lang("common.register-reward.l60.t1") }}
@@ -173,12 +173,12 @@
{{
item.coupon_name }}
满{{ Number(item.at_least) }}元可用
+ v-if="item.at_least > 0">{ $lang("diy.diy-coupon.l32.t0") } Number(item.at_least) }}元可用
无门槛优惠券
+ v-else>{{ $lang("diy.diy-coupon.l32.t2") }}
{{
- value.btnStyle.text || '立即领取' }}
+ value.btnStyle.text || $lang('diy.diy-coupon.l181.t0') }}
去使用
@@ -204,9 +204,9 @@
{{ (item.discount == '0.00'
? item.money : item.discount) | moneyConduct }}
- {{ item.discount == '0.00' ? '元' : '折' }}
+ {{ item.discount == '0.00' ? '元' : $lang('common.register-reward.l60.t1') }}
- 优惠券
+ {{ $lang("diy.diy-coupon.l209.t0") }}
- 去使用
+ {{ $lang("diy.diy-coupon.l38.t0") }}
满{{ item.at_least | moneyConduct }}元使用
- 无门槛使用
+ v-if="parseFloat(item.at_least) > 0">{ $lang("diy.diy-coupon.l32.t0") } item.at_least | moneyConduct }}元使用
+ {{ $lang("diy.diy-coupon.l229.t0") }}
+
- 暂无优惠券
+ {{ $lang("diy.diy-coupon.l241.t0") }}
-
去逛逛
+
{{ $lang("common.ns-empty.l31.t0") }}
@@ -257,23 +257,23 @@
{{ item.money | moneyConduct }}
- 元
+ {{ $lang("common.register-reward.l45.t0") }}
{{ item.discount | moneyConduct }}
- 折
+ {{ $lang("common.register-reward.l60.t1") }}
满{{ Number(item.at_least) }}元可用
- 无门槛优惠券
+ v-if="item.at_least > 0">{ $lang("diy.diy-coupon.l32.t0") } Number(item.at_least) }}元可用
+ {{ $lang("diy.diy-coupon.l32.t2") }}
有效期至{{
$util.timeStampTurnTime(item.end_time, 'yearmonthday') }}
- {{ value.btnStyle.text || '立即领取' }}
+ {{ value.btnStyle.text || $lang('diy.diy-coupon.l181.t0') }}
去使用
@@ -404,7 +404,7 @@ export default {
couponTap(item, index) {
if (item.count == item.lead_count) {
this.$util.showToast({
- title: '该优惠券已抢光'
+ title: $lang('diy.diy-coupon.l407.t0')
});
return;
}
@@ -427,7 +427,7 @@ export default {
var data = res.data;
let msg = res.message;
if (res.code == 0) {
- msg = '领取成功';
+ msg = $lang('diy.diy-coupon.l430.t0');
if (res.data.is_exist == 1) {
for (let i = 0; i < that.couponList.length; i++) {
if (that.couponList[i].coupon_type_id == item.coupon_type_id) {
diff --git a/components-diy/diy-fenxiao-goods-list.vue b/components-diy/diy-fenxiao-goods-list.vue
index 08ecc1b..265a029 100644
--- a/components-diy/diy-fenxiao-goods-list.vue
+++ b/components-diy/diy-fenxiao-goods-list.vue
@@ -20,7 +20,7 @@
赚 ¥
+ :style="{ color: value.theme == 'diy' ? value.priceStyle.mainColor : '' }">{{ $lang("diy.diy-fenxiao-goods-list.l23.t0") }}
{{
item.commission_money.split('.')[0] }}
@@ -138,7 +138,7 @@ export default {
},
success: res => {
if (res.code >= 0) {
- this.$util.showToast({ title: '关注成功' });
+ this.$util.showToast({ title: $lang('diy.diy-fenxiao-goods-list.l141.t0') });
this.list[index].is_collect = 1;
this.list[index].collect_id = res.data;
}
@@ -149,8 +149,8 @@ export default {
//取消关注
delFollowTip(e, index) {
uni.showModal({
- title: '提示',
- content: '确认取消关注该商品吗',
+ title: $lang('common.wxwork-contact.l202.t0'),
+ content: $lang('diy.diy-fenxiao-goods-list.l153.t0'),
success: res => {
if (res.confirm) {
this.delFollow(e.collect_id, index);
@@ -167,7 +167,7 @@ export default {
success: res => {
let msg = '';
if (res.code == 0) {
- msg = '取消成功';
+ msg = $lang('diy.diy-fenxiao-goods-list.l170.t0');
} else {
msg = res.message;
}
diff --git a/components-diy/diy-form.vue b/components-diy/diy-form.vue
index 8a30b8a..98dffac 100644
--- a/components-diy/diy-form.vue
+++ b/components-diy/diy-form.vue
@@ -139,7 +139,7 @@ export default {
// 提交按钮文字:与后端 design.html 默认对齐,开放给 formConfig 覆盖
// 走 mergedFormConfig(兼容 camelCase / snake_case),让 formConfig.submitText 能正确覆盖
submitText() {
- return this.mergedFormConfig.submitText || '提交';
+ return this.mergedFormConfig.submitText || $lang('diy.diy-form.l142.t0');
},
// 后端把表单样式配置统一存放在 data.formConfig 子对象中(与后端 design.js getDefaultFormData().formConfig 字段名一致)。
// 这里做一次归一化:优先取 formConfig;如果历史数据是扁平结构(直接挂在 value 上),也做兼容。
@@ -298,12 +298,12 @@ export default {
form_id: this.value.form_id || 0,
form_data: JSON.stringify(submitData),
component_id: this.value.id || '',
- form_name: this.value.form_name || '默认表单'
+ form_name: this.value.form_name || $lang('diy.diy-form.l301.t0')
},
success: function(res) {
if (res.code === 0) {
uni.showToast({
- title: '提交成功',
+ title: $lang('diy.diy-form.l306.t0'),
icon: 'success'
});
// 重置表单
@@ -312,7 +312,7 @@ export default {
}
} else {
uni.showToast({
- title: res.message || '提交失败',
+ title: res.message || $lang('diy.diy-form.l315.t0'),
icon: 'none'
});
}
diff --git a/components-diy/diy-goods-list.vue b/components-diy/diy-goods-list.vue
index 61ea2d1..9daef9d 100644
--- a/components-diy/diy-goods-list.vue
+++ b/components-diy/diy-goods-list.vue
@@ -60,7 +60,7 @@
- 已售{{ item.sale_num }}{{ item.unit ? item.unit : '件' }}
+ 已售{{ item.sale_num }}{{ item.unit ? item.unit : $lang('common.ns-goods-sku.ns-goods-sku-index.l150.t0') }}
@@ -168,7 +168,7 @@
- 已售{{ item.sale_num }}{{ item.unit ? item.unit : '件' }}
+ 已售{{ item.sale_num }}{{ item.unit ? item.unit : $lang('common.ns-goods-sku.ns-goods-sku-index.l150.t0') }}
@@ -238,7 +238,7 @@
- 已售{{ dataItem.sale_num }}{{ dataItem.unit ? dataItem.unit : '件' }}
+ 已售{{ dataItem.sale_num }}{{ dataItem.unit ? dataItem.unit : $lang('common.ns-goods-sku.ns-goods-sku-index.l150.t0') }}
diff --git a/components-diy/diy-goods-recommend.vue b/components-diy/diy-goods-recommend.vue
index 54929c4..a6fe133 100644
--- a/components-diy/diy-goods-recommend.vue
+++ b/components-diy/diy-goods-recommend.vue
@@ -53,7 +53,7 @@
¥{{ showMarketPrice(dataItem) }}
- 售{{ dataItem.sale_num }}{{ dataItem.unit ? dataItem.unit : '件' }}
+ 售{{ dataItem.sale_num }}{{ dataItem.unit ? dataItem.unit : $lang('common.ns-goods-sku.ns-goods-sku-index.l150.t0') }}
diff --git a/components-diy/diy-index-page.vue b/components-diy/diy-index-page.vue
index 46f032d..f925c2e 100644
--- a/components-diy/diy-index-page.vue
+++ b/components-diy/diy-index-page.vue
@@ -1,863 +1,863 @@
-
-
-
-
-
-
-
-
- {{ item.short_name ? item.short_name : item.category_name }}
-
-
- {{ item.short_name ? item.short_name : item.category_name }}
-
-
-
-
-
-
-
-
-
-
- {{ item.short_name ? item.short_name : item.category_name }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ item.category_name }}
-
-
-
-
-
-
-
-
-
-
- {{ item.category_name }}
-
-
-
-
-
-
-
-
-
- {{ item.category_name }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{
- goodsTag(item) }}
-
-
-
-
-
-
- {{ isEnEnv ? item.en_goods_name : item.goods_name }}
-
-
-
- {{
- $lang('common.currencySymbol') }}
- {{
- showPrice(item) }}
-
-
-
-
-
-
-
-
-
-
- {{ $lang('common.currencySymbol') }}
- {{ showMarketPrice(item) }}
-
- 已售{{
- item.sale_num }}{{ item.unit ? item.unit : '件' }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/components-diy/diy-kefu.vue b/components-diy/diy-kefu.vue
index b3498fb..3333e22 100644
--- a/components-diy/diy-kefu.vue
+++ b/components-diy/diy-kefu.vue
@@ -14,7 +14,7 @@
diff --git a/components-diy/diy-listmenu.vue b/components-diy/diy-listmenu.vue
index a6e6b78..3c6eb58 100644
--- a/components-diy/diy-listmenu.vue
+++ b/components-diy/diy-listmenu.vue
@@ -12,7 +12,7 @@
style="border-radius:6rpx;width: 60rpx;">
{{ item.title }}
-
+
diff --git a/components-diy/diy-live.vue b/components-diy/diy-live.vue
index 1dd989e..2059d68 100644
--- a/components-diy/diy-live.vue
+++ b/components-diy/diy-live.vue
@@ -26,11 +26,11 @@
- 主播:{{ liveInfo.anchor_name }}
+ { $lang("diy.diy-live.l29.t0") } liveInfo.anchor_name }}
|
- 直播商品:{{ liveInfo.goods.length }}
+ { $lang("diy.diy-live.l33.t0") } liveInfo.goods.length }}
diff --git a/components-diy/diy-map.vue b/components-diy/diy-map.vue
index b84128b..7b99a4a 100644
--- a/components-diy/diy-map.vue
+++ b/components-diy/diy-map.vue
@@ -6,14 +6,14 @@
- 一键导航
+ {{ $lang("diy.diy-map.l9.t0") }}
@@ -71,7 +71,7 @@ export default {
uni.openLocation({
latitude: parseFloat(item.lat),
longitude: parseFloat(item.lng),
- name: "一键导航",
+ name: $lang("diy.diy-map.l9.t0"),
})
},
async handlerClick(item) {
diff --git a/components-diy/diy-member-info.vue b/components-diy/diy-member-info.vue
index 3092db6..6490aa7 100644
--- a/components-diy/diy-member-info.vue
+++ b/components-diy/diy-member-info.vue
@@ -1,1509 +1,1509 @@
-
-
-
-
-
-
-
-
-
-
-
-
- 点击授权头像昵称
-
-
- {{ memberInfo.nickname }}
-
-
- {{ memberInfo.member_level_name }}
-
-
-
-
- {{ memberInfo.member_level_name }}
-
-
-
- {{ memberInfo.member_level_name }}
-
-
-
-
-
- 点击获取微信头像
-
-
- {{ memberInfo.nickname
- }}
-
-
- {{ memberInfo.member_level_name }}VIP1
-
-
-
-
- {{ memberInfo.member_level_name }}
-
-
-
-
- {{ memberInfo.member_level_name }}
-
-
-
- {{ langIndex == 0 ? 'CN' : 'EN' }}
-
-
-
-
-
-
-
- {{ $lang('login') }}
- {{ $lang('loginTpis') }}
-
-
- {{ langIndex == 0 ? 'CN' : 'EN' }}
-
-
-
-
-
- {{ memberInfo ? (parseFloat(memberInfo.balance) +
- parseFloat(memberInfo.balance_money)).toFixed(2) : '--' }}
-
- {{ $lang('balance') }}
-
-
-
- {{ memberInfo ? parseFloat(memberInfo.point) : '--' }}
- {{ $lang('point') }}
-
-
-
-
- {{ memberInfo && memberInfo.coupon_num != undefined ? memberInfo.coupon_num : '--' }}
-
- {{ $lang('coupon') }}
-
-
-
-
-
-
-
- {{ memberInfo ? (parseFloat(memberInfo.balance) +
- parseFloat(memberInfo.balance_money)).toFixed(2) : '--' }}
- {{ $lang('balance') }}
-
-
-
- {{ memberInfo ? parseFloat(memberInfo.point) : '--' }}
- {{ $lang('point') }}
-
-
-
-
- {{ memberInfo && memberInfo.coupon_num != undefined ? memberInfo.coupon_num : '--' }}
-
- {{ $lang('coupon') }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/components-diy/diy-member-my-order.vue b/components-diy/diy-member-my-order.vue
index 6f6afcf..6910428 100644
--- a/components-diy/diy-member-my-order.vue
+++ b/components-diy/diy-member-my-order.vue
@@ -19,7 +19,7 @@
> 99 ? '99+' :
orderNum.waitpay }}
- {{ $lang('waitpay') }}
+ {{ $lang('order.list.waitpay') }}
@@ -38,7 +38,7 @@
orderNum.waitsend > 99 ? '99+'
: orderNum.waitsend }}
- {{ $lang('waitsend') }}
+ {{ $lang('order.list.waitsend') }}
@@ -57,7 +57,7 @@
orderNum.waitconfirm > 99 ?
'99+' : orderNum.waitconfirm }}
- {{ $lang('waitconfirm') }}
+ {{ $lang('order.list.waitconfirm') }}
@@ -74,7 +74,7 @@
- {{ $lang('completed') }}
+ {{ $lang('order.list.completed') }}
@@ -92,7 +92,7 @@
orderNum.refunding > 99 ?
'99+' : orderNum.refunding }}
- {{ $lang('activist') }}
+ {{ $lang('order.list.activist') }}
diff --git a/components-diy/diy-merch-list.vue b/components-diy/diy-merch-list.vue
index 7457a40..100cc91 100644
--- a/components-diy/diy-merch-list.vue
+++ b/components-diy/diy-merch-list.vue
@@ -63,31 +63,31 @@ export default {
return {
list: [
/*{
- merch_name:'品牌',
+ merch_name:$lang('diy.diy-merch-list.l66.t0'),
merch_image:'https://saas.cn//upload/4/common/images/20240824/20240824040223172448654356147.jpg'
},
{
- merch_name:'品牌',
+ merch_name:$lang('diy.diy-merch-list.l66.t0'),
merch_image:'https://saas.cn//upload/4/common/images/20240824/20240824040223172448654356147.jpg'
},
{
- merch_name:'品牌',
+ merch_name:$lang('diy.diy-merch-list.l66.t0'),
merch_image:'https://saas.cn//upload/4/common/images/20240824/20240824040223172448654356147.jpg'
},
{
- merch_name:'品牌',
+ merch_name:$lang('diy.diy-merch-list.l66.t0'),
merch_image:'https://saas.cn//upload/4/common/images/20240824/20240824040223172448654356147.jpg'
},
{
- merch_name:'品牌',
+ merch_name:$lang('diy.diy-merch-list.l66.t0'),
merch_image:'https://saas.cn//upload/4/common/images/20240824/20240824040223172448654356147.jpg'
},
{
- merch_name:'品牌',
+ merch_name:$lang('diy.diy-merch-list.l66.t0'),
merch_image:'https://saas.cn//upload/4/common/images/20240824/20240824040223172448654356147.jpg'
},
{
- merch_name:'品牌',
+ merch_name:$lang('diy.diy-merch-list.l66.t0'),
merch_image:'https://saas.cn//upload/4/common/images/20240824/20240824040223172448654356147.jpg'
}*/
],
diff --git a/components-diy/diy-notes.vue b/components-diy/diy-notes.vue
index d686b60..f7091e4 100644
--- a/components-diy/diy-notes.vue
+++ b/components-diy/diy-notes.vue
@@ -18,7 +18,7 @@
#{{ item.note_type == 'goods_item' ? '单品介绍' :
- '掌柜说' }}#
+ $lang('diy.diy-notes.l21.t0') }}#
{{ item.note_abstract }}
diff --git a/components-diy/diy-notice.vue b/components-diy/diy-notice.vue
index 34d0db0..ab41853 100644
--- a/components-diy/diy-notice.vue
+++ b/components-diy/diy-notice.vue
@@ -42,11 +42,11 @@
diff --git a/components-diy/diy-payment-qrcode.vue b/components-diy/diy-payment-qrcode.vue
index 55c12e8..812c6d5 100644
--- a/components-diy/diy-payment-qrcode.vue
+++ b/components-diy/diy-payment-qrcode.vue
@@ -3,23 +3,23 @@
- 门店消费时使用,支付时点击下方展示付款码
+ {{ $lang("diy.diy-payment-qrcode.l6.t0") }}
- 门店支付
+ {{ $lang("diy.diy-payment-qrcode.l22.t0") }}
@@ -27,11 +27,11 @@
diff --git a/components-diy/diy-pinfan.vue b/components-diy/diy-pinfan.vue
index efbc364..8d07cc8 100644
--- a/components-diy/diy-pinfan.vue
+++ b/components-diy/diy-pinfan.vue
@@ -25,7 +25,7 @@
- 已拼{{ item.order_num }}件
+ { $lang("diy.diy-pinfan.l28.t0") } item.order_num }}件
@@ -49,10 +49,10 @@
borderRadius: value.btnStyle.aroundRadius * 2 + 'rpx'
}">
{{ value.btnStyle.text }}
- 返{{ item.reward_type_num }}积分
+ { $lang("diy.diy-pinfan.l52.t0") } item.reward_type_num }}积分
返¥{{
item.reward_type_num }}
- 返优惠券
+ {{ $lang("diy.diy-pinfan.l55.t0") }}
@@ -92,7 +92,7 @@
返优惠券
+ v-if="item.reward_type == 3">{{ $lang("diy.diy-pinfan.l55.t0") }}
{{ value.titleStyle.virtualNum || headData.pintuan_count }}
- {{ value.titleStyle.style == 'style-2' ? '人参与' : '人拼团成功' }}
+ {{ value.titleStyle.style == 'style-2' ? '人参与' : $lang('diy.diy-pintuan.l29.t1') }}
- 已拼{{ item.order_num }}件
+ { $lang("diy.diy-pinfan.l28.t0") } item.order_num }}件
@@ -148,10 +148,10 @@
{{ '.' + item.pintuan_price.split('.')[1] }}
- 去参团
+ {{ $lang("diy.diy-pintuan.l151.t0") }}
- 已拼{{ item.sale_num }}件
+ { $lang("diy.diy-pinfan.l28.t0") } item.sale_num }}件
@@ -192,7 +192,7 @@
{{ '.' + item.pintuan_price.split('.')[1] }}
- 已拼{{ item.sale_num }}件
+ { $lang("diy.diy-pinfan.l28.t0") } item.sale_num }}件
diff --git a/components-diy/diy-search.vue b/components-diy/diy-search.vue
index 81f521a..58e349b 100644
--- a/components-diy/diy-search.vue
+++ b/components-diy/diy-search.vue
@@ -28,7 +28,7 @@
@tap.stop="handlerSearchClick"
:placeholderStyle="placeholderStyle" />
搜索
+ :style="{ 'backgroundColor': value.pageBgColor ? value.pageBgColor : 'rgba(0,0,0,0)' }">{{ $lang("diy.diy-search.l31.t0") }}
diff --git a/components-diy/diy-seckill.vue b/components-diy/diy-seckill.vue
index bdc028a..0f0ca19 100644
--- a/components-diy/diy-seckill.vue
+++ b/components-diy/diy-seckill.vue
@@ -13,10 +13,10 @@
距离开始
+ :style="{ color: value.titleStyle.textColor }" class="seckill-style-name">{{ $lang("diy.diy-seckill.l16.t0") }}
{{ isFuture ?
- '距离开始' : '距离结束' }}
+ '距离开始' : $lang('diy.diy-seckill.l19.t0') }}
{{ seckillH ? seckillH : '00' }}
@@ -87,7 +87,7 @@
原价:
+ :style="{ color: value.theme == 'diy' ? value.priceStyle.lineColor : '' }">{{ $lang("diy.diy-seckill.l90.t0") }}
¥{{ item.price }}
@@ -502,7 +502,7 @@ export default {
toDetail(id) {
if (this.isFuture) {
this.$util.showToast({
- title: '秒杀活动即将开启,敬请期待!'
+ title: $lang('diy.diy-seckill.l505.t0')
});
return false;
}
diff --git a/components-diy/diy-store.vue b/components-diy/diy-store.vue
index a6696d6..c42a1ce 100644
--- a/components-diy/diy-store.vue
+++ b/components-diy/diy-store.vue
@@ -7,17 +7,17 @@
{{ globalStoreInfo.store_name }}
- 切换
+ {{ $lang("diy.diy-store.l10.t0") }}
- 定位中...
+ {{ $lang("common.ns-navbar.l39.t0") }}
{{
globalStoreInfo.show_address }}
- 获取当前位置...
+ {{ $lang("diy.diy-store.l20.t0") }}
@@ -40,11 +40,11 @@
{{ globalStoreInfo.store_name }}
- 切换
+ {{ $lang("diy.diy-store.l10.t0") }}
- 定位中...
+ {{ $lang("common.ns-navbar.l39.t0") }}
{{ globalStoreInfo.store_name }}
- 定位中...
+ {{ $lang("common.ns-navbar.l39.t0") }}
-
diff --git a/components-diy/diy-text.vue b/components-diy/diy-text.vue
index f9086e1..8002013 100644
--- a/components-diy/diy-text.vue
+++ b/components-diy/diy-text.vue
@@ -208,7 +208,7 @@
{{ value.text }}
专区
+ :style="{ fontSize: value.fontSize * 2 + 'rpx', fontWeight: value.fontWeight }">{{ $lang("diy.diy-text.l211.t0") }}
diff --git a/components-diy/diy-video.vue b/components-diy/diy-video.vue
index 7cec6a8..052b152 100644
--- a/components-diy/diy-video.vue
+++ b/components-diy/diy-video.vue
@@ -143,7 +143,7 @@ export default {
});
video.addEventListener('error', (e) => {
- console.error('H5端预加载视频失败:', e);
+ console.error($lang('diy.diy-video.l146.t0'), e);
});
// 触发加载
@@ -184,7 +184,7 @@ export default {
// 视频错误事件
onVideoError(event) {
- console.error('视频加载失败:', event);
+ console.error($lang('diy.diy-video.l187.t0'), event);
},
async handlerClick(videoUrl) {
diff --git a/components-diy/js/wechat-channel.js b/components-diy/js/wechat-channel.js
index 9291161..684292b 100644
--- a/components-diy/js/wechat-channel.js
+++ b/components-diy/js/wechat-channel.js
@@ -1,187 +1,187 @@
-// 微信视频号组件配置
-export const wechatChannelConfig = {
- // 图标相关
- icon: {
- defaultSize: 80, // 默认图标尺寸(rpx)
- smallSize: 60, // 小图标尺寸(rpx)
- channelArrowSize: 24, // 频道箭头图标尺寸(rpx)
- channelArrow: 'addon/personnel/shop/view/enterprise/arrow.png', // 频道箭头图标路径
- },
-
-
- // 视频相关配置
- video: {
- defaultHeight: 320, // 默认视频高度(rpx)
- minHeight: 200, // 最小视频高度(rpx)
- maxHeight: 500, // 最大视频高度(rpx)
- defaultCoverUrl: 'addon/personnel/shop/view/enterprise/default-video-cover.png', // 默认视频封面
- },
-
- // 播放按钮配置
- playButton: {
- size: 80, // 标准尺寸(rpx)
- smallSize: 60, // 小尺寸(rpx)
- iconSize: 40, // 标准图标尺寸(rpx)
- smallIconSize: 30, // 小图标尺寸(rpx)
- background: 'rgba(0, 0, 0, 0.4)', // 背景颜色
- },
-
- // 布局配置
- layout: {
- borderRadius: 12, // 圆角(rpx)
- padding: 16, // 内边距(rpx)
- margin: 10, // 外边距(rpx)
- },
-
- // 字体配置
- font: {
- channelNameSize: 28, // 频道名称字体大小(rpx)
- videoTitleSize: 28, // 视频标题字体大小(rpx)
- statsSize: 24, // 统计信息字体大小(rpx)
- },
-
- // 颜色配置
- color: {
- channelName: '#333', // 频道名称颜色
- videoTitle: '#333', // 视频标题颜色
- stats: '#999', // 统计信息颜色
- border: '#f0f0f0', // 边框颜色
- },
-
- // 微信相关配置
- wechat: {
- minSdkVersion: '2.19.2', // 最小微信基础库版本
- embedComponent: 'channel-video', // 嵌入式视频组件名称
- },
-
- // 错误提示配置
- error: {
- notWechat: '当前环境不是微信小程序',
- lowVersion: '当前微信基础库版本过低,需要 2.19.2 或以上版本',
- notSupported: '当前环境不支持微信视频号',
- missingFields: '缺少必要字段: {field}',
- },
-};
-
-// 获取配置项的辅助函数
-export const getwechatChannelConfig = (key, defaultValue = null) => {
- const keys = key.split('.');
- let config = wechatChannelConfig;
-
- for (const k of keys) {
- if (config[k] === undefined) {
- return defaultValue;
- }
- config = config[k];
- }
-
- return config;
-};
-
-// 微信视频号工具函数
-export const wechatChannelUtil = {
- // 版本比较
- versionCompare(v1, v2) {
- const arr1 = v1.split('.');
- const arr2 = v2.split('.');
- for (let i = 0; i < Math.max(arr1.length, arr2.length); i++) {
- const num1 = parseInt(arr1[i] || 0);
- const num2 = parseInt(arr2[i] || 0);
- if (num1 > num2) return 1;
- if (num1 < num2) return -1;
- }
- return 0;
- },
-
- // 检查是否支持嵌入式播放
- isEmbedModeSupported() {
- return typeof wx !== 'undefined' && wx.canIUse(wechatChannelConfig.wechat.embedComponent);
- },
-
- // 获取默认视频封面
- getDefaultCoverUrl() {
- return wechatChannelConfig.video.defaultCoverUrl;
- },
-
- // 数据校验
- validateVideoData(item) {
- const requiredFields = ['feedId', 'finderUserName'];
- for (const field of requiredFields) {
- if (!item[field]) {
- throw new Error(`缺少必要字段: ${field}`);
- }
- }
- return true;
- },
-
- // 播放视频
- playVideo(item) {
- return new Promise((resolve, reject) => {
- try {
- // 数据校验
- this.validateVideoData(item);
- } catch (err) {
- this.handleError(err, item);
- reject(err);
- return;
- }
-
- // 检查微信环境
- if (typeof wx === 'undefined') {
- const err = new Error(wechatChannelConfig.error.notWechat);
- this.handleError(err, item);
- reject(err);
- return;
- }
-
- // 检查基础库版本
- const systemInfo = wx.getSystemInfoSync();
- const SDKVersion = systemInfo.SDKVersion;
- if (this.versionCompare(SDKVersion, wechatChannelConfig.wechat.minSdkVersion) < 0) {
- const err = new Error(wechatChannelConfig.error.lowVersion);
- this.handleError(err, item);
- reject(err);
- return;
- }
-
- // 调用微信视频号播放API
- if (wx.openChannelsActivity) {
- wx.openChannelsActivity({
- feedId: item.feedId,
- finderUserName: item.finderUserName,
- success: (res) => {
- resolve(res);
- },
- fail: (err) => {
- this.handleError(err, item);
- reject(err);
- }
- });
- } else {
- const err = new Error(wechatChannelConfig.error.notSupported);
- this.handleError(err, item);
- reject(err);
- }
- });
- },
-
- // 统一错误处理
- handleError(err, item) {
- console.error('微信视频号错误:', err);
- const { message = '', errMsg = '微信视频播放失败!', errCode = -1 } = err;
-
- // 错误码5: 表示用户点击了取消. openChannelsActivity:fail cancel
- if ([5].includes(errCode)) {
- return;
- }
-
- const showErrorToast = (otherMsgs = []) => {
- uni.showToast({
- title: [errMsg, message,...otherMsgs].join('\n'),
- icon: 'none',
- duration: 2000
- });
- }
- showErrorToast();
- }
+// 微信视频号组件配置
+export const wechatChannelConfig = {
+ // 图标相关
+ icon: {
+ defaultSize: 80, // 默认图标尺寸(rpx)
+ smallSize: 60, // 小图标尺寸(rpx)
+ channelArrowSize: 24, // 频道箭头图标尺寸(rpx)
+ channelArrow: 'addon/personnel/shop/view/enterprise/arrow.png', // 频道箭头图标路径
+ },
+
+
+ // 视频相关配置
+ video: {
+ defaultHeight: 320, // 默认视频高度(rpx)
+ minHeight: 200, // 最小视频高度(rpx)
+ maxHeight: 500, // 最大视频高度(rpx)
+ defaultCoverUrl: 'addon/personnel/shop/view/enterprise/default-video-cover.png', // 默认视频封面
+ },
+
+ // 播放按钮配置
+ playButton: {
+ size: 80, // 标准尺寸(rpx)
+ smallSize: 60, // 小尺寸(rpx)
+ iconSize: 40, // 标准图标尺寸(rpx)
+ smallIconSize: 30, // 小图标尺寸(rpx)
+ background: 'rgba(0, 0, 0, 0.4)', // 背景颜色
+ },
+
+ // 布局配置
+ layout: {
+ borderRadius: 12, // 圆角(rpx)
+ padding: 16, // 内边距(rpx)
+ margin: 10, // 外边距(rpx)
+ },
+
+ // 字体配置
+ font: {
+ channelNameSize: 28, // 频道名称字体大小(rpx)
+ videoTitleSize: 28, // 视频标题字体大小(rpx)
+ statsSize: 24, // 统计信息字体大小(rpx)
+ },
+
+ // 颜色配置
+ color: {
+ channelName: '#333', // 频道名称颜色
+ videoTitle: '#333', // 视频标题颜色
+ stats: '#999', // 统计信息颜色
+ border: '#f0f0f0', // 边框颜色
+ },
+
+ // 微信相关配置
+ wechat: {
+ minSdkVersion: '2.19.2', // 最小微信基础库版本
+ embedComponent: 'channel-video', // 嵌入式视频组件名称
+ },
+
+ // 错误提示配置
+ error: {
+ notWechat: $lang('diy.js.wechat-channel.l59.t0'),
+ lowVersion: $lang('diy.js.wechat-channel.l60.t0'),
+ notSupported: $lang('diy.js.wechat-channel.l61.t0'),
+ missingFields: $lang('diy.js.wechat-channel.l62.t0'),
+ },
+};
+
+// 获取配置项的辅助函数
+export const getwechatChannelConfig = (key, defaultValue = null) => {
+ const keys = key.split('.');
+ let config = wechatChannelConfig;
+
+ for (const k of keys) {
+ if (config[k] === undefined) {
+ return defaultValue;
+ }
+ config = config[k];
+ }
+
+ return config;
+};
+
+// 微信视频号工具函数
+export const wechatChannelUtil = {
+ // 版本比较
+ versionCompare(v1, v2) {
+ const arr1 = v1.split('.');
+ const arr2 = v2.split('.');
+ for (let i = 0; i < Math.max(arr1.length, arr2.length); i++) {
+ const num1 = parseInt(arr1[i] || 0);
+ const num2 = parseInt(arr2[i] || 0);
+ if (num1 > num2) return 1;
+ if (num1 < num2) return -1;
+ }
+ return 0;
+ },
+
+ // 检查是否支持嵌入式播放
+ isEmbedModeSupported() {
+ return typeof wx !== 'undefined' && wx.canIUse(wechatChannelConfig.wechat.embedComponent);
+ },
+
+ // 获取默认视频封面
+ getDefaultCoverUrl() {
+ return wechatChannelConfig.video.defaultCoverUrl;
+ },
+
+ // 数据校验
+ validateVideoData(item) {
+ const requiredFields = ['feedId', 'finderUserName'];
+ for (const field of requiredFields) {
+ if (!item[field]) {
+ throw new Error($lang(`diy.js.wechat-channel.l111.t0`));
+ }
+ }
+ return true;
+ },
+
+ // 播放视频
+ playVideo(item) {
+ return new Promise((resolve, reject) => {
+ try {
+ // 数据校验
+ this.validateVideoData(item);
+ } catch (err) {
+ this.handleError(err, item);
+ reject(err);
+ return;
+ }
+
+ // 检查微信环境
+ if (typeof wx === 'undefined') {
+ const err = new Error(wechatChannelConfig.error.notWechat);
+ this.handleError(err, item);
+ reject(err);
+ return;
+ }
+
+ // 检查基础库版本
+ const systemInfo = wx.getSystemInfoSync();
+ const SDKVersion = systemInfo.SDKVersion;
+ if (this.versionCompare(SDKVersion, wechatChannelConfig.wechat.minSdkVersion) < 0) {
+ const err = new Error(wechatChannelConfig.error.lowVersion);
+ this.handleError(err, item);
+ reject(err);
+ return;
+ }
+
+ // 调用微信视频号播放API
+ if (wx.openChannelsActivity) {
+ wx.openChannelsActivity({
+ feedId: item.feedId,
+ finderUserName: item.finderUserName,
+ success: (res) => {
+ resolve(res);
+ },
+ fail: (err) => {
+ this.handleError(err, item);
+ reject(err);
+ }
+ });
+ } else {
+ const err = new Error(wechatChannelConfig.error.notSupported);
+ this.handleError(err, item);
+ reject(err);
+ }
+ });
+ },
+
+ // 统一错误处理
+ handleError(err, item) {
+ console.error($lang('diy.js.wechat-channel.l170.t0'), err);
+ const { message = '', errMsg = '微信视频播放失败!', errCode = -1 } = err;
+
+ // 错误码5: 表示用户点击了取消. openChannelsActivity:fail cancel
+ if ([5].includes(errCode)) {
+ return;
+ }
+
+ const showErrorToast = (otherMsgs = []) => {
+ uni.showToast({
+ title: [errMsg, message,...otherMsgs].join('\n'),
+ icon: 'none',
+ duration: 2000
+ });
+ }
+ showErrorToast();
+ }
};
\ No newline at end of file
diff --git a/components/chat-message/chat-message.vue b/components/chat-message/chat-message.vue
index 110b227..c9b7654 100644
--- a/components/chat-message/chat-message.vue
+++ b/components/chat-message/chat-message.vue
@@ -1,333 +1,333 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 客服不在线
-
-
- 客服在线
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/components/hover-nav/hover-nav.vue b/components/hover-nav/hover-nav.vue
index 3749334..b2b6b31 100644
--- a/components/hover-nav/hover-nav.vue
+++ b/components/hover-nav/hover-nav.vue
@@ -1,329 +1,329 @@
-
-
-
-
- {{ currentLangDisplayName }}
-
-
-
-
-
-
-
- 🤖
- 💬
- 👤
-
-
-
-
-
- 🤖
- 💬
- 👤
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/components/l-time/l-time.vue b/components/l-time/l-time.vue
index a2e78fc..f0a708c 100644
--- a/components/l-time/l-time.vue
+++ b/components/l-time/l-time.vue
@@ -37,7 +37,7 @@ export default {
getText() {
let self = this;
let timeVal = _time_.getFormatTime(self.textVal, self.maxDate);
- if (timeVal && (timeVal.endsWith('刚刚') || timeVal.endsWith('分钟前'))) {
+ if (timeVal && (timeVal.endsWith($lang('common.l-time.l40.t0')) || timeVal.endsWith($lang('common.l-time.l40.t1')))) {
setTimeout(() => {
let temp = self.textVal;
self.textVal = '';
diff --git a/components/l-time/time.js b/components/l-time/time.js
index 76c5f4b..1b61f6c 100644
--- a/components/l-time/time.js
+++ b/components/l-time/time.js
@@ -1,161 +1,161 @@
-Function.prototype.asyAfter = function(afterfn) {
- var _self = this;
- return function() {
- var ret = _self.apply(this, arguments);
- if (ret === 'next') {
- return afterfn.apply(this, arguments);
- }
- return ret;
- }
-}
-
-Date.prototype.pattern = function(fmt) {
- var o = {
- "M+": this.getMonth() + 1, //月份
- "d+": this.getDate(), //日
- "h+": this.getHours() % 12 == 0 ? 12 : this.getHours() % 12, //小时
- "H+": this.getHours(), //小时
- "m+": this.getMinutes(), //分
- "s+": this.getSeconds(), //秒
- "q+": Math.floor((this.getMonth() + 3) / 3), //季度
- "S": this.getMilliseconds() //毫秒
- };
- var week = {
- "0": "\u65e5",
- "1": "\u4e00",
- "2": "\u4e8c",
- "3": "\u4e09",
- "4": "\u56db",
- "5": "\u4e94",
- "6": "\u516d"
- };
- if (/(y+)/.test(fmt)) {
- fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
- }
- if (/(E+)/.test(fmt)) {
- fmt = fmt.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "\u661f\u671f" : "\u5468") :
- "") +
- week[this.getDay() + ""]);
- }
- for (var k in o) {
- if (new RegExp("(" + k + ")").test(fmt)) {
- fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k])
- .length)));
- }
- }
- return fmt;
-}
-
-const isType = type => (/^\[object\s(.*)\]$/.exec(Object.prototype.toString.call(type)))[1];
-let Time = function() {};
-let timeProto = Time.prototype;
-
-//获取当前时间戳
-timeProto.getUnix = function() {
- return new Date().getTime();
-}
-
-//获取当天0点0分0秒时间戳
-timeProto.getTodayUnix = function() {
- let date = new Date();
- let myDate = `${date.getFullYear()}/${(date.getMonth() + 1)}/${date.getDate()} 00:00:00`;
- return new Date(myDate).getTime();
-}
-
-//获取今年1月1日0点0分0秒时间戳
-timeProto.getYearUnix = function() {
- let date = new Date();
- date.setMonth(0);
- date.setDate(1);
- date.setHours(0);
- date.setMinutes(0);
- date.setSeconds(0);
- date.setMilliseconds(0);
- return date.getTime();
-}
-
-//获取当前时间标准年月日
-timeProto.getLastDate = function(constTime) {
- if (!constTime) {
- return;
- }
- let date = new Date(constTime);
- if (date.pattern) {
- return date.pattern("yyyy-MM-dd");
- }
-
- let month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1;
- let day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
- return date.getFullYear() + '-' + month + '-' + day;
-}
-
-const resDateStr = function(timer, constTime) {
- let _just = function(timer) {
-
- if (timer <= 0 || Math.floor(timer / 60) <= 0) {
- return "刚刚"
- } else return 'next';
- }
-
- let _mm = function(timer) {
- if (timer < 3600) {
- return Math.floor(timer / 60) + "分钟前"
- } else return 'next';
- }
- let _hh = function(timer, constTime) {
- let today = _time_.getTodayUnix();
- if (timer >= 3600 && (constTime - today >= 0)) {
- //可切换显示模式
- // return "今天 " + new Date(constTime).pattern("HH:mm");
- return Math.floor(timer / 60 / 60) + "小时前";
- } else {
- return 'next'
- };
- }
- let _dd = function(timer, constTime) {
- let today = _time_.getTodayUnix();
- timer = (today - constTime) / 1000;
- if (timer / 86400 <= 31) {
- return Math.ceil(timer / 86400) + "天前"
- } else return 'next';
- }
- let _dlast = function(timer, constTime) {
- return _time_.getLastDate(constTime);
- }
-
- let dateFilter = _just.asyAfter(_mm).asyAfter(_hh).asyAfter(_dd).asyAfter(_dlast);
- return dateFilter(timer, constTime);
-}
-
-
-//转换时间
-const reg = new RegExp("-", "g");
-timeProto.getFormatTime = function(constTime, max) {
- if (!constTime) {
- return "";
- }
-
- switch (isType(constTime)) {
- case 'Date':
- constTime = constTime.getTime();
- break;
- case 'String':
- constTime = constTime.replace(reg, "/");
- default:
- constTime = new Date(constTime).getTime();
- break;
- }
-
- let now = this.getUnix();
- let year = this.getYearUnix();
- let timer = (now - constTime) / 1000;
- if (constTime > now && max) {
- return this.getLastDate(constTime);
- }
-
- let _t = this;
- return resDateStr(timer, constTime);
-}
-
-const _time_ = new Time();
-export default _time_;
+Function.prototype.asyAfter = function(afterfn) {
+ var _self = this;
+ return function() {
+ var ret = _self.apply(this, arguments);
+ if (ret === 'next') {
+ return afterfn.apply(this, arguments);
+ }
+ return ret;
+ }
+}
+
+Date.prototype.pattern = function(fmt) {
+ var o = {
+ "M+": this.getMonth() + 1, //月份
+ "d+": this.getDate(), //日
+ "h+": this.getHours() % 12 == 0 ? 12 : this.getHours() % 12, //小时
+ "H+": this.getHours(), //小时
+ "m+": this.getMinutes(), //分
+ "s+": this.getSeconds(), //秒
+ "q+": Math.floor((this.getMonth() + 3) / 3), //季度
+ "S": this.getMilliseconds() //毫秒
+ };
+ var week = {
+ "0": "\u65e5",
+ "1": "\u4e00",
+ "2": "\u4e8c",
+ "3": "\u4e09",
+ "4": "\u56db",
+ "5": "\u4e94",
+ "6": "\u516d"
+ };
+ if (/(y+)/.test(fmt)) {
+ fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
+ }
+ if (/(E+)/.test(fmt)) {
+ fmt = fmt.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "\u661f\u671f" : "\u5468") :
+ "") +
+ week[this.getDay() + ""]);
+ }
+ for (var k in o) {
+ if (new RegExp("(" + k + ")").test(fmt)) {
+ fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k])
+ .length)));
+ }
+ }
+ return fmt;
+}
+
+const isType = type => (/^\[object\s(.*)\]$/.exec(Object.prototype.toString.call(type)))[1];
+let Time = function() {};
+let timeProto = Time.prototype;
+
+//获取当前时间戳
+timeProto.getUnix = function() {
+ return new Date().getTime();
+}
+
+//获取当天0点0分0秒时间戳
+timeProto.getTodayUnix = function() {
+ let date = new Date();
+ let myDate = `${date.getFullYear()}/${(date.getMonth() + 1)}/${date.getDate()} 00:00:00`;
+ return new Date(myDate).getTime();
+}
+
+//获取今年1月1日0点0分0秒时间戳
+timeProto.getYearUnix = function() {
+ let date = new Date();
+ date.setMonth(0);
+ date.setDate(1);
+ date.setHours(0);
+ date.setMinutes(0);
+ date.setSeconds(0);
+ date.setMilliseconds(0);
+ return date.getTime();
+}
+
+//获取当前时间标准年月日
+timeProto.getLastDate = function(constTime) {
+ if (!constTime) {
+ return;
+ }
+ let date = new Date(constTime);
+ if (date.pattern) {
+ return date.pattern("yyyy-MM-dd");
+ }
+
+ let month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1;
+ let day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
+ return date.getFullYear() + '-' + month + '-' + day;
+}
+
+const resDateStr = function(timer, constTime) {
+ let _just = function(timer) {
+
+ if (timer <= 0 || Math.floor(timer / 60) <= 0) {
+ return $lang("common.l-time.l40.t0")
+ } else return 'next';
+ }
+
+ let _mm = function(timer) {
+ if (timer < 3600) {
+ return Math.floor(timer / 60) + $lang("common.l-time.l40.t1")
+ } else return 'next';
+ }
+ let _hh = function(timer, constTime) {
+ let today = _time_.getTodayUnix();
+ if (timer >= 3600 && (constTime - today >= 0)) {
+ //可切换显示模式
+ // return "今天 " + new Date(constTime).pattern("HH:mm");
+ return Math.floor(timer / 60 / 60) + $lang("common.l-time.time.l110.t0");
+ } else {
+ return 'next'
+ };
+ }
+ let _dd = function(timer, constTime) {
+ let today = _time_.getTodayUnix();
+ timer = (today - constTime) / 1000;
+ if (timer / 86400 <= 31) {
+ return Math.ceil(timer / 86400) + $lang("common.l-time.time.l119.t0")
+ } else return 'next';
+ }
+ let _dlast = function(timer, constTime) {
+ return _time_.getLastDate(constTime);
+ }
+
+ let dateFilter = _just.asyAfter(_mm).asyAfter(_hh).asyAfter(_dd).asyAfter(_dlast);
+ return dateFilter(timer, constTime);
+}
+
+
+//转换时间
+const reg = new RegExp("-", "g");
+timeProto.getFormatTime = function(constTime, max) {
+ if (!constTime) {
+ return "";
+ }
+
+ switch (isType(constTime)) {
+ case 'Date':
+ constTime = constTime.getTime();
+ break;
+ case 'String':
+ constTime = constTime.replace(reg, "/");
+ default:
+ constTime = new Date(constTime).getTime();
+ break;
+ }
+
+ let now = this.getUnix();
+ let year = this.getYearUnix();
+ let timer = (now - constTime) / 1000;
+ if (constTime > now && max) {
+ return this.getLastDate(constTime);
+ }
+
+ let _t = this;
+ return resDateStr(timer, constTime);
+}
+
+const _time_ = new Time();
+export default _time_;
diff --git a/components/mescroll/mescroll-uni-option.js b/components/mescroll/mescroll-uni-option.js
index a701ad1..f14a324 100644
--- a/components/mescroll/mescroll-uni-option.js
+++ b/components/mescroll/mescroll-uni-option.js
@@ -3,15 +3,15 @@
const GlobalOption = {
down: {
// 其他down的配置参数也可以写,这里只展示了常用的配置:
- textInOffset: '下拉刷新', // 下拉的距离在offset范围内的提示文本
- textOutOffset: '释放更新', // 下拉的距离大于offset范围的提示文本
- textLoading: '加载中 ...', // 加载中的提示文本
+ textInOffset: $lang('common.mescroll.mescroll-uni-option.l6.t0'), // 下拉的距离在offset范围内的提示文本
+ textOutOffset: $lang('common.mescroll.mescroll-uni-option.l7.t0'), // 下拉的距离大于offset范围的提示文本
+ textLoading: $lang('common.mescroll.mescroll-uni-option.l8.t0'), // 加载中的提示文本
offset: 80, // 在列表顶部,下拉大于80px,松手即可触发下拉刷新的回调
native: false // 是否使用系统自带的下拉刷新; 默认false; 仅在mescroll-body生效 (值为true时,还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例)
},
up: {
// 其他up的配置参数也可以写,这里只展示了常用的配置:
- textLoading: '加载中 ...', // 加载中的提示文本
+ textLoading: $lang('common.mescroll.mescroll-uni-option.l8.t0'), // 加载中的提示文本
textNoMore: '', // 没有更多数据的提示文本
// textNoMore: '— 我是有底线的 —', // 没有更多数据的提示文本
offset: 80, // 距底部多远时,触发upCallback
@@ -27,7 +27,7 @@ const GlobalOption = {
empty: {
use: true, // 是否显示空布局
icon: "https://www.mescroll.com/img/mescroll-empty.png?v=1", // 图标路径 (建议放入static目录, 如 /static/img/mescroll-empty.png )
- tip: '~ 暂无相关数据 ~' // 提示
+ tip: $lang('common.mescroll.mescroll-uni-option.l30.t0') // 提示
}
}
}
diff --git a/components/mescroll/mescroll-uni.js b/components/mescroll/mescroll-uni.js
index 1b2eb9d..adf2063 100644
--- a/components/mescroll/mescroll-uni.js
+++ b/components/mescroll/mescroll-uni.js
@@ -1,841 +1,841 @@
-/* mescroll
- * version 1.2.3
- * 2020-02-18 wenju
- * http://www.mescroll.com
- */
-
-export default function MeScroll(options, isScrollBody) {
- let me = this;
- me.version = '1.2.3'; // mescroll版本号
- me.options = options || {}; // 配置
- me.isScrollBody = isScrollBody || false; // 滚动区域是否为原生页面滚动; 默认为scroll-view
-
- me.isDownScrolling = false; // 是否在执行下拉刷新的回调
- me.isUpScrolling = false; // 是否在执行上拉加载的回调
- let hasDownCallback = me.options.down && me.options.down.callback; // 是否配置了down的callback
-
- // 初始化下拉刷新
- me.initDownScroll();
- // 初始化上拉加载,则初始化
- me.initUpScroll();
-
- // 自动加载
- setTimeout(function() { // 待主线程执行完毕再执行,避免new MeScroll未初始化,在回调获取不到mescroll的实例
- // 自动触发下拉刷新 (只有配置了down的callback才自动触发下拉刷新)
- if (me.optDown.use && me.optDown.auto && hasDownCallback) {
- if (me.optDown.autoShowLoading) {
- me.triggerDownScroll(); // 显示下拉进度,执行下拉回调
- } else {
- me.optDown.callback && me.optDown.callback(me); // 不显示下拉进度,直接执行下拉回调
- }
- }
- // 自动触发上拉加载
- setTimeout(function() { // 延时确保先执行down的callback,再执行up的callback,因为部分小程序emit是异步,会导致isUpAutoLoad判断有误
- me.optUp.use && me.optUp.auto && !me.isUpAutoLoad && me.triggerUpScroll();
- }, 100)
- }, 30); // 需让me.optDown.inited和me.optUp.inited先执行
-}
-
-/* 配置参数:下拉刷新 */
-MeScroll.prototype.extendDownScroll = function(optDown) {
- // 下拉刷新的配置
- MeScroll.extend(optDown, {
- use: true, // 是否启用下拉刷新; 默认true
- auto: true, // 是否在初始化完毕之后自动执行下拉刷新的回调; 默认true
- native: false, // 是否使用系统自带的下拉刷新; 默认false; 仅mescroll-body生效 (值为true时,还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例)
- autoShowLoading: false, // 如果设置auto=true(在初始化完毕之后自动执行下拉刷新的回调),那么是否显示下拉刷新的进度; 默认false
- isLock: false, // 是否锁定下拉刷新,默认false;
- offset: 80, // 在列表顶部,下拉大于80px,松手即可触发下拉刷新的回调
- startTop: 100, // scroll-view滚动到顶部时,此时的scroll-top不一定为0, 此值用于控制最大的误差
- fps: 80, // 下拉节流 (值越大每秒刷新频率越高)
- inOffsetRate: 1, // 在列表顶部,下拉的距离小于offset时,改变下拉区域高度比例;值小于1且越接近0,高度变化越小,表现为越往下越难拉
- outOffsetRate: 0.2, // 在列表顶部,下拉的距离大于offset时,改变下拉区域高度比例;值小于1且越接近0,高度变化越小,表现为越往下越难拉
- bottomOffset: 20, // 当手指touchmove位置在距离body底部20px范围内的时候结束上拉刷新,避免Webview嵌套导致touchend事件不执行
- minAngle: 45, // 向下滑动最少偏移的角度,取值区间 [0,90];默认45度,即向下滑动的角度大于45度则触发下拉;而小于45度,将不触发下拉,避免与左右滑动的轮播等组件冲突;
- textInOffset: '下拉刷新', // 下拉的距离在offset范围内的提示文本
- textOutOffset: '释放更新', // 下拉的距离大于offset范围的提示文本
- textLoading: '加载中 ...', // 加载中的提示文本
- inited: null, // 下拉刷新初始化完毕的回调
- inOffset: null, // 下拉的距离进入offset范围内那一刻的回调
- outOffset: null, // 下拉的距离大于offset那一刻的回调
- onMoving: null, // 下拉过程中的回调,滑动过程一直在执行; rate下拉区域当前高度与指定距离的比值(inOffset: rate<1; outOffset: rate>=1); downHight当前下拉区域的高度
- beforeLoading: null, // 准备触发下拉刷新的回调: 如果return true,将不触发showLoading和callback回调; 常用来完全自定义下拉刷新, 参考案例【淘宝 v6.8.0】
- showLoading: null, // 显示下拉刷新进度的回调
- afterLoading: null, // 准备结束下拉的回调. 返回结束下拉的延时执行时间,默认0ms; 常用于结束下拉之前再显示另外一小段动画,才去隐藏下拉刷新的场景, 参考案例【dotJump】
- endDownScroll: null, // 结束下拉刷新的回调
- callback: function(mescroll) {
- // 下拉刷新的回调;默认重置上拉加载列表为第一页
- mescroll.resetUpScroll();
- }
- })
-}
-
-/* 配置参数:上拉加载 */
-MeScroll.prototype.extendUpScroll = function(optUp) {
- // 上拉加载的配置
- MeScroll.extend(optUp, {
- use: true, // 是否启用上拉加载; 默认true
- auto: true, // 是否在初始化完毕之后自动执行上拉加载的回调; 默认true
- isLock: false, // 是否锁定上拉加载,默认false;
- isBoth: true, // 上拉加载时,如果滑动到列表顶部是否可以同时触发下拉刷新;默认true,两者可同时触发;
- isBounce: false, // 默认禁止橡皮筋的回弹效果, 必读事项: http://www.mescroll.com/qa.html?v=190725#q25
- callback: null, // 上拉加载的回调;function(page,mescroll){ }
- page: {
- num: 0, // 当前页码,默认0,回调之前会加1,即callback(page)会从1开始
- size: 10, // 每页数据的数量
- time: null // 加载第一页数据服务器返回的时间; 防止用户翻页时,后台新增了数据从而导致下一页数据重复;
- },
- noMoreSize: 5, // 如果列表已无数据,可设置列表的总数量要大于等于5条才显示无更多数据;避免列表数据过少(比如只有一条数据),显示无更多数据会不好看
- offset: 80, // 距底部多远时,触发upCallback
- textLoading: '加载中 ...', // 加载中的提示文本
- textNoMore: '-- END --', // 没有更多数据的提示文本
- inited: null, // 初始化完毕的回调
- showLoading: null, // 显示加载中的回调
- showNoMore: null, // 显示无更多数据的回调
- hideUpScroll: null, // 隐藏上拉加载的回调
- errDistance: 60, // endErr的时候需往上滑动一段距离,使其往下滑动时再次触发onReachBottom,仅mescroll-body生效
- toTop: {
- // 回到顶部按钮,需配置src才显示
- src: null, // 图片路径,默认null (绝对路径或网络图)
- offset: 1000, // 列表滚动多少距离才显示回到顶部按钮,默认1000
- duration: 300, // 回到顶部的动画时长,默认300ms (当值为0或300则使用系统自带回到顶部,更流畅; 其他值则通过step模拟,部分机型可能不够流畅,所以非特殊情况不建议修改此项)
- btnClick: null, // 点击按钮的回调
- onShow: null, // 是否显示的回调
- zIndex: 9990, // fixed定位z-index值
- left: null, // 到左边的距离, 默认null. 此项有值时,right不生效. (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx)
- right: 20, // 到右边的距离, 默认20 (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx)
- bottom: 120, // 到底部的距离, 默认120 (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx)
- safearea: false, // bottom的偏移量是否加上底部安全区的距离, 默认false, 需要适配iPhoneX时使用 (具体的界面如果不配置此项,则取本vue的safearea值)
- width: 72, // 回到顶部图标的宽度, 默认72 (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx)
- radius: "50%" // 圆角, 默认"50%" (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx)
- },
- empty: {
- use: true, // 是否显示空布局
- icon: null, // 图标路径
- tip: '~ 暂无相关数据 ~', // 提示
- btnText: '', // 按钮
- btnClick: null, // 点击按钮的回调
- onShow: null, // 是否显示的回调
- fixed: false, // 是否使用fixed定位,默认false; 配置fixed为true,以下的top和zIndex才生效 (transform会使fixed失效,最终会降级为absolute)
- top: "100rpx", // fixed定位的top值 (完整的单位值,如 "10%"; "100rpx")
- zIndex: 99 // fixed定位z-index值
- },
- onScroll: false // 是否监听滚动事件
- })
-}
-
-/* 配置参数 */
-MeScroll.extend = function(userOption, defaultOption) {
- if (!userOption) return defaultOption;
- for (let key in defaultOption) {
- if (userOption[key] == null) {
- let def = defaultOption[key];
- if (def != null && typeof def === 'object') {
- userOption[key] = MeScroll.extend({}, def); // 深度匹配
- } else {
- userOption[key] = def;
- }
- } else if (typeof userOption[key] === 'object') {
- MeScroll.extend(userOption[key], defaultOption[key]); // 深度匹配
- }
- }
- return userOption;
-}
-
-/* -------初始化下拉刷新------- */
-MeScroll.prototype.initDownScroll = function() {
- let me = this;
- // 配置参数
- me.optDown = me.options.down || {};
- me.extendDownScroll(me.optDown);
-
- // 如果是mescroll-body且配置了native,则禁止自定义的下拉刷新
- if (me.isScrollBody && me.optDown.native) {
- me.optDown.use = false
- } else {
- me.optDown.native = false // 仅mescroll-body支持,mescroll-uni不支持
- }
-
- me.downHight = 0; // 下拉区域的高度
-
- // 在页面中加入下拉布局
- if (me.optDown.use && me.optDown.inited) {
- // 初始化完毕的回调
- setTimeout(function() { // 待主线程执行完毕再执行,避免new MeScroll未初始化,在回调获取不到mescroll的实例
- me.optDown.inited(me);
- }, 0)
- }
-}
-
-/* 列表touchstart事件 */
-MeScroll.prototype.touchstartEvent = function(e) {
- if (!this.optDown.use) return;
-
- this.startPoint = this.getPoint(e); // 记录起点
- this.startTop = this.getScrollTop(); // 记录此时的滚动条位置
- this.lastPoint = this.startPoint; // 重置上次move的点
- this.maxTouchmoveY = this.getBodyHeight() - this.optDown.bottomOffset; // 手指触摸的最大范围(写在touchstart避免body获取高度为0的情况)
- this.inTouchend = false; // 标记不是touchend
-}
-
-/* 列表touchmove事件 */
-MeScroll.prototype.touchmoveEvent = function(e) {
- if (!this.optDown.use) return;
- if (!this.startPoint) return;
- let me = this;
-
- // 节流
- let t = new Date().getTime();
- if (me.moveTime && t - me.moveTime < me.moveTimeDiff) { // 小于节流时间,则不处理
- return;
- } else {
- me.moveTime = t
- if (!me.moveTimeDiff) me.moveTimeDiff = 1000 / me.optDown.fps
- }
-
- let scrollTop = me.getScrollTop(); // 当前滚动条的距离
- let curPoint = me.getPoint(e); // 当前点
-
- let moveY = curPoint.y - me.startPoint.y; // 和起点比,移动的距离,大于0向下拉,小于0向上拉
-
- // 向下拉 && 在顶部
- // mescroll-body,直接判定在顶部即可
- // scroll-view在滚动时不会触发touchmove,当触顶/底/左/右时,才会触发touchmove
- // scroll-view滚动到顶部时,scrollTop不一定为0; 在iOS的APP中scrollTop可能为负数,不一定和startTop相等
- if (moveY > 0 && (
- (me.isScrollBody && scrollTop <= 0) ||
- (!me.isScrollBody && (scrollTop <= 0 || (scrollTop <= me.optDown.startTop && scrollTop === me.startTop)))
- )) {
- // 可下拉的条件
- if (!me.inTouchend && !me.isDownScrolling && !me.optDown.isLock && (!me.isUpScrolling || (me.isUpScrolling &&
- me.optUp.isBoth))) {
-
- // 下拉的角度是否在配置的范围内
- let angle = me.getAngle(me.lastPoint, curPoint); // 两点之间的角度,区间 [0,90]
- if (angle < me.optDown.minAngle) return; // 如果小于配置的角度,则不往下执行下拉刷新
-
- // 如果手指的位置超过配置的距离,则提前结束下拉,避免Webview嵌套导致touchend无法触发
- if (me.maxTouchmoveY > 0 && curPoint.y >= me.maxTouchmoveY) {
- me.inTouchend = true; // 标记执行touchend
- me.touchendEvent(); // 提前触发touchend
- return;
- }
-
- me.preventDefault(e); // 阻止默认事件
-
- let diff = curPoint.y - me.lastPoint.y; // 和上次比,移动的距离 (大于0向下,小于0向上)
-
- // 下拉距离 < 指定距离
- if (me.downHight < me.optDown.offset) {
- if (me.movetype !== 1) {
- me.movetype = 1; // 加入标记,保证只执行一次
- me.optDown.inOffset && me.optDown.inOffset(me); // 进入指定距离范围内那一刻的回调,只执行一次
- me.isMoveDown = true; // 标记下拉区域高度改变,在touchend重置回来
- }
- me.downHight += diff * me.optDown.inOffsetRate; // 越往下,高度变化越小
-
- // 指定距离 <= 下拉距离
- } else {
- if (me.movetype !== 2) {
- me.movetype = 2; // 加入标记,保证只执行一次
- me.optDown.outOffset && me.optDown.outOffset(me); // 下拉超过指定距离那一刻的回调,只执行一次
- me.isMoveDown = true; // 标记下拉区域高度改变,在touchend重置回来
- }
- if (diff > 0) { // 向下拉
- me.downHight += Math.round(diff * me.optDown.outOffsetRate); // 越往下,高度变化越小
- } else { // 向上收
- me.downHight += diff; // 向上收回高度,则向上滑多少收多少高度
- }
- }
-
- let rate = me.downHight / me.optDown.offset; // 下拉区域当前高度与指定距离的比值
- me.optDown.onMoving && me.optDown.onMoving(me, rate, me.downHight); // 下拉过程中的回调,一直在执行
- }
- }
-
- me.lastPoint = curPoint; // 记录本次移动的点
-}
-
-/* 列表touchend事件 */
-MeScroll.prototype.touchendEvent = function(e) {
- if (!this.optDown.use) return;
- // 如果下拉区域高度已改变,则需重置回来
- if (this.isMoveDown) {
- if (this.downHight >= this.optDown.offset) {
- // 符合触发刷新的条件
- this.triggerDownScroll();
- } else {
- // 不符合的话 则重置
- this.downHight = 0;
- this.optDown.endDownScroll && this.optDown.endDownScroll(this);
- }
- this.movetype = 0;
- this.isMoveDown = false;
- } else if (!this.isScrollBody && this.getScrollTop() === this.startTop) { // scroll-view到顶/左/右/底的滑动事件
- let isScrollUp = this.getPoint(e).y - this.startPoint.y < 0; // 和起点比,移动的距离,大于0向下拉,小于0向上拉
- // 上滑
- if (isScrollUp) {
- // 需检查滑动的角度
- let angle = this.getAngle(this.getPoint(e), this.startPoint); // 两点之间的角度,区间 [0,90]
- if (angle > 80) {
- // 检查并触发上拉
- this.triggerUpScroll(true);
- }
- }
- }
-}
-
-/* 根据点击滑动事件获取第一个手指的坐标 */
-MeScroll.prototype.getPoint = function(e) {
- if (!e) {
- return {
- x: 0,
- y: 0
- }
- }
- if (e.touches && e.touches[0]) {
- return {
- x: e.touches[0].pageX,
- y: e.touches[0].pageY
- }
- } else if (e.changedTouches && e.changedTouches[0]) {
- return {
- x: e.changedTouches[0].pageX,
- y: e.changedTouches[0].pageY
- }
- } else {
- return {
- x: e.clientX,
- y: e.clientY
- }
- }
-}
-
-/* 计算两点之间的角度: 区间 [0,90]*/
-MeScroll.prototype.getAngle = function(p1, p2) {
- let x = Math.abs(p1.x - p2.x);
- let y = Math.abs(p1.y - p2.y);
- let z = Math.sqrt(x * x + y * y);
- let angle = 0;
- if (z !== 0) {
- angle = Math.asin(y / z) / Math.PI * 180;
- }
- return angle
-}
-
-/* 触发下拉刷新 */
-MeScroll.prototype.triggerDownScroll = function() {
- if (this.optDown.beforeLoading && this.optDown.beforeLoading(this)) {
- //return true则处于完全自定义状态
- } else {
- this.showDownScroll(); // 下拉刷新中...
- this.optDown.callback && this.optDown.callback(this); // 执行回调,联网加载数据
- }
-}
-
-/* 显示下拉进度布局 */
-MeScroll.prototype.showDownScroll = function() {
- this.isDownScrolling = true; // 标记下拉中
- if (this.optDown.native) {
- uni.startPullDownRefresh(); // 系统自带的下拉刷新
- this.optDown.showLoading && this.optDown.showLoading(this, 0); // 仍触发showLoading,因为上拉加载用到
- } else {
- this.downHight = this.optDown.offset; // 更新下拉区域高度
- this.optDown.showLoading && this.optDown.showLoading(this, this.downHight); // 下拉刷新中...
- }
-}
-
-/* 显示系统自带的下拉刷新时需要处理的业务 */
-MeScroll.prototype.onPullDownRefresh = function() {
- this.isDownScrolling = true; // 标记下拉中
- this.optDown.showLoading && this.optDown.showLoading(this, 0); // 仍触发showLoading,因为上拉加载用到
- this.optDown.callback && this.optDown.callback(this); // 执行回调,联网加载数据
-}
-
-/* 结束下拉刷新 */
-MeScroll.prototype.endDownScroll = function() {
- if (this.optDown.native) { // 结束原生下拉刷新
- this.isDownScrolling = false;
- this.optDown.endDownScroll && this.optDown.endDownScroll(this);
- uni.stopPullDownRefresh();
- return
- }
- let me = this;
- // 结束下拉刷新的方法
- let endScroll = function() {
- me.downHight = 0;
- me.isDownScrolling = false;
- me.optDown.endDownScroll && me.optDown.endDownScroll(me);
- !me.isScrollBody && me.setScrollHeight(0) // scroll-view重置滚动区域,使数据不满屏时仍可检查触发翻页
- }
- // 结束下拉刷新时的回调
- let delay = 0;
- if (me.optDown.afterLoading) delay = me.optDown.afterLoading(me); // 结束下拉刷新的延时,单位ms
- if (typeof delay === 'number' && delay > 0) {
- setTimeout(endScroll, delay);
- } else {
- endScroll();
- }
-}
-
-/* 锁定下拉刷新:isLock=ture,null锁定;isLock=false解锁 */
-MeScroll.prototype.lockDownScroll = function(isLock) {
- if (isLock == null) isLock = true;
- this.optDown.isLock = isLock;
-}
-
-/* 锁定上拉加载:isLock=ture,null锁定;isLock=false解锁 */
-MeScroll.prototype.lockUpScroll = function(isLock) {
- if (isLock == null) isLock = true;
- this.optUp.isLock = isLock;
-}
-
-/* -------初始化上拉加载------- */
-MeScroll.prototype.initUpScroll = function() {
- let me = this;
- // 配置参数
- me.optUp = me.options.up || {
- use: false
- };
- me.extendUpScroll(me.optUp);
-
- if (!me.optUp.isBounce) me.setBounce(false); // 不允许bounce时,需禁止window的touchmove事件
-
- if (me.optUp.use === false) return; // 配置不使用上拉加载时,则不初始化上拉布局
- me.optUp.hasNext = true; // 如果使用上拉,则默认有下一页
- me.startNum = me.optUp.page.num + 1; // 记录page开始的页码
-
- // 初始化完毕的回调
- if (me.optUp.inited) {
- setTimeout(function() { // 待主线程执行完毕再执行,避免new MeScroll未初始化,在回调获取不到mescroll的实例
- me.optUp.inited(me);
- }, 0)
- }
-}
-
-/*滚动到底部的事件 (仅mescroll-body生效)*/
-MeScroll.prototype.onReachBottom = function() {
- if (this.isScrollBody && !this.isUpScrolling) { // 只能支持下拉刷新的时候同时可以触发上拉加载,否则滚动到底部就需要上滑一点才能触发onReachBottom
- if (!this.optUp.isLock && this.optUp.hasNext) {
- this.triggerUpScroll();
- }
- }
-}
-
-/*列表滚动事件 (仅mescroll-body生效)*/
-MeScroll.prototype.onPageScroll = function(e) {
- if (!this.isScrollBody) return;
-
- // 更新滚动条的位置 (主要用于判断下拉刷新时,滚动条是否在顶部)
- this.setScrollTop(e.scrollTop);
-
- // 顶部按钮的显示隐藏
- if (e.scrollTop >= this.optUp.toTop.offset) {
- this.showTopBtn();
- } else {
- this.hideTopBtn();
- }
-}
-
-/*列表滚动事件*/
-MeScroll.prototype.scroll = function(e, onScroll) {
- // 更新滚动条的位置
- this.setScrollTop(e.scrollTop);
- // 更新滚动内容高度
- this.setScrollHeight(e.scrollHeight);
-
- // 向上滑还是向下滑动
- if (this.preScrollY == null) this.preScrollY = 0;
- this.isScrollUp = e.scrollTop - this.preScrollY > 0;
- this.preScrollY = e.scrollTop;
-
- // 上滑 && 检查并触发上拉
- this.isScrollUp && this.triggerUpScroll(true);
-
- // 顶部按钮的显示隐藏
- if (e.scrollTop >= this.optUp.toTop.offset) {
- this.showTopBtn();
- } else {
- this.hideTopBtn();
- }
-
- // 滑动监听
- this.optUp.onScroll && onScroll && onScroll()
-}
-
-/* 触发上拉加载 */
-MeScroll.prototype.triggerUpScroll = function(isCheck) {
- if (!this.isUpScrolling && this.optUp.use && this.optUp.callback) {
- // 是否校验在底部; 默认不校验
- if (isCheck === true) {
- let canUp = false;
- // 还有下一页 && 没有锁定 && 不在下拉中
- if (this.optUp.hasNext && !this.optUp.isLock && !this.isDownScrolling) {
- if (this.getScrollBottom() <= this.optUp.offset) { // 到底部
- canUp = true; // 标记可上拉
- }
- }
- if (canUp === false) return;
- }
- this.showUpScroll(); // 上拉加载中...
- this.optUp.page.num++; // 预先加一页,如果失败则减回
- this.isUpAutoLoad = true; // 标记上拉已经自动执行过,避免初始化时多次触发上拉回调
- this.num = this.optUp.page.num; // 把最新的页数赋值在mescroll上,避免对page的影响
- this.size = this.optUp.page.size; // 把最新的页码赋值在mescroll上,避免对page的影响
- this.time = this.optUp.page.time; // 把最新的页码赋值在mescroll上,避免对page的影响
- this.optUp.callback(this); // 执行回调,联网加载数据
- }
-}
-
-/* 显示上拉加载中 */
-MeScroll.prototype.showUpScroll = function() {
- this.isUpScrolling = true; // 标记上拉加载中
- this.optUp.showLoading && this.optUp.showLoading(this); // 回调
-}
-
-/* 显示上拉无更多数据 */
-MeScroll.prototype.showNoMore = function() {
- this.optUp.hasNext = false; // 标记无更多数据
- this.optUp.showNoMore && this.optUp.showNoMore(this); // 回调
-}
-
-/* 隐藏上拉区域**/
-MeScroll.prototype.hideUpScroll = function() {
- this.optUp.hideUpScroll && this.optUp.hideUpScroll(this); // 回调
-}
-
-/* 结束上拉加载 */
-MeScroll.prototype.endUpScroll = function(isShowNoMore) {
- if (isShowNoMore != null) { // isShowNoMore=null,不处理下拉状态,下拉刷新的时候调用
- if (isShowNoMore) {
- this.showNoMore(); // isShowNoMore=true,显示无更多数据
- } else {
- this.hideUpScroll(); // isShowNoMore=false,隐藏上拉加载
- }
- }
- this.isUpScrolling = false; // 标记结束上拉加载
-}
-
-/* 重置上拉加载列表为第一页
- *isShowLoading 是否显示进度布局;
- * 1.默认null,不传参,则显示上拉加载的进度布局
- * 2.传参true, 则显示下拉刷新的进度布局
- * 3.传参false,则不显示上拉和下拉的进度 (常用于静默更新列表数据)
- */
-MeScroll.prototype.resetUpScroll = function(isShowLoading) {
- if (this.optUp && this.optUp.use) {
- let page = this.optUp.page;
- this.prePageNum = page.num; // 缓存重置前的页码,加载失败可退回
- this.prePageTime = page.time; // 缓存重置前的时间,加载失败可退回
- page.num = this.startNum; // 重置为第一页
- page.time = null; // 重置时间为空
- if (!this.isDownScrolling && isShowLoading !== false) { // 如果不是下拉刷新触发的resetUpScroll并且不配置列表静默更新,则显示进度;
- if (isShowLoading == null) {
- this.removeEmpty(); // 移除空布局
- this.showUpScroll(); // 不传参,默认显示上拉加载的进度布局
- } else {
- this.showDownScroll(); // 传true,显示下拉刷新的进度布局,不清空列表
- }
- }
- this.isUpAutoLoad = true; // 标记上拉已经自动执行过,避免初始化时多次触发上拉回调
- this.num = page.num; // 把最新的页数赋值在mescroll上,避免对page的影响
- this.size = page.size; // 把最新的页码赋值在mescroll上,避免对page的影响
- this.time = page.time; // 把最新的页码赋值在mescroll上,避免对page的影响
- this.optUp.callback && this.optUp.callback(this); // 执行上拉回调
- }
-}
-
-/* 设置page.num的值 */
-MeScroll.prototype.setPageNum = function(num) {
- this.optUp.page.num = num - 1;
-}
-
-/* 设置page.size的值 */
-MeScroll.prototype.setPageSize = function(size) {
- this.optUp.page.size = size;
-}
-
-/* 联网回调成功,结束下拉刷新和上拉加载
- * dataSize: 当前页的数据量(必传)
- * totalPage: 总页数(必传)
- * systime: 服务器时间 (可空)
- */
-MeScroll.prototype.endByPage = function(dataSize, totalPage, systime) {
- let hasNext;
- if (this.optUp.use && totalPage != null) hasNext = this.optUp.page.num < totalPage; // 是否还有下一页
- this.endSuccess(dataSize, hasNext, systime);
-}
-
-/* 联网回调成功,结束下拉刷新和上拉加载
- * dataSize: 当前页的数据量(必传)
- * totalSize: 列表所有数据总数量(必传)
- * systime: 服务器时间 (可空)
- */
-MeScroll.prototype.endBySize = function(dataSize, totalSize, systime) {
- let hasNext;
- if (this.optUp.use && totalSize != null) {
- let loadSize = (this.optUp.page.num - 1) * this.optUp.page.size + dataSize; // 已加载的数据总数
- hasNext = loadSize < totalSize; // 是否还有下一页
- }
- this.endSuccess(dataSize, hasNext, systime);
-}
-
-/* 联网回调成功,结束下拉刷新和上拉加载
- * dataSize: 当前页的数据个数(不是所有页的数据总和),用于上拉加载判断是否还有下一页.如果不传,则会判断还有下一页
- * hasNext: 是否还有下一页,布尔类型;用来解决这个小问题:比如列表共有20条数据,每页加载10条,共2页.如果只根据dataSize判断,则需翻到第三页才会知道无更多数据,如果传了hasNext,则翻到第二页即可显示无更多数据.
- * systime: 服务器时间(可空);用来解决这个小问题:当准备翻下一页时,数据库新增了几条记录,此时翻下一页,前面的几条数据会和上一页的重复;这里传入了systime,那么upCallback的page.time就会有值,把page.time传给服务器,让后台过滤新加入的那几条记录
- */
-MeScroll.prototype.endSuccess = function(dataSize, hasNext, systime) {
- let me = this;
- // 结束下拉刷新
- if (me.isDownScrolling) me.endDownScroll();
-
- // 结束上拉加载
- if (me.optUp.use) {
- let isShowNoMore; // 是否已无更多数据
- if (dataSize != null) {
- let pageNum = me.optUp.page.num; // 当前页码
- let pageSize = me.optUp.page.size; // 每页长度
- // 如果是第一页
- if (pageNum === 1) {
- if (systime) me.optUp.page.time = systime; // 设置加载列表数据第一页的时间
- }
- if (dataSize < pageSize || hasNext === false) {
- // 返回的数据不满一页时,则说明已无更多数据
- me.optUp.hasNext = false;
- if (dataSize === 0 && pageNum === 1) {
- // 如果第一页无任何数据且配置了空布局
- isShowNoMore = false;
- me.showEmpty();
- } else {
- // 总列表数少于配置的数量,则不显示无更多数据
- let allDataSize = (pageNum - 1) * pageSize + dataSize;
- if (allDataSize < me.optUp.noMoreSize) {
- isShowNoMore = false;
- } else {
- isShowNoMore = true;
- }
- me.removeEmpty(); // 移除空布局
- }
- } else {
- // 还有下一页
- isShowNoMore = false;
- me.optUp.hasNext = true;
- me.removeEmpty(); // 移除空布局
- }
- }
-
- // 隐藏上拉
- me.endUpScroll(isShowNoMore);
- }
-}
-
-/* 回调失败,结束下拉刷新和上拉加载 */
-MeScroll.prototype.endErr = function(errDistance) {
- // 结束下拉,回调失败重置回原来的页码和时间
- if (this.isDownScrolling) {
- let page = this.optUp.page;
- if (page && this.prePageNum) {
- page.num = this.prePageNum;
- page.time = this.prePageTime;
- }
- this.endDownScroll();
- }
- // 结束上拉,回调失败重置回原来的页码
- if (this.isUpScrolling) {
- this.optUp.page.num--;
- this.endUpScroll(false);
- // 如果是mescroll-body,则需往回滚一定距离
- if (this.isScrollBody && errDistance !== 0) { // 不处理0
- if (!errDistance) errDistance = this.optUp.errDistance; // 不传,则取默认
- this.scrollTo(this.getScrollTop() - errDistance, 0) // 往上回滚的距离
- }
- }
-}
-
-/* 显示空布局 */
-MeScroll.prototype.showEmpty = function() {
- this.optUp.empty.use && this.optUp.empty.onShow && this.optUp.empty.onShow(true)
-}
-
-/* 移除空布局 */
-MeScroll.prototype.removeEmpty = function() {
- this.optUp.empty.use && this.optUp.empty.onShow && this.optUp.empty.onShow(false)
-}
-
-/* 显示回到顶部的按钮 */
-MeScroll.prototype.showTopBtn = function() {
- if (!this.topBtnShow) {
- this.topBtnShow = true;
- this.optUp.toTop.onShow && this.optUp.toTop.onShow(true);
- }
-}
-
-/* 隐藏回到顶部的按钮 */
-MeScroll.prototype.hideTopBtn = function() {
- if (this.topBtnShow) {
- this.topBtnShow = false;
- this.optUp.toTop.onShow && this.optUp.toTop.onShow(false);
- }
-}
-
-/* 获取滚动条的位置 */
-MeScroll.prototype.getScrollTop = function() {
- return this.scrollTop || 0
-}
-
-/* 记录滚动条的位置 */
-MeScroll.prototype.setScrollTop = function(y) {
- this.scrollTop = y;
-}
-
-/* 滚动到指定位置 */
-MeScroll.prototype.scrollTo = function(y, t) {
- this.myScrollTo && this.myScrollTo(y, t) // scrollview需自定义回到顶部方法
-}
-
-/* 自定义scrollTo */
-MeScroll.prototype.resetScrollTo = function(myScrollTo) {
- this.myScrollTo = myScrollTo
-}
-
-/* 滚动条到底部的距离 */
-MeScroll.prototype.getScrollBottom = function() {
- return this.getScrollHeight() - this.getClientHeight() - this.getScrollTop()
-}
-
-/* 计步器
- star: 开始值
- end: 结束值
- callback(step,timer): 回调step值,计步器timer,可自行通过window.clearInterval(timer)结束计步器;
- t: 计步时长,传0则直接回调end值;不传则默认300ms
- rate: 周期;不传则默认30ms计步一次
- * */
-MeScroll.prototype.getStep = function(star, end, callback, t, rate) {
- let diff = end - star; // 差值
- if (t === 0 || diff === 0) {
- callback && callback(end);
- return;
- }
- t = t || 300; // 时长 300ms
- rate = rate || 30; // 周期 30ms
- let count = t / rate; // 次数
- let step = diff / count; // 步长
- let i = 0; // 计数
- let timer = setInterval(function() {
- if (i < count - 1) {
- star += step;
- callback && callback(star, timer);
- i++;
- } else {
- callback && callback(end, timer); // 最后一次直接设置end,避免计算误差
- clearInterval(timer);
- }
- }, rate);
-}
-
-/* 滚动容器的高度 */
-MeScroll.prototype.getClientHeight = function(isReal) {
- let h = this.clientHeight || 0
- if (h === 0 && isReal !== true) { // 未获取到容器的高度,可临时取body的高度 (可能会有误差)
- h = this.getBodyHeight()
- }
- return h
-}
-MeScroll.prototype.setClientHeight = function(h) {
- this.clientHeight = h;
-}
-
-/* 滚动内容的高度 */
-MeScroll.prototype.getScrollHeight = function() {
- return this.scrollHeight || 0;
-}
-MeScroll.prototype.setScrollHeight = function(h) {
- this.scrollHeight = h;
-}
-
-/* body的高度 */
-MeScroll.prototype.getBodyHeight = function() {
- return this.bodyHeight || 0;
-}
-MeScroll.prototype.setBodyHeight = function(h) {
- this.bodyHeight = h;
-}
-
-/* 阻止浏览器默认滚动事件 */
-MeScroll.prototype.preventDefault = function(e) {
- // 小程序不支持e.preventDefault
- // app的bounce只能通过配置pages.json的style.app-plus.bounce为"none"来禁止
- // cancelable:是否可以被禁用; defaultPrevented:是否已经被禁用
- if (e && e.cancelable && !e.defaultPrevented) e.preventDefault()
-}
-
-/* 是否允许下拉回弹(橡皮筋效果); true或null为允许; false禁止bounce */
-MeScroll.prototype.setBounce = function(isBounce) {
- // #ifdef H5
- if (isBounce === false) {
- this.optUp.isBounce = false; // 禁止
- // 标记当前页使用了mescroll (需延时,确保page已切换)
- setTimeout(function() {
- let uniPageDom = document.getElementsByTagName('uni-page')[0];
- uniPageDom && uniPageDom.setAttribute('use_mescroll', true)
- }, 30);
- // 避免重复添加事件
- if (window.isSetBounce) return;
- window.isSetBounce = true;
- // 需禁止window的touchmove事件才能有效的阻止bounce
- window.bounceTouchmove = function(e) {
- let el = e.target;
- // 当前touch的元素及父元素是否要拦截touchmove事件
- let isPrevent = true;
- while (el !== document.body && el !== document) {
- if (el.tagName === 'UNI-PAGE') { // 只扫描当前页
- if (!el.getAttribute('use_mescroll')) {
- isPrevent = false; // 如果当前页没有使用mescroll,则不阻止
- }
- break;
- }
- let cls = el.classList;
- if (cls) {
- if (cls.contains('mescroll-touch')) { // 采用scroll-view 此处不能过滤mescroll-uni,否则下拉仍然有回弹
- isPrevent = false; // mescroll-touch无需拦截touchmove事件
- break;
- } else if (cls.contains('mescroll-touch-x') || cls.contains('mescroll-touch-y')) {
- // 如果配置了水平或者垂直滑动
- let curX = e.touches ? e.touches[0].pageX : e.clientX; // 当前第一个手指距离列表顶部的距离x
- let curY = e.touches ? e.touches[0].pageY : e.clientY; // 当前第一个手指距离列表顶部的距离y
- if (!this.preWinX) this.preWinX = curX; // 设置上次移动的距离x
- if (!this.preWinY) this.preWinY = curY; // 设置上次移动的距离y
- // 计算两点之间的角度
- let x = Math.abs(this.preWinX - curX);
- let y = Math.abs(this.preWinY - curY);
- let z = Math.sqrt(x * x + y * y);
- this.preWinX = curX; // 记录本次curX的值
- this.preWinY = curY; // 记录本次curY的值
- if (z !== 0) {
- let angle = Math.asin(y / z) / Math.PI * 180; // 角度区间 [0,90]
- if ((angle <= 45 && cls.contains('mescroll-touch-x')) || (angle > 45 && cls.contains('mescroll-touch-y'))) {
- isPrevent = false; // 水平滑动或者垂直滑动,不拦截touchmove事件
- break;
- }
- }
- }
- }
- el = el.parentNode; // 继续检查其父元素
- }
- // 拦截touchmove事件:是否可以被禁用&&是否已经被禁用 (这里不使用me.preventDefault(e)的方法,因为某些情况下会报找不到方法的异常)
- if (isPrevent && e.cancelable && !e.defaultPrevented && typeof e.preventDefault === "function") e.preventDefault();
- }
- window.addEventListener('touchmove', window.bounceTouchmove, {
- passive: false
- });
- } else {
- this.optUp.isBounce = true; // 允许
- if (window.bounceTouchmove) {
- window.removeEventListener('touchmove', window.bounceTouchmove);
- window.bounceTouchmove = null;
- window.isSetBounce = false;
- }
- }
- // #endif
-}
+/* mescroll
+ * version 1.2.3
+ * 2020-02-18 wenju
+ * http://www.mescroll.com
+ */
+
+export default function MeScroll(options, isScrollBody) {
+ let me = this;
+ me.version = '1.2.3'; // mescroll版本号
+ me.options = options || {}; // 配置
+ me.isScrollBody = isScrollBody || false; // 滚动区域是否为原生页面滚动; 默认为scroll-view
+
+ me.isDownScrolling = false; // 是否在执行下拉刷新的回调
+ me.isUpScrolling = false; // 是否在执行上拉加载的回调
+ let hasDownCallback = me.options.down && me.options.down.callback; // 是否配置了down的callback
+
+ // 初始化下拉刷新
+ me.initDownScroll();
+ // 初始化上拉加载,则初始化
+ me.initUpScroll();
+
+ // 自动加载
+ setTimeout(function() { // 待主线程执行完毕再执行,避免new MeScroll未初始化,在回调获取不到mescroll的实例
+ // 自动触发下拉刷新 (只有配置了down的callback才自动触发下拉刷新)
+ if (me.optDown.use && me.optDown.auto && hasDownCallback) {
+ if (me.optDown.autoShowLoading) {
+ me.triggerDownScroll(); // 显示下拉进度,执行下拉回调
+ } else {
+ me.optDown.callback && me.optDown.callback(me); // 不显示下拉进度,直接执行下拉回调
+ }
+ }
+ // 自动触发上拉加载
+ setTimeout(function() { // 延时确保先执行down的callback,再执行up的callback,因为部分小程序emit是异步,会导致isUpAutoLoad判断有误
+ me.optUp.use && me.optUp.auto && !me.isUpAutoLoad && me.triggerUpScroll();
+ }, 100)
+ }, 30); // 需让me.optDown.inited和me.optUp.inited先执行
+}
+
+/* 配置参数:下拉刷新 */
+MeScroll.prototype.extendDownScroll = function(optDown) {
+ // 下拉刷新的配置
+ MeScroll.extend(optDown, {
+ use: true, // 是否启用下拉刷新; 默认true
+ auto: true, // 是否在初始化完毕之后自动执行下拉刷新的回调; 默认true
+ native: false, // 是否使用系统自带的下拉刷新; 默认false; 仅mescroll-body生效 (值为true时,还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例)
+ autoShowLoading: false, // 如果设置auto=true(在初始化完毕之后自动执行下拉刷新的回调),那么是否显示下拉刷新的进度; 默认false
+ isLock: false, // 是否锁定下拉刷新,默认false;
+ offset: 80, // 在列表顶部,下拉大于80px,松手即可触发下拉刷新的回调
+ startTop: 100, // scroll-view滚动到顶部时,此时的scroll-top不一定为0, 此值用于控制最大的误差
+ fps: 80, // 下拉节流 (值越大每秒刷新频率越高)
+ inOffsetRate: 1, // 在列表顶部,下拉的距离小于offset时,改变下拉区域高度比例;值小于1且越接近0,高度变化越小,表现为越往下越难拉
+ outOffsetRate: 0.2, // 在列表顶部,下拉的距离大于offset时,改变下拉区域高度比例;值小于1且越接近0,高度变化越小,表现为越往下越难拉
+ bottomOffset: 20, // 当手指touchmove位置在距离body底部20px范围内的时候结束上拉刷新,避免Webview嵌套导致touchend事件不执行
+ minAngle: 45, // 向下滑动最少偏移的角度,取值区间 [0,90];默认45度,即向下滑动的角度大于45度则触发下拉;而小于45度,将不触发下拉,避免与左右滑动的轮播等组件冲突;
+ textInOffset: $lang('common.mescroll.mescroll-uni-option.l6.t0'), // 下拉的距离在offset范围内的提示文本
+ textOutOffset: $lang('common.mescroll.mescroll-uni-option.l7.t0'), // 下拉的距离大于offset范围的提示文本
+ textLoading: $lang('common.mescroll.mescroll-uni-option.l8.t0'), // 加载中的提示文本
+ inited: null, // 下拉刷新初始化完毕的回调
+ inOffset: null, // 下拉的距离进入offset范围内那一刻的回调
+ outOffset: null, // 下拉的距离大于offset那一刻的回调
+ onMoving: null, // 下拉过程中的回调,滑动过程一直在执行; rate下拉区域当前高度与指定距离的比值(inOffset: rate<1; outOffset: rate>=1); downHight当前下拉区域的高度
+ beforeLoading: null, // 准备触发下拉刷新的回调: 如果return true,将不触发showLoading和callback回调; 常用来完全自定义下拉刷新, 参考案例【淘宝 v6.8.0】
+ showLoading: null, // 显示下拉刷新进度的回调
+ afterLoading: null, // 准备结束下拉的回调. 返回结束下拉的延时执行时间,默认0ms; 常用于结束下拉之前再显示另外一小段动画,才去隐藏下拉刷新的场景, 参考案例【dotJump】
+ endDownScroll: null, // 结束下拉刷新的回调
+ callback: function(mescroll) {
+ // 下拉刷新的回调;默认重置上拉加载列表为第一页
+ mescroll.resetUpScroll();
+ }
+ })
+}
+
+/* 配置参数:上拉加载 */
+MeScroll.prototype.extendUpScroll = function(optUp) {
+ // 上拉加载的配置
+ MeScroll.extend(optUp, {
+ use: true, // 是否启用上拉加载; 默认true
+ auto: true, // 是否在初始化完毕之后自动执行上拉加载的回调; 默认true
+ isLock: false, // 是否锁定上拉加载,默认false;
+ isBoth: true, // 上拉加载时,如果滑动到列表顶部是否可以同时触发下拉刷新;默认true,两者可同时触发;
+ isBounce: false, // 默认禁止橡皮筋的回弹效果, 必读事项: http://www.mescroll.com/qa.html?v=190725#q25
+ callback: null, // 上拉加载的回调;function(page,mescroll){ }
+ page: {
+ num: 0, // 当前页码,默认0,回调之前会加1,即callback(page)会从1开始
+ size: 10, // 每页数据的数量
+ time: null // 加载第一页数据服务器返回的时间; 防止用户翻页时,后台新增了数据从而导致下一页数据重复;
+ },
+ noMoreSize: 5, // 如果列表已无数据,可设置列表的总数量要大于等于5条才显示无更多数据;避免列表数据过少(比如只有一条数据),显示无更多数据会不好看
+ offset: 80, // 距底部多远时,触发upCallback
+ textLoading: $lang('common.mescroll.mescroll-uni-option.l8.t0'), // 加载中的提示文本
+ textNoMore: '-- END --', // 没有更多数据的提示文本
+ inited: null, // 初始化完毕的回调
+ showLoading: null, // 显示加载中的回调
+ showNoMore: null, // 显示无更多数据的回调
+ hideUpScroll: null, // 隐藏上拉加载的回调
+ errDistance: 60, // endErr的时候需往上滑动一段距离,使其往下滑动时再次触发onReachBottom,仅mescroll-body生效
+ toTop: {
+ // 回到顶部按钮,需配置src才显示
+ src: null, // 图片路径,默认null (绝对路径或网络图)
+ offset: 1000, // 列表滚动多少距离才显示回到顶部按钮,默认1000
+ duration: 300, // 回到顶部的动画时长,默认300ms (当值为0或300则使用系统自带回到顶部,更流畅; 其他值则通过step模拟,部分机型可能不够流畅,所以非特殊情况不建议修改此项)
+ btnClick: null, // 点击按钮的回调
+ onShow: null, // 是否显示的回调
+ zIndex: 9990, // fixed定位z-index值
+ left: null, // 到左边的距离, 默认null. 此项有值时,right不生效. (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx)
+ right: 20, // 到右边的距离, 默认20 (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx)
+ bottom: 120, // 到底部的距离, 默认120 (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx)
+ safearea: false, // bottom的偏移量是否加上底部安全区的距离, 默认false, 需要适配iPhoneX时使用 (具体的界面如果不配置此项,则取本vue的safearea值)
+ width: 72, // 回到顶部图标的宽度, 默认72 (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx)
+ radius: "50%" // 圆角, 默认"50%" (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx)
+ },
+ empty: {
+ use: true, // 是否显示空布局
+ icon: null, // 图标路径
+ tip: $lang('common.mescroll.mescroll-uni-option.l30.t0'), // 提示
+ btnText: '', // 按钮
+ btnClick: null, // 点击按钮的回调
+ onShow: null, // 是否显示的回调
+ fixed: false, // 是否使用fixed定位,默认false; 配置fixed为true,以下的top和zIndex才生效 (transform会使fixed失效,最终会降级为absolute)
+ top: "100rpx", // fixed定位的top值 (完整的单位值,如 "10%"; "100rpx")
+ zIndex: 99 // fixed定位z-index值
+ },
+ onScroll: false // 是否监听滚动事件
+ })
+}
+
+/* 配置参数 */
+MeScroll.extend = function(userOption, defaultOption) {
+ if (!userOption) return defaultOption;
+ for (let key in defaultOption) {
+ if (userOption[key] == null) {
+ let def = defaultOption[key];
+ if (def != null && typeof def === 'object') {
+ userOption[key] = MeScroll.extend({}, def); // 深度匹配
+ } else {
+ userOption[key] = def;
+ }
+ } else if (typeof userOption[key] === 'object') {
+ MeScroll.extend(userOption[key], defaultOption[key]); // 深度匹配
+ }
+ }
+ return userOption;
+}
+
+/* -------初始化下拉刷新------- */
+MeScroll.prototype.initDownScroll = function() {
+ let me = this;
+ // 配置参数
+ me.optDown = me.options.down || {};
+ me.extendDownScroll(me.optDown);
+
+ // 如果是mescroll-body且配置了native,则禁止自定义的下拉刷新
+ if (me.isScrollBody && me.optDown.native) {
+ me.optDown.use = false
+ } else {
+ me.optDown.native = false // 仅mescroll-body支持,mescroll-uni不支持
+ }
+
+ me.downHight = 0; // 下拉区域的高度
+
+ // 在页面中加入下拉布局
+ if (me.optDown.use && me.optDown.inited) {
+ // 初始化完毕的回调
+ setTimeout(function() { // 待主线程执行完毕再执行,避免new MeScroll未初始化,在回调获取不到mescroll的实例
+ me.optDown.inited(me);
+ }, 0)
+ }
+}
+
+/* 列表touchstart事件 */
+MeScroll.prototype.touchstartEvent = function(e) {
+ if (!this.optDown.use) return;
+
+ this.startPoint = this.getPoint(e); // 记录起点
+ this.startTop = this.getScrollTop(); // 记录此时的滚动条位置
+ this.lastPoint = this.startPoint; // 重置上次move的点
+ this.maxTouchmoveY = this.getBodyHeight() - this.optDown.bottomOffset; // 手指触摸的最大范围(写在touchstart避免body获取高度为0的情况)
+ this.inTouchend = false; // 标记不是touchend
+}
+
+/* 列表touchmove事件 */
+MeScroll.prototype.touchmoveEvent = function(e) {
+ if (!this.optDown.use) return;
+ if (!this.startPoint) return;
+ let me = this;
+
+ // 节流
+ let t = new Date().getTime();
+ if (me.moveTime && t - me.moveTime < me.moveTimeDiff) { // 小于节流时间,则不处理
+ return;
+ } else {
+ me.moveTime = t
+ if (!me.moveTimeDiff) me.moveTimeDiff = 1000 / me.optDown.fps
+ }
+
+ let scrollTop = me.getScrollTop(); // 当前滚动条的距离
+ let curPoint = me.getPoint(e); // 当前点
+
+ let moveY = curPoint.y - me.startPoint.y; // 和起点比,移动的距离,大于0向下拉,小于0向上拉
+
+ // 向下拉 && 在顶部
+ // mescroll-body,直接判定在顶部即可
+ // scroll-view在滚动时不会触发touchmove,当触顶/底/左/右时,才会触发touchmove
+ // scroll-view滚动到顶部时,scrollTop不一定为0; 在iOS的APP中scrollTop可能为负数,不一定和startTop相等
+ if (moveY > 0 && (
+ (me.isScrollBody && scrollTop <= 0) ||
+ (!me.isScrollBody && (scrollTop <= 0 || (scrollTop <= me.optDown.startTop && scrollTop === me.startTop)))
+ )) {
+ // 可下拉的条件
+ if (!me.inTouchend && !me.isDownScrolling && !me.optDown.isLock && (!me.isUpScrolling || (me.isUpScrolling &&
+ me.optUp.isBoth))) {
+
+ // 下拉的角度是否在配置的范围内
+ let angle = me.getAngle(me.lastPoint, curPoint); // 两点之间的角度,区间 [0,90]
+ if (angle < me.optDown.minAngle) return; // 如果小于配置的角度,则不往下执行下拉刷新
+
+ // 如果手指的位置超过配置的距离,则提前结束下拉,避免Webview嵌套导致touchend无法触发
+ if (me.maxTouchmoveY > 0 && curPoint.y >= me.maxTouchmoveY) {
+ me.inTouchend = true; // 标记执行touchend
+ me.touchendEvent(); // 提前触发touchend
+ return;
+ }
+
+ me.preventDefault(e); // 阻止默认事件
+
+ let diff = curPoint.y - me.lastPoint.y; // 和上次比,移动的距离 (大于0向下,小于0向上)
+
+ // 下拉距离 < 指定距离
+ if (me.downHight < me.optDown.offset) {
+ if (me.movetype !== 1) {
+ me.movetype = 1; // 加入标记,保证只执行一次
+ me.optDown.inOffset && me.optDown.inOffset(me); // 进入指定距离范围内那一刻的回调,只执行一次
+ me.isMoveDown = true; // 标记下拉区域高度改变,在touchend重置回来
+ }
+ me.downHight += diff * me.optDown.inOffsetRate; // 越往下,高度变化越小
+
+ // 指定距离 <= 下拉距离
+ } else {
+ if (me.movetype !== 2) {
+ me.movetype = 2; // 加入标记,保证只执行一次
+ me.optDown.outOffset && me.optDown.outOffset(me); // 下拉超过指定距离那一刻的回调,只执行一次
+ me.isMoveDown = true; // 标记下拉区域高度改变,在touchend重置回来
+ }
+ if (diff > 0) { // 向下拉
+ me.downHight += Math.round(diff * me.optDown.outOffsetRate); // 越往下,高度变化越小
+ } else { // 向上收
+ me.downHight += diff; // 向上收回高度,则向上滑多少收多少高度
+ }
+ }
+
+ let rate = me.downHight / me.optDown.offset; // 下拉区域当前高度与指定距离的比值
+ me.optDown.onMoving && me.optDown.onMoving(me, rate, me.downHight); // 下拉过程中的回调,一直在执行
+ }
+ }
+
+ me.lastPoint = curPoint; // 记录本次移动的点
+}
+
+/* 列表touchend事件 */
+MeScroll.prototype.touchendEvent = function(e) {
+ if (!this.optDown.use) return;
+ // 如果下拉区域高度已改变,则需重置回来
+ if (this.isMoveDown) {
+ if (this.downHight >= this.optDown.offset) {
+ // 符合触发刷新的条件
+ this.triggerDownScroll();
+ } else {
+ // 不符合的话 则重置
+ this.downHight = 0;
+ this.optDown.endDownScroll && this.optDown.endDownScroll(this);
+ }
+ this.movetype = 0;
+ this.isMoveDown = false;
+ } else if (!this.isScrollBody && this.getScrollTop() === this.startTop) { // scroll-view到顶/左/右/底的滑动事件
+ let isScrollUp = this.getPoint(e).y - this.startPoint.y < 0; // 和起点比,移动的距离,大于0向下拉,小于0向上拉
+ // 上滑
+ if (isScrollUp) {
+ // 需检查滑动的角度
+ let angle = this.getAngle(this.getPoint(e), this.startPoint); // 两点之间的角度,区间 [0,90]
+ if (angle > 80) {
+ // 检查并触发上拉
+ this.triggerUpScroll(true);
+ }
+ }
+ }
+}
+
+/* 根据点击滑动事件获取第一个手指的坐标 */
+MeScroll.prototype.getPoint = function(e) {
+ if (!e) {
+ return {
+ x: 0,
+ y: 0
+ }
+ }
+ if (e.touches && e.touches[0]) {
+ return {
+ x: e.touches[0].pageX,
+ y: e.touches[0].pageY
+ }
+ } else if (e.changedTouches && e.changedTouches[0]) {
+ return {
+ x: e.changedTouches[0].pageX,
+ y: e.changedTouches[0].pageY
+ }
+ } else {
+ return {
+ x: e.clientX,
+ y: e.clientY
+ }
+ }
+}
+
+/* 计算两点之间的角度: 区间 [0,90]*/
+MeScroll.prototype.getAngle = function(p1, p2) {
+ let x = Math.abs(p1.x - p2.x);
+ let y = Math.abs(p1.y - p2.y);
+ let z = Math.sqrt(x * x + y * y);
+ let angle = 0;
+ if (z !== 0) {
+ angle = Math.asin(y / z) / Math.PI * 180;
+ }
+ return angle
+}
+
+/* 触发下拉刷新 */
+MeScroll.prototype.triggerDownScroll = function() {
+ if (this.optDown.beforeLoading && this.optDown.beforeLoading(this)) {
+ //return true则处于完全自定义状态
+ } else {
+ this.showDownScroll(); // 下拉刷新中...
+ this.optDown.callback && this.optDown.callback(this); // 执行回调,联网加载数据
+ }
+}
+
+/* 显示下拉进度布局 */
+MeScroll.prototype.showDownScroll = function() {
+ this.isDownScrolling = true; // 标记下拉中
+ if (this.optDown.native) {
+ uni.startPullDownRefresh(); // 系统自带的下拉刷新
+ this.optDown.showLoading && this.optDown.showLoading(this, 0); // 仍触发showLoading,因为上拉加载用到
+ } else {
+ this.downHight = this.optDown.offset; // 更新下拉区域高度
+ this.optDown.showLoading && this.optDown.showLoading(this, this.downHight); // 下拉刷新中...
+ }
+}
+
+/* 显示系统自带的下拉刷新时需要处理的业务 */
+MeScroll.prototype.onPullDownRefresh = function() {
+ this.isDownScrolling = true; // 标记下拉中
+ this.optDown.showLoading && this.optDown.showLoading(this, 0); // 仍触发showLoading,因为上拉加载用到
+ this.optDown.callback && this.optDown.callback(this); // 执行回调,联网加载数据
+}
+
+/* 结束下拉刷新 */
+MeScroll.prototype.endDownScroll = function() {
+ if (this.optDown.native) { // 结束原生下拉刷新
+ this.isDownScrolling = false;
+ this.optDown.endDownScroll && this.optDown.endDownScroll(this);
+ uni.stopPullDownRefresh();
+ return
+ }
+ let me = this;
+ // 结束下拉刷新的方法
+ let endScroll = function() {
+ me.downHight = 0;
+ me.isDownScrolling = false;
+ me.optDown.endDownScroll && me.optDown.endDownScroll(me);
+ !me.isScrollBody && me.setScrollHeight(0) // scroll-view重置滚动区域,使数据不满屏时仍可检查触发翻页
+ }
+ // 结束下拉刷新时的回调
+ let delay = 0;
+ if (me.optDown.afterLoading) delay = me.optDown.afterLoading(me); // 结束下拉刷新的延时,单位ms
+ if (typeof delay === 'number' && delay > 0) {
+ setTimeout(endScroll, delay);
+ } else {
+ endScroll();
+ }
+}
+
+/* 锁定下拉刷新:isLock=ture,null锁定;isLock=false解锁 */
+MeScroll.prototype.lockDownScroll = function(isLock) {
+ if (isLock == null) isLock = true;
+ this.optDown.isLock = isLock;
+}
+
+/* 锁定上拉加载:isLock=ture,null锁定;isLock=false解锁 */
+MeScroll.prototype.lockUpScroll = function(isLock) {
+ if (isLock == null) isLock = true;
+ this.optUp.isLock = isLock;
+}
+
+/* -------初始化上拉加载------- */
+MeScroll.prototype.initUpScroll = function() {
+ let me = this;
+ // 配置参数
+ me.optUp = me.options.up || {
+ use: false
+ };
+ me.extendUpScroll(me.optUp);
+
+ if (!me.optUp.isBounce) me.setBounce(false); // 不允许bounce时,需禁止window的touchmove事件
+
+ if (me.optUp.use === false) return; // 配置不使用上拉加载时,则不初始化上拉布局
+ me.optUp.hasNext = true; // 如果使用上拉,则默认有下一页
+ me.startNum = me.optUp.page.num + 1; // 记录page开始的页码
+
+ // 初始化完毕的回调
+ if (me.optUp.inited) {
+ setTimeout(function() { // 待主线程执行完毕再执行,避免new MeScroll未初始化,在回调获取不到mescroll的实例
+ me.optUp.inited(me);
+ }, 0)
+ }
+}
+
+/*滚动到底部的事件 (仅mescroll-body生效)*/
+MeScroll.prototype.onReachBottom = function() {
+ if (this.isScrollBody && !this.isUpScrolling) { // 只能支持下拉刷新的时候同时可以触发上拉加载,否则滚动到底部就需要上滑一点才能触发onReachBottom
+ if (!this.optUp.isLock && this.optUp.hasNext) {
+ this.triggerUpScroll();
+ }
+ }
+}
+
+/*列表滚动事件 (仅mescroll-body生效)*/
+MeScroll.prototype.onPageScroll = function(e) {
+ if (!this.isScrollBody) return;
+
+ // 更新滚动条的位置 (主要用于判断下拉刷新时,滚动条是否在顶部)
+ this.setScrollTop(e.scrollTop);
+
+ // 顶部按钮的显示隐藏
+ if (e.scrollTop >= this.optUp.toTop.offset) {
+ this.showTopBtn();
+ } else {
+ this.hideTopBtn();
+ }
+}
+
+/*列表滚动事件*/
+MeScroll.prototype.scroll = function(e, onScroll) {
+ // 更新滚动条的位置
+ this.setScrollTop(e.scrollTop);
+ // 更新滚动内容高度
+ this.setScrollHeight(e.scrollHeight);
+
+ // 向上滑还是向下滑动
+ if (this.preScrollY == null) this.preScrollY = 0;
+ this.isScrollUp = e.scrollTop - this.preScrollY > 0;
+ this.preScrollY = e.scrollTop;
+
+ // 上滑 && 检查并触发上拉
+ this.isScrollUp && this.triggerUpScroll(true);
+
+ // 顶部按钮的显示隐藏
+ if (e.scrollTop >= this.optUp.toTop.offset) {
+ this.showTopBtn();
+ } else {
+ this.hideTopBtn();
+ }
+
+ // 滑动监听
+ this.optUp.onScroll && onScroll && onScroll()
+}
+
+/* 触发上拉加载 */
+MeScroll.prototype.triggerUpScroll = function(isCheck) {
+ if (!this.isUpScrolling && this.optUp.use && this.optUp.callback) {
+ // 是否校验在底部; 默认不校验
+ if (isCheck === true) {
+ let canUp = false;
+ // 还有下一页 && 没有锁定 && 不在下拉中
+ if (this.optUp.hasNext && !this.optUp.isLock && !this.isDownScrolling) {
+ if (this.getScrollBottom() <= this.optUp.offset) { // 到底部
+ canUp = true; // 标记可上拉
+ }
+ }
+ if (canUp === false) return;
+ }
+ this.showUpScroll(); // 上拉加载中...
+ this.optUp.page.num++; // 预先加一页,如果失败则减回
+ this.isUpAutoLoad = true; // 标记上拉已经自动执行过,避免初始化时多次触发上拉回调
+ this.num = this.optUp.page.num; // 把最新的页数赋值在mescroll上,避免对page的影响
+ this.size = this.optUp.page.size; // 把最新的页码赋值在mescroll上,避免对page的影响
+ this.time = this.optUp.page.time; // 把最新的页码赋值在mescroll上,避免对page的影响
+ this.optUp.callback(this); // 执行回调,联网加载数据
+ }
+}
+
+/* 显示上拉加载中 */
+MeScroll.prototype.showUpScroll = function() {
+ this.isUpScrolling = true; // 标记上拉加载中
+ this.optUp.showLoading && this.optUp.showLoading(this); // 回调
+}
+
+/* 显示上拉无更多数据 */
+MeScroll.prototype.showNoMore = function() {
+ this.optUp.hasNext = false; // 标记无更多数据
+ this.optUp.showNoMore && this.optUp.showNoMore(this); // 回调
+}
+
+/* 隐藏上拉区域**/
+MeScroll.prototype.hideUpScroll = function() {
+ this.optUp.hideUpScroll && this.optUp.hideUpScroll(this); // 回调
+}
+
+/* 结束上拉加载 */
+MeScroll.prototype.endUpScroll = function(isShowNoMore) {
+ if (isShowNoMore != null) { // isShowNoMore=null,不处理下拉状态,下拉刷新的时候调用
+ if (isShowNoMore) {
+ this.showNoMore(); // isShowNoMore=true,显示无更多数据
+ } else {
+ this.hideUpScroll(); // isShowNoMore=false,隐藏上拉加载
+ }
+ }
+ this.isUpScrolling = false; // 标记结束上拉加载
+}
+
+/* 重置上拉加载列表为第一页
+ *isShowLoading 是否显示进度布局;
+ * 1.默认null,不传参,则显示上拉加载的进度布局
+ * 2.传参true, 则显示下拉刷新的进度布局
+ * 3.传参false,则不显示上拉和下拉的进度 (常用于静默更新列表数据)
+ */
+MeScroll.prototype.resetUpScroll = function(isShowLoading) {
+ if (this.optUp && this.optUp.use) {
+ let page = this.optUp.page;
+ this.prePageNum = page.num; // 缓存重置前的页码,加载失败可退回
+ this.prePageTime = page.time; // 缓存重置前的时间,加载失败可退回
+ page.num = this.startNum; // 重置为第一页
+ page.time = null; // 重置时间为空
+ if (!this.isDownScrolling && isShowLoading !== false) { // 如果不是下拉刷新触发的resetUpScroll并且不配置列表静默更新,则显示进度;
+ if (isShowLoading == null) {
+ this.removeEmpty(); // 移除空布局
+ this.showUpScroll(); // 不传参,默认显示上拉加载的进度布局
+ } else {
+ this.showDownScroll(); // 传true,显示下拉刷新的进度布局,不清空列表
+ }
+ }
+ this.isUpAutoLoad = true; // 标记上拉已经自动执行过,避免初始化时多次触发上拉回调
+ this.num = page.num; // 把最新的页数赋值在mescroll上,避免对page的影响
+ this.size = page.size; // 把最新的页码赋值在mescroll上,避免对page的影响
+ this.time = page.time; // 把最新的页码赋值在mescroll上,避免对page的影响
+ this.optUp.callback && this.optUp.callback(this); // 执行上拉回调
+ }
+}
+
+/* 设置page.num的值 */
+MeScroll.prototype.setPageNum = function(num) {
+ this.optUp.page.num = num - 1;
+}
+
+/* 设置page.size的值 */
+MeScroll.prototype.setPageSize = function(size) {
+ this.optUp.page.size = size;
+}
+
+/* 联网回调成功,结束下拉刷新和上拉加载
+ * dataSize: 当前页的数据量(必传)
+ * totalPage: 总页数(必传)
+ * systime: 服务器时间 (可空)
+ */
+MeScroll.prototype.endByPage = function(dataSize, totalPage, systime) {
+ let hasNext;
+ if (this.optUp.use && totalPage != null) hasNext = this.optUp.page.num < totalPage; // 是否还有下一页
+ this.endSuccess(dataSize, hasNext, systime);
+}
+
+/* 联网回调成功,结束下拉刷新和上拉加载
+ * dataSize: 当前页的数据量(必传)
+ * totalSize: 列表所有数据总数量(必传)
+ * systime: 服务器时间 (可空)
+ */
+MeScroll.prototype.endBySize = function(dataSize, totalSize, systime) {
+ let hasNext;
+ if (this.optUp.use && totalSize != null) {
+ let loadSize = (this.optUp.page.num - 1) * this.optUp.page.size + dataSize; // 已加载的数据总数
+ hasNext = loadSize < totalSize; // 是否还有下一页
+ }
+ this.endSuccess(dataSize, hasNext, systime);
+}
+
+/* 联网回调成功,结束下拉刷新和上拉加载
+ * dataSize: 当前页的数据个数(不是所有页的数据总和),用于上拉加载判断是否还有下一页.如果不传,则会判断还有下一页
+ * hasNext: 是否还有下一页,布尔类型;用来解决这个小问题:比如列表共有20条数据,每页加载10条,共2页.如果只根据dataSize判断,则需翻到第三页才会知道无更多数据,如果传了hasNext,则翻到第二页即可显示无更多数据.
+ * systime: 服务器时间(可空);用来解决这个小问题:当准备翻下一页时,数据库新增了几条记录,此时翻下一页,前面的几条数据会和上一页的重复;这里传入了systime,那么upCallback的page.time就会有值,把page.time传给服务器,让后台过滤新加入的那几条记录
+ */
+MeScroll.prototype.endSuccess = function(dataSize, hasNext, systime) {
+ let me = this;
+ // 结束下拉刷新
+ if (me.isDownScrolling) me.endDownScroll();
+
+ // 结束上拉加载
+ if (me.optUp.use) {
+ let isShowNoMore; // 是否已无更多数据
+ if (dataSize != null) {
+ let pageNum = me.optUp.page.num; // 当前页码
+ let pageSize = me.optUp.page.size; // 每页长度
+ // 如果是第一页
+ if (pageNum === 1) {
+ if (systime) me.optUp.page.time = systime; // 设置加载列表数据第一页的时间
+ }
+ if (dataSize < pageSize || hasNext === false) {
+ // 返回的数据不满一页时,则说明已无更多数据
+ me.optUp.hasNext = false;
+ if (dataSize === 0 && pageNum === 1) {
+ // 如果第一页无任何数据且配置了空布局
+ isShowNoMore = false;
+ me.showEmpty();
+ } else {
+ // 总列表数少于配置的数量,则不显示无更多数据
+ let allDataSize = (pageNum - 1) * pageSize + dataSize;
+ if (allDataSize < me.optUp.noMoreSize) {
+ isShowNoMore = false;
+ } else {
+ isShowNoMore = true;
+ }
+ me.removeEmpty(); // 移除空布局
+ }
+ } else {
+ // 还有下一页
+ isShowNoMore = false;
+ me.optUp.hasNext = true;
+ me.removeEmpty(); // 移除空布局
+ }
+ }
+
+ // 隐藏上拉
+ me.endUpScroll(isShowNoMore);
+ }
+}
+
+/* 回调失败,结束下拉刷新和上拉加载 */
+MeScroll.prototype.endErr = function(errDistance) {
+ // 结束下拉,回调失败重置回原来的页码和时间
+ if (this.isDownScrolling) {
+ let page = this.optUp.page;
+ if (page && this.prePageNum) {
+ page.num = this.prePageNum;
+ page.time = this.prePageTime;
+ }
+ this.endDownScroll();
+ }
+ // 结束上拉,回调失败重置回原来的页码
+ if (this.isUpScrolling) {
+ this.optUp.page.num--;
+ this.endUpScroll(false);
+ // 如果是mescroll-body,则需往回滚一定距离
+ if (this.isScrollBody && errDistance !== 0) { // 不处理0
+ if (!errDistance) errDistance = this.optUp.errDistance; // 不传,则取默认
+ this.scrollTo(this.getScrollTop() - errDistance, 0) // 往上回滚的距离
+ }
+ }
+}
+
+/* 显示空布局 */
+MeScroll.prototype.showEmpty = function() {
+ this.optUp.empty.use && this.optUp.empty.onShow && this.optUp.empty.onShow(true)
+}
+
+/* 移除空布局 */
+MeScroll.prototype.removeEmpty = function() {
+ this.optUp.empty.use && this.optUp.empty.onShow && this.optUp.empty.onShow(false)
+}
+
+/* 显示回到顶部的按钮 */
+MeScroll.prototype.showTopBtn = function() {
+ if (!this.topBtnShow) {
+ this.topBtnShow = true;
+ this.optUp.toTop.onShow && this.optUp.toTop.onShow(true);
+ }
+}
+
+/* 隐藏回到顶部的按钮 */
+MeScroll.prototype.hideTopBtn = function() {
+ if (this.topBtnShow) {
+ this.topBtnShow = false;
+ this.optUp.toTop.onShow && this.optUp.toTop.onShow(false);
+ }
+}
+
+/* 获取滚动条的位置 */
+MeScroll.prototype.getScrollTop = function() {
+ return this.scrollTop || 0
+}
+
+/* 记录滚动条的位置 */
+MeScroll.prototype.setScrollTop = function(y) {
+ this.scrollTop = y;
+}
+
+/* 滚动到指定位置 */
+MeScroll.prototype.scrollTo = function(y, t) {
+ this.myScrollTo && this.myScrollTo(y, t) // scrollview需自定义回到顶部方法
+}
+
+/* 自定义scrollTo */
+MeScroll.prototype.resetScrollTo = function(myScrollTo) {
+ this.myScrollTo = myScrollTo
+}
+
+/* 滚动条到底部的距离 */
+MeScroll.prototype.getScrollBottom = function() {
+ return this.getScrollHeight() - this.getClientHeight() - this.getScrollTop()
+}
+
+/* 计步器
+ star: 开始值
+ end: 结束值
+ callback(step,timer): 回调step值,计步器timer,可自行通过window.clearInterval(timer)结束计步器;
+ t: 计步时长,传0则直接回调end值;不传则默认300ms
+ rate: 周期;不传则默认30ms计步一次
+ * */
+MeScroll.prototype.getStep = function(star, end, callback, t, rate) {
+ let diff = end - star; // 差值
+ if (t === 0 || diff === 0) {
+ callback && callback(end);
+ return;
+ }
+ t = t || 300; // 时长 300ms
+ rate = rate || 30; // 周期 30ms
+ let count = t / rate; // 次数
+ let step = diff / count; // 步长
+ let i = 0; // 计数
+ let timer = setInterval(function() {
+ if (i < count - 1) {
+ star += step;
+ callback && callback(star, timer);
+ i++;
+ } else {
+ callback && callback(end, timer); // 最后一次直接设置end,避免计算误差
+ clearInterval(timer);
+ }
+ }, rate);
+}
+
+/* 滚动容器的高度 */
+MeScroll.prototype.getClientHeight = function(isReal) {
+ let h = this.clientHeight || 0
+ if (h === 0 && isReal !== true) { // 未获取到容器的高度,可临时取body的高度 (可能会有误差)
+ h = this.getBodyHeight()
+ }
+ return h
+}
+MeScroll.prototype.setClientHeight = function(h) {
+ this.clientHeight = h;
+}
+
+/* 滚动内容的高度 */
+MeScroll.prototype.getScrollHeight = function() {
+ return this.scrollHeight || 0;
+}
+MeScroll.prototype.setScrollHeight = function(h) {
+ this.scrollHeight = h;
+}
+
+/* body的高度 */
+MeScroll.prototype.getBodyHeight = function() {
+ return this.bodyHeight || 0;
+}
+MeScroll.prototype.setBodyHeight = function(h) {
+ this.bodyHeight = h;
+}
+
+/* 阻止浏览器默认滚动事件 */
+MeScroll.prototype.preventDefault = function(e) {
+ // 小程序不支持e.preventDefault
+ // app的bounce只能通过配置pages.json的style.app-plus.bounce为"none"来禁止
+ // cancelable:是否可以被禁用; defaultPrevented:是否已经被禁用
+ if (e && e.cancelable && !e.defaultPrevented) e.preventDefault()
+}
+
+/* 是否允许下拉回弹(橡皮筋效果); true或null为允许; false禁止bounce */
+MeScroll.prototype.setBounce = function(isBounce) {
+ // #ifdef H5
+ if (isBounce === false) {
+ this.optUp.isBounce = false; // 禁止
+ // 标记当前页使用了mescroll (需延时,确保page已切换)
+ setTimeout(function() {
+ let uniPageDom = document.getElementsByTagName('uni-page')[0];
+ uniPageDom && uniPageDom.setAttribute('use_mescroll', true)
+ }, 30);
+ // 避免重复添加事件
+ if (window.isSetBounce) return;
+ window.isSetBounce = true;
+ // 需禁止window的touchmove事件才能有效的阻止bounce
+ window.bounceTouchmove = function(e) {
+ let el = e.target;
+ // 当前touch的元素及父元素是否要拦截touchmove事件
+ let isPrevent = true;
+ while (el !== document.body && el !== document) {
+ if (el.tagName === 'UNI-PAGE') { // 只扫描当前页
+ if (!el.getAttribute('use_mescroll')) {
+ isPrevent = false; // 如果当前页没有使用mescroll,则不阻止
+ }
+ break;
+ }
+ let cls = el.classList;
+ if (cls) {
+ if (cls.contains('mescroll-touch')) { // 采用scroll-view 此处不能过滤mescroll-uni,否则下拉仍然有回弹
+ isPrevent = false; // mescroll-touch无需拦截touchmove事件
+ break;
+ } else if (cls.contains('mescroll-touch-x') || cls.contains('mescroll-touch-y')) {
+ // 如果配置了水平或者垂直滑动
+ let curX = e.touches ? e.touches[0].pageX : e.clientX; // 当前第一个手指距离列表顶部的距离x
+ let curY = e.touches ? e.touches[0].pageY : e.clientY; // 当前第一个手指距离列表顶部的距离y
+ if (!this.preWinX) this.preWinX = curX; // 设置上次移动的距离x
+ if (!this.preWinY) this.preWinY = curY; // 设置上次移动的距离y
+ // 计算两点之间的角度
+ let x = Math.abs(this.preWinX - curX);
+ let y = Math.abs(this.preWinY - curY);
+ let z = Math.sqrt(x * x + y * y);
+ this.preWinX = curX; // 记录本次curX的值
+ this.preWinY = curY; // 记录本次curY的值
+ if (z !== 0) {
+ let angle = Math.asin(y / z) / Math.PI * 180; // 角度区间 [0,90]
+ if ((angle <= 45 && cls.contains('mescroll-touch-x')) || (angle > 45 && cls.contains('mescroll-touch-y'))) {
+ isPrevent = false; // 水平滑动或者垂直滑动,不拦截touchmove事件
+ break;
+ }
+ }
+ }
+ }
+ el = el.parentNode; // 继续检查其父元素
+ }
+ // 拦截touchmove事件:是否可以被禁用&&是否已经被禁用 (这里不使用me.preventDefault(e)的方法,因为某些情况下会报找不到方法的异常)
+ if (isPrevent && e.cancelable && !e.defaultPrevented && typeof e.preventDefault === "function") e.preventDefault();
+ }
+ window.addEventListener('touchmove', window.bounceTouchmove, {
+ passive: false
+ });
+ } else {
+ this.optUp.isBounce = true; // 允许
+ if (window.bounceTouchmove) {
+ window.removeEventListener('touchmove', window.bounceTouchmove);
+ window.bounceTouchmove = null;
+ window.isSetBounce = false;
+ }
+ }
+ // #endif
+}
diff --git a/components/mescroll/my-list-mescroll.vue b/components/mescroll/my-list-mescroll.vue
index d0d2935..dbe0d76 100644
--- a/components/mescroll/my-list-mescroll.vue
+++ b/components/mescroll/my-list-mescroll.vue
@@ -1,158 +1,158 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/ns-chat/ns-chat-goods.vue b/components/ns-chat/ns-chat-goods.vue
index b5b95a2..be57e01 100644
--- a/components/ns-chat/ns-chat-goods.vue
+++ b/components/ns-chat/ns-chat-goods.vue
@@ -1,142 +1,142 @@
-
-
-
-
-
- {{ goodsInfo.sku_name ? goodsInfo.sku_name : (isEnEnv ? goodsInfo.en_goods_name : goodsInfo.goods_name) }}
-
-
- ¥
- {{ goodsInfo.price }}
-
- 已发送
-
-
-
-
-
-
- {{ goodsDetail.sku_name ? goodsDetail.sku_name : (isEnEnv ? goodsDetail.en_goods_name : goodsDetail.goods_name) }}
-
-
- ¥
- {{ goodsDetail.price }}
-
- 发送
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ {{ goodsInfo.sku_name ? goodsInfo.sku_name : (isEnEnv ? goodsInfo.en_goods_name : goodsInfo.goods_name) }}
+
+
+ ¥
+ {{ goodsInfo.price }}
+
+ {{ $lang("common.ns-chat.ns-chat-goods.l12.t0") }}
+
+
+
+
+
+
+ {{ goodsDetail.sku_name ? goodsDetail.sku_name : (isEnEnv ? goodsDetail.en_goods_name : goodsDetail.goods_name) }}
+
+
+ ¥
+ {{ goodsDetail.price }}
+
+ {{ $lang("common.ns-chat.ns-chat-goods.l25.t0") }}
+
+
+
+
+
+
+
+
+
diff --git a/components/ns-chat/ns-chat-order.vue b/components/ns-chat/ns-chat-order.vue
index 1e3c5d2..a63ee21 100644
--- a/components/ns-chat/ns-chat-order.vue
+++ b/components/ns-chat/ns-chat-order.vue
@@ -1,149 +1,149 @@
-
-
-
-
-
- {{ orderdetails.order_goods ? orderdetails.order_goods[0].sku_name : '' }}
- 订单状态:{{ orderdetails.order_status_name }}
- 配送方式:{{ orderdetails.delivery_type_name }}
-
-
- ¥
- {{ orderdetails.order_goods ? orderdetails.order_goods[0].price : '' }}
-
- 发送
-
-
-
-
-
-
- {{ orderInfo.order_goods ? orderInfo.order_goods[0].sku_name : '' }}
- 订单状态:{{ orderInfo.order_status_name }}
- 配送方式:{{ orderInfo.delivery_type_name }}
-
-
- ¥
- {{ orderInfo.order_goods ? orderInfo.order_goods[0].price : '' }}
-
- 已发送
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ {{ orderdetails.order_goods ? orderdetails.order_goods[0].sku_name : '' }}
+ { $lang("common.ns-chat.ns-chat-order.l7.t0") } orderdetails.order_status_name }}
+ { $lang("common.ns-chat.ns-chat-order.l8.t0") } orderdetails.delivery_type_name }}
+
+
+ ¥
+ {{ orderdetails.order_goods ? orderdetails.order_goods[0].price : '' }}
+
+ {{ $lang("common.ns-chat.ns-chat-goods.l25.t0") }}
+
+
+
+
+
+
+ {{ orderInfo.order_goods ? orderInfo.order_goods[0].sku_name : '' }}
+ { $lang("common.ns-chat.ns-chat-order.l7.t0") } orderInfo.order_status_name }}
+ { $lang("common.ns-chat.ns-chat-order.l8.t0") } orderInfo.delivery_type_name }}
+
+
+ ¥
+ {{ orderInfo.order_goods ? orderInfo.order_goods[0].price : '' }}
+
+ {{ $lang("common.ns-chat.ns-chat-goods.l12.t0") }}
+
+
+
+
+
+
+
+
+
diff --git a/components/ns-chat/ns-chat-receiveGoods.vue b/components/ns-chat/ns-chat-receiveGoods.vue
index 1217161..af2dd7e 100644
--- a/components/ns-chat/ns-chat-receiveGoods.vue
+++ b/components/ns-chat/ns-chat-receiveGoods.vue
@@ -6,7 +6,7 @@
{{ isEnEnv ? goodsInfo.en_goods_name : goodsInfo.goods_name }}
库存:{{ goodsInfo.stock }}
- 销量:{{ goodsInfo.sale_num }}
+ { $lang("common.ns-chat.ns-chat-receiveGoods.l9.t0") } goodsInfo.sale_num }}
diff --git a/components/ns-contact/ns-contact.vue b/components/ns-contact/ns-contact.vue
index fc97a74..779f8de 100644
--- a/components/ns-contact/ns-contact.vue
+++ b/components/ns-contact/ns-contact.vue
@@ -29,10 +29,10 @@
diff --git a/components/ns-copyright/ns-copyright.vue b/components/ns-copyright/ns-copyright.vue
index 0ea40ef..f983905 100644
--- a/components/ns-copyright/ns-copyright.vue
+++ b/components/ns-copyright/ns-copyright.vue
@@ -1,142 +1,142 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/components/ns-empty/ns-empty.vue b/components/ns-empty/ns-empty.vue
index 3249614..8f99a3e 100644
--- a/components/ns-empty/ns-empty.vue
+++ b/components/ns-empty/ns-empty.vue
@@ -1,95 +1,95 @@
-
-
-
- {{ text }}
- {{ subText }}
-
-
-
-
-
-
-
+
+
+
+ {{ text }}
+ {{ subText }}
+
+
+
+
+
+
+
diff --git a/components/ns-form/ns-form.vue b/components/ns-form/ns-form.vue
index ce2d8c1..80cdc66 100644
--- a/components/ns-form/ns-form.vue
+++ b/components/ns-form/ns-form.vue
@@ -1,863 +1,863 @@
-
-
-
-
-
-
- {{ item.value.title }}
- {{ item.value.required ? '*' : '' }}
-
-
-
-
-
-
-
-
-
-
- {{ item.value.title }}
- {{ item.value.required ? '*' : '' }}
-
-
-
-
-
-
-
-
-
-
-
- {{ item.value.title }}
- {{ item.value.required ? '*' : '' }}
-
-
- {{ item.val }}
- 请选择
-
-
-
-
-
-
-
-
-
- {{ item.value.title }}
- {{ item.value.required ? '*' : '' }}
-
-
-
-
-
-
-
-
-
-
-
-
- {{ item.value.title }}
- {{ item.value.required ? '*' : '' }}
-
-
-
-
-
-
-
-
-
-
-
-
- {{ item.value.title }}
- {{ item.value.required ? '*' : '' }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ item.value.title }}
- {{ item.value.required ? '*' : '' }}
-
-
-
- {{ item.val ? item.val : item.value.placeholder }}
-
-
-
-
-
-
-
-
-
- {{ item.value.title }}
- {{ item.value.required ? '*' : '' }}
-
-
-
-
-
- {{ item.start_date ? item.start_date : item.value.placeholder_start }}
-
-
-
-
-
-
-
- {{ item.end_date ? item.end_date : item.value.placeholder_end }}
-
-
-
-
-
-
-
-
-
-
- {{ item.value.title }}
- {{ item.value.required ? '*' : '' }}
-
-
-
- {{ item.val ? item.val : item.value.placeholder }}
-
-
-
-
-
-
-
-
-
- {{ item.value.title }}
- {{ item.value.required ? '*' : '' }}
-
-
-
-
-
- {{ item.start_time ? item.start_time : item.value.placeholder_start }}
-
-
-
-
-
-
-
- {{ item.end_time ? item.end_time : item.value.placeholder_end }}
-
-
-
-
-
-
-
-
-
-
- {{ item.value.title }}
- {{ item.value.required ? '*' : '' }}
-
-
-
-
- {{ item.val ? item.val : item.select_arr == '2' ? '请选择省市' : '请选择省市区/县' }}
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/components/ns-goods-recommend/ns-goods-recommend.vue b/components/ns-goods-recommend/ns-goods-recommend.vue
index 88223eb..c960ee1 100644
--- a/components/ns-goods-recommend/ns-goods-recommend.vue
+++ b/components/ns-goods-recommend/ns-goods-recommend.vue
@@ -1,394 +1,394 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/components/ns-goods-sku/ns-goods-sku-category.vue b/components/ns-goods-sku/ns-goods-sku-category.vue
index 16c4735..9cc9fe6 100644
--- a/components/ns-goods-sku/ns-goods-sku-category.vue
+++ b/components/ns-goods-sku/ns-goods-sku-category.vue
@@ -1,857 +1,857 @@
-
-
-
-
-
-
-
-
-
-
- {{ item.spec_name }}
-
-
-
- {{ item_value.spec_value_name }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/components/ns-goods-sku/ns-goods-sku-index.vue b/components/ns-goods-sku/ns-goods-sku-index.vue
index f57f889..0e751b2 100644
--- a/components/ns-goods-sku/ns-goods-sku-index.vue
+++ b/components/ns-goods-sku/ns-goods-sku-index.vue
@@ -1,234 +1,234 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/components/ns-goods-sku/ns-goods-sku.vue b/components/ns-goods-sku/ns-goods-sku.vue
index e4f5cb1..0918cde 100644
--- a/components/ns-goods-sku/ns-goods-sku.vue
+++ b/components/ns-goods-sku/ns-goods-sku.vue
@@ -1,1541 +1,1541 @@
-
-
-
-
-
-
-
-
-
-
-
-
- {{ goodsDetail.pintuan_num }}人团
-
-
- {{ goodsDetail.pintuan_num_2 }}人团
-
-
- {{ goodsDetail.pintuan_num_3 }}人团
-
-
-
-
- {{ item.spec_name }}
-
-
- {{ item_value.spec_value_name }}
-
-
-
-
-
- 兑换数量
- 购买数量
- (每人限购{{ limitNumber }}{{ goodsDetail.unit }})
-
- ({{ minBuy }}{{ goodsDetail.unit }}起售,限购{{ maxBuy }}{{ goodsDetail.unit }})
-
- (限购{{ maxBuy }}{{ goodsDetail.unit }})
- ({{ minBuy }}{{ goodsDetail.unit }}起售)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/components/ns-loading/ns-loading.vue b/components/ns-loading/ns-loading.vue
index eb4507c..df3295f 100644
--- a/components/ns-loading/ns-loading.vue
+++ b/components/ns-loading/ns-loading.vue
@@ -1,89 +1,89 @@
-
-
-
-
- {{ downText }}
-
-
-
-
-
-
-
+
+
+
+
+ {{ downText }}
+
+
+
+
+
+
+
diff --git a/components/ns-login/ns-login.vue b/components/ns-login/ns-login.vue
index 0715071..6a53358 100644
--- a/components/ns-login/ns-login.vue
+++ b/components/ns-login/ns-login.vue
@@ -1,887 +1,887 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/ns-navbar/ns-navbar.vue b/components/ns-navbar/ns-navbar.vue
index a2b4c5e..15d3145 100644
--- a/components/ns-navbar/ns-navbar.vue
+++ b/components/ns-navbar/ns-navbar.vue
@@ -1,404 +1,404 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/components/ns-newform/ns-newform.vue b/components/ns-newform/ns-newform.vue
index 394f703..4ad7213 100644
--- a/components/ns-newform/ns-newform.vue
+++ b/components/ns-newform/ns-newform.vue
@@ -50,7 +50,7 @@
{{ item.val }}
- {{ item.value.placeholder || '请选择' }}
+ {{ item.value.placeholder || $lang('common.ns-form.l37.t0') }}
@@ -146,7 +146,7 @@
@change="bindDateChange($event, index)"
>
- {{ item.val ? item.val : (item.value.placeholder || '请选择日期') }}
+ {{ item.val ? item.val : (item.value.placeholder || $lang('common.ns-newform.l149.t0')) }}
@@ -170,7 +170,7 @@
>
- {{ item.start_date ? item.start_date : (item.value.placeholder_start || '开始日期') }}
+ {{ item.start_date ? item.start_date : (item.value.placeholder_start || $lang('common.ns-newform.l173.t0')) }}
@@ -184,7 +184,7 @@
>
- {{ item.end_date ? item.end_date : (item.value.placeholder_end || '结束日期') }}
+ {{ item.end_date ? item.end_date : (item.value.placeholder_end || $lang('common.ns-newform.l187.t0')) }}
@@ -207,7 +207,7 @@
@change="bindTimeChange($event, index)"
>
- {{ item.val ? item.val : (item.value.placeholder || '请选择时间') }}
+ {{ item.val ? item.val : (item.value.placeholder || $lang('common.ns-newform.l210.t0')) }}
@@ -231,7 +231,7 @@
>
- {{ item.start_time ? item.start_time : (item.value.placeholder_start || '开始时间') }}
+ {{ item.start_time ? item.start_time : (item.value.placeholder_start || $lang('common.ns-newform.l234.t0')) }}
@@ -245,7 +245,7 @@
>
- {{ item.end_time ? item.end_time : (item.value.placeholder_end || '结束时间') }}
+ {{ item.end_time ? item.end_time : (item.value.placeholder_end || $lang('common.ns-newform.l248.t0')) }}
@@ -268,7 +268,7 @@
@getRegions="handleGetRegions($event, index)"
>
- {{ item.val ? item.val : (item.value.placeholder || (item.value.default_type == 1 ? '请选择省市' : '请选择省市区')) }}
+ {{ item.val ? item.val : (item.value.placeholder || (item.value.default_type == 1 ? '请选择省市' : $lang('common.ns-newform.l271.t0'))) }}
@@ -788,89 +788,89 @@ export default {
if (item.controller == 'Text') {
if (item.value.required && !item.val) {
- this.$util.showToast({ title: '请输入' + item.value.title });
+ this.$util.showToast({ title: $lang('common.ns-form.l368.t0') + item.value.title });
return false;
}
if (item.name == 'ID_CARD' && !/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(item.val)) {
if (!item.value.required) {
- this.$util.showToast({ title: '身份证输入不合法' });
+ this.$util.showToast({ title: $lang('common.ns-form.l378.t0') });
return false;
}
if (item.val != '') {
- this.$util.showToast({ title: '身份证输入不合法' });
+ this.$util.showToast({ title: $lang('common.ns-form.l378.t0') });
return false;
}
}
if (item.name == 'MOBILE' && !this.$util.verifyMobile(item.val)) {
if (!item.value.required) {
- this.$util.showToast({ title: '手机号输入不合法' });
+ this.$util.showToast({ title: $lang('common.ns-form.l395.t0') });
return false;
}
if (item.val != '') {
- this.$util.showToast({ title: '手机号输入不合法' });
+ this.$util.showToast({ title: $lang('common.ns-form.l395.t0') });
return false;
}
}
}
if (item.controller == 'Textarea' && item.value.required && !item.val) {
- this.$util.showToast({ title: '请输入' + item.value.title });
+ this.$util.showToast({ title: $lang('common.ns-form.l368.t0') + item.value.title });
return false;
}
if (item.controller == 'Select' && item.value.required && !item.val) {
- this.$util.showToast({ title: '请选择' + item.value.title });
+ this.$util.showToast({ title: $lang('common.ns-form.l37.t0') + item.value.title });
return false;
}
if (item.controller == 'Checkbox' && item.value.required && !item.val) {
- this.$util.showToast({ title: '请至少选择一个' + item.value.title });
+ this.$util.showToast({ title: $lang('common.ns-form.l432.t0') + item.value.title });
return false;
}
if (item.controller == 'Img' && item.value.required && !item.val) {
- this.$util.showToast({ title: '请至少上传一张' + item.value.title });
+ this.$util.showToast({ title: $lang('common.ns-form.l442.t0') + item.value.title });
return false;
}
if (item.controller == 'Date' && item.value.required && !item.val) {
- this.$util.showToast({ title: '请选择' + item.value.title });
+ this.$util.showToast({ title: $lang('common.ns-form.l37.t0') + item.value.title });
return false;
}
if (item.controller == 'Datelimit') {
if (item.value.required && !item.val) {
- this.$util.showToast({ title: '请选择' + item.value.title });
+ this.$util.showToast({ title: $lang('common.ns-form.l37.t0') + item.value.title });
return false;
}
if (this.$util.timeTurnTimeStamp(item.start_date) > this.$util.timeTurnTimeStamp(item.end_date)) {
- this.$util.showToast({ title: '结束日期不能小于开始日期' });
+ this.$util.showToast({ title: $lang('common.ns-form.l470.t0') });
return false;
}
}
if (item.controller == 'Time' && item.value.required && !item.val) {
- this.$util.showToast({ title: '请选择' + item.value.title });
+ this.$util.showToast({ title: $lang('common.ns-form.l37.t0') + item.value.title });
return false;
}
if (item.controller == 'Timelimit') {
if (item.value.required && !item.val) {
- this.$util.showToast({ title: '请选择' + item.value.title });
+ this.$util.showToast({ title: $lang('common.ns-form.l37.t0') + item.value.title });
return false;
}
if (item.start_time >= item.end_time) {
- this.$util.showToast({ title: '结束时间必须大于开始时间' });
+ this.$util.showToast({ title: $lang('common.ns-form.l498.t0') });
return false;
}
}
if (item.controller == 'City' && item.value.required && !item.val) {
- this.$util.showToast({ title: '请选择' + item.value.title });
+ this.$util.showToast({ title: $lang('common.ns-form.l37.t0') + item.value.title });
return false;
}
}
@@ -902,7 +902,7 @@ export default {
if (res.length > 0) {
res.forEach(function(img) {
if (self.formData[index].img_lists.length >= Number(self.formData[index].value.max_count)) {
- self.$util.showToast({ title: '最多上传' + self.formData[index].value.max_count + '张图片' });
+ self.$util.showToast({ title: $lang('common.ns-form.l545.t0') + self.formData[index].value.max_count + $lang('common.ns-form.l545.t1') });
return false;
}
self.formData[index].img_lists.push(img);
@@ -916,7 +916,7 @@ export default {
addImg(index) {
let self = this;
if (this.formData[index].img_lists.length >= Number(this.formData[index].value.max_count)) {
- this.$util.showToast({ title: '最多上传' + this.formData[index].value.max_count + '张图片' });
+ this.$util.showToast({ title: $lang('common.ns-form.l545.t0') + this.formData[index].value.max_count + $lang('common.ns-form.l545.t1') });
return false;
}
diff --git a/components/ns-payment/ns-payment.vue b/components/ns-payment/ns-payment.vue
index 6550598..54ef886 100644
--- a/components/ns-payment/ns-payment.vue
+++ b/components/ns-payment/ns-payment.vue
@@ -1,643 +1,643 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/components/ns-select-time/ns-select-time.vue b/components/ns-select-time/ns-select-time.vue
index 8d39484..2fdcd00 100644
--- a/components/ns-select-time/ns-select-time.vue
+++ b/components/ns-select-time/ns-select-time.vue
@@ -1,365 +1,365 @@
-
-
-
-
-
- 选择送达时间
- 选择自提时间
-
-
-
-
-
-
- {{ item.title }}
- {{ item.month }}
- {{ item.Day }}
-
-
-
-
-
- {{ item }}
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ {{ $lang("common.ns-select-time.l6.t0") }}
+ {{ $lang("common.ns-select-time.l7.t0") }}
+
+
+
+
+
+
+ {{ item.title }}
+ {{ item.month }}
+ {{ item.Day }}
+
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/ns-video-player-popup/ns-video-player-popup.vue b/components/ns-video-player-popup/ns-video-player-popup.vue
index 774b25f..3a07c00 100644
--- a/components/ns-video-player-popup/ns-video-player-popup.vue
+++ b/components/ns-video-player-popup/ns-video-player-popup.vue
@@ -1,145 +1,145 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/components/payment/payment.vue b/components/payment/payment.vue
index 501039a..8aa1aab 100644
--- a/components/payment/payment.vue
+++ b/components/payment/payment.vue
@@ -1,647 +1,647 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/components/pick-regions/pick-regions.vue b/components/pick-regions/pick-regions.vue
index 4260088..9480a62 100644
--- a/components/pick-regions/pick-regions.vue
+++ b/components/pick-regions/pick-regions.vue
@@ -14,8 +14,8 @@
diff --git a/components/privacy-popup/privacy-popup.vue b/components/privacy-popup/privacy-popup.vue
index d4c30fe..4dbbcb8 100644
--- a/components/privacy-popup/privacy-popup.vue
+++ b/components/privacy-popup/privacy-popup.vue
@@ -2,7 +2,7 @@
- 用户隐私保护提示
+ {{ $lang("common.privacy-popup.l5.t0") }}
感谢您使用{{ appName }},在使用前您应当阅读并同意
{{ privacyContractName }}
@@ -12,13 +12,13 @@
,当点击同意并继续时,即表示您已理解并同意该条款内容,该条款将对您产生法律约束力;如您不同意,将无法继续使用{{ appName }}相关功能。
-
+
+ @agreeprivacyauthorization="handleAgree">{{ $lang("common.privacy-popup.l18.t0") }}
-
+
@@ -43,12 +43,12 @@ export default {
showPop: false,
privacyAuthorization: null,
privacyResolves: new Set(),
- privacyContractName: '用户隐私保护指引',
- appName: '本小程序',
+ privacyContractName: $lang('common.privacy-popup.l46.t0'),
+ appName: $lang('common.privacy-popup.l47.t0'),
// #ifdef WEB || H5
- appName: '本应用',
- privacyContractName: '《隐私条款》',
- privacyServiceName: '《用户服务协议》',
+ appName: $lang('common.privacy-popup.l49.t0'),
+ privacyContractName: $lang('common.ns-login.l51.t0'),
+ privacyServiceName: $lang('common.ns-login.l53.t0'),
// #endif
}
},
@@ -79,7 +79,7 @@ export default {
}
// #endif
} catch (e) {
- console.error("=========低版本基础库==========", e)
+ console.error($lang("common.privacy-popup.l82.t0"), e)
}
},
methods: {
@@ -250,7 +250,7 @@ export default {
uni.setStorageSync('privacyAgreed', true);
uni.showModal({
- content: '未同意隐私协议,无法使用相关功能',
+ content: $lang('common.privacy-popup.l253.t0'),
success: () => {
this.$emit('disagree')
}
diff --git a/components/register-reward/register-reward.vue b/components/register-reward/register-reward.vue
index a23f850..3611276 100644
--- a/components/register-reward/register-reward.vue
+++ b/components/register-reward/register-reward.vue
@@ -1,292 +1,292 @@
-
-
-
-
-
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/components/wxwork-contact/wxwork-contact.vue b/components/wxwork-contact/wxwork-contact.vue
index ccd3073..4e0d6f3 100644
--- a/components/wxwork-contact/wxwork-contact.vue
+++ b/components/wxwork-contact/wxwork-contact.vue
@@ -13,14 +13,14 @@
@@ -36,7 +36,7 @@
// 按钮文字
btnText: {
type: String,
- default: '添加企业微信客服'
+ default: $lang('common.wxwork-contact.l16.t0')
},
// 企业ID(必需)
corpId: {
@@ -105,11 +105,11 @@
});
if (!initResult) {
- console.error('企业微信SDK初始化失败');
+ console.error($lang('common.wxwork-contact.l108.t0'));
}
}
} catch (error) {
- console.error('初始化企业微信SDK失败:', error);
+ console.error($lang('common.wxwork-contact.l112.t0'), error);
}
},
@@ -142,7 +142,7 @@
// 方案2:使用SDK打开用户资料
this.openUserProfile(contactId);
} else {
- this.showError('未配置企业微信客服信息');
+ this.showError($lang('common.wxwork-contact.l145.t0'));
}
// #endif
@@ -151,7 +151,7 @@
// H5环境直接跳转
window.location.href = contactUrl;
} else {
- this.showError('未配置企业微信客服信息');
+ this.showError($lang('common.wxwork-contact.l145.t0'));
}
// #endif
},
@@ -165,13 +165,13 @@
path: `pages/contacts/externalContactDetail?url=${encodeURIComponent(contactUrl)}`,
success: () => {
this.$util.showToast({
- title: '跳转成功',
+ title: $lang('common.wxwork-contact.l168.t0'),
icon: 'success'
});
},
fail: (err) => {
- console.error('跳转企业微信失败:', err);
- this.showError('跳转失败,请检查企业微信配置');
+ console.error($lang('common.wxwork-contact.l173.t0'), err);
+ this.showError($lang('common.wxwork-contact.l174.t0'));
}
});
},
@@ -181,7 +181,7 @@
*/
openUserProfile(contactId) {
if (!this.wxWorkSDK) {
- this.showError('企业微信SDK未初始化');
+ this.showError($lang('common.wxwork-contact.l184.t0'));
return;
}
@@ -189,8 +189,8 @@
userId: contactId
}, (res) => {
}, (err) => {
- console.error('打开用户资料失败:', err);
- this.showError('打开用户资料失败');
+ console.error($lang('common.wxwork-contact.l192.t0'), err);
+ this.showError($lang('common.wxwork-contact.l193.t0'));
});
},
@@ -199,7 +199,7 @@
*/
showError(message) {
uni.showModal({
- title: '提示',
+ title: $lang('common.wxwork-contact.l202.t0'),
content: message,
showCancel: false
});
diff --git a/components/yuyue-date/yuyue-date.js b/components/yuyue-date/yuyue-date.js
index bfe777e..98db83e 100644
--- a/components/yuyue-date/yuyue-date.js
+++ b/components/yuyue-date/yuyue-date.js
@@ -1,98 +1,98 @@
-//字符串拼接
-export function strFormat(str) {
- return str < 10 ? `0${str}` : str
-}
-// 获取当前时间
-export function currentTime() {
- const myDate = new Date();
- const year = myDate.getFullYear()
- const m = myDate.getMonth() + 1;
- const d = myDate.getDate();
- // const date = year + '-' + strFormat(m) + '-' + strFormat(d); // 隐藏年
- const date = strFormat(m) + '-' + strFormat(d);
-
- const hour = myDate.getHours()
- const min = myDate.getMinutes()
- const secon = myDate.getSeconds()
- const time = strFormat(hour) + ':' + strFormat(min) + ':' + strFormat(secon);
- return {
- year,
- date,
- time
- }
-}
-
-//时间戳转日期
-export function timeStamp(time) {
- const dates = new Date(time)
- const year = dates.getFullYear()
- const month = dates.getMonth() + 1
- const date = dates.getDate()
- const day = dates.getDay()
- const hour = dates.getHours()
- const min = dates.getMinutes()
- const days = ['日', '一', '二', '三', '四', '五', '六']
- return {
- allDate: `${year}/${strFormat(month)}/${strFormat(date)}`,
- date: `${strFormat(month)}-${strFormat(date)}`, //返回的日期 07-01,${strFormat(year)}-${strFormat(month)}-${strFormat(date)}
- day: `周${days[day]}`, //返回的礼拜天数 星期一
- hour: strFormat(hour) + ':' + strFormat(min) // + ':00' //返回的时钟 08:00
- }
-}
-
-//获取最近7天的日期和礼拜天数
-export function initData(appointedDay = '') {
- const time = []
- const date = appointedDay ? new Date(appointedDay) : new Date()
-
- const now = date.getTime() //获取当前日期的时间戳
- let timeStr = 3600 * 24 * 1000 //一天的时间戳
- let obj = {
- 0: "今天",
- 1: "明天",
- 2: "后天"
- }
- for (let i = 0; i < 7; i++) {
- const timeObj = {}
- timeObj.date = timeStamp(now + timeStr * i).date //保存日期
- timeObj.timeStamp = now + timeStr * i //保存时间戳
- timeObj.week = appointedDay == '' ? (obj[i] ?? timeStamp(now + timeStr * i).day) : timeStamp(now + timeStr * i)
- .day
- time.push(timeObj)
- }
- return time
-}
-
-//时间数组
-export function initTime(startTime = '09:00', endTime = '18:30', timeInterval = 1) {
- const time = []
- const date = timeStamp(Date.now()).allDate
- const startDate = `${date} ${startTime}`
- const endDate = `${date} ${endTime}`
- const startTimeStamp = new Date(startDate).getTime()
- const endTimeStamp = new Date(endDate).getTime()
- const timeStr = 3600 * 1000 * timeInterval
- for (let i = startTimeStamp; i <= endTimeStamp; i = i + timeStr) {
- const timeObj = {}
- timeObj.time = timeStamp(i).hour
- timeObj.disable = false
- time.push(timeObj)
- }
- return time
-}
-
-export function weekDate(){
- var now = new Date(); //当前日期
- var nowDayOfWeek = now.getDay(); //今天本周的第几天
- var nowDay = now.getDate(); //当前日
- var nowMonth = now.getMonth(); //当前月
- var nowYear = now.getYear(); //当前年
-
- var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek + 1);
- var weekEndDate = new Date(nowYear, nowMonth, nowDay + (7 - nowDayOfWeek));
-
- var arr = [];
- arr[0] = strFormat(weekStartDate.getMonth()+1) + '-' + strFormat(weekStartDate.getDate());
- arr[1] = strFormat(weekEndDate.getMonth()+1) + '-' + strFormat(weekEndDate.getDate());
- return arr;
-}
+//字符串拼接
+export function strFormat(str) {
+ return str < 10 ? `0${str}` : str
+}
+// 获取当前时间
+export function currentTime() {
+ const myDate = new Date();
+ const year = myDate.getFullYear()
+ const m = myDate.getMonth() + 1;
+ const d = myDate.getDate();
+ // const date = year + '-' + strFormat(m) + '-' + strFormat(d); // 隐藏年
+ const date = strFormat(m) + '-' + strFormat(d);
+
+ const hour = myDate.getHours()
+ const min = myDate.getMinutes()
+ const secon = myDate.getSeconds()
+ const time = strFormat(hour) + ':' + strFormat(min) + ':' + strFormat(secon);
+ return {
+ year,
+ date,
+ time
+ }
+}
+
+//时间戳转日期
+export function timeStamp(time) {
+ const dates = new Date(time)
+ const year = dates.getFullYear()
+ const month = dates.getMonth() + 1
+ const date = dates.getDate()
+ const day = dates.getDay()
+ const hour = dates.getHours()
+ const min = dates.getMinutes()
+ const days = [$lang('common.ns-select-time.l98.t0'), $lang('common.yuyue-date.l34.t0'), $lang('common.yuyue-date.l34.t1'), $lang('common.yuyue-date.l34.t2'), $lang('common.yuyue-date.l34.t3'), $lang('common.yuyue-date.l34.t4'), $lang('common.yuyue-date.l34.t5')]
+ return {
+ allDate: `${year}/${strFormat(month)}/${strFormat(date)}`,
+ date: `${strFormat(month)}-${strFormat(date)}`, //返回的日期 07-01,${strFormat(year)}-${strFormat(month)}-${strFormat(date)}
+ day: $lang(`common.yuyue-date.l38.t0`), //返回的礼拜天数 星期一
+ hour: strFormat(hour) + ':' + strFormat(min) // + ':00' //返回的时钟 08:00
+ }
+}
+
+//获取最近7天的日期和礼拜天数
+export function initData(appointedDay = '') {
+ const time = []
+ const date = appointedDay ? new Date(appointedDay) : new Date()
+
+ const now = date.getTime() //获取当前日期的时间戳
+ let timeStr = 3600 * 24 * 1000 //一天的时间戳
+ let obj = {
+ 0: $lang("common.ns-select-time.l173.t0"),
+ 1: $lang("common.ns-select-time.l185.t0"),
+ 2: $lang("common.yuyue-date.l53.t0")
+ }
+ for (let i = 0; i < 7; i++) {
+ const timeObj = {}
+ timeObj.date = timeStamp(now + timeStr * i).date //保存日期
+ timeObj.timeStamp = now + timeStr * i //保存时间戳
+ timeObj.week = appointedDay == '' ? (obj[i] ?? timeStamp(now + timeStr * i).day) : timeStamp(now + timeStr * i)
+ .day
+ time.push(timeObj)
+ }
+ return time
+}
+
+//时间数组
+export function initTime(startTime = '09:00', endTime = '18:30', timeInterval = 1) {
+ const time = []
+ const date = timeStamp(Date.now()).allDate
+ const startDate = `${date} ${startTime}`
+ const endDate = `${date} ${endTime}`
+ const startTimeStamp = new Date(startDate).getTime()
+ const endTimeStamp = new Date(endDate).getTime()
+ const timeStr = 3600 * 1000 * timeInterval
+ for (let i = startTimeStamp; i <= endTimeStamp; i = i + timeStr) {
+ const timeObj = {}
+ timeObj.time = timeStamp(i).hour
+ timeObj.disable = false
+ time.push(timeObj)
+ }
+ return time
+}
+
+export function weekDate(){
+ var now = new Date(); //当前日期
+ var nowDayOfWeek = now.getDay(); //今天本周的第几天
+ var nowDay = now.getDate(); //当前日
+ var nowMonth = now.getMonth(); //当前月
+ var nowYear = now.getYear(); //当前年
+
+ var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek + 1);
+ var weekEndDate = new Date(nowYear, nowMonth, nowDay + (7 - nowDayOfWeek));
+
+ var arr = [];
+ arr[0] = strFormat(weekStartDate.getMonth()+1) + '-' + strFormat(weekStartDate.getDate());
+ arr[1] = strFormat(weekEndDate.getMonth()+1) + '-' + strFormat(weekEndDate.getDate());
+ return arr;
+}
diff --git a/components/yuyue-date/yuyue-date.vue b/components/yuyue-date/yuyue-date.vue
index a43125e..23dba03 100644
--- a/components/yuyue-date/yuyue-date.vue
+++ b/components/yuyue-date/yuyue-date.vue
@@ -3,7 +3,7 @@
@@ -20,7 +20,7 @@
- 指定日期
+ {{ $lang("common.yuyue-date.l23.t0") }}
@@ -54,13 +54,13 @@
-
+
@@ -100,12 +100,12 @@
disableText: {
//禁用显示的文本
type: String,
- default: '已约满'
+ default: $lang('common.yuyue-date.l103.t0')
},
undisableText: {
//未禁用显示的文本
type: String,
- default: '可预约'
+ default: $lang('common.yuyue-date.l108.t0')
},
timeInterval: {
// 时间间隔,小时为单位
@@ -173,7 +173,7 @@
return {
pickerStartDay: '', // 指定开始日期
pickerEndDay: '', // 指定结束日期
- orderDateTime: '暂无选择', // 选中时间
+ orderDateTime: $lang('common.yuyue-date.l176.t0'), // 选中时间
orderTimeArr: {}, //多选的时间
dateArr: [], //日期数据
timeArr: [], //时间数据
@@ -209,11 +209,11 @@
let date = e.split("-");
date = date[1] + "-" + date[2];
if (this.disableWeek.length && date >= weekDate()[0] && date <= weekDate()[1]) {
- let weekBox = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];
+ let weekBox = [$lang('common.ns-select-time.l148.t0'), $lang('common.ns-select-time.l148.t1'), $lang('common.ns-select-time.l148.t2'), $lang('common.ns-select-time.l148.t3'), $lang('common.ns-select-time.l148.t4'), $lang('common.ns-select-time.l148.t5'), $lang('common.ns-select-time.l148.t6')];
let index = new Date(e).getDay();
if (this.disableWeek.indexOf(weekBox[index]) != -1) {
uni.showToast({
- title: weekBox[index] + '不可以预约',
+ title: weekBox[index] + $lang('common.yuyue-date.l216.t0'),
icon: 'none'
})
return false;
@@ -231,7 +231,7 @@
// 判断默认是不能选择的周,则都禁止选中
if (this.disableWeek.length && this.selectDate >= weekDate()[0] && this.selectDate <=
weekDate()[1]) {
- let weekBox = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];
+ let weekBox = [$lang('common.ns-select-time.l148.t0'), $lang('common.ns-select-time.l148.t1'), $lang('common.ns-select-time.l148.t2'), $lang('common.ns-select-time.l148.t3'), $lang('common.ns-select-time.l148.t4'), $lang('common.ns-select-time.l148.t5'), $lang('common.ns-select-time.l148.t6')];
let date = currentTime().year + '-' + this.selectDate;
let index = new Date(date).getDay();
if (this.disableWeek.indexOf(weekBox[index]) != -1) {
@@ -297,11 +297,11 @@
// 日期选择事件
selectDateEvent(index, item) {
if (this.disableWeek.length && item.date >= weekDate()[0] && item.date <= weekDate()[1]) {
- let weekBox = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];
+ let weekBox = [$lang('common.ns-select-time.l148.t0'), $lang('common.ns-select-time.l148.t1'), $lang('common.ns-select-time.l148.t2'), $lang('common.ns-select-time.l148.t3'), $lang('common.ns-select-time.l148.t4'), $lang('common.ns-select-time.l148.t5'), $lang('common.ns-select-time.l148.t6')];
let index = new Date(item.timeStamp).getDay();
if (this.disableWeek.indexOf(weekBox[index]) != -1) {
uni.showToast({
- title: weekBox[index] + '不可以预约',
+ title: weekBox[index] + $lang('common.yuyue-date.l216.t0'),
icon: 'none'
})
return false;
diff --git a/docs/i18n-existing-zh.json b/docs/i18n-existing-zh.json
new file mode 100644
index 0000000..bb81547
--- /dev/null
+++ b/docs/i18n-existing-zh.json
@@ -0,0 +1,206 @@
+{
+ "exchangeSuccess": "兑换成功",
+ "spec": "规格",
+ "inputPlaceholder": "搜索商品",
+ "commissiontext": "佣金",
+ "paypassword": "支付密码",
+ "buy": "购买",
+ "passwordInputPlaceholder": "请输入密码",
+ "getDynacode": "获取动态验证码",
+ "make": "立即咨询",
+ "receivingReply": "正在接收回复",
+ "save": "保存",
+ "Search": "请输入您要搜索的商品",
+ "accountPlaceholder": "请输入用户名",
+ "paymentAmount": "支付金额",
+ "serviceTemporaryUnavailable": "抱歉,服务暂时不可用,请稍后重试。",
+ "video": "视频",
+ "coupon": "优惠券",
+ "registrationAgreement": "注册协议",
+ "surePhoneNumber": "请输入正确的手机号",
+ "location": "位置",
+ "loadHistoryFail": "加载历史失败",
+ "Random": "综合",
+ "emojiTitle": "表情",
+ "searchAtBottom": "已到底部",
+ "buynow": "立即购买",
+ "complete": "完成",
+ "pleaseInputNewPassword": "请输入新密码",
+ "settingsTitle": "设置",
+ "menuClearChat": "清空聊天",
+ "total": "合计",
+ "receivingCity": "地区",
+ "startRecordTip": "点击开始录音",
+ "stock": "库存",
+ "status": "该商品已下架",
+ "logoutContent": "确定要退出登录吗",
+ "thanksFeedback": "感谢您的反馈!",
+ "mobileInputPlaceholder": "请输入您的手机号",
+ "copySuccess": "复制成功",
+ "enterCaptchaTip": "请输入验证码",
+ "prompt": "提示",
+ "password": "密码",
+ "moreFunctions": "更多功能",
+ "retry": "重试",
+ "telephonePlaceholder": "收货人固定电话(选填)",
+ "searchPlaceholder": "搜索聊天记录",
+ "recordingTip": "正在录音,松开结束",
+ "home": "首页",
+ "aiThinking": "AI正在思考",
+ "serviceTypeNotSupported": "当前客服类型不支持此页面",
+ "messageContent": "留言内容",
+ "title": "VR",
+ "fallbackWelcome": "您好!我是AI智能客服,很高兴为您服务!\\n\\n我可以帮您:\\n• 解答产品相关问题\\n• 处理订单问题\\n• 提供技术支持\\n• 推荐相关商品\\n\\n请告诉我您需要什么帮助?",
+ "kefu": "客服",
+ "lang": "语言",
+ "aiNickname": "智能助手",
+ "balance": "余额",
+ "login": "登录/注册",
+ "image": "图片",
+ "voiceInputTitle": "语音输入",
+ "sellout": "库存不足",
+ "birthday": "生日",
+ "improveService": "我们会改进服务",
+ "changeAvatarDesc": "自定义您的聊天头像",
+ "noContentToCopy": "无可复制的内容",
+ "operationFailed": "操作失败,请重试",
+ "mobilePhone": "手机",
+ "point": "积分",
+ "waitsend": "待发货",
+ "emptyTips": "暂无记录",
+ "submit": "提交",
+ "dynacodePlaceholder": "请输入动态码",
+ "waitpay": "待付款",
+ "name": "姓名",
+ "changeNickname": "更换昵称",
+ "fileOpenFail": "文件打开失败",
+ "menuExport": "导出记录",
+ "dynacodeInputPlaceholder": "请输入动态码",
+ "newAddAddress": "添加收货地址",
+ "common.searchTip": "请输入搜索关键词",
+ "copy": "复制",
+ "recharge": "充值",
+ "noEmityNickname": "昵称不能为空",
+ "copyFail": "复制失败",
+ "addressPlaceholder": "小区、街道、写字楼",
+ "follow": "收藏",
+ "expandEditorTitle": "编辑内容",
+ "pleaseEnterMessage": "请输入留言内容",
+ "privacyPolicyText": "《隐私条款》",
+ "modifyNickname": "修改昵称",
+ "express": "快递发货",
+ "mobile": "手机",
+ "searchEntrance": "搜索",
+ "send": "配送",
+ "paymentSuccess": "支付成功",
+ "paymentFail": "支付失败",
+ "findanimateCode": "获取动态码",
+ "alikeusername": "与原用户名一致,无需修改",
+ "editNickname": "修改昵称",
+ "privacyPolicy": "隐私协议",
+ "confirmCodeInput": "请输入验证码",
+ "accountInputPlaceholder": "请输入账号",
+ "animateCodeInput": "请输入动态码",
+ "toLogin": "去登录",
+ "leave": "立即留言",
+ "searchClose": "完成",
+ "pleaseEnterMobile": "请输入您的手机号",
+ "avatarChangeSuccess": "头像更换成功",
+ "avatarSelectorTitle": "更换头像",
+ "modify": "修改",
+ "consigneePlaceholder": "收货人姓名",
+ "contactInfo": "联系方式",
+ "menuSettings": "设置",
+ "sales": "销量",
+ "allElection": "全选",
+ "changeAvatar": "更换头像",
+ "requestFailTip": "request:fail",
+ "updateSuccess": "修改成功",
+ "call": "一键拨打",
+ "alikeNickname": "与原昵称一致,无需修改",
+ "alikePhone": "与原手机号一致,无需修改",
+ "cancel": "取消",
+ "chatCleared": "聊天记录已清空,有什么可以帮助您的吗?",
+ "toGoodsCategoryPage": "去逛逛",
+ "mobilePlaceholder": "收货人手机号",
+ "confirmClearChat": "确定要清空聊天记录吗?",
+ "logout": "退出登录",
+ "agreeAgreementTip": "请先阅读并同意协议",
+ "withdrawal": "提现",
+ "noEmityUsername": "用户名不能为空",
+ "Make": "立即咨询",
+ "chooseFromAlbum": "从相册选择",
+ "enterCorrectMobileTip": "请输入正确的手机号",
+ "account": "账号",
+ "cart": "购物车",
+ "details": "商品详情",
+ "loginTpis": "点击登录 享受更多精彩信息",
+ "Price": "价格",
+ "newAddAccount": "新增账户",
+ "serviceUnavailable": "抱歉,AI服务暂时不可用,请稍后重试。",
+ "voiceInputFailed": "语音输入失败",
+ "copyFailed": "复制失败",
+ "welcomeText": "您好,
欢迎使用",
+ "edit": "管理",
+ "file": "文件",
+ "pleaseEnterName": "请输入您的姓名",
+ "goHome": "回到首页",
+ "accountType": "账号类型",
+ "consignee": "姓名",
+ "max": "已达最大限购数量",
+ "defaultNickname": "我",
+ "about": "0B",
+ "see": "查看兑换记录",
+ "searchAtTop": "已到顶部",
+ "userServiceAgreementText": "《用户服务协议》",
+ "activist": "售后",
+ "logoutTitle": "提示",
+ "noMatchResult": "未找到匹配结果",
+ "search": "商品搜索",
+ "consult": "立即咨询",
+ "timeFormatYesterday": "昨天",
+ "nicknameTip": "昵称长度限制1-12个字符,仅自己可见",
+ "loadMoreHistory": "加载更多历史消息",
+ "completed": "已完成",
+ "registerAgreementText": "若您未注册,则登录后将自动帮您注册。注册即视为同意",
+ "telephone": "电话",
+ "oneClickNavigation": "一键导航",
+ "confirmOpenLink": "确定要打开链接:",
+ "captchaPlaceholder": "请输入验证码",
+ "getAddress": "一键获取地址",
+ "menuHelp": "帮助",
+ "openLink": "打开链接",
+ "pleaseInputOldPassword": "请输入原始密码",
+ "onlineMessage": "在线留言",
+ "audioMessage": "语音消息",
+ "address": "详细地址",
+ "common.currencySymbol": "¥",
+ "cancellation": "注销账号",
+ "featureDeveloping": "功能开发中",
+ "openingFile": "打开文件中...",
+ "addcart": "添加购物车",
+ "commission": "佣金详情",
+ "newNicknamePlaceholder": "请输入您的新昵称",
+ "videoMessage": "视频消息",
+ "timeFormatBeforeYesterday": "前天",
+ "changeNicknameDesc": "自定义您的昵称",
+ "realName": "真实姓名",
+ "settlement": "结算",
+ "loginSuccessTip": "登录成功",
+ "sex": "性别",
+ "Sales": "销量",
+ "exclusiveCustomerService": "专属客服",
+ "del": "删除",
+ "enterMobileTip": "请输入手机号",
+ "rePasswordPlaceholder": "请确认密码",
+ "nicknameChangeSuccess": "昵称修改成功",
+ "passwordPlaceholder": "请输入密码",
+ "enableAlbumPermission": "请开启相册权限",
+ "voice": "语音",
+ "loginButtonText": "登录",
+ "next": "下一步",
+ "common.submit": "提交",
+ "forgetPasswordText": "忘记密码?",
+ "Filter": "筛选",
+ "waitconfirm": "待收货"
+}
\ No newline at end of file
diff --git a/docs/i18n-handoff.md b/docs/i18n-handoff.md
new file mode 100644
index 0000000..5822dda
--- /dev/null
+++ b/docs/i18n-handoff.md
@@ -0,0 +1,166 @@
+# i18n 现状诊断报告(2026-06-25)
+
+## 结论先行
+
+**当前 i18n 系统处于用户可见的"半破"状态**:
+- `.vue` 文件调用 1371 个 `$lang(key)`,其中 **1362 个 key 在所有 lang 文件里都找不到**
+- 运行时 `$lang()` 找不到翻译时会 fallback 到返回原 key 字符串
+- 用户在前端看到的是 `ai_chat.ai-chat.ai-chat-message.l1026.t0` 这样的 raw key,而不是"客服在线"
+
+**根因**: 上一次 commit (DEPRECATED.md 配套动作) 把 281 个旧 per-page lang 文件全部删除,但 .vue 文件里的 `$lang()` 调用没有同步迁移,新 modular 文件里也没有补上这些 key。
+
+---
+
+## 完整数据(`python scripts/diagnose_keys.py`)
+
+```
+所有 $lang() 调用 key: 1371 个
+ 在 lang/zh-cn.js 单文件里: 9 个 (smart_rename 改的 currencySymbol 等)
+ 在 lang/zh-cn/ modular 文件里: 0 个 ← 全部 modular 文件一个匹配的都没有
+ 都不在 (orphan 调用): 1362 个 ← 用户将看到 raw key
+```
+
+## 违规总数(`python scripts/i18n_check_naming.py`)
+
+| 组 | 数量 | 说明 |
+|----|------|------|
+| A. 中文 key | 2146 | modular 文件里大量 key 是中文,如 `不可提现红包: '不可提现红包'` |
+| B. 扁平 key | 188 | 顶层无 namespace 前缀,例 `Save`, `Search`, `about` |
+| C. 行号式 locational | **1612** | `chat-message.l60.t0` 这类机器生成 key |
+| D. 跨业务域同名 tail | 1366 | 多数由 C 引起(同 line number 出现在多文件) |
+| E. 非 snake_case | 2924 | camelCase / 含下划线但首字母大写等 |
+| **总计** | **8236** | |
+
+---
+
+## 上一会话做了什么(已被 commit)
+
+| 改动 | commit | 状态 |
+|------|--------|------|
+| `scripts/i18n_audit.py`: 扫 modular 文件 | 当前会话 | ✓ committed |
+| `scripts/i18n_check_naming.py`: 新增命名审计 | 当前会话 | ✓ committed |
+| `scripts/i18n_check.py`: 加入 naming 子命令 | 当前会话 | ✓ committed |
+| `vue.config.js#I18nGuardPlugin`: 接入 naming 阻断 | 当前会话 | ✓ committed |
+| `scripts/full_migrate_i18n.py`: 标 DEPRECATED | 当前会话 | ✓ committed |
+| `scripts/diagnose_keys.py`: orphan 定位工具 | 当前会话 | ✓ committed |
+| `scripts/smart_rename_i18n.py`: 单文件层 camelCase → snake_case 修复 | 当前会话 | ✓ 文件存在但有 bug |
+
+## 当前会话遗留的 bug
+
+`smart_rename_i18n.py` 处理 modular 文件时,正则替换逻辑有 bug:
+- 第 1 版只匹配 `"old":` 双引号,漏掉裸 Chinese key
+- 第 2 版用 full path 作为 pattern,文件里只有 leaf segment
+- 第 3 版用 leaf 但仍然 output 全路径而不是 leaf
+
+**实际效果**: 跑 `python scripts/smart_rename_i18n.py --module X --apply` 后,modular 文件里的 key 被替换成 `common.components.birthday_gift.text` 这种**全路径字符串**,而不是单纯的 `text`。**已 git restore 撤回**。
+
+`lang/zh-cn.js` 单文件的 camelCase → snake_case 修复成功(8 个 key),但 modular 文件的修复被撤回。
+
+---
+
+## 真正能完成 1362 orphan key 修复的路径
+
+### 前置条件(必须先做)
+
+1. **逐文件决策每个 orphan key 的语义名** — 这本质是 LLM 工作,机器不能可靠决定
+2. **找回每行实际的翻译文本** — 1371 个 key,绝大多数源自旧 per-page 文件,需要从 git history `git show :lang/zh-cn/.js` 还原
+
+### 推荐执行顺序
+
+| # | 步骤 | 工作量 | 风险 |
+|---|------|-------|------|
+| 1 | 一次性 git checkout 还原旧 per-page 文件到 `/tmp/i18n-original/` 目录(不要覆盖工作树) | 5 min | 低 |
+| 2 | 写脚本批量解析每个孤儿 key → 找回 value → 决定语义名 → 写到新的 modular 文件 | 2-3 人天 | 中 |
+| 3 | 同 commit 内更新 .vue 文件的 `$lang()` 调用 | 跟步骤 2 同步 | 中 |
+| 4 | 跑 `python scripts/i18n_check_naming.py` 验证 | 1 min | 低 |
+| 5 | 跑 `python scripts/i18n_check.py` 全套验证 | 1 min | 低 |
+| 6 | 删除旧 per-page 文件(现在只是中间产物) | 5 min | 低 |
+| 7 | 跑 `smart_rename_i18n.py` 修剩余 camelCase(单文件层已部分完成) | 1 小时 | 中 |
+| 8 | 删除 `lang/zh-cn.js` / `lang/en-us.js` 单文件(被 modular 取代) | 5 min | 低 |
+| 9 | 删除 `detectShadowing` / `i18n_class_c.py` 死代码 | 30 min | 低 |
+
+### 不推荐的路径
+
+- ❌ **跑 smart_rename_i18n.py 继续修复**:bug 未修,会破坏 modular 文件结构
+- ❌ **用 full_migrate_i18n.py 重做**:它会再次产出违反 CLAUDE.md 1.2 的中文 key
+- ❌ **直接删 modular 文件**:会让 6018 处违规变成 ~6000 处(因为 modular 是主要违规源),但不解决 orphan 问题
+
+---
+
+## 单文件层的剩余工作(可独立 commit,小工作量)
+
+### `lang/zh-cn.js` + `lang/en-us.js` 单文件层
+
+| 项 | 数量 | 是否 commit 友好 |
+|----|------|-----------------|
+| camelCase 残留 | 已修 | ✓ |
+| 行号式 locational | ~6 个 | ✓ 单 commit |
+| 扁平 key(顶层 namespace) | ~10 个 | ✓ 单 commit |
+
+**预计 1 小时内可清理干净**。
+
+---
+
+## modular 文件层
+
+### `lang/zh-cn/.js` + `lang/en-us/.js`(20 个文件)
+
+| 项 | 数量 |
+|----|------|
+| 中文 leaf key | 1000+ |
+| 行号式 locational | 多数 |
+| 旧 `_components.*` 死结构 | 226 |
+
+**预计需要 1-2 人天逐个手工重命名**。
+
+### 旧 per-page 文件(已被 git 删除,可用 git restore 找回)
+
+279 个文件,每个文件 5-20 个 key。**这是 1362 个 orphan key 的源头**。
+
+---
+
+## 调用侧 `$lang()`
+
+| 项 | 数量 | 处理 |
+|----|------|------|
+| 调用了 orphan key 的 .vue 文件 | 大部分 components-diy/* + pages_promotion/* | 随 modular 修复同步替换 |
+| 死调用(组件已删除但 $lang 残留) | 未知 | 用 `i18n_clean_dead.py` |
+
+---
+
+## 关键工具(已就绪)
+
+| 工具 | 用途 |
+|------|------|
+| `python scripts/i18n_check.py` | 全套审计(含 naming) |
+| `python scripts/i18n_check_naming.py` | 单跑命名审计 |
+| `python scripts/diagnose_keys.py` | 找 orphan key |
+| `python scripts/i18n_clean_dead.py --apply` | 删死 key |
+| `python scripts/i18n_rewrite_calls.py --apply` | 调用侧批量替换 |
+
+---
+
+## 给下一会话/接手人的建议
+
+1. **不要相信 `i18n_check.py basic` PASS** — 它现在能扫到 modular 文件,但 symmetric / strict 只看单文件
+2. **不要相信 `i18n_check.py [OK] All i18n audits passed`** — 它现在包含了 naming 但仍有 8236 处违规
+3. **当前 `lang/zh-cn.js` 已被 smart_rename 改过**(camelCase → snake_case),跟 en-us.js 一样,引用此 key 的 .vue 也同步改了 — **这是当前唯一一组 100% 干净的迁移**
+4. **smart_rename_i18n.py 修复前不要用** — 等 bug 修完再说
+
+---
+
+## 历史教训(本次会话新增)
+
+| commit | 错误 | 教训 |
+|--------|------|------|
+| (本会话) | smart_rename_i18n.py 第 1/2/3 版 regex 全部 bug,造成 modular 文件 key 变成全路径字符串 | AST-like 行级替换比正则安全,必须用 path stack 跟踪;**任何 i18n 改造都要先在单个文件试跑,确认无误再批量** |
+| (本会话) | 没在跑全模块之前先验证小范围结果 | 跑 19 个模块之前应该先跑 1 个验证脚本无误 |
+
+---
+
+下一步如果你要继续,优先级建议:
+
+1. **(1-2 小时)** 修 smart_rename_i18n.py 的 AST 行级替换 bug,完成 lang/zh-cn.js 单文件层剩余 ~6 个 locational key
+2. **(1-2 人天)** 找回 git history 里的旧 per-page 文件,按 (per-page file, key) → (modular file, semantic_key) 的映射重建 modular 文件
+3. **(1 人天)** 批量替换 .vue 文件调用
+4. **(2 小时)** 删死代码、删单文件、清理
\ No newline at end of file
diff --git a/docs/i18n-naming-audit.json b/docs/i18n-naming-audit.json
new file mode 100644
index 0000000..0b14a49
--- /dev/null
+++ b/docs/i18n-naming-audit.json
@@ -0,0 +1,21596 @@
+{
+ "total_issues": 3505,
+ "groups": {
+ "中文 key": [],
+ "扁平 key": [
+ {
+ "key": "Filter",
+ "file": "lang\\en-us.js",
+ "line": 1723,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "Make",
+ "file": "lang\\en-us.js",
+ "line": 1724,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "Price",
+ "file": "lang\\en-us.js",
+ "line": 1725,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "Random",
+ "file": "lang\\en-us.js",
+ "line": 1726,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "Sales",
+ "file": "lang\\en-us.js",
+ "line": 1727,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "Search",
+ "file": "lang\\en-us.js",
+ "line": 1728,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "about",
+ "file": "lang\\en-us.js",
+ "line": 1729,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "account",
+ "file": "lang\\en-us.js",
+ "line": 1730,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "accountInputPlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1731,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "accountPlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1732,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "accountType",
+ "file": "lang\\en-us.js",
+ "line": 1733,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "activist",
+ "file": "lang\\en-us.js",
+ "line": 1734,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "addcart",
+ "file": "lang\\en-us.js",
+ "line": 1735,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "addressPlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1736,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "agreeAgreementTip",
+ "file": "lang\\en-us.js",
+ "line": 1737,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "aiNickname",
+ "file": "lang\\en-us.js",
+ "line": 1738,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "aiThinking",
+ "file": "lang\\en-us.js",
+ "line": 1739,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "alikeNickname",
+ "file": "lang\\en-us.js",
+ "line": 1740,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "alikePhone",
+ "file": "lang\\en-us.js",
+ "line": 1741,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "alikeusername",
+ "file": "lang\\en-us.js",
+ "line": 1742,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "allElection",
+ "file": "lang\\en-us.js",
+ "line": 1743,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "animateCodeInput",
+ "file": "lang\\en-us.js",
+ "line": 1744,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "audioMessage",
+ "file": "lang\\en-us.js",
+ "line": 1745,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "avatarSelectorTitle",
+ "file": "lang\\en-us.js",
+ "line": 1746,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "buy",
+ "file": "lang\\en-us.js",
+ "line": 1747,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "buynow",
+ "file": "lang\\en-us.js",
+ "line": 1748,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "call",
+ "file": "lang\\en-us.js",
+ "line": 1749,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "cancellation",
+ "file": "lang\\en-us.js",
+ "line": 1750,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "captchaPlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1751,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "changeAvatar",
+ "file": "lang\\en-us.js",
+ "line": 1752,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "changeAvatarDesc",
+ "file": "lang\\en-us.js",
+ "line": 1753,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "changeNickname",
+ "file": "lang\\en-us.js",
+ "line": 1754,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "changeNicknameDesc",
+ "file": "lang\\en-us.js",
+ "line": 1755,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "chatCleared",
+ "file": "lang\\en-us.js",
+ "line": 1756,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "chooseFromAlbum",
+ "file": "lang\\en-us.js",
+ "line": 1757,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "commission",
+ "file": "lang\\en-us.js",
+ "line": 1758,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "commissiontext",
+ "file": "lang\\en-us.js",
+ "line": 1759,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "complete",
+ "file": "lang\\en-us.js",
+ "line": 1760,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "completed",
+ "file": "lang\\en-us.js",
+ "line": 1761,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "confirmClearChat",
+ "file": "lang\\en-us.js",
+ "line": 1762,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "confirmCodeInput",
+ "file": "lang\\en-us.js",
+ "line": 1763,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "confirmOpenLink",
+ "file": "lang\\en-us.js",
+ "line": 1764,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "consignee",
+ "file": "lang\\en-us.js",
+ "line": 1765,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "consigneePlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1766,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "consult",
+ "file": "lang\\en-us.js",
+ "line": 1767,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "contactInfo",
+ "file": "lang\\en-us.js",
+ "line": 1768,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "copy",
+ "file": "lang\\en-us.js",
+ "line": 1769,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "copyFail",
+ "file": "lang\\en-us.js",
+ "line": 1770,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "copyFailed",
+ "file": "lang\\en-us.js",
+ "line": 1771,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "copySuccess",
+ "file": "lang\\en-us.js",
+ "line": 1772,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "defaultNickname",
+ "file": "lang\\en-us.js",
+ "line": 1773,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "del",
+ "file": "lang\\en-us.js",
+ "line": 1774,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "details",
+ "file": "lang\\en-us.js",
+ "line": 1775,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "dynacodeInputPlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1776,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "dynacodePlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1777,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "edit",
+ "file": "lang\\en-us.js",
+ "line": 1778,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "editNickname",
+ "file": "lang\\en-us.js",
+ "line": 1779,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "emojiTitle",
+ "file": "lang\\en-us.js",
+ "line": 1780,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "emptyTips",
+ "file": "lang\\en-us.js",
+ "line": 1781,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "enterCaptchaTip",
+ "file": "lang\\en-us.js",
+ "line": 1782,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "enterCorrectMobileTip",
+ "file": "lang\\en-us.js",
+ "line": 1783,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "enterMobileTip",
+ "file": "lang\\en-us.js",
+ "line": 1784,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "exchangeSuccess",
+ "file": "lang\\en-us.js",
+ "line": 1785,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "exclusiveCustomerService",
+ "file": "lang\\en-us.js",
+ "line": 1786,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "expandEditorTitle",
+ "file": "lang\\en-us.js",
+ "line": 1787,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "express",
+ "file": "lang\\en-us.js",
+ "line": 1788,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "fallbackWelcome",
+ "file": "lang\\en-us.js",
+ "line": 1789,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "featureDeveloping",
+ "file": "lang\\en-us.js",
+ "line": 1790,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "file",
+ "file": "lang\\en-us.js",
+ "line": 1791,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "fileOpenFail",
+ "file": "lang\\en-us.js",
+ "line": 1792,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "findanimateCode",
+ "file": "lang\\en-us.js",
+ "line": 1793,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "follow",
+ "file": "lang\\en-us.js",
+ "line": 1794,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "forgetPasswordText",
+ "file": "lang\\en-us.js",
+ "line": 1795,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "getAddress",
+ "file": "lang\\en-us.js",
+ "line": 1796,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "getDynacode",
+ "file": "lang\\en-us.js",
+ "line": 1797,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "goHome",
+ "file": "lang\\en-us.js",
+ "line": 1798,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "home",
+ "file": "lang\\en-us.js",
+ "line": 1799,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "image",
+ "file": "lang\\en-us.js",
+ "line": 1800,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "improveService",
+ "file": "lang\\en-us.js",
+ "line": 1801,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "inputPlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1802,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "lang",
+ "file": "lang\\en-us.js",
+ "line": 1803,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "leave",
+ "file": "lang\\en-us.js",
+ "line": 1804,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "loadHistoryFail",
+ "file": "lang\\en-us.js",
+ "line": 1805,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "loadMoreHistory",
+ "file": "lang\\en-us.js",
+ "line": 1806,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "location",
+ "file": "lang\\en-us.js",
+ "line": 1807,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "loginButtonText",
+ "file": "lang\\en-us.js",
+ "line": 1808,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "loginSuccessTip",
+ "file": "lang\\en-us.js",
+ "line": 1809,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "loginTpis",
+ "file": "lang\\en-us.js",
+ "line": 1810,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "logout",
+ "file": "lang\\en-us.js",
+ "line": 1811,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "logoutContent",
+ "file": "lang\\en-us.js",
+ "line": 1812,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "logoutTitle",
+ "file": "lang\\en-us.js",
+ "line": 1813,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "make",
+ "file": "lang\\en-us.js",
+ "line": 1814,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "max",
+ "file": "lang\\en-us.js",
+ "line": 1815,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "menuClearChat",
+ "file": "lang\\en-us.js",
+ "line": 1816,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "menuExport",
+ "file": "lang\\en-us.js",
+ "line": 1817,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "menuHelp",
+ "file": "lang\\en-us.js",
+ "line": 1818,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "menuSettings",
+ "file": "lang\\en-us.js",
+ "line": 1819,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "messageContent",
+ "file": "lang\\en-us.js",
+ "line": 1820,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "mobile",
+ "file": "lang\\en-us.js",
+ "line": 1821,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "mobileInputPlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1822,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "mobilePhone",
+ "file": "lang\\en-us.js",
+ "line": 1823,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "mobilePlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1824,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "modify",
+ "file": "lang\\en-us.js",
+ "line": 1825,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "modifyNickname",
+ "file": "lang\\en-us.js",
+ "line": 1826,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "moreFunctions",
+ "file": "lang\\en-us.js",
+ "line": 1827,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "name",
+ "file": "lang\\en-us.js",
+ "line": 1828,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "newAddAccount",
+ "file": "lang\\en-us.js",
+ "line": 1829,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "newAddAddress",
+ "file": "lang\\en-us.js",
+ "line": 1830,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "newNicknamePlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1831,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "next",
+ "file": "lang\\en-us.js",
+ "line": 1832,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "nicknameChangeSuccess",
+ "file": "lang\\en-us.js",
+ "line": 1833,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "nicknameTip",
+ "file": "lang\\en-us.js",
+ "line": 1834,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "noContentToCopy",
+ "file": "lang\\en-us.js",
+ "line": 1835,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "noEmityNickname",
+ "file": "lang\\en-us.js",
+ "line": 1836,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "noEmityUsername",
+ "file": "lang\\en-us.js",
+ "line": 1837,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "noMatchResult",
+ "file": "lang\\en-us.js",
+ "line": 1838,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "oneClickNavigation",
+ "file": "lang\\en-us.js",
+ "line": 1839,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "onlineMessage",
+ "file": "lang\\en-us.js",
+ "line": 1840,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "openLink",
+ "file": "lang\\en-us.js",
+ "line": 1841,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "openingFile",
+ "file": "lang\\en-us.js",
+ "line": 1842,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "operationFailed",
+ "file": "lang\\en-us.js",
+ "line": 1843,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "password",
+ "file": "lang\\en-us.js",
+ "line": 1844,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "passwordInputPlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1845,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "passwordPlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1846,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "paymentAmount",
+ "file": "lang\\en-us.js",
+ "line": 1847,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "paymentFail",
+ "file": "lang\\en-us.js",
+ "line": 1848,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "paymentSuccess",
+ "file": "lang\\en-us.js",
+ "line": 1849,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "paypassword",
+ "file": "lang\\en-us.js",
+ "line": 1850,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "pleaseEnterMessage",
+ "file": "lang\\en-us.js",
+ "line": 1851,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "pleaseEnterMobile",
+ "file": "lang\\en-us.js",
+ "line": 1852,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "pleaseEnterName",
+ "file": "lang\\en-us.js",
+ "line": 1853,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "pleaseInputNewPassword",
+ "file": "lang\\en-us.js",
+ "line": 1854,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "pleaseInputOldPassword",
+ "file": "lang\\en-us.js",
+ "line": 1855,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "privacyPolicy",
+ "file": "lang\\en-us.js",
+ "line": 1856,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "privacyPolicyText",
+ "file": "lang\\en-us.js",
+ "line": 1857,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "prompt",
+ "file": "lang\\en-us.js",
+ "line": 1858,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "rePasswordPlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1859,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "realName",
+ "file": "lang\\en-us.js",
+ "line": 1860,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "receivingCity",
+ "file": "lang\\en-us.js",
+ "line": 1861,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "receivingReply",
+ "file": "lang\\en-us.js",
+ "line": 1862,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "recordingTip",
+ "file": "lang\\en-us.js",
+ "line": 1863,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "registerAgreementText",
+ "file": "lang\\en-us.js",
+ "line": 1864,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "registrationAgreement",
+ "file": "lang\\en-us.js",
+ "line": 1865,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "requestFailTip",
+ "file": "lang\\en-us.js",
+ "line": 1866,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "retry",
+ "file": "lang\\en-us.js",
+ "line": 1867,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "sales",
+ "file": "lang\\en-us.js",
+ "line": 1868,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "save",
+ "file": "lang\\en-us.js",
+ "line": 1869,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "search",
+ "file": "lang\\en-us.js",
+ "line": 1870,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "searchAtBottom",
+ "file": "lang\\en-us.js",
+ "line": 1871,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "searchAtTop",
+ "file": "lang\\en-us.js",
+ "line": 1872,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "searchClose",
+ "file": "lang\\en-us.js",
+ "line": 1873,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "searchEntrance",
+ "file": "lang\\en-us.js",
+ "line": 1874,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "searchPlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1875,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "see",
+ "file": "lang\\en-us.js",
+ "line": 1876,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "sellout",
+ "file": "lang\\en-us.js",
+ "line": 1877,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "send",
+ "file": "lang\\en-us.js",
+ "line": 1878,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "serviceTemporaryUnavailable",
+ "file": "lang\\en-us.js",
+ "line": 1879,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "serviceTypeNotSupported",
+ "file": "lang\\en-us.js",
+ "line": 1880,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "serviceUnavailable",
+ "file": "lang\\en-us.js",
+ "line": 1881,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "settingsTitle",
+ "file": "lang\\en-us.js",
+ "line": 1882,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "settlement",
+ "file": "lang\\en-us.js",
+ "line": 1883,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "sex",
+ "file": "lang\\en-us.js",
+ "line": 1884,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "spec",
+ "file": "lang\\en-us.js",
+ "line": 1885,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "startRecordTip",
+ "file": "lang\\en-us.js",
+ "line": 1886,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "status",
+ "file": "lang\\en-us.js",
+ "line": 1887,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "stock",
+ "file": "lang\\en-us.js",
+ "line": 1888,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "submit",
+ "file": "lang\\en-us.js",
+ "line": 1889,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "surePhoneNumber",
+ "file": "lang\\en-us.js",
+ "line": 1890,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "telephone",
+ "file": "lang\\en-us.js",
+ "line": 1891,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "telephonePlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1892,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "thanksFeedback",
+ "file": "lang\\en-us.js",
+ "line": 1893,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "timeFormatBeforeYesterday",
+ "file": "lang\\en-us.js",
+ "line": 1894,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "timeFormatYesterday",
+ "file": "lang\\en-us.js",
+ "line": 1895,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "toGoodsCategoryPage",
+ "file": "lang\\en-us.js",
+ "line": 1897,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "toLogin",
+ "file": "lang\\en-us.js",
+ "line": 1898,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "total",
+ "file": "lang\\en-us.js",
+ "line": 1899,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "updateSuccess",
+ "file": "lang\\en-us.js",
+ "line": 1900,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "userServiceAgreementText",
+ "file": "lang\\en-us.js",
+ "line": 1901,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "videoMessage",
+ "file": "lang\\en-us.js",
+ "line": 1902,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "voice",
+ "file": "lang\\en-us.js",
+ "line": 1903,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "voiceInputFailed",
+ "file": "lang\\en-us.js",
+ "line": 1904,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "voiceInputTitle",
+ "file": "lang\\en-us.js",
+ "line": 1905,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "waitconfirm",
+ "file": "lang\\en-us.js",
+ "line": 1906,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "waitpay",
+ "file": "lang\\en-us.js",
+ "line": 1907,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "waitsend",
+ "file": "lang\\en-us.js",
+ "line": 1908,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "welcomeText",
+ "file": "lang\\en-us.js",
+ "line": 1909,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ },
+ {
+ "key": "withdrawal",
+ "file": "lang\\en-us.js",
+ "line": 1910,
+ "reason": "扁平 key 无业务域前缀(顶层 namespace 不在白名单)"
+ }
+ ],
+ "行号式 locational key": [
+ {
+ "key": "article.detail.l5.t0",
+ "file": "lang\\en-us.js",
+ "line": 550,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "article.list.l24.t0",
+ "file": "lang\\en-us.js",
+ "line": 551,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "article.list.l91.t0",
+ "file": "lang\\en-us.js",
+ "line": 552,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "contact.l165.t0",
+ "file": "lang\\en-us.js",
+ "line": 587,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "contact.l314.t0",
+ "file": "lang\\en-us.js",
+ "line": 588,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "contact.l372.t0",
+ "file": "lang\\en-us.js",
+ "line": 589,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "contact.l376.t0",
+ "file": "lang\\en-us.js",
+ "line": 590,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "contact.l380.t0",
+ "file": "lang\\en-us.js",
+ "line": 591,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "contact.l405.t0",
+ "file": "lang\\en-us.js",
+ "line": 592,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "contact.l76.t0",
+ "file": "lang\\en-us.js",
+ "line": 593,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "contact.l93.t0",
+ "file": "lang\\en-us.js",
+ "line": 594,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l100.t0",
+ "file": "lang\\en-us.js",
+ "line": 707,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l101.t0",
+ "file": "lang\\en-us.js",
+ "line": 708,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l126.t0",
+ "file": "lang\\en-us.js",
+ "line": 709,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l131.t0",
+ "file": "lang\\en-us.js",
+ "line": 710,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l133.t0",
+ "file": "lang\\en-us.js",
+ "line": 711,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l134.t0",
+ "file": "lang\\en-us.js",
+ "line": 712,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l16.t0",
+ "file": "lang\\en-us.js",
+ "line": 713,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l166.t0",
+ "file": "lang\\en-us.js",
+ "line": 714,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l194.t0",
+ "file": "lang\\en-us.js",
+ "line": 715,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l210.t0",
+ "file": "lang\\en-us.js",
+ "line": 716,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l27.t0",
+ "file": "lang\\en-us.js",
+ "line": 717,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l278.t0",
+ "file": "lang\\en-us.js",
+ "line": 718,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l32.t0",
+ "file": "lang\\en-us.js",
+ "line": 719,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l45.t0",
+ "file": "lang\\en-us.js",
+ "line": 720,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l52.t0",
+ "file": "lang\\en-us.js",
+ "line": 721,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l82.t0",
+ "file": "lang\\en-us.js",
+ "line": 722,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.bill.l11.t0",
+ "file": "lang\\en-us.js",
+ "line": 723,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.bill.l19.t0",
+ "file": "lang\\en-us.js",
+ "line": 724,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.child_fenxiao.l23.t0",
+ "file": "lang\\en-us.js",
+ "line": 725,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.child_fenxiao.l24.t0",
+ "file": "lang\\en-us.js",
+ "line": 726,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.child_fenxiao.l32.t0",
+ "file": "lang\\en-us.js",
+ "line": 727,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.goods_list.l118.t0",
+ "file": "lang\\en-us.js",
+ "line": 728,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.goods_list.l43.t0",
+ "file": "lang\\en-us.js",
+ "line": 729,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.goods_list.l49.t0",
+ "file": "lang\\en-us.js",
+ "line": 730,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.goods_list.l56.t0",
+ "file": "lang\\en-us.js",
+ "line": 731,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.goods_list.l59.t0",
+ "file": "lang\\en-us.js",
+ "line": 732,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l114.t0",
+ "file": "lang\\en-us.js",
+ "line": 733,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l124.t0",
+ "file": "lang\\en-us.js",
+ "line": 734,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l125.t0",
+ "file": "lang\\en-us.js",
+ "line": 735,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l133.t0",
+ "file": "lang\\en-us.js",
+ "line": 736,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l142.t0",
+ "file": "lang\\en-us.js",
+ "line": 737,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l162.t0",
+ "file": "lang\\en-us.js",
+ "line": 738,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l171.t0",
+ "file": "lang\\en-us.js",
+ "line": 739,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l172.t0",
+ "file": "lang\\en-us.js",
+ "line": 740,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l180.t0",
+ "file": "lang\\en-us.js",
+ "line": 741,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l21.t0",
+ "file": "lang\\en-us.js",
+ "line": 742,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l21.t1",
+ "file": "lang\\en-us.js",
+ "line": 743,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l214.t0",
+ "file": "lang\\en-us.js",
+ "line": 744,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l215.t0",
+ "file": "lang\\en-us.js",
+ "line": 745,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l22.t0",
+ "file": "lang\\en-us.js",
+ "line": 746,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l223.t0",
+ "file": "lang\\en-us.js",
+ "line": 747,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l231.t0",
+ "file": "lang\\en-us.js",
+ "line": 748,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l239.t0",
+ "file": "lang\\en-us.js",
+ "line": 749,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l254.t0",
+ "file": "lang\\en-us.js",
+ "line": 750,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l254.t1",
+ "file": "lang\\en-us.js",
+ "line": 751,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l293.t0",
+ "file": "lang\\en-us.js",
+ "line": 752,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l33.t0",
+ "file": "lang\\en-us.js",
+ "line": 753,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l33.t1",
+ "file": "lang\\en-us.js",
+ "line": 754,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l34.t0",
+ "file": "lang\\en-us.js",
+ "line": 755,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l36.t0",
+ "file": "lang\\en-us.js",
+ "line": 756,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l371.t0",
+ "file": "lang\\en-us.js",
+ "line": 757,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l43.t0",
+ "file": "lang\\en-us.js",
+ "line": 758,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l483.t0",
+ "file": "lang\\en-us.js",
+ "line": 759,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l484.t0",
+ "file": "lang\\en-us.js",
+ "line": 760,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l485.t0",
+ "file": "lang\\en-us.js",
+ "line": 761,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l498.t0",
+ "file": "lang\\en-us.js",
+ "line": 762,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l499.t0",
+ "file": "lang\\en-us.js",
+ "line": 763,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l512.t0",
+ "file": "lang\\en-us.js",
+ "line": 764,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l512.t1",
+ "file": "lang\\en-us.js",
+ "line": 765,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l514.t0",
+ "file": "lang\\en-us.js",
+ "line": 766,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l514.t1",
+ "file": "lang\\en-us.js",
+ "line": 767,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l526.t0",
+ "file": "lang\\en-us.js",
+ "line": 768,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l527.t0",
+ "file": "lang\\en-us.js",
+ "line": 769,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l528.t0",
+ "file": "lang\\en-us.js",
+ "line": 770,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l539.t0",
+ "file": "lang\\en-us.js",
+ "line": 771,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l540.t0",
+ "file": "lang\\en-us.js",
+ "line": 772,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l55.t0",
+ "file": "lang\\en-us.js",
+ "line": 773,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l553.t0",
+ "file": "lang\\en-us.js",
+ "line": 774,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l554.t0",
+ "file": "lang\\en-us.js",
+ "line": 775,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l567.t0",
+ "file": "lang\\en-us.js",
+ "line": 776,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l568.t0",
+ "file": "lang\\en-us.js",
+ "line": 777,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l59.t0",
+ "file": "lang\\en-us.js",
+ "line": 778,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l64.t0",
+ "file": "lang\\en-us.js",
+ "line": 779,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l70.t0",
+ "file": "lang\\en-us.js",
+ "line": 780,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l93.t0",
+ "file": "lang\\en-us.js",
+ "line": 781,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l94.t0",
+ "file": "lang\\en-us.js",
+ "line": 782,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l119.t0",
+ "file": "lang\\en-us.js",
+ "line": 783,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l131.t0",
+ "file": "lang\\en-us.js",
+ "line": 784,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l143.t0",
+ "file": "lang\\en-us.js",
+ "line": 785,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l144.t0",
+ "file": "lang\\en-us.js",
+ "line": 786,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l157.t0",
+ "file": "lang\\en-us.js",
+ "line": 787,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l169.t0",
+ "file": "lang\\en-us.js",
+ "line": 788,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l181.t0",
+ "file": "lang\\en-us.js",
+ "line": 789,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l181.t1",
+ "file": "lang\\en-us.js",
+ "line": 790,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l193.t0",
+ "file": "lang\\en-us.js",
+ "line": 791,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l20.t0",
+ "file": "lang\\en-us.js",
+ "line": 792,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l221.t0",
+ "file": "lang\\en-us.js",
+ "line": 793,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l24.t0",
+ "file": "lang\\en-us.js",
+ "line": 794,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l28.t0",
+ "file": "lang\\en-us.js",
+ "line": 795,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.order.l17.t0",
+ "file": "lang\\en-us.js",
+ "line": 796,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.order.l19.t0",
+ "file": "lang\\en-us.js",
+ "line": 797,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.order.l20.t0",
+ "file": "lang\\en-us.js",
+ "line": 798,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.order.l81.t0",
+ "file": "lang\\en-us.js",
+ "line": 799,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.order.l83.t0",
+ "file": "lang\\en-us.js",
+ "line": 800,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.order.l85.t0",
+ "file": "lang\\en-us.js",
+ "line": 801,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.order.l87.t0",
+ "file": "lang\\en-us.js",
+ "line": 802,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.order_detail.l47.t0",
+ "file": "lang\\en-us.js",
+ "line": 803,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.order_detail.l56.t0",
+ "file": "lang\\en-us.js",
+ "line": 804,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.order_detail.l60.t0",
+ "file": "lang\\en-us.js",
+ "line": 805,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.promote.l21.t0",
+ "file": "lang\\en-us.js",
+ "line": 806,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.promote.l22.t0",
+ "file": "lang\\en-us.js",
+ "line": 807,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.promote.l35.t0",
+ "file": "lang\\en-us.js",
+ "line": 808,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.promote.l44.t0",
+ "file": "lang\\en-us.js",
+ "line": 809,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.promote_code.l114.t0",
+ "file": "lang\\en-us.js",
+ "line": 810,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.promote_code.l139.t0",
+ "file": "lang\\en-us.js",
+ "line": 811,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.promote_code.l14.t0",
+ "file": "lang\\en-us.js",
+ "line": 812,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.promote_code.l18.t0",
+ "file": "lang\\en-us.js",
+ "line": 813,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.promote_code.l24.t0",
+ "file": "lang\\en-us.js",
+ "line": 814,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.promote_code.l29.t0",
+ "file": "lang\\en-us.js",
+ "line": 815,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l19.t0",
+ "file": "lang\\en-us.js",
+ "line": 816,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l21.t0",
+ "file": "lang\\en-us.js",
+ "line": 817,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l33.t0",
+ "file": "lang\\en-us.js",
+ "line": 818,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l44.t0",
+ "file": "lang\\en-us.js",
+ "line": 819,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l45.t0",
+ "file": "lang\\en-us.js",
+ "line": 820,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l57.t0",
+ "file": "lang\\en-us.js",
+ "line": 821,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l68.t0",
+ "file": "lang\\en-us.js",
+ "line": 822,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.team.l92.t0",
+ "file": "lang\\en-us.js",
+ "line": 823,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.team.l96.t0",
+ "file": "lang\\en-us.js",
+ "line": 824,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l178.t0",
+ "file": "lang\\en-us.js",
+ "line": 825,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l189.t0",
+ "file": "lang\\en-us.js",
+ "line": 826,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l19.t0",
+ "file": "lang\\en-us.js",
+ "line": 827,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l196.t0",
+ "file": "lang\\en-us.js",
+ "line": 828,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l205.t0",
+ "file": "lang\\en-us.js",
+ "line": 829,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l238.t0",
+ "file": "lang\\en-us.js",
+ "line": 830,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l31.t0",
+ "file": "lang\\en-us.js",
+ "line": 831,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l41.t0",
+ "file": "lang\\en-us.js",
+ "line": 832,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l42.t0",
+ "file": "lang\\en-us.js",
+ "line": 833,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l46.t0",
+ "file": "lang\\en-us.js",
+ "line": 834,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l48.t0",
+ "file": "lang\\en-us.js",
+ "line": 835,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l5.t0",
+ "file": "lang\\en-us.js",
+ "line": 836,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l59.t0",
+ "file": "lang\\en-us.js",
+ "line": 837,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l6.t0",
+ "file": "lang\\en-us.js",
+ "line": 838,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l64.t0",
+ "file": "lang\\en-us.js",
+ "line": 839,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l12.t0",
+ "file": "lang\\en-us.js",
+ "line": 840,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l12.t1",
+ "file": "lang\\en-us.js",
+ "line": 841,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l13.t0",
+ "file": "lang\\en-us.js",
+ "line": 842,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l28.t0",
+ "file": "lang\\en-us.js",
+ "line": 843,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l45.t0",
+ "file": "lang\\en-us.js",
+ "line": 844,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l49.t0",
+ "file": "lang\\en-us.js",
+ "line": 845,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l53.t0",
+ "file": "lang\\en-us.js",
+ "line": 846,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l57.t0",
+ "file": "lang\\en-us.js",
+ "line": 847,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l78.t0",
+ "file": "lang\\en-us.js",
+ "line": 848,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l10.t0",
+ "file": "lang\\en-us.js",
+ "line": 849,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l14.t0",
+ "file": "lang\\en-us.js",
+ "line": 850,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l18.t0",
+ "file": "lang\\en-us.js",
+ "line": 851,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l22.t0",
+ "file": "lang\\en-us.js",
+ "line": 852,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l26.t0",
+ "file": "lang\\en-us.js",
+ "line": 853,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l30.t0",
+ "file": "lang\\en-us.js",
+ "line": 854,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l34.t0",
+ "file": "lang\\en-us.js",
+ "line": 855,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l38.t0",
+ "file": "lang\\en-us.js",
+ "line": 856,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l42.t0",
+ "file": "lang\\en-us.js",
+ "line": 857,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l46.t0",
+ "file": "lang\\en-us.js",
+ "line": 858,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l123.t0",
+ "file": "lang\\en-us.js",
+ "line": 903,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l143.t0",
+ "file": "lang\\en-us.js",
+ "line": 904,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l145.t0",
+ "file": "lang\\en-us.js",
+ "line": 905,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l17.t0",
+ "file": "lang\\en-us.js",
+ "line": 906,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l192.t0",
+ "file": "lang\\en-us.js",
+ "line": 907,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l202.t0",
+ "file": "lang\\en-us.js",
+ "line": 908,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l202.t1",
+ "file": "lang\\en-us.js",
+ "line": 909,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l221.t0",
+ "file": "lang\\en-us.js",
+ "line": 910,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l226.t0",
+ "file": "lang\\en-us.js",
+ "line": 911,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l239.t0",
+ "file": "lang\\en-us.js",
+ "line": 912,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l294.t0",
+ "file": "lang\\en-us.js",
+ "line": 913,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l298.t0",
+ "file": "lang\\en-us.js",
+ "line": 914,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l341.t0",
+ "file": "lang\\en-us.js",
+ "line": 915,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l341.t1",
+ "file": "lang\\en-us.js",
+ "line": 916,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l8.t0",
+ "file": "lang\\en-us.js",
+ "line": 917,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.category.l51.t0",
+ "file": "lang\\en-us.js",
+ "line": 918,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l129.t0",
+ "file": "lang\\en-us.js",
+ "line": 919,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l131.t0",
+ "file": "lang\\en-us.js",
+ "line": 920,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l132.t0",
+ "file": "lang\\en-us.js",
+ "line": 921,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l133.t0",
+ "file": "lang\\en-us.js",
+ "line": 922,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l134.t0",
+ "file": "lang\\en-us.js",
+ "line": 923,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l152.t0",
+ "file": "lang\\en-us.js",
+ "line": 924,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l18.t0",
+ "file": "lang\\en-us.js",
+ "line": 925,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l187.t0",
+ "file": "lang\\en-us.js",
+ "line": 926,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l194.t0",
+ "file": "lang\\en-us.js",
+ "line": 927,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l220.t0",
+ "file": "lang\\en-us.js",
+ "line": 928,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l23.t0",
+ "file": "lang\\en-us.js",
+ "line": 929,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l300.t0",
+ "file": "lang\\en-us.js",
+ "line": 930,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l348.t0",
+ "file": "lang\\en-us.js",
+ "line": 931,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l349.t0",
+ "file": "lang\\en-us.js",
+ "line": 932,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l350.t0",
+ "file": "lang\\en-us.js",
+ "line": 933,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l354.t0",
+ "file": "lang\\en-us.js",
+ "line": 934,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l379.t0",
+ "file": "lang\\en-us.js",
+ "line": 935,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l383.t0",
+ "file": "lang\\en-us.js",
+ "line": 936,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l396.t0",
+ "file": "lang\\en-us.js",
+ "line": 937,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l523.t0",
+ "file": "lang\\en-us.js",
+ "line": 938,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l527.t0",
+ "file": "lang\\en-us.js",
+ "line": 939,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l55.t0",
+ "file": "lang\\en-us.js",
+ "line": 940,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l591.t0",
+ "file": "lang\\en-us.js",
+ "line": 941,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l99.t0",
+ "file": "lang\\en-us.js",
+ "line": 942,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.list.l148.t0",
+ "file": "lang\\en-us.js",
+ "line": 943,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.list.l160.t0",
+ "file": "lang\\en-us.js",
+ "line": 944,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.list.l168.t0",
+ "file": "lang\\en-us.js",
+ "line": 945,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.list.l170.t0",
+ "file": "lang\\en-us.js",
+ "line": 946,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.list.l172.t0",
+ "file": "lang\\en-us.js",
+ "line": 947,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.list.l188.t0",
+ "file": "lang\\en-us.js",
+ "line": 948,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.list.l19.t0",
+ "file": "lang\\en-us.js",
+ "line": 949,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.list.l203.t0",
+ "file": "lang\\en-us.js",
+ "line": 950,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.list.l23.t0",
+ "file": "lang\\en-us.js",
+ "line": 951,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.list.l28.t0",
+ "file": "lang\\en-us.js",
+ "line": 952,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.list.l40.t0",
+ "file": "lang\\en-us.js",
+ "line": 953,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.cart.l236.t0",
+ "file": "lang\\en-us.js",
+ "line": 954,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.cart.l243.t0",
+ "file": "lang\\en-us.js",
+ "line": 955,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.cart.l243.t1",
+ "file": "lang\\en-us.js",
+ "line": 956,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.cart.l385.t0",
+ "file": "lang\\en-us.js",
+ "line": 957,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.detail.l321.t0",
+ "file": "lang\\en-us.js",
+ "line": 958,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.detail.l323.t0",
+ "file": "lang\\en-us.js",
+ "line": 959,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.detail.l379.t0",
+ "file": "lang\\en-us.js",
+ "line": 960,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.detail.l386.t0",
+ "file": "lang\\en-us.js",
+ "line": 961,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.detail.l392.t0",
+ "file": "lang\\en-us.js",
+ "line": 962,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.detail.l392.t1",
+ "file": "lang\\en-us.js",
+ "line": 963,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.detail.l392.t2",
+ "file": "lang\\en-us.js",
+ "line": 964,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.detail.l395.t0",
+ "file": "lang\\en-us.js",
+ "line": 965,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.list.l126.t0",
+ "file": "lang\\en-us.js",
+ "line": 966,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.list.l126.t1",
+ "file": "lang\\en-us.js",
+ "line": 967,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.list.l126.t2",
+ "file": "lang\\en-us.js",
+ "line": 968,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.list.l365.t0",
+ "file": "lang\\en-us.js",
+ "line": 969,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.list.l371.t0",
+ "file": "lang\\en-us.js",
+ "line": 970,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.list.l378.t0",
+ "file": "lang\\en-us.js",
+ "line": 971,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.list.l384.t0",
+ "file": "lang\\en-us.js",
+ "line": 972,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.list.l78.t0",
+ "file": "lang\\en-us.js",
+ "line": 973,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "help.list.l73.t0",
+ "file": "lang\\en-us.js",
+ "line": 980,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "help.list.l81.t0",
+ "file": "lang\\en-us.js",
+ "line": 981,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "help.list.l9.t0",
+ "file": "lang\\en-us.js",
+ "line": 982,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l100.t0",
+ "file": "lang\\en-us.js",
+ "line": 1001,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l13.t0",
+ "file": "lang\\en-us.js",
+ "line": 1002,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l169.t0",
+ "file": "lang\\en-us.js",
+ "line": 1003,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l18.t0",
+ "file": "lang\\en-us.js",
+ "line": 1004,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l188.t0",
+ "file": "lang\\en-us.js",
+ "line": 1005,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l19.t0",
+ "file": "lang\\en-us.js",
+ "line": 1006,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l196.t0",
+ "file": "lang\\en-us.js",
+ "line": 1007,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l196.t1",
+ "file": "lang\\en-us.js",
+ "line": 1008,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l200.t0",
+ "file": "lang\\en-us.js",
+ "line": 1009,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l204.t0",
+ "file": "lang\\en-us.js",
+ "line": 1010,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l208.t0",
+ "file": "lang\\en-us.js",
+ "line": 1011,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l212.t0",
+ "file": "lang\\en-us.js",
+ "line": 1012,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l216.t0",
+ "file": "lang\\en-us.js",
+ "line": 1013,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l230.t0",
+ "file": "lang\\en-us.js",
+ "line": 1014,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l286.t0",
+ "file": "lang\\en-us.js",
+ "line": 1015,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l7.t0",
+ "file": "lang\\en-us.js",
+ "line": 1016,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account.l10.t0",
+ "file": "lang\\en-us.js",
+ "line": 1025,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account.l106.t0",
+ "file": "lang\\en-us.js",
+ "line": 1026,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account.l107.t0",
+ "file": "lang\\en-us.js",
+ "line": 1027,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account.l118.t0",
+ "file": "lang\\en-us.js",
+ "line": 1028,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account.l123.t0",
+ "file": "lang\\en-us.js",
+ "line": 1029,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account.l184.t0",
+ "file": "lang\\en-us.js",
+ "line": 1030,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account.l32.t0",
+ "file": "lang\\en-us.js",
+ "line": 1031,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account.l37.t0",
+ "file": "lang\\en-us.js",
+ "line": 1032,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account.l55.t0",
+ "file": "lang\\en-us.js",
+ "line": 1033,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account_edit.l139.t0",
+ "file": "lang\\en-us.js",
+ "line": 1034,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account_edit.l163.t0",
+ "file": "lang\\en-us.js",
+ "line": 1035,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account_edit.l178.t0",
+ "file": "lang\\en-us.js",
+ "line": 1036,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account_edit.l20.t0",
+ "file": "lang\\en-us.js",
+ "line": 1037,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account_edit.l226.t0",
+ "file": "lang\\en-us.js",
+ "line": 1038,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account_edit.l23.t0",
+ "file": "lang\\en-us.js",
+ "line": 1039,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account_edit.l230.t0",
+ "file": "lang\\en-us.js",
+ "line": 1040,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account_edit.l24.t0",
+ "file": "lang\\en-us.js",
+ "line": 1041,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account_edit.l5.t0",
+ "file": "lang\\en-us.js",
+ "line": 1042,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account_edit.l67.t0",
+ "file": "lang\\en-us.js",
+ "line": 1043,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account_edit.l71.t0",
+ "file": "lang\\en-us.js",
+ "line": 1044,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address.l196.t0",
+ "file": "lang\\en-us.js",
+ "line": 1045,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address.l201.t0",
+ "file": "lang\\en-us.js",
+ "line": 1046,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address.l247.t0",
+ "file": "lang\\en-us.js",
+ "line": 1047,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address.l293.t0",
+ "file": "lang\\en-us.js",
+ "line": 1048,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address.l38.t0",
+ "file": "lang\\en-us.js",
+ "line": 1049,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address.l57.t0",
+ "file": "lang\\en-us.js",
+ "line": 1050,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address_edit.l138.t0",
+ "file": "lang\\en-us.js",
+ "line": 1051,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address_edit.l142.t0",
+ "file": "lang\\en-us.js",
+ "line": 1052,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address_edit.l200.t0",
+ "file": "lang\\en-us.js",
+ "line": 1053,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address_edit.l233.t0",
+ "file": "lang\\en-us.js",
+ "line": 1054,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address_edit.l234.t0",
+ "file": "lang\\en-us.js",
+ "line": 1055,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address_edit.l241.t0",
+ "file": "lang\\en-us.js",
+ "line": 1056,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address_edit.l259.t0",
+ "file": "lang\\en-us.js",
+ "line": 1057,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address_edit.l319.t0",
+ "file": "lang\\en-us.js",
+ "line": 1058,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address_edit.l4.t0",
+ "file": "lang\\en-us.js",
+ "line": 1059,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address_edit.l44.t0",
+ "file": "lang\\en-us.js",
+ "line": 1060,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.apply_withdrawal.l109.t0",
+ "file": "lang\\en-us.js",
+ "line": 1061,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.apply_withdrawal.l19.t0",
+ "file": "lang\\en-us.js",
+ "line": 1062,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.apply_withdrawal.l24.t0",
+ "file": "lang\\en-us.js",
+ "line": 1063,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.apply_withdrawal.l34.t0",
+ "file": "lang\\en-us.js",
+ "line": 1064,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.apply_withdrawal.l40.t0",
+ "file": "lang\\en-us.js",
+ "line": 1065,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l18.t0",
+ "file": "lang\\en-us.js",
+ "line": 1066,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l22.t0",
+ "file": "lang\\en-us.js",
+ "line": 1067,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l33.t0",
+ "file": "lang\\en-us.js",
+ "line": 1068,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l46.t0",
+ "file": "lang\\en-us.js",
+ "line": 1069,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l5.t0",
+ "file": "lang\\en-us.js",
+ "line": 1070,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l54.t0",
+ "file": "lang\\en-us.js",
+ "line": 1071,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l59.t0",
+ "file": "lang\\en-us.js",
+ "line": 1072,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l63.t0",
+ "file": "lang\\en-us.js",
+ "line": 1073,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l67.t0",
+ "file": "lang\\en-us.js",
+ "line": 1074,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l73.t0",
+ "file": "lang\\en-us.js",
+ "line": 1075,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l74.t0",
+ "file": "lang\\en-us.js",
+ "line": 1076,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l9.t0",
+ "file": "lang\\en-us.js",
+ "line": 1077,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.balance.l19.t0",
+ "file": "lang\\en-us.js",
+ "line": 1078,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.balance.l24.t0",
+ "file": "lang\\en-us.js",
+ "line": 1079,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.balance.l28.t0",
+ "file": "lang\\en-us.js",
+ "line": 1080,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.balance.l33.t0",
+ "file": "lang\\en-us.js",
+ "line": 1081,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.balance.l49.t0",
+ "file": "lang\\en-us.js",
+ "line": 1082,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.balance.l56.t0",
+ "file": "lang\\en-us.js",
+ "line": 1083,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.balance_detail.l124.t0",
+ "file": "lang\\en-us.js",
+ "line": 1084,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.balance_detail.l46.t0",
+ "file": "lang\\en-us.js",
+ "line": 1085,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.balance_detail.l68.t0",
+ "file": "lang\\en-us.js",
+ "line": 1086,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.balance_detail.l71.t0",
+ "file": "lang\\en-us.js",
+ "line": 1087,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancellation.l13.t0",
+ "file": "lang\\en-us.js",
+ "line": 1088,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancellation.l15.t0",
+ "file": "lang\\en-us.js",
+ "line": 1089,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancellation.l63.t0",
+ "file": "lang\\en-us.js",
+ "line": 1090,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelrefuse.l5.t0",
+ "file": "lang\\en-us.js",
+ "line": 1091,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelrefuse.l6.t0",
+ "file": "lang\\en-us.js",
+ "line": 1092,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelrefuse.l8.t0",
+ "file": "lang\\en-us.js",
+ "line": 1093,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelstatus.l16.t0",
+ "file": "lang\\en-us.js",
+ "line": 1094,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelstatus.l17.t0",
+ "file": "lang\\en-us.js",
+ "line": 1095,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelstatus.l26.t0",
+ "file": "lang\\en-us.js",
+ "line": 1096,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelstatus.l27.t0",
+ "file": "lang\\en-us.js",
+ "line": 1097,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelstatus.l33.t0",
+ "file": "lang\\en-us.js",
+ "line": 1098,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelstatus.l8.t0",
+ "file": "lang\\en-us.js",
+ "line": 1099,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelstatus.l84.t0",
+ "file": "lang\\en-us.js",
+ "line": 1100,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelstatus.l85.t0",
+ "file": "lang\\en-us.js",
+ "line": 1101,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelstatus.l9.t0",
+ "file": "lang\\en-us.js",
+ "line": 1102,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelsuccess.l7.t0",
+ "file": "lang\\en-us.js",
+ "line": 1103,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelsuccess.l8.t0",
+ "file": "lang\\en-us.js",
+ "line": 1104,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l104.t0",
+ "file": "lang\\en-us.js",
+ "line": 1105,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l174.t0",
+ "file": "lang\\en-us.js",
+ "line": 1106,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l25.t0",
+ "file": "lang\\en-us.js",
+ "line": 1107,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l31.t0",
+ "file": "lang\\en-us.js",
+ "line": 1108,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l42.t0",
+ "file": "lang\\en-us.js",
+ "line": 1109,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l52.t0",
+ "file": "lang\\en-us.js",
+ "line": 1110,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l53.t0",
+ "file": "lang\\en-us.js",
+ "line": 1111,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l57.t0",
+ "file": "lang\\en-us.js",
+ "line": 1112,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l58.t0",
+ "file": "lang\\en-us.js",
+ "line": 1113,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l62.t0",
+ "file": "lang\\en-us.js",
+ "line": 1114,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l63.t0",
+ "file": "lang\\en-us.js",
+ "line": 1115,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l72.t0",
+ "file": "lang\\en-us.js",
+ "line": 1116,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l81.t0",
+ "file": "lang\\en-us.js",
+ "line": 1117,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l82.t0",
+ "file": "lang\\en-us.js",
+ "line": 1118,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l86.t0",
+ "file": "lang\\en-us.js",
+ "line": 1119,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l91.t0",
+ "file": "lang\\en-us.js",
+ "line": 1120,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card_buy.l175.t0",
+ "file": "lang\\en-us.js",
+ "line": 1121,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card_buy.l214.t0",
+ "file": "lang\\en-us.js",
+ "line": 1122,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card_buy.l353.t0",
+ "file": "lang\\en-us.js",
+ "line": 1123,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card_buy.l81.t0",
+ "file": "lang\\en-us.js",
+ "line": 1124,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.collection.l33.t0",
+ "file": "lang\\en-us.js",
+ "line": 1125,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.collection.l33.t1",
+ "file": "lang\\en-us.js",
+ "line": 1126,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.coupon.l45.t0",
+ "file": "lang\\en-us.js",
+ "line": 1127,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.coupon.l5.t0",
+ "file": "lang\\en-us.js",
+ "line": 1128,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.coupon.l6.t0",
+ "file": "lang\\en-us.js",
+ "line": 1129,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.footprint.l137.t0",
+ "file": "lang\\en-us.js",
+ "line": 1130,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.footprint.l4.t0",
+ "file": "lang\\en-us.js",
+ "line": 1131,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.footprint.l49.t0",
+ "file": "lang\\en-us.js",
+ "line": 1132,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.footprint.l49.t1",
+ "file": "lang\\en-us.js",
+ "line": 1133,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.footprint.l57.t0",
+ "file": "lang\\en-us.js",
+ "line": 1134,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.footprint.l59.t0",
+ "file": "lang\\en-us.js",
+ "line": 1135,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info.l101.t0",
+ "file": "lang\\en-us.js",
+ "line": 1136,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info.l14.t0",
+ "file": "lang\\en-us.js",
+ "line": 1137,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info.l37.t0",
+ "file": "lang\\en-us.js",
+ "line": 1138,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info.l43.t0",
+ "file": "lang\\en-us.js",
+ "line": 1139,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info.l50.t0",
+ "file": "lang\\en-us.js",
+ "line": 1140,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info.l66.t0",
+ "file": "lang\\en-us.js",
+ "line": 1141,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info.l75.t0",
+ "file": "lang\\en-us.js",
+ "line": 1142,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info.l83.t0",
+ "file": "lang\\en-us.js",
+ "line": 1143,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l10.t0",
+ "file": "lang\\en-us.js",
+ "line": 1144,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l120.t0",
+ "file": "lang\\en-us.js",
+ "line": 1145,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l131.t0",
+ "file": "lang\\en-us.js",
+ "line": 1146,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l134.t0",
+ "file": "lang\\en-us.js",
+ "line": 1147,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l139.t0",
+ "file": "lang\\en-us.js",
+ "line": 1148,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l147.t0",
+ "file": "lang\\en-us.js",
+ "line": 1149,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l57.t0",
+ "file": "lang\\en-us.js",
+ "line": 1150,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l7.t0",
+ "file": "lang\\en-us.js",
+ "line": 1151,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l71.t0",
+ "file": "lang\\en-us.js",
+ "line": 1152,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l72.t0",
+ "file": "lang\\en-us.js",
+ "line": 1153,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l77.t0",
+ "file": "lang\\en-us.js",
+ "line": 1154,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l82.t0",
+ "file": "lang\\en-us.js",
+ "line": 1155,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l87.t0",
+ "file": "lang\\en-us.js",
+ "line": 1156,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l126.t0",
+ "file": "lang\\en-us.js",
+ "line": 1157,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l133.t0",
+ "file": "lang\\en-us.js",
+ "line": 1158,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l142.t0",
+ "file": "lang\\en-us.js",
+ "line": 1159,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l151.t0",
+ "file": "lang\\en-us.js",
+ "line": 1160,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l17.t0",
+ "file": "lang\\en-us.js",
+ "line": 1161,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l20.t0",
+ "file": "lang\\en-us.js",
+ "line": 1162,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l217.t0",
+ "file": "lang\\en-us.js",
+ "line": 1163,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l50.t0",
+ "file": "lang\\en-us.js",
+ "line": 1164,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l55.t0",
+ "file": "lang\\en-us.js",
+ "line": 1165,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l56.t0",
+ "file": "lang\\en-us.js",
+ "line": 1166,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l61.t0",
+ "file": "lang\\en-us.js",
+ "line": 1167,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l71.t0",
+ "file": "lang\\en-us.js",
+ "line": 1168,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l98.t0",
+ "file": "lang\\en-us.js",
+ "line": 1169,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l100.t0",
+ "file": "lang\\en-us.js",
+ "line": 1170,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l106.t0",
+ "file": "lang\\en-us.js",
+ "line": 1171,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l113.t0",
+ "file": "lang\\en-us.js",
+ "line": 1172,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l12.t0",
+ "file": "lang\\en-us.js",
+ "line": 1173,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l268.t0",
+ "file": "lang\\en-us.js",
+ "line": 1174,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l57.t0",
+ "file": "lang\\en-us.js",
+ "line": 1175,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l59.t0",
+ "file": "lang\\en-us.js",
+ "line": 1176,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l72.t0",
+ "file": "lang\\en-us.js",
+ "line": 1177,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l91.t0",
+ "file": "lang\\en-us.js",
+ "line": 1178,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l92.t0",
+ "file": "lang\\en-us.js",
+ "line": 1179,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l98.t0",
+ "file": "lang\\en-us.js",
+ "line": 1180,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l99.t0",
+ "file": "lang\\en-us.js",
+ "line": 1181,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level_growth_rules.l23.t0",
+ "file": "lang\\en-us.js",
+ "line": 1182,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level_growth_rules.l25.t0",
+ "file": "lang\\en-us.js",
+ "line": 1183,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level_growth_rules.l30.t0",
+ "file": "lang\\en-us.js",
+ "line": 1184,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level_growth_rules.l33.t0",
+ "file": "lang\\en-us.js",
+ "line": 1185,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level_growth_rules.l34.t0",
+ "file": "lang\\en-us.js",
+ "line": 1186,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level_growth_rules.l35.t0",
+ "file": "lang\\en-us.js",
+ "line": 1187,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level_growth_rules.l36.t0",
+ "file": "lang\\en-us.js",
+ "line": 1188,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.modify_face.l117.t0",
+ "file": "lang\\en-us.js",
+ "line": 1189,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.modify_face.l14.t0",
+ "file": "lang\\en-us.js",
+ "line": 1190,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.modify_face.l22.t0",
+ "file": "lang\\en-us.js",
+ "line": 1191,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.modify_face.l23.t0",
+ "file": "lang\\en-us.js",
+ "line": 1192,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.modify_face.l95.t0",
+ "file": "lang\\en-us.js",
+ "line": 1193,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.pay_password.l10.t0",
+ "file": "lang\\en-us.js",
+ "line": 1194,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.pay_password.l11.t0",
+ "file": "lang\\en-us.js",
+ "line": 1195,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.pay_password.l12.t0",
+ "file": "lang\\en-us.js",
+ "line": 1196,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.pay_password.l152.t0",
+ "file": "lang\\en-us.js",
+ "line": 1197,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.pay_password.l3.t0",
+ "file": "lang\\en-us.js",
+ "line": 1198,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.pay_password.l37.t0",
+ "file": "lang\\en-us.js",
+ "line": 1199,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.pay_password.l4.t0",
+ "file": "lang\\en-us.js",
+ "line": 1200,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.pay_password.l52.t0",
+ "file": "lang\\en-us.js",
+ "line": 1201,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l20.t0",
+ "file": "lang\\en-us.js",
+ "line": 1202,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l24.t0",
+ "file": "lang\\en-us.js",
+ "line": 1203,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l28.t0",
+ "file": "lang\\en-us.js",
+ "line": 1204,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l32.t0",
+ "file": "lang\\en-us.js",
+ "line": 1205,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l48.t0",
+ "file": "lang\\en-us.js",
+ "line": 1206,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l53.t0",
+ "file": "lang\\en-us.js",
+ "line": 1207,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l57.t0",
+ "file": "lang\\en-us.js",
+ "line": 1208,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l58.t0",
+ "file": "lang\\en-us.js",
+ "line": 1209,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l60.t0",
+ "file": "lang\\en-us.js",
+ "line": 1210,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l65.t0",
+ "file": "lang\\en-us.js",
+ "line": 1211,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l66.t0",
+ "file": "lang\\en-us.js",
+ "line": 1212,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l68.t0",
+ "file": "lang\\en-us.js",
+ "line": 1213,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l157.t0",
+ "file": "lang\\en-us.js",
+ "line": 1214,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l404.t0",
+ "file": "lang\\en-us.js",
+ "line": 1215,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l411.t0",
+ "file": "lang\\en-us.js",
+ "line": 1216,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l579.t0",
+ "file": "lang\\en-us.js",
+ "line": 1217,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l58.t0",
+ "file": "lang\\en-us.js",
+ "line": 1218,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l612.t0",
+ "file": "lang\\en-us.js",
+ "line": 1219,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l62.t0",
+ "file": "lang\\en-us.js",
+ "line": 1220,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l67.t0",
+ "file": "lang\\en-us.js",
+ "line": 1221,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l726.t0",
+ "file": "lang\\en-us.js",
+ "line": 1222,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l744.t0",
+ "file": "lang\\en-us.js",
+ "line": 1223,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l869.t0",
+ "file": "lang\\en-us.js",
+ "line": 1224,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l874.t0",
+ "file": "lang\\en-us.js",
+ "line": 1225,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.signin.l201.t0",
+ "file": "lang\\en-us.js",
+ "line": 1227,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.signin.l236.t0",
+ "file": "lang\\en-us.js",
+ "line": 1228,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.signin.l237.t0",
+ "file": "lang\\en-us.js",
+ "line": 1229,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.signin.l268.t0",
+ "file": "lang\\en-us.js",
+ "line": 1230,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.signin.l31.t0",
+ "file": "lang\\en-us.js",
+ "line": 1231,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.detail.l102.t0",
+ "file": "lang\\en-us.js",
+ "line": 1236,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.detail.l31.t0",
+ "file": "lang\\en-us.js",
+ "line": 1237,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.detail.l35.t0",
+ "file": "lang\\en-us.js",
+ "line": 1238,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.detail.l35.t1",
+ "file": "lang\\en-us.js",
+ "line": 1239,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.detail.l7.t0",
+ "file": "lang\\en-us.js",
+ "line": 1240,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.merchcategory.l83.t0",
+ "file": "lang\\en-us.js",
+ "line": 1241,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.merchcategory.l87.t0",
+ "file": "lang\\en-us.js",
+ "line": 1242,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l103.t0",
+ "file": "lang\\en-us.js",
+ "line": 1243,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l126.t0",
+ "file": "lang\\en-us.js",
+ "line": 1244,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l133.t0",
+ "file": "lang\\en-us.js",
+ "line": 1245,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l170.t0",
+ "file": "lang\\en-us.js",
+ "line": 1246,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l496.t0",
+ "file": "lang\\en-us.js",
+ "line": 1247,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l533.t0",
+ "file": "lang\\en-us.js",
+ "line": 1248,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l56.t0",
+ "file": "lang\\en-us.js",
+ "line": 1249,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l56.t1",
+ "file": "lang\\en-us.js",
+ "line": 1250,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l578.t0",
+ "file": "lang\\en-us.js",
+ "line": 1251,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l58.t0",
+ "file": "lang\\en-us.js",
+ "line": 1252,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l58.t1",
+ "file": "lang\\en-us.js",
+ "line": 1253,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l58.t2",
+ "file": "lang\\en-us.js",
+ "line": 1254,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l58.t3",
+ "file": "lang\\en-us.js",
+ "line": 1255,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l585.t0",
+ "file": "lang\\en-us.js",
+ "line": 1256,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l63.t0",
+ "file": "lang\\en-us.js",
+ "line": 1257,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l635.t0",
+ "file": "lang\\en-us.js",
+ "line": 1258,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l641.t0",
+ "file": "lang\\en-us.js",
+ "line": 1259,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l648.t0",
+ "file": "lang\\en-us.js",
+ "line": 1260,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l658.t0",
+ "file": "lang\\en-us.js",
+ "line": 1261,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l665.t0",
+ "file": "lang\\en-us.js",
+ "line": 1262,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l67.t0",
+ "file": "lang\\en-us.js",
+ "line": 1263,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l671.t0",
+ "file": "lang\\en-us.js",
+ "line": 1264,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l677.t0",
+ "file": "lang\\en-us.js",
+ "line": 1265,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l71.t0",
+ "file": "lang\\en-us.js",
+ "line": 1266,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l81.t0",
+ "file": "lang\\en-us.js",
+ "line": 1267,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l85.t0",
+ "file": "lang\\en-us.js",
+ "line": 1268,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l908.t0",
+ "file": "lang\\en-us.js",
+ "line": 1269,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l929.t0",
+ "file": "lang\\en-us.js",
+ "line": 1270,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l93.t0",
+ "file": "lang\\en-us.js",
+ "line": 1271,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l93.t1",
+ "file": "lang\\en-us.js",
+ "line": 1272,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l96.t0",
+ "file": "lang\\en-us.js",
+ "line": 1273,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l99.t0",
+ "file": "lang\\en-us.js",
+ "line": 1274,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.js.list.l80.t0",
+ "file": "lang\\en-us.js",
+ "line": 1275,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "notice.detail.l87.t0",
+ "file": "lang\\en-us.js",
+ "line": 1286,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "notice.list.l10.t0",
+ "file": "lang\\en-us.js",
+ "line": 1287,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "notice.list.l18.t0",
+ "file": "lang\\en-us.js",
+ "line": 1288,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l106.t0",
+ "file": "lang\\en-us.js",
+ "line": 1359,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l109.t0",
+ "file": "lang\\en-us.js",
+ "line": 1360,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l16.t0",
+ "file": "lang\\en-us.js",
+ "line": 1361,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l192.t0",
+ "file": "lang\\en-us.js",
+ "line": 1362,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l192.t1",
+ "file": "lang\\en-us.js",
+ "line": 1363,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l198.t0",
+ "file": "lang\\en-us.js",
+ "line": 1364,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l198.t1",
+ "file": "lang\\en-us.js",
+ "line": 1365,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l208.t0",
+ "file": "lang\\en-us.js",
+ "line": 1366,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l214.t0",
+ "file": "lang\\en-us.js",
+ "line": 1367,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l221.t0",
+ "file": "lang\\en-us.js",
+ "line": 1368,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l227.t0",
+ "file": "lang\\en-us.js",
+ "line": 1369,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l233.t0",
+ "file": "lang\\en-us.js",
+ "line": 1370,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l241.t0",
+ "file": "lang\\en-us.js",
+ "line": 1371,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l247.t0",
+ "file": "lang\\en-us.js",
+ "line": 1372,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l254.t0",
+ "file": "lang\\en-us.js",
+ "line": 1373,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l260.t0",
+ "file": "lang\\en-us.js",
+ "line": 1374,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l266.t0",
+ "file": "lang\\en-us.js",
+ "line": 1375,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l274.t0",
+ "file": "lang\\en-us.js",
+ "line": 1376,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l276.t0",
+ "file": "lang\\en-us.js",
+ "line": 1377,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l276.t1",
+ "file": "lang\\en-us.js",
+ "line": 1378,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l280.t0",
+ "file": "lang\\en-us.js",
+ "line": 1379,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l282.t0",
+ "file": "lang\\en-us.js",
+ "line": 1380,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l282.t1",
+ "file": "lang\\en-us.js",
+ "line": 1381,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l286.t0",
+ "file": "lang\\en-us.js",
+ "line": 1382,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l293.t0",
+ "file": "lang\\en-us.js",
+ "line": 1383,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l299.t0",
+ "file": "lang\\en-us.js",
+ "line": 1384,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l305.t0",
+ "file": "lang\\en-us.js",
+ "line": 1385,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l329.t0",
+ "file": "lang\\en-us.js",
+ "line": 1386,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l350.t0",
+ "file": "lang\\en-us.js",
+ "line": 1387,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l360.t0",
+ "file": "lang\\en-us.js",
+ "line": 1388,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l362.t0",
+ "file": "lang\\en-us.js",
+ "line": 1389,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l37.t0",
+ "file": "lang\\en-us.js",
+ "line": 1390,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l372.t0",
+ "file": "lang\\en-us.js",
+ "line": 1391,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l376.t0",
+ "file": "lang\\en-us.js",
+ "line": 1392,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l382.t0",
+ "file": "lang\\en-us.js",
+ "line": 1393,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l387.t0",
+ "file": "lang\\en-us.js",
+ "line": 1394,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l393.t0",
+ "file": "lang\\en-us.js",
+ "line": 1395,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l400.t0",
+ "file": "lang\\en-us.js",
+ "line": 1396,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l406.t0",
+ "file": "lang\\en-us.js",
+ "line": 1397,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l409.t0",
+ "file": "lang\\en-us.js",
+ "line": 1398,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l416.t0",
+ "file": "lang\\en-us.js",
+ "line": 1399,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l42.t0",
+ "file": "lang\\en-us.js",
+ "line": 1400,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l47.t0",
+ "file": "lang\\en-us.js",
+ "line": 1401,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l51.t0",
+ "file": "lang\\en-us.js",
+ "line": 1402,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l537.t0",
+ "file": "lang\\en-us.js",
+ "line": 1403,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l568.t0",
+ "file": "lang\\en-us.js",
+ "line": 1404,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l589.t0",
+ "file": "lang\\en-us.js",
+ "line": 1405,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l601.t0",
+ "file": "lang\\en-us.js",
+ "line": 1406,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l602.t0",
+ "file": "lang\\en-us.js",
+ "line": 1407,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l737.t0",
+ "file": "lang\\en-us.js",
+ "line": 1408,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l84.t0",
+ "file": "lang\\en-us.js",
+ "line": 1409,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail_point.l126.t0",
+ "file": "lang\\en-us.js",
+ "line": 1410,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail_point.l128.t0",
+ "file": "lang\\en-us.js",
+ "line": 1411,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail_point.l14.t0",
+ "file": "lang\\en-us.js",
+ "line": 1412,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail_point.l14.t1",
+ "file": "lang\\en-us.js",
+ "line": 1413,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail_point.l15.t0",
+ "file": "lang\\en-us.js",
+ "line": 1414,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail_point.l225.t0",
+ "file": "lang\\en-us.js",
+ "line": 1415,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail_point.l236.t0",
+ "file": "lang\\en-us.js",
+ "line": 1416,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail_point.l99.t0",
+ "file": "lang\\en-us.js",
+ "line": 1417,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.list.l141.t0",
+ "file": "lang\\en-us.js",
+ "line": 1418,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.list.l152.t0",
+ "file": "lang\\en-us.js",
+ "line": 1419,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.list.l297.t0",
+ "file": "lang\\en-us.js",
+ "line": 1420,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.list.l302.t0",
+ "file": "lang\\en-us.js",
+ "line": 1421,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.list.l307.t0",
+ "file": "lang\\en-us.js",
+ "line": 1422,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.list.l317.t0",
+ "file": "lang\\en-us.js",
+ "line": 1423,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.list.l35.t0",
+ "file": "lang\\en-us.js",
+ "line": 1424,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.list.l6.t0",
+ "file": "lang\\en-us.js",
+ "line": 1425,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.list.l74.t0",
+ "file": "lang\\en-us.js",
+ "line": 1426,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.payment.l37.t0",
+ "file": "lang\\en-us.js",
+ "line": 1427,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.payment.l48.t0",
+ "file": "lang\\en-us.js",
+ "line": 1428,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.payment.l66.t0",
+ "file": "lang\\en-us.js",
+ "line": 1429,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.payment.l73.t0",
+ "file": "lang\\en-us.js",
+ "line": 1430,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l13.t0",
+ "file": "lang\\en-us.js",
+ "line": 1431,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l13.t1",
+ "file": "lang\\en-us.js",
+ "line": 1432,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l176.t0",
+ "file": "lang\\en-us.js",
+ "line": 1433,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l47.t0",
+ "file": "lang\\en-us.js",
+ "line": 1434,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l60.t0",
+ "file": "lang\\en-us.js",
+ "line": 1435,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l61.t0",
+ "file": "lang\\en-us.js",
+ "line": 1436,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l81.t0",
+ "file": "lang\\en-us.js",
+ "line": 1437,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.public.js.refundMethod.l10.t0",
+ "file": "lang\\en-us.js",
+ "line": 1438,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.public.js.refundMethod.l11.t0",
+ "file": "lang\\en-us.js",
+ "line": 1439,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "page.index.l108.t0",
+ "file": "lang\\en-us.js",
+ "line": 1442,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "page.index.l115.t0",
+ "file": "lang\\en-us.js",
+ "line": 1443,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "page.index.l119.t0",
+ "file": "lang\\en-us.js",
+ "line": 1444,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "page.index.l130.t0",
+ "file": "lang\\en-us.js",
+ "line": 1445,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "page.index.l133.t0",
+ "file": "lang\\en-us.js",
+ "line": 1446,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "page.index.l16.t0",
+ "file": "lang\\en-us.js",
+ "line": 1447,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "page.index.l47.t0",
+ "file": "lang\\en-us.js",
+ "line": 1448,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "page.index.l89.t0",
+ "file": "lang\\en-us.js",
+ "line": 1449,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "page.index.public.js.index.l121.t0",
+ "file": "lang\\en-us.js",
+ "line": 1450,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "page.index.public.js.index.l122.t0",
+ "file": "lang\\en-us.js",
+ "line": 1451,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "page.index.public.js.index.l126.t0",
+ "file": "lang\\en-us.js",
+ "line": 1452,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.detail.l129.t0",
+ "file": "lang\\en-us.js",
+ "line": 1465,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.detail.l144.t0",
+ "file": "lang\\en-us.js",
+ "line": 1466,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.detail.l187.t0",
+ "file": "lang\\en-us.js",
+ "line": 1467,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.detail.l195.t0",
+ "file": "lang\\en-us.js",
+ "line": 1468,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.detail.l208.t0",
+ "file": "lang\\en-us.js",
+ "line": 1469,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.detail.l213.t0",
+ "file": "lang\\en-us.js",
+ "line": 1470,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.detail.l296.t0",
+ "file": "lang\\en-us.js",
+ "line": 1471,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.detail.l296.t1",
+ "file": "lang\\en-us.js",
+ "line": 1472,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.detail.l77.t0",
+ "file": "lang\\en-us.js",
+ "line": 1473,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.detail.l77.t1",
+ "file": "lang\\en-us.js",
+ "line": 1474,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.detail.l78.t0",
+ "file": "lang\\en-us.js",
+ "line": 1475,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.goods_list.l29.t0",
+ "file": "lang\\en-us.js",
+ "line": 1476,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.goods_list.l79.t0",
+ "file": "lang\\en-us.js",
+ "line": 1477,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.goods_list.l99.t0",
+ "file": "lang\\en-us.js",
+ "line": 1478,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l125.t0",
+ "file": "lang\\en-us.js",
+ "line": 1479,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l128.t0",
+ "file": "lang\\en-us.js",
+ "line": 1480,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l13.t0",
+ "file": "lang\\en-us.js",
+ "line": 1481,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l148.t0",
+ "file": "lang\\en-us.js",
+ "line": 1482,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l181.t0",
+ "file": "lang\\en-us.js",
+ "line": 1483,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l234.t0",
+ "file": "lang\\en-us.js",
+ "line": 1484,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l239.t0",
+ "file": "lang\\en-us.js",
+ "line": 1485,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l240.t0",
+ "file": "lang\\en-us.js",
+ "line": 1486,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l241.t0",
+ "file": "lang\\en-us.js",
+ "line": 1487,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l242.t0",
+ "file": "lang\\en-us.js",
+ "line": 1488,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l243.t0",
+ "file": "lang\\en-us.js",
+ "line": 1489,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l244.t0",
+ "file": "lang\\en-us.js",
+ "line": 1490,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l245.t0",
+ "file": "lang\\en-us.js",
+ "line": 1491,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l246.t0",
+ "file": "lang\\en-us.js",
+ "line": 1492,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l247.t0",
+ "file": "lang\\en-us.js",
+ "line": 1493,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l276.t0",
+ "file": "lang\\en-us.js",
+ "line": 1494,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l305.t0",
+ "file": "lang\\en-us.js",
+ "line": 1495,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l31.t0",
+ "file": "lang\\en-us.js",
+ "line": 1496,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l40.t0",
+ "file": "lang\\en-us.js",
+ "line": 1497,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l41.t0",
+ "file": "lang\\en-us.js",
+ "line": 1498,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l50.t0",
+ "file": "lang\\en-us.js",
+ "line": 1499,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l55.t0",
+ "file": "lang\\en-us.js",
+ "line": 1500,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l583.t0",
+ "file": "lang\\en-us.js",
+ "line": 1501,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l59.t0",
+ "file": "lang\\en-us.js",
+ "line": 1502,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l63.t0",
+ "file": "lang\\en-us.js",
+ "line": 1503,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l67.t0",
+ "file": "lang\\en-us.js",
+ "line": 1504,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l84.t0",
+ "file": "lang\\en-us.js",
+ "line": 1505,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l86.t0",
+ "file": "lang\\en-us.js",
+ "line": 1506,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l94.t0",
+ "file": "lang\\en-us.js",
+ "line": 1507,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.order_list.l85.t0",
+ "file": "lang\\en-us.js",
+ "line": 1508,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.payment.l133.t0",
+ "file": "lang\\en-us.js",
+ "line": 1509,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.payment.l217.t0",
+ "file": "lang\\en-us.js",
+ "line": 1510,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.public.js.payment.l283.t0",
+ "file": "lang\\en-us.js",
+ "line": 1511,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.public.js.payment.l285.t0",
+ "file": "lang\\en-us.js",
+ "line": 1512,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.public.js.payment.l318.t0",
+ "file": "lang\\en-us.js",
+ "line": 1513,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.public.js.payment.l356.t0",
+ "file": "lang\\en-us.js",
+ "line": 1514,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.public.js.payment.l363.t0",
+ "file": "lang\\en-us.js",
+ "line": 1515,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.public.js.payment.l378.t0",
+ "file": "lang\\en-us.js",
+ "line": 1516,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.public.js.payment.l95.t0",
+ "file": "lang\\en-us.js",
+ "line": 1517,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "seal.medium.detail.l17.t0",
+ "file": "lang\\en-us.js",
+ "line": 1532,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "seal.medium.detail.l18.t0",
+ "file": "lang\\en-us.js",
+ "line": 1533,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "seal.medium.detail.l29.t0",
+ "file": "lang\\en-us.js",
+ "line": 1534,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "seal.medium.search.l6.t0",
+ "file": "lang\\en-us.js",
+ "line": 1535,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "seal.structure.l12.t0",
+ "file": "lang\\en-us.js",
+ "line": 1536,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "seal.structure.l23.t0",
+ "file": "lang\\en-us.js",
+ "line": 1537,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "seal.structure.l6.t0",
+ "file": "lang\\en-us.js",
+ "line": 1538,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.agreement.contenr.l11.t0",
+ "file": "lang\\en-us.js",
+ "line": 1568,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.agreement.contenr.l12.t0",
+ "file": "lang\\en-us.js",
+ "line": 1569,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.agreement.contenr.l13.t0",
+ "file": "lang\\en-us.js",
+ "line": 1570,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.cases.index.l143.t0",
+ "file": "lang\\en-us.js",
+ "line": 1571,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.cases.index.l167.t0",
+ "file": "lang\\en-us.js",
+ "line": 1572,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.cases.index.l22.t0",
+ "file": "lang\\en-us.js",
+ "line": 1573,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.cases.index.l31.t0",
+ "file": "lang\\en-us.js",
+ "line": 1574,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.cases.index.l47.t0",
+ "file": "lang\\en-us.js",
+ "line": 1575,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.cases.index.l56.t0",
+ "file": "lang\\en-us.js",
+ "line": 1576,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.cases.index.l60.t0",
+ "file": "lang\\en-us.js",
+ "line": 1577,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.cases.index.l62.t0",
+ "file": "lang\\en-us.js",
+ "line": 1578,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.cases.index.l66.t0",
+ "file": "lang\\en-us.js",
+ "line": 1579,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.cases.index.l68.t0",
+ "file": "lang\\en-us.js",
+ "line": 1580,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.files.list.l32.t0",
+ "file": "lang\\en-us.js",
+ "line": 1583,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.files.list.l5.t0",
+ "file": "lang\\en-us.js",
+ "line": 1584,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.form.formdata.l72.t0",
+ "file": "lang\\en-us.js",
+ "line": 1585,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.form.l8.t0",
+ "file": "lang\\en-us.js",
+ "line": 1586,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.brand.l14.t0",
+ "file": "lang\\en-us.js",
+ "line": 1587,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.brand.l79.t0",
+ "file": "lang\\en-us.js",
+ "line": 1588,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon.l10.t0",
+ "file": "lang\\en-us.js",
+ "line": 1589,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon.l102.t0",
+ "file": "lang\\en-us.js",
+ "line": 1590,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon.l11.t0",
+ "file": "lang\\en-us.js",
+ "line": 1591,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon.l44.t0",
+ "file": "lang\\en-us.js",
+ "line": 1592,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon.l45.t0",
+ "file": "lang\\en-us.js",
+ "line": 1593,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon.l52.t0",
+ "file": "lang\\en-us.js",
+ "line": 1594,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon.l52.t1",
+ "file": "lang\\en-us.js",
+ "line": 1595,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon.l65.t0",
+ "file": "lang\\en-us.js",
+ "line": 1596,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon.l66.t0",
+ "file": "lang\\en-us.js",
+ "line": 1597,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon.l70.t0",
+ "file": "lang\\en-us.js",
+ "line": 1598,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon.l8.t0",
+ "file": "lang\\en-us.js",
+ "line": 1599,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l13.t0",
+ "file": "lang\\en-us.js",
+ "line": 1600,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l186.t0",
+ "file": "lang\\en-us.js",
+ "line": 1601,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l189.t0",
+ "file": "lang\\en-us.js",
+ "line": 1602,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l192.t0",
+ "file": "lang\\en-us.js",
+ "line": 1603,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l195.t0",
+ "file": "lang\\en-us.js",
+ "line": 1604,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l207.t0",
+ "file": "lang\\en-us.js",
+ "line": 1605,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l207.t1",
+ "file": "lang\\en-us.js",
+ "line": 1606,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l212.t0",
+ "file": "lang\\en-us.js",
+ "line": 1607,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l247.t0",
+ "file": "lang\\en-us.js",
+ "line": 1608,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l249.t0",
+ "file": "lang\\en-us.js",
+ "line": 1609,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l27.t0",
+ "file": "lang\\en-us.js",
+ "line": 1610,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.evaluate.l47.t0",
+ "file": "lang\\en-us.js",
+ "line": 1611,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.evaluate.l52.t0",
+ "file": "lang\\en-us.js",
+ "line": 1612,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.evaluate.l69.t0",
+ "file": "lang\\en-us.js",
+ "line": 1613,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.evaluate.l82.t0",
+ "file": "lang\\en-us.js",
+ "line": 1614,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.evaluate.l82.t1",
+ "file": "lang\\en-us.js",
+ "line": 1615,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.evaluate.l82.t2",
+ "file": "lang\\en-us.js",
+ "line": 1616,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.not_exist.l5.t0",
+ "file": "lang\\en-us.js",
+ "line": 1617,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.search.l15.t0",
+ "file": "lang\\en-us.js",
+ "line": 1618,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.search.l165.t0",
+ "file": "lang\\en-us.js",
+ "line": 1619,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.search.l33.t0",
+ "file": "lang\\en-us.js",
+ "line": 1620,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.search.l86.t0",
+ "file": "lang\\en-us.js",
+ "line": 1621,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.search.l99.t0",
+ "file": "lang\\en-us.js",
+ "line": 1622,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.activist.l10.t0",
+ "file": "lang\\en-us.js",
+ "line": 1623,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.activist.l115.t0",
+ "file": "lang\\en-us.js",
+ "line": 1624,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.activist.l12.t0",
+ "file": "lang\\en-us.js",
+ "line": 1625,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.activist.l30.t0",
+ "file": "lang\\en-us.js",
+ "line": 1626,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.evaluate.l16.t0",
+ "file": "lang\\en-us.js",
+ "line": 1627,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.evaluate.l42.t0",
+ "file": "lang\\en-us.js",
+ "line": 1628,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.evaluate.l47.t0",
+ "file": "lang\\en-us.js",
+ "line": 1629,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.evaluate.l72.t0",
+ "file": "lang\\en-us.js",
+ "line": 1630,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.logistics.l37.t0",
+ "file": "lang\\en-us.js",
+ "line": 1631,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.public.js.evaluate.l160.t0",
+ "file": "lang\\en-us.js",
+ "line": 1632,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.public.js.evaluate.l168.t0",
+ "file": "lang\\en-us.js",
+ "line": 1633,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.public.js.evaluate.l200.t0",
+ "file": "lang\\en-us.js",
+ "line": 1634,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.public.js.evaluate.l90.t0",
+ "file": "lang\\en-us.js",
+ "line": 1635,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund.l17.t0",
+ "file": "lang\\en-us.js",
+ "line": 1636,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund.l175.t0",
+ "file": "lang\\en-us.js",
+ "line": 1637,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund.l18.t0",
+ "file": "lang\\en-us.js",
+ "line": 1638,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund.l24.t0",
+ "file": "lang\\en-us.js",
+ "line": 1639,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund.l242.t0",
+ "file": "lang\\en-us.js",
+ "line": 1640,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund.l25.t0",
+ "file": "lang\\en-us.js",
+ "line": 1641,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund.l34.t0",
+ "file": "lang\\en-us.js",
+ "line": 1642,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund.l42.t0",
+ "file": "lang\\en-us.js",
+ "line": 1643,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund.l48.t0",
+ "file": "lang\\en-us.js",
+ "line": 1644,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund.l54.t0",
+ "file": "lang\\en-us.js",
+ "line": 1645,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund.l81.t0",
+ "file": "lang\\en-us.js",
+ "line": 1646,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_batch.l26.t0",
+ "file": "lang\\en-us.js",
+ "line": 1647,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l10.t0",
+ "file": "lang\\en-us.js",
+ "line": 1648,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l100.t0",
+ "file": "lang\\en-us.js",
+ "line": 1649,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l106.t0",
+ "file": "lang\\en-us.js",
+ "line": 1650,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l121.t0",
+ "file": "lang\\en-us.js",
+ "line": 1651,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l121.t1",
+ "file": "lang\\en-us.js",
+ "line": 1652,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l13.t0",
+ "file": "lang\\en-us.js",
+ "line": 1653,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l139.t0",
+ "file": "lang\\en-us.js",
+ "line": 1654,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l14.t0",
+ "file": "lang\\en-us.js",
+ "line": 1655,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l19.t0",
+ "file": "lang\\en-us.js",
+ "line": 1656,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l24.t0",
+ "file": "lang\\en-us.js",
+ "line": 1657,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l26.t0",
+ "file": "lang\\en-us.js",
+ "line": 1658,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l29.t0",
+ "file": "lang\\en-us.js",
+ "line": 1659,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l32.t0",
+ "file": "lang\\en-us.js",
+ "line": 1660,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l38.t0",
+ "file": "lang\\en-us.js",
+ "line": 1661,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l51.t0",
+ "file": "lang\\en-us.js",
+ "line": 1662,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l51.t1",
+ "file": "lang\\en-us.js",
+ "line": 1663,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l52.t0",
+ "file": "lang\\en-us.js",
+ "line": 1664,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l52.t1",
+ "file": "lang\\en-us.js",
+ "line": 1665,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l52.t2",
+ "file": "lang\\en-us.js",
+ "line": 1666,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l52.t3",
+ "file": "lang\\en-us.js",
+ "line": 1667,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l56.t0",
+ "file": "lang\\en-us.js",
+ "line": 1668,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l57.t0",
+ "file": "lang\\en-us.js",
+ "line": 1669,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l58.t0",
+ "file": "lang\\en-us.js",
+ "line": 1670,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l59.t0",
+ "file": "lang\\en-us.js",
+ "line": 1671,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l60.t0",
+ "file": "lang\\en-us.js",
+ "line": 1672,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l76.t0",
+ "file": "lang\\en-us.js",
+ "line": 1673,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l8.t0",
+ "file": "lang\\en-us.js",
+ "line": 1674,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l80.t0",
+ "file": "lang\\en-us.js",
+ "line": 1675,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l88.t0",
+ "file": "lang\\en-us.js",
+ "line": 1676,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l9.t0",
+ "file": "lang\\en-us.js",
+ "line": 1677,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l92.t0",
+ "file": "lang\\en-us.js",
+ "line": 1678,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_goods_select.l28.t0",
+ "file": "lang\\en-us.js",
+ "line": 1679,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_goods_select.l53.t0",
+ "file": "lang\\en-us.js",
+ "line": 1680,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.pay.cashier.l23.t0",
+ "file": "lang\\en-us.js",
+ "line": 1681,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.pay.cashier.l25.t0",
+ "file": "lang\\en-us.js",
+ "line": 1682,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.pay.cashier.l27.t0",
+ "file": "lang\\en-us.js",
+ "line": 1683,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.pay.result.l21.t0",
+ "file": "lang\\en-us.js",
+ "line": 1684,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.pay.result.l37.t0",
+ "file": "lang\\en-us.js",
+ "line": 1685,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.pay.result.l46.t0",
+ "file": "lang\\en-us.js",
+ "line": 1686,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.pay.wx_pay.l6.t0",
+ "file": "lang\\en-us.js",
+ "line": 1687,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.list.l20.t0",
+ "file": "lang\\en-us.js",
+ "line": 1688,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.list.l276.t0",
+ "file": "lang\\en-us.js",
+ "line": 1689,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.list.l29.t0",
+ "file": "lang\\en-us.js",
+ "line": 1690,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.list.l34.t0",
+ "file": "lang\\en-us.js",
+ "line": 1691,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.list.l44.t0",
+ "file": "lang\\en-us.js",
+ "line": 1692,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.list.l44.t1",
+ "file": "lang\\en-us.js",
+ "line": 1693,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.list.l50.t0",
+ "file": "lang\\en-us.js",
+ "line": 1694,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.list.l56.t0",
+ "file": "lang\\en-us.js",
+ "line": 1695,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.list.l67.t0",
+ "file": "lang\\en-us.js",
+ "line": 1696,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.list.l7.t0",
+ "file": "lang\\en-us.js",
+ "line": 1697,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.list.l89.t0",
+ "file": "lang\\en-us.js",
+ "line": 1698,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.order_list.l16.t0",
+ "file": "lang\\en-us.js",
+ "line": 1699,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.order_list.l24.t0",
+ "file": "lang\\en-us.js",
+ "line": 1700,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.order_list.l29.t0",
+ "file": "lang\\en-us.js",
+ "line": 1701,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.order_list.l34.t0",
+ "file": "lang\\en-us.js",
+ "line": 1702,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.storeclose.l41.t0",
+ "file": "lang\\en-us.js",
+ "line": 1703,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.storeclose.l45.t0",
+ "file": "lang\\en-us.js",
+ "line": 1704,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.storeclose.l47.t0",
+ "file": "lang\\en-us.js",
+ "line": 1705,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.weapp.order_shipping.l20.t0",
+ "file": "lang\\en-us.js",
+ "line": 1706,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.weapp.order_shipping.l32.t0",
+ "file": "lang\\en-us.js",
+ "line": 1707,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "article.detail.l5.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 550,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "article.list.l24.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 551,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "article.list.l91.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 552,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "contact.l165.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 587,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "contact.l314.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 588,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "contact.l372.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 589,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "contact.l376.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 590,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "contact.l380.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 591,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "contact.l405.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 592,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "contact.l76.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 593,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "contact.l93.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 594,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l100.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 707,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l101.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 708,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l126.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 709,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l131.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 710,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l133.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 711,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l134.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 712,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l16.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 713,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l166.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 714,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l194.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 715,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l210.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 716,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l27.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 717,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l278.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 718,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l32.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 719,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l45.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 720,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l52.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 721,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.apply.l82.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 722,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.bill.l11.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 723,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.bill.l19.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 724,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.child_fenxiao.l23.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 725,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.child_fenxiao.l24.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 726,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.child_fenxiao.l32.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 727,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.goods_list.l118.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 728,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.goods_list.l43.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 729,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.goods_list.l49.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 730,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.goods_list.l56.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 731,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.goods_list.l59.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 732,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l114.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 733,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l124.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 734,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l125.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 735,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l133.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 736,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l142.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 737,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l162.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 738,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l171.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 739,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l172.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 740,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l180.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 741,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l21.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 742,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l21.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 743,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l214.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 744,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l215.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 745,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l22.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 746,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l223.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 747,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l231.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 748,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l239.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 749,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l254.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 750,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l254.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 751,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l293.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 752,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l33.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 753,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l33.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 754,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l34.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 755,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l36.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 756,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l371.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 757,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l43.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 758,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l483.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 759,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l484.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 760,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l485.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 761,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l498.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 762,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l499.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 763,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l512.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 764,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l512.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 765,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l514.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 766,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l514.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 767,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l526.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 768,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l527.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 769,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l528.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 770,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l539.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 771,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l540.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 772,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l55.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 773,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l553.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 774,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l554.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 775,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l567.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 776,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l568.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 777,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l59.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 778,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l64.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 779,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l70.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 780,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l93.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 781,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.index.l94.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 782,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l119.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 783,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l131.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 784,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l143.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 785,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l144.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 786,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l157.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 787,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l169.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 788,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l181.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 789,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l181.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 790,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l193.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 791,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l20.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 792,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l221.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 793,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l24.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 794,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.level.l28.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 795,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.order.l17.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 796,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.order.l19.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 797,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.order.l20.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 798,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.order.l81.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 799,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.order.l83.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 800,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.order.l85.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 801,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.order.l87.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 802,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.order_detail.l47.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 803,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.order_detail.l56.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 804,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.order_detail.l60.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 805,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.promote.l21.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 806,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.promote.l22.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 807,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.promote.l35.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 808,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.promote.l44.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 809,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.promote_code.l114.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 810,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.promote_code.l139.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 811,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.promote_code.l14.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 812,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.promote_code.l18.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 813,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.promote_code.l24.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 814,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.promote_code.l29.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 815,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l19.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 816,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l21.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 817,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l33.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 818,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l44.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 819,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l45.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 820,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l57.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 821,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l68.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 822,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.team.l92.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 823,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.team.l96.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 824,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l178.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 825,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l189.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 826,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l19.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 827,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l196.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 828,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l205.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 829,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l238.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 830,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l31.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 831,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l41.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 832,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l42.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 833,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l46.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 834,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l48.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 835,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l5.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 836,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l59.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 837,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l6.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 838,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l64.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 839,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l12.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 840,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l12.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 841,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l13.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 842,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l28.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 843,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l45.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 844,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l49.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 845,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l53.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 846,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l57.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 847,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l78.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 848,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l10.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 849,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l14.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 850,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l18.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 851,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l22.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 852,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l26.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 853,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l30.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 854,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l34.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 855,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l38.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 856,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l42.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 857,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l46.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 858,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l123.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 903,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l143.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 904,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l145.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 905,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l17.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 906,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l192.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 907,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l202.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 908,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l202.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 909,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l221.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 910,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l226.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 911,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l239.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 912,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l294.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 913,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l298.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 914,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l341.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 915,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l341.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 916,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.cart.l8.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 917,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.category.l51.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 918,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l129.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 919,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l131.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 920,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l132.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 921,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l133.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 922,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l134.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 923,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l152.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 924,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l18.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 925,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l187.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 926,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l194.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 927,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l220.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 928,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l23.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 929,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l300.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 930,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l348.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 931,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l349.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 932,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l350.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 933,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l354.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 934,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l379.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 935,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l383.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 936,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l396.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 937,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l523.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 938,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l527.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 939,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l55.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 940,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l591.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 941,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.detail.l99.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 942,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.list.l148.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 943,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.list.l160.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 944,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.list.l168.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 945,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.list.l170.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 946,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.list.l172.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 947,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.list.l188.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 948,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.list.l19.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 949,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.list.l203.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 950,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.list.l23.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 951,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.list.l28.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 952,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.list.l40.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 953,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.cart.l236.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 954,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.cart.l243.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 955,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.cart.l243.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 956,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.cart.l385.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 957,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.detail.l321.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 958,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.detail.l323.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 959,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.detail.l379.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 960,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.detail.l386.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 961,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.detail.l392.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 962,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.detail.l392.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 963,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.detail.l392.t2",
+ "file": "lang\\zh-cn.js",
+ "line": 964,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.detail.l395.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 965,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.list.l126.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 966,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.list.l126.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 967,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.list.l126.t2",
+ "file": "lang\\zh-cn.js",
+ "line": 968,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.list.l365.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 969,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.list.l371.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 970,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.list.l378.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 971,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.list.l384.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 972,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "goods.public.js.list.l78.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 973,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "help.list.l73.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 980,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "help.list.l81.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 981,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "help.list.l9.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 982,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l100.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1001,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l13.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1002,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l169.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1003,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l18.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1004,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l188.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1005,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l19.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1006,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l196.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1007,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l196.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 1008,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l200.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1009,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l204.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1010,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l208.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1011,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l212.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1012,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l216.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1013,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l230.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1014,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l286.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1015,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "login.find.l7.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1016,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account.l10.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1025,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account.l106.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1026,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account.l107.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1027,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account.l118.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1028,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account.l123.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1029,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account.l184.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1030,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account.l32.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1031,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account.l37.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1032,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account.l55.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1033,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account_edit.l139.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1034,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account_edit.l163.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1035,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account_edit.l178.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1036,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account_edit.l20.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1037,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account_edit.l226.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1038,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account_edit.l23.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1039,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account_edit.l230.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1040,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account_edit.l24.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1041,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account_edit.l5.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1042,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account_edit.l67.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1043,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.account_edit.l71.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1044,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address.l196.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1045,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address.l201.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1046,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address.l247.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1047,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address.l293.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1048,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address.l38.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1049,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address.l57.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1050,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address_edit.l138.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1051,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address_edit.l142.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1052,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address_edit.l200.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1053,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address_edit.l233.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1054,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address_edit.l234.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1055,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address_edit.l241.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1056,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address_edit.l259.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1057,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address_edit.l319.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1058,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address_edit.l4.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1059,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.address_edit.l44.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1060,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.apply_withdrawal.l109.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1061,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.apply_withdrawal.l19.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1062,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.apply_withdrawal.l24.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1063,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.apply_withdrawal.l34.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1064,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.apply_withdrawal.l40.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1065,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l18.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1066,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l22.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1067,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l33.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1068,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l46.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1069,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l5.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1070,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l54.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1071,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l59.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1072,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l63.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1073,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l67.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1074,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l73.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1075,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l74.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1076,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.assets.l9.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1077,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.balance.l19.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1078,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.balance.l24.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1079,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.balance.l28.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1080,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.balance.l33.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1081,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.balance.l49.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1082,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.balance.l56.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1083,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.balance_detail.l124.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1084,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.balance_detail.l46.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1085,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.balance_detail.l68.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1086,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.balance_detail.l71.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1087,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancellation.l13.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1088,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancellation.l15.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1089,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancellation.l63.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1090,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelrefuse.l5.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1091,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelrefuse.l6.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1092,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelrefuse.l8.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1093,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelstatus.l16.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1094,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelstatus.l17.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1095,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelstatus.l26.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1096,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelstatus.l27.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1097,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelstatus.l33.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1098,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelstatus.l8.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1099,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelstatus.l84.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1100,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelstatus.l85.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1101,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelstatus.l9.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1102,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelsuccess.l7.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1103,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.cancelsuccess.l8.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1104,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l104.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1105,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l174.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1106,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l25.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1107,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l31.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1108,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l42.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1109,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l52.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1110,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l53.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1111,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l57.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1112,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l58.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1113,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l62.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1114,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l63.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1115,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l72.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1116,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l81.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1117,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l82.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1118,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l86.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1119,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card.l91.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1120,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card_buy.l175.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1121,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card_buy.l214.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1122,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card_buy.l353.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1123,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.card_buy.l81.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1124,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.collection.l33.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1125,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.collection.l33.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 1126,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.coupon.l45.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1127,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.coupon.l5.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1128,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.coupon.l6.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1129,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.footprint.l137.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1130,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.footprint.l4.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1131,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.footprint.l49.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1132,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.footprint.l49.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 1133,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.footprint.l57.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1134,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.footprint.l59.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1135,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info.l101.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1136,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info.l14.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1137,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info.l37.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1138,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info.l43.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1139,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info.l50.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1140,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info.l66.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1141,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info.l75.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1142,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info.l83.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1143,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l10.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1144,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l120.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1145,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l131.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1146,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l134.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1147,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l139.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1148,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l147.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1149,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l57.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1150,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l7.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1151,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l71.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1152,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l72.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1153,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l77.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1154,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l82.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1155,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.info_edit.l87.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1156,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l126.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1157,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l133.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1158,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l142.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1159,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l151.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1160,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l17.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1161,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l20.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1162,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l217.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1163,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l50.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1164,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l55.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1165,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l56.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1166,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l61.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1167,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l71.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1168,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.invite_friends.l98.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1169,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l100.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1170,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l106.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1171,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l113.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1172,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l12.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1173,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l268.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1174,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l57.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1175,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l59.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1176,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l72.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1177,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l91.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1178,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l92.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1179,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l98.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1180,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level.l99.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1181,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level_growth_rules.l23.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1182,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level_growth_rules.l25.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1183,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level_growth_rules.l30.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1184,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level_growth_rules.l33.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1185,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level_growth_rules.l34.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1186,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level_growth_rules.l35.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1187,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.level_growth_rules.l36.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1188,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.modify_face.l117.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1189,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.modify_face.l14.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1190,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.modify_face.l22.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1191,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.modify_face.l23.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1192,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.modify_face.l95.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1193,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.pay_password.l10.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1194,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.pay_password.l11.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1195,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.pay_password.l12.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1196,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.pay_password.l152.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1197,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.pay_password.l3.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1198,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.pay_password.l37.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1199,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.pay_password.l4.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1200,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.pay_password.l52.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1201,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l20.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1202,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l24.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1203,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l28.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1204,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l32.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1205,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l48.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1206,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l53.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1207,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l57.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1208,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l58.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1209,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l60.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1210,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l65.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1211,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l66.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1212,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.point.l68.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1213,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l157.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1214,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l404.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1215,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l411.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1216,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l579.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1217,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l58.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1218,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l612.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1219,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l62.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1220,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l67.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1221,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l726.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1222,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l744.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1223,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l869.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1224,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.info.l874.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1225,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.signin.l201.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1227,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.signin.l236.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1228,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.signin.l237.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1229,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.signin.l268.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1230,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "member.public.js.signin.l31.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1231,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.detail.l102.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1236,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.detail.l31.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1237,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.detail.l35.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1238,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.detail.l35.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 1239,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.detail.l7.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1240,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.merchcategory.l83.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1241,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.merchcategory.l87.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1242,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l103.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1243,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l126.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1244,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l133.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1245,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l170.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1246,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l496.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1247,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l533.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1248,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l56.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1249,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l56.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 1250,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l578.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1251,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l58.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1252,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l58.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 1253,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l58.t2",
+ "file": "lang\\zh-cn.js",
+ "line": 1254,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l58.t3",
+ "file": "lang\\zh-cn.js",
+ "line": 1255,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l585.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1256,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l63.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1257,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l635.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1258,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l641.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1259,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l648.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1260,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l658.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1261,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l665.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1262,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l67.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1263,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l671.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1264,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l677.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1265,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l71.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1266,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l81.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1267,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l85.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1268,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l908.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1269,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l929.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1270,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l93.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1271,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l93.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 1272,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l96.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1273,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.edit.l99.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1274,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "merch.public.js.list.l80.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1275,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "notice.detail.l87.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1286,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "notice.list.l10.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1287,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "notice.list.l18.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1288,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l106.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1359,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l109.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1360,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l16.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1361,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l192.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1362,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l192.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 1363,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l198.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1364,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l198.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 1365,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l208.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1366,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l214.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1367,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l221.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1368,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l227.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1369,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l233.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1370,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l241.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1371,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l247.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1372,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l254.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1373,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l260.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1374,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l266.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1375,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l274.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1376,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l276.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1377,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l276.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 1378,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l280.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1379,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l282.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1380,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l282.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 1381,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l286.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1382,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l293.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1383,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l299.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1384,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l305.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1385,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l329.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1386,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l350.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1387,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l360.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1388,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l362.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1389,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l37.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1390,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l372.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1391,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l376.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1392,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l382.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1393,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l387.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1394,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l393.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1395,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l400.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1396,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l406.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1397,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l409.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1398,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l416.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1399,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l42.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1400,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l47.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1401,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l51.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1402,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l537.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1403,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l568.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1404,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l589.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1405,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l601.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1406,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l602.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1407,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l737.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1408,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail.l84.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1409,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail_point.l126.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1410,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail_point.l128.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1411,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail_point.l14.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1412,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail_point.l14.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 1413,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail_point.l15.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1414,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail_point.l225.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1415,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail_point.l236.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1416,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.detail_point.l99.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1417,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.list.l141.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1418,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.list.l152.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1419,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.list.l297.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1420,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.list.l302.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1421,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.list.l307.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1422,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.list.l317.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1423,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.list.l35.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1424,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.list.l6.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1425,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.list.l74.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1426,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.payment.l37.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1427,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.payment.l48.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1428,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.payment.l66.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1429,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.payment.l73.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1430,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l13.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1431,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l13.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 1432,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l176.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1433,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l47.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1434,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l60.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1435,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l61.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1436,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l81.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1437,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.public.js.refundMethod.l10.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1438,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "order.public.js.refundMethod.l11.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1439,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "page.index.l108.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1442,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "page.index.l115.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1443,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "page.index.l119.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1444,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "page.index.l130.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1445,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "page.index.l133.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1446,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "page.index.l16.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1447,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "page.index.l47.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1448,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "page.index.l89.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1449,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "page.index.public.js.index.l121.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1450,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "page.index.public.js.index.l122.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1451,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "page.index.public.js.index.l126.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1452,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.detail.l129.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1465,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.detail.l144.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1466,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.detail.l187.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1467,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.detail.l195.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1468,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.detail.l208.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1469,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.detail.l213.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1470,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.detail.l296.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1471,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.detail.l296.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 1472,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.detail.l77.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1473,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.detail.l77.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 1474,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.detail.l78.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1475,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.goods_list.l29.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1476,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.goods_list.l79.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1477,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.goods_list.l99.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1478,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l125.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1479,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l128.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1480,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l13.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1481,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l148.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1482,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l181.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1483,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l234.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1484,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l239.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1485,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l240.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1486,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l241.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1487,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l242.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1488,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l243.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1489,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l244.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1490,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l245.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1491,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l246.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1492,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l247.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1493,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l276.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1494,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l305.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1495,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l31.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1496,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l40.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1497,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l41.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1498,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l50.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1499,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l55.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1500,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l583.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1501,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l59.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1502,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l63.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1503,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l67.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1504,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l84.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1505,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l86.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1506,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.list.l94.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1507,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.order_list.l85.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1508,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.payment.l133.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1509,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.payment.l217.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1510,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.public.js.payment.l283.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1511,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.public.js.payment.l285.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1512,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.public.js.payment.l318.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1513,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.public.js.payment.l356.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1514,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.public.js.payment.l363.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1515,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.public.js.payment.l378.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1516,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "point.public.js.payment.l95.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1517,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "seal.medium.detail.l17.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1532,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "seal.medium.detail.l18.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1533,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "seal.medium.detail.l29.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1534,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "seal.medium.search.l6.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1535,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "seal.structure.l12.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1536,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "seal.structure.l23.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1537,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "seal.structure.l6.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1538,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.agreement.contenr.l11.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1568,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.agreement.contenr.l12.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1569,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.agreement.contenr.l13.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1570,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.cases.index.l143.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1571,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.cases.index.l167.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1572,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.cases.index.l22.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1573,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.cases.index.l31.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1574,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.cases.index.l47.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1575,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.cases.index.l56.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1576,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.cases.index.l60.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1577,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.cases.index.l62.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1578,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.cases.index.l66.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1579,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.cases.index.l68.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1580,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.files.list.l32.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1583,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.files.list.l5.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1584,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.form.formdata.l72.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1585,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.form.l8.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1586,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.brand.l14.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1587,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.brand.l79.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1588,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon.l10.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1589,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon.l102.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1590,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon.l11.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1591,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon.l44.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1592,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon.l45.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1593,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon.l52.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1594,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon.l52.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 1595,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon.l65.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1596,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon.l66.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1597,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon.l70.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1598,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon.l8.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1599,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l13.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1600,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l186.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1601,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l189.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1602,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l192.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1603,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l195.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1604,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l207.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1605,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l207.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 1606,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l212.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1607,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l247.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1608,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l249.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1609,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l27.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1610,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.evaluate.l47.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1611,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.evaluate.l52.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1612,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.evaluate.l69.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1613,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.evaluate.l82.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1614,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.evaluate.l82.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 1615,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.evaluate.l82.t2",
+ "file": "lang\\zh-cn.js",
+ "line": 1616,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.not_exist.l5.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1617,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.search.l15.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1618,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.search.l165.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1619,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.search.l33.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1620,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.search.l86.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1621,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.goods.search.l99.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1622,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.activist.l10.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1623,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.activist.l115.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1624,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.activist.l12.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1625,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.activist.l30.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1626,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.evaluate.l16.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1627,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.evaluate.l42.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1628,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.evaluate.l47.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1629,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.evaluate.l72.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1630,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.logistics.l37.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1631,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.public.js.evaluate.l160.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1632,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.public.js.evaluate.l168.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1633,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.public.js.evaluate.l200.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1634,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.public.js.evaluate.l90.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1635,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund.l17.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1636,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund.l175.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1637,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund.l18.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1638,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund.l24.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1639,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund.l242.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1640,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund.l25.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1641,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund.l34.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1642,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund.l42.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1643,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund.l48.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1644,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund.l54.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1645,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund.l81.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1646,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_batch.l26.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1647,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l10.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1648,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l100.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1649,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l106.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1650,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l121.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1651,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l121.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 1652,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l13.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1653,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l139.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1654,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l14.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1655,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l19.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1656,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l24.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1657,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l26.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1658,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l29.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1659,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l32.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1660,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l38.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1661,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l51.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1662,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l51.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 1663,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l52.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1664,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l52.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 1665,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l52.t2",
+ "file": "lang\\zh-cn.js",
+ "line": 1666,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l52.t3",
+ "file": "lang\\zh-cn.js",
+ "line": 1667,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l56.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1668,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l57.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1669,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l58.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1670,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l59.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1671,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l60.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1672,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l76.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1673,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l8.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1674,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l80.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1675,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l88.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1676,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l9.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1677,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_detail.l92.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1678,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_goods_select.l28.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1679,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.order.refund_goods_select.l53.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1680,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.pay.cashier.l23.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1681,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.pay.cashier.l25.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1682,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.pay.cashier.l27.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1683,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.pay.result.l21.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1684,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.pay.result.l37.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1685,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.pay.result.l46.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1686,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.pay.wx_pay.l6.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1687,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.list.l20.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1688,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.list.l276.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1689,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.list.l29.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1690,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.list.l34.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1691,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.list.l44.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1692,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.list.l44.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 1693,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.list.l50.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1694,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.list.l56.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1695,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.list.l67.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1696,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.list.l7.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1697,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.list.l89.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1698,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.order_list.l16.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1699,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.order_list.l24.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1700,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.order_list.l29.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1701,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.recharge.order_list.l34.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1702,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.storeclose.l41.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1703,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.storeclose.l45.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1704,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.storeclose.l47.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1705,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.weapp.order_shipping.l20.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1706,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ },
+ {
+ "key": "tool.weapp.order_shipping.l32.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1707,
+ "reason": "行号式 locational key(如 chat-message.l60.t0),文件名/行号一变就失效(违反长期维护目标 4)"
+ }
+ ],
+ "跨业务域同名 tail": [
+ {
+ "key": "article.detail.l5.t0",
+ "file": "lang\\en-us.js",
+ "line": 550,
+ "reason": "跨业务域同名 tail=\"l5.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l5.t0",
+ "file": "lang\\en-us.js",
+ "line": 836,
+ "reason": "跨业务域同名 tail=\"l5.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.account_edit.l5.t0",
+ "file": "lang\\en-us.js",
+ "line": 1042,
+ "reason": "跨业务域同名 tail=\"l5.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l5.t0",
+ "file": "lang\\en-us.js",
+ "line": 1070,
+ "reason": "跨业务域同名 tail=\"l5.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelrefuse.l5.t0",
+ "file": "lang\\en-us.js",
+ "line": 1091,
+ "reason": "跨业务域同名 tail=\"l5.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.coupon.l5.t0",
+ "file": "lang\\en-us.js",
+ "line": 1128,
+ "reason": "跨业务域同名 tail=\"l5.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.files.list.l5.t0",
+ "file": "lang\\en-us.js",
+ "line": 1584,
+ "reason": "跨业务域同名 tail=\"l5.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.not_exist.l5.t0",
+ "file": "lang\\en-us.js",
+ "line": 1617,
+ "reason": "跨业务域同名 tail=\"l5.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "article.detail.l5.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 550,
+ "reason": "跨业务域同名 tail=\"l5.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l5.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 836,
+ "reason": "跨业务域同名 tail=\"l5.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.account_edit.l5.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1042,
+ "reason": "跨业务域同名 tail=\"l5.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l5.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1070,
+ "reason": "跨业务域同名 tail=\"l5.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelrefuse.l5.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1091,
+ "reason": "跨业务域同名 tail=\"l5.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.coupon.l5.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1128,
+ "reason": "跨业务域同名 tail=\"l5.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.files.list.l5.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1584,
+ "reason": "跨业务域同名 tail=\"l5.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.not_exist.l5.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1617,
+ "reason": "跨业务域同名 tail=\"l5.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "article.list.l24.t0",
+ "file": "lang\\en-us.js",
+ "line": 551,
+ "reason": "跨业务域同名 tail=\"l24.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.child_fenxiao.l24.t0",
+ "file": "lang\\en-us.js",
+ "line": 726,
+ "reason": "跨业务域同名 tail=\"l24.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.level.l24.t0",
+ "file": "lang\\en-us.js",
+ "line": 794,
+ "reason": "跨业务域同名 tail=\"l24.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.promote_code.l24.t0",
+ "file": "lang\\en-us.js",
+ "line": 814,
+ "reason": "跨业务域同名 tail=\"l24.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.account_edit.l24.t0",
+ "file": "lang\\en-us.js",
+ "line": 1041,
+ "reason": "跨业务域同名 tail=\"l24.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.apply_withdrawal.l24.t0",
+ "file": "lang\\en-us.js",
+ "line": 1063,
+ "reason": "跨业务域同名 tail=\"l24.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.balance.l24.t0",
+ "file": "lang\\en-us.js",
+ "line": 1079,
+ "reason": "跨业务域同名 tail=\"l24.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l24.t0",
+ "file": "lang\\en-us.js",
+ "line": 1203,
+ "reason": "跨业务域同名 tail=\"l24.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund.l24.t0",
+ "file": "lang\\en-us.js",
+ "line": 1639,
+ "reason": "跨业务域同名 tail=\"l24.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l24.t0",
+ "file": "lang\\en-us.js",
+ "line": 1657,
+ "reason": "跨业务域同名 tail=\"l24.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.order_list.l24.t0",
+ "file": "lang\\en-us.js",
+ "line": 1700,
+ "reason": "跨业务域同名 tail=\"l24.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "article.list.l24.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 551,
+ "reason": "跨业务域同名 tail=\"l24.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.child_fenxiao.l24.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 726,
+ "reason": "跨业务域同名 tail=\"l24.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.level.l24.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 794,
+ "reason": "跨业务域同名 tail=\"l24.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.promote_code.l24.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 814,
+ "reason": "跨业务域同名 tail=\"l24.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.account_edit.l24.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1041,
+ "reason": "跨业务域同名 tail=\"l24.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.apply_withdrawal.l24.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1063,
+ "reason": "跨业务域同名 tail=\"l24.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.balance.l24.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1079,
+ "reason": "跨业务域同名 tail=\"l24.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l24.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1203,
+ "reason": "跨业务域同名 tail=\"l24.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund.l24.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1639,
+ "reason": "跨业务域同名 tail=\"l24.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l24.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1657,
+ "reason": "跨业务域同名 tail=\"l24.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.order_list.l24.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1700,
+ "reason": "跨业务域同名 tail=\"l24.t0\",出现在 ['article', 'fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "article.list.l91.t0",
+ "file": "lang\\en-us.js",
+ "line": 552,
+ "reason": "跨业务域同名 tail=\"l91.t0\",出现在 ['article', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l91.t0",
+ "file": "lang\\en-us.js",
+ "line": 1120,
+ "reason": "跨业务域同名 tail=\"l91.t0\",出现在 ['article', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.level.l91.t0",
+ "file": "lang\\en-us.js",
+ "line": 1178,
+ "reason": "跨业务域同名 tail=\"l91.t0\",出现在 ['article', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "article.list.l91.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 552,
+ "reason": "跨业务域同名 tail=\"l91.t0\",出现在 ['article', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l91.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1120,
+ "reason": "跨业务域同名 tail=\"l91.t0\",出现在 ['article', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.level.l91.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1178,
+ "reason": "跨业务域同名 tail=\"l91.t0\",出现在 ['article', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "contact.l165.t0",
+ "file": "lang\\en-us.js",
+ "line": 587,
+ "reason": "跨业务域同名 tail=\"l165.t0\",出现在 ['contact', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.search.l165.t0",
+ "file": "lang\\en-us.js",
+ "line": 1619,
+ "reason": "跨业务域同名 tail=\"l165.t0\",出现在 ['contact', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "contact.l165.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 587,
+ "reason": "跨业务域同名 tail=\"l165.t0\",出现在 ['contact', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.search.l165.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1619,
+ "reason": "跨业务域同名 tail=\"l165.t0\",出现在 ['contact', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "contact.l372.t0",
+ "file": "lang\\en-us.js",
+ "line": 589,
+ "reason": "跨业务域同名 tail=\"l372.t0\",出现在 ['contact', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l372.t0",
+ "file": "lang\\en-us.js",
+ "line": 1391,
+ "reason": "跨业务域同名 tail=\"l372.t0\",出现在 ['contact', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "contact.l372.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 589,
+ "reason": "跨业务域同名 tail=\"l372.t0\",出现在 ['contact', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l372.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1391,
+ "reason": "跨业务域同名 tail=\"l372.t0\",出现在 ['contact', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "contact.l376.t0",
+ "file": "lang\\en-us.js",
+ "line": 590,
+ "reason": "跨业务域同名 tail=\"l376.t0\",出现在 ['contact', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l376.t0",
+ "file": "lang\\en-us.js",
+ "line": 1392,
+ "reason": "跨业务域同名 tail=\"l376.t0\",出现在 ['contact', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "contact.l376.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 590,
+ "reason": "跨业务域同名 tail=\"l376.t0\",出现在 ['contact', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l376.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1392,
+ "reason": "跨业务域同名 tail=\"l376.t0\",出现在 ['contact', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "contact.l76.t0",
+ "file": "lang\\en-us.js",
+ "line": 593,
+ "reason": "跨业务域同名 tail=\"l76.t0\",出现在 ['contact', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l76.t0",
+ "file": "lang\\en-us.js",
+ "line": 1673,
+ "reason": "跨业务域同名 tail=\"l76.t0\",出现在 ['contact', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "contact.l76.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 593,
+ "reason": "跨业务域同名 tail=\"l76.t0\",出现在 ['contact', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l76.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1673,
+ "reason": "跨业务域同名 tail=\"l76.t0\",出现在 ['contact', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "contact.l93.t0",
+ "file": "lang\\en-us.js",
+ "line": 594,
+ "reason": "跨业务域同名 tail=\"l93.t0\",出现在 ['contact', 'fenxiao', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l93.t0",
+ "file": "lang\\en-us.js",
+ "line": 781,
+ "reason": "跨业务域同名 tail=\"l93.t0\",出现在 ['contact', 'fenxiao', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l93.t0",
+ "file": "lang\\en-us.js",
+ "line": 1271,
+ "reason": "跨业务域同名 tail=\"l93.t0\",出现在 ['contact', 'fenxiao', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "contact.l93.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 594,
+ "reason": "跨业务域同名 tail=\"l93.t0\",出现在 ['contact', 'fenxiao', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l93.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 781,
+ "reason": "跨业务域同名 tail=\"l93.t0\",出现在 ['contact', 'fenxiao', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l93.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1271,
+ "reason": "跨业务域同名 tail=\"l93.t0\",出现在 ['contact', 'fenxiao', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l100.t0",
+ "file": "lang\\en-us.js",
+ "line": 707,
+ "reason": "跨业务域同名 tail=\"l100.t0\",出现在 ['fenxiao', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l100.t0",
+ "file": "lang\\en-us.js",
+ "line": 1001,
+ "reason": "跨业务域同名 tail=\"l100.t0\",出现在 ['fenxiao', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level.l100.t0",
+ "file": "lang\\en-us.js",
+ "line": 1170,
+ "reason": "跨业务域同名 tail=\"l100.t0\",出现在 ['fenxiao', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l100.t0",
+ "file": "lang\\en-us.js",
+ "line": 1649,
+ "reason": "跨业务域同名 tail=\"l100.t0\",出现在 ['fenxiao', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l100.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 707,
+ "reason": "跨业务域同名 tail=\"l100.t0\",出现在 ['fenxiao', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l100.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1001,
+ "reason": "跨业务域同名 tail=\"l100.t0\",出现在 ['fenxiao', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level.l100.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1170,
+ "reason": "跨业务域同名 tail=\"l100.t0\",出现在 ['fenxiao', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l100.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1649,
+ "reason": "跨业务域同名 tail=\"l100.t0\",出现在 ['fenxiao', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l101.t0",
+ "file": "lang\\en-us.js",
+ "line": 708,
+ "reason": "跨业务域同名 tail=\"l101.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.info.l101.t0",
+ "file": "lang\\en-us.js",
+ "line": 1136,
+ "reason": "跨业务域同名 tail=\"l101.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l101.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 708,
+ "reason": "跨业务域同名 tail=\"l101.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.info.l101.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1136,
+ "reason": "跨业务域同名 tail=\"l101.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l126.t0",
+ "file": "lang\\en-us.js",
+ "line": 709,
+ "reason": "跨业务域同名 tail=\"l126.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'order', 'page'](应收敛到 common)"
+ },
+ {
+ "key": "goods.public.js.list.l126.t0",
+ "file": "lang\\en-us.js",
+ "line": 966,
+ "reason": "跨业务域同名 tail=\"l126.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'order', 'page'](应收敛到 common)"
+ },
+ {
+ "key": "member.invite_friends.l126.t0",
+ "file": "lang\\en-us.js",
+ "line": 1157,
+ "reason": "跨业务域同名 tail=\"l126.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'order', 'page'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l126.t0",
+ "file": "lang\\en-us.js",
+ "line": 1244,
+ "reason": "跨业务域同名 tail=\"l126.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'order', 'page'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail_point.l126.t0",
+ "file": "lang\\en-us.js",
+ "line": 1410,
+ "reason": "跨业务域同名 tail=\"l126.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'order', 'page'](应收敛到 common)"
+ },
+ {
+ "key": "page.index.public.js.index.l126.t0",
+ "file": "lang\\en-us.js",
+ "line": 1452,
+ "reason": "跨业务域同名 tail=\"l126.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'order', 'page'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l126.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 709,
+ "reason": "跨业务域同名 tail=\"l126.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'order', 'page'](应收敛到 common)"
+ },
+ {
+ "key": "goods.public.js.list.l126.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 966,
+ "reason": "跨业务域同名 tail=\"l126.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'order', 'page'](应收敛到 common)"
+ },
+ {
+ "key": "member.invite_friends.l126.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1157,
+ "reason": "跨业务域同名 tail=\"l126.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'order', 'page'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l126.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1244,
+ "reason": "跨业务域同名 tail=\"l126.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'order', 'page'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail_point.l126.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1410,
+ "reason": "跨业务域同名 tail=\"l126.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'order', 'page'](应收敛到 common)"
+ },
+ {
+ "key": "page.index.public.js.index.l126.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1452,
+ "reason": "跨业务域同名 tail=\"l126.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'order', 'page'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l131.t0",
+ "file": "lang\\en-us.js",
+ "line": 710,
+ "reason": "跨业务域同名 tail=\"l131.t0\",出现在 ['fenxiao', 'goods', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.level.l131.t0",
+ "file": "lang\\en-us.js",
+ "line": 784,
+ "reason": "跨业务域同名 tail=\"l131.t0\",出现在 ['fenxiao', 'goods', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l131.t0",
+ "file": "lang\\en-us.js",
+ "line": 920,
+ "reason": "跨业务域同名 tail=\"l131.t0\",出现在 ['fenxiao', 'goods', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.info_edit.l131.t0",
+ "file": "lang\\en-us.js",
+ "line": 1146,
+ "reason": "跨业务域同名 tail=\"l131.t0\",出现在 ['fenxiao', 'goods', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l131.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 710,
+ "reason": "跨业务域同名 tail=\"l131.t0\",出现在 ['fenxiao', 'goods', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.level.l131.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 784,
+ "reason": "跨业务域同名 tail=\"l131.t0\",出现在 ['fenxiao', 'goods', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l131.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 920,
+ "reason": "跨业务域同名 tail=\"l131.t0\",出现在 ['fenxiao', 'goods', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.info_edit.l131.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1146,
+ "reason": "跨业务域同名 tail=\"l131.t0\",出现在 ['fenxiao', 'goods', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l133.t0",
+ "file": "lang\\en-us.js",
+ "line": 711,
+ "reason": "跨业务域同名 tail=\"l133.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'page', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l133.t0",
+ "file": "lang\\en-us.js",
+ "line": 736,
+ "reason": "跨业务域同名 tail=\"l133.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'page', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l133.t0",
+ "file": "lang\\en-us.js",
+ "line": 922,
+ "reason": "跨业务域同名 tail=\"l133.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'page', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.invite_friends.l133.t0",
+ "file": "lang\\en-us.js",
+ "line": 1158,
+ "reason": "跨业务域同名 tail=\"l133.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'page', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l133.t0",
+ "file": "lang\\en-us.js",
+ "line": 1245,
+ "reason": "跨业务域同名 tail=\"l133.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'page', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "page.index.l133.t0",
+ "file": "lang\\en-us.js",
+ "line": 1446,
+ "reason": "跨业务域同名 tail=\"l133.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'page', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.payment.l133.t0",
+ "file": "lang\\en-us.js",
+ "line": 1509,
+ "reason": "跨业务域同名 tail=\"l133.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'page', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l133.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 711,
+ "reason": "跨业务域同名 tail=\"l133.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'page', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l133.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 736,
+ "reason": "跨业务域同名 tail=\"l133.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'page', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l133.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 922,
+ "reason": "跨业务域同名 tail=\"l133.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'page', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.invite_friends.l133.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1158,
+ "reason": "跨业务域同名 tail=\"l133.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'page', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l133.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1245,
+ "reason": "跨业务域同名 tail=\"l133.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'page', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "page.index.l133.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1446,
+ "reason": "跨业务域同名 tail=\"l133.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'page', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.payment.l133.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1509,
+ "reason": "跨业务域同名 tail=\"l133.t0\",出现在 ['fenxiao', 'goods', 'member', 'merch', 'page', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l134.t0",
+ "file": "lang\\en-us.js",
+ "line": 712,
+ "reason": "跨业务域同名 tail=\"l134.t0\",出现在 ['fenxiao', 'goods', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l134.t0",
+ "file": "lang\\en-us.js",
+ "line": 923,
+ "reason": "跨业务域同名 tail=\"l134.t0\",出现在 ['fenxiao', 'goods', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.info_edit.l134.t0",
+ "file": "lang\\en-us.js",
+ "line": 1147,
+ "reason": "跨业务域同名 tail=\"l134.t0\",出现在 ['fenxiao', 'goods', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l134.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 712,
+ "reason": "跨业务域同名 tail=\"l134.t0\",出现在 ['fenxiao', 'goods', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l134.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 923,
+ "reason": "跨业务域同名 tail=\"l134.t0\",出现在 ['fenxiao', 'goods', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.info_edit.l134.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1147,
+ "reason": "跨业务域同名 tail=\"l134.t0\",出现在 ['fenxiao', 'goods', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l16.t0",
+ "file": "lang\\en-us.js",
+ "line": 713,
+ "reason": "跨业务域同名 tail=\"l16.t0\",出现在 ['fenxiao', 'member', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelstatus.l16.t0",
+ "file": "lang\\en-us.js",
+ "line": 1094,
+ "reason": "跨业务域同名 tail=\"l16.t0\",出现在 ['fenxiao', 'member', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l16.t0",
+ "file": "lang\\en-us.js",
+ "line": 1361,
+ "reason": "跨业务域同名 tail=\"l16.t0\",出现在 ['fenxiao', 'member', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "page.index.l16.t0",
+ "file": "lang\\en-us.js",
+ "line": 1447,
+ "reason": "跨业务域同名 tail=\"l16.t0\",出现在 ['fenxiao', 'member', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.evaluate.l16.t0",
+ "file": "lang\\en-us.js",
+ "line": 1627,
+ "reason": "跨业务域同名 tail=\"l16.t0\",出现在 ['fenxiao', 'member', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.order_list.l16.t0",
+ "file": "lang\\en-us.js",
+ "line": 1699,
+ "reason": "跨业务域同名 tail=\"l16.t0\",出现在 ['fenxiao', 'member', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l16.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 713,
+ "reason": "跨业务域同名 tail=\"l16.t0\",出现在 ['fenxiao', 'member', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelstatus.l16.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1094,
+ "reason": "跨业务域同名 tail=\"l16.t0\",出现在 ['fenxiao', 'member', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l16.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1361,
+ "reason": "跨业务域同名 tail=\"l16.t0\",出现在 ['fenxiao', 'member', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "page.index.l16.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1447,
+ "reason": "跨业务域同名 tail=\"l16.t0\",出现在 ['fenxiao', 'member', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.evaluate.l16.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1627,
+ "reason": "跨业务域同名 tail=\"l16.t0\",出现在 ['fenxiao', 'member', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.order_list.l16.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1699,
+ "reason": "跨业务域同名 tail=\"l16.t0\",出现在 ['fenxiao', 'member', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l194.t0",
+ "file": "lang\\en-us.js",
+ "line": 715,
+ "reason": "跨业务域同名 tail=\"l194.t0\",出现在 ['fenxiao', 'goods'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l194.t0",
+ "file": "lang\\en-us.js",
+ "line": 927,
+ "reason": "跨业务域同名 tail=\"l194.t0\",出现在 ['fenxiao', 'goods'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l194.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 715,
+ "reason": "跨业务域同名 tail=\"l194.t0\",出现在 ['fenxiao', 'goods'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l194.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 927,
+ "reason": "跨业务域同名 tail=\"l194.t0\",出现在 ['fenxiao', 'goods'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l27.t0",
+ "file": "lang\\en-us.js",
+ "line": 717,
+ "reason": "跨业务域同名 tail=\"l27.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelstatus.l27.t0",
+ "file": "lang\\en-us.js",
+ "line": 1097,
+ "reason": "跨业务域同名 tail=\"l27.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l27.t0",
+ "file": "lang\\en-us.js",
+ "line": 1610,
+ "reason": "跨业务域同名 tail=\"l27.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.pay.cashier.l27.t0",
+ "file": "lang\\en-us.js",
+ "line": 1683,
+ "reason": "跨业务域同名 tail=\"l27.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l27.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 717,
+ "reason": "跨业务域同名 tail=\"l27.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelstatus.l27.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1097,
+ "reason": "跨业务域同名 tail=\"l27.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l27.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1610,
+ "reason": "跨业务域同名 tail=\"l27.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.pay.cashier.l27.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1683,
+ "reason": "跨业务域同名 tail=\"l27.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l32.t0",
+ "file": "lang\\en-us.js",
+ "line": 719,
+ "reason": "跨业务域同名 tail=\"l32.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.child_fenxiao.l32.t0",
+ "file": "lang\\en-us.js",
+ "line": 727,
+ "reason": "跨业务域同名 tail=\"l32.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.account.l32.t0",
+ "file": "lang\\en-us.js",
+ "line": 1031,
+ "reason": "跨业务域同名 tail=\"l32.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l32.t0",
+ "file": "lang\\en-us.js",
+ "line": 1205,
+ "reason": "跨业务域同名 tail=\"l32.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.files.list.l32.t0",
+ "file": "lang\\en-us.js",
+ "line": 1583,
+ "reason": "跨业务域同名 tail=\"l32.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l32.t0",
+ "file": "lang\\en-us.js",
+ "line": 1660,
+ "reason": "跨业务域同名 tail=\"l32.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.weapp.order_shipping.l32.t0",
+ "file": "lang\\en-us.js",
+ "line": 1707,
+ "reason": "跨业务域同名 tail=\"l32.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l32.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 719,
+ "reason": "跨业务域同名 tail=\"l32.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.child_fenxiao.l32.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 727,
+ "reason": "跨业务域同名 tail=\"l32.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.account.l32.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1031,
+ "reason": "跨业务域同名 tail=\"l32.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l32.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1205,
+ "reason": "跨业务域同名 tail=\"l32.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.files.list.l32.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1583,
+ "reason": "跨业务域同名 tail=\"l32.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l32.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1660,
+ "reason": "跨业务域同名 tail=\"l32.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.weapp.order_shipping.l32.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1707,
+ "reason": "跨业务域同名 tail=\"l32.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l45.t0",
+ "file": "lang\\en-us.js",
+ "line": 720,
+ "reason": "跨业务域同名 tail=\"l45.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l45.t0",
+ "file": "lang\\en-us.js",
+ "line": 820,
+ "reason": "跨业务域同名 tail=\"l45.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l45.t0",
+ "file": "lang\\en-us.js",
+ "line": 844,
+ "reason": "跨业务域同名 tail=\"l45.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.coupon.l45.t0",
+ "file": "lang\\en-us.js",
+ "line": 1127,
+ "reason": "跨业务域同名 tail=\"l45.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon.l45.t0",
+ "file": "lang\\en-us.js",
+ "line": 1593,
+ "reason": "跨业务域同名 tail=\"l45.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.storeclose.l45.t0",
+ "file": "lang\\en-us.js",
+ "line": 1704,
+ "reason": "跨业务域同名 tail=\"l45.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l45.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 720,
+ "reason": "跨业务域同名 tail=\"l45.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l45.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 820,
+ "reason": "跨业务域同名 tail=\"l45.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l45.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 844,
+ "reason": "跨业务域同名 tail=\"l45.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.coupon.l45.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1127,
+ "reason": "跨业务域同名 tail=\"l45.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon.l45.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1593,
+ "reason": "跨业务域同名 tail=\"l45.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.storeclose.l45.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1704,
+ "reason": "跨业务域同名 tail=\"l45.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l52.t0",
+ "file": "lang\\en-us.js",
+ "line": 721,
+ "reason": "跨业务域同名 tail=\"l52.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l52.t0",
+ "file": "lang\\en-us.js",
+ "line": 1110,
+ "reason": "跨业务域同名 tail=\"l52.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.pay_password.l52.t0",
+ "file": "lang\\en-us.js",
+ "line": 1201,
+ "reason": "跨业务域同名 tail=\"l52.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon.l52.t0",
+ "file": "lang\\en-us.js",
+ "line": 1594,
+ "reason": "跨业务域同名 tail=\"l52.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.evaluate.l52.t0",
+ "file": "lang\\en-us.js",
+ "line": 1612,
+ "reason": "跨业务域同名 tail=\"l52.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l52.t0",
+ "file": "lang\\en-us.js",
+ "line": 1664,
+ "reason": "跨业务域同名 tail=\"l52.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l52.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 721,
+ "reason": "跨业务域同名 tail=\"l52.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l52.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1110,
+ "reason": "跨业务域同名 tail=\"l52.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.pay_password.l52.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1201,
+ "reason": "跨业务域同名 tail=\"l52.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon.l52.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1594,
+ "reason": "跨业务域同名 tail=\"l52.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.evaluate.l52.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1612,
+ "reason": "跨业务域同名 tail=\"l52.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l52.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1664,
+ "reason": "跨业务域同名 tail=\"l52.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l82.t0",
+ "file": "lang\\en-us.js",
+ "line": 722,
+ "reason": "跨业务域同名 tail=\"l82.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l82.t0",
+ "file": "lang\\en-us.js",
+ "line": 1118,
+ "reason": "跨业务域同名 tail=\"l82.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.info_edit.l82.t0",
+ "file": "lang\\en-us.js",
+ "line": 1155,
+ "reason": "跨业务域同名 tail=\"l82.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.evaluate.l82.t0",
+ "file": "lang\\en-us.js",
+ "line": 1614,
+ "reason": "跨业务域同名 tail=\"l82.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.apply.l82.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 722,
+ "reason": "跨业务域同名 tail=\"l82.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l82.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1118,
+ "reason": "跨业务域同名 tail=\"l82.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.info_edit.l82.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1155,
+ "reason": "跨业务域同名 tail=\"l82.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.evaluate.l82.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1614,
+ "reason": "跨业务域同名 tail=\"l82.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.bill.l11.t0",
+ "file": "lang\\en-us.js",
+ "line": 723,
+ "reason": "跨业务域同名 tail=\"l11.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.pay_password.l11.t0",
+ "file": "lang\\en-us.js",
+ "line": 1195,
+ "reason": "跨业务域同名 tail=\"l11.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.public.js.refundMethod.l11.t0",
+ "file": "lang\\en-us.js",
+ "line": 1439,
+ "reason": "跨业务域同名 tail=\"l11.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.agreement.contenr.l11.t0",
+ "file": "lang\\en-us.js",
+ "line": 1568,
+ "reason": "跨业务域同名 tail=\"l11.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon.l11.t0",
+ "file": "lang\\en-us.js",
+ "line": 1591,
+ "reason": "跨业务域同名 tail=\"l11.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.bill.l11.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 723,
+ "reason": "跨业务域同名 tail=\"l11.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.pay_password.l11.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1195,
+ "reason": "跨业务域同名 tail=\"l11.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.public.js.refundMethod.l11.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1439,
+ "reason": "跨业务域同名 tail=\"l11.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.agreement.contenr.l11.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1568,
+ "reason": "跨业务域同名 tail=\"l11.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon.l11.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1591,
+ "reason": "跨业务域同名 tail=\"l11.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.bill.l19.t0",
+ "file": "lang\\en-us.js",
+ "line": 724,
+ "reason": "跨业务域同名 tail=\"l19.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.order.l19.t0",
+ "file": "lang\\en-us.js",
+ "line": 797,
+ "reason": "跨业务域同名 tail=\"l19.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l19.t0",
+ "file": "lang\\en-us.js",
+ "line": 816,
+ "reason": "跨业务域同名 tail=\"l19.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l19.t0",
+ "file": "lang\\en-us.js",
+ "line": 827,
+ "reason": "跨业务域同名 tail=\"l19.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.list.l19.t0",
+ "file": "lang\\en-us.js",
+ "line": 949,
+ "reason": "跨业务域同名 tail=\"l19.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l19.t0",
+ "file": "lang\\en-us.js",
+ "line": 1006,
+ "reason": "跨业务域同名 tail=\"l19.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.apply_withdrawal.l19.t0",
+ "file": "lang\\en-us.js",
+ "line": 1062,
+ "reason": "跨业务域同名 tail=\"l19.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.balance.l19.t0",
+ "file": "lang\\en-us.js",
+ "line": 1078,
+ "reason": "跨业务域同名 tail=\"l19.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l19.t0",
+ "file": "lang\\en-us.js",
+ "line": 1656,
+ "reason": "跨业务域同名 tail=\"l19.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.bill.l19.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 724,
+ "reason": "跨业务域同名 tail=\"l19.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.order.l19.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 797,
+ "reason": "跨业务域同名 tail=\"l19.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l19.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 816,
+ "reason": "跨业务域同名 tail=\"l19.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l19.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 827,
+ "reason": "跨业务域同名 tail=\"l19.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.list.l19.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 949,
+ "reason": "跨业务域同名 tail=\"l19.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l19.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1006,
+ "reason": "跨业务域同名 tail=\"l19.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.apply_withdrawal.l19.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1062,
+ "reason": "跨业务域同名 tail=\"l19.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.balance.l19.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1078,
+ "reason": "跨业务域同名 tail=\"l19.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l19.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1656,
+ "reason": "跨业务域同名 tail=\"l19.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.child_fenxiao.l23.t0",
+ "file": "lang\\en-us.js",
+ "line": 725,
+ "reason": "跨业务域同名 tail=\"l23.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l23.t0",
+ "file": "lang\\en-us.js",
+ "line": 929,
+ "reason": "跨业务域同名 tail=\"l23.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.list.l23.t0",
+ "file": "lang\\en-us.js",
+ "line": 951,
+ "reason": "跨业务域同名 tail=\"l23.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.account_edit.l23.t0",
+ "file": "lang\\en-us.js",
+ "line": 1039,
+ "reason": "跨业务域同名 tail=\"l23.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level_growth_rules.l23.t0",
+ "file": "lang\\en-us.js",
+ "line": 1182,
+ "reason": "跨业务域同名 tail=\"l23.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.modify_face.l23.t0",
+ "file": "lang\\en-us.js",
+ "line": 1192,
+ "reason": "跨业务域同名 tail=\"l23.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "seal.structure.l23.t0",
+ "file": "lang\\en-us.js",
+ "line": 1537,
+ "reason": "跨业务域同名 tail=\"l23.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.pay.cashier.l23.t0",
+ "file": "lang\\en-us.js",
+ "line": 1681,
+ "reason": "跨业务域同名 tail=\"l23.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.child_fenxiao.l23.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 725,
+ "reason": "跨业务域同名 tail=\"l23.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l23.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 929,
+ "reason": "跨业务域同名 tail=\"l23.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.list.l23.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 951,
+ "reason": "跨业务域同名 tail=\"l23.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.account_edit.l23.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1039,
+ "reason": "跨业务域同名 tail=\"l23.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level_growth_rules.l23.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1182,
+ "reason": "跨业务域同名 tail=\"l23.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.modify_face.l23.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1192,
+ "reason": "跨业务域同名 tail=\"l23.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "seal.structure.l23.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1537,
+ "reason": "跨业务域同名 tail=\"l23.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.pay.cashier.l23.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1681,
+ "reason": "跨业务域同名 tail=\"l23.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.goods_list.l118.t0",
+ "file": "lang\\en-us.js",
+ "line": 728,
+ "reason": "跨业务域同名 tail=\"l118.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.account.l118.t0",
+ "file": "lang\\en-us.js",
+ "line": 1028,
+ "reason": "跨业务域同名 tail=\"l118.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.goods_list.l118.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 728,
+ "reason": "跨业务域同名 tail=\"l118.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.account.l118.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1028,
+ "reason": "跨业务域同名 tail=\"l118.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.goods_list.l43.t0",
+ "file": "lang\\en-us.js",
+ "line": 729,
+ "reason": "跨业务域同名 tail=\"l43.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l43.t0",
+ "file": "lang\\en-us.js",
+ "line": 758,
+ "reason": "跨业务域同名 tail=\"l43.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.info.l43.t0",
+ "file": "lang\\en-us.js",
+ "line": 1139,
+ "reason": "跨业务域同名 tail=\"l43.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.goods_list.l43.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 729,
+ "reason": "跨业务域同名 tail=\"l43.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l43.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 758,
+ "reason": "跨业务域同名 tail=\"l43.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.info.l43.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1139,
+ "reason": "跨业务域同名 tail=\"l43.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.goods_list.l49.t0",
+ "file": "lang\\en-us.js",
+ "line": 730,
+ "reason": "跨业务域同名 tail=\"l49.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l49.t0",
+ "file": "lang\\en-us.js",
+ "line": 845,
+ "reason": "跨业务域同名 tail=\"l49.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.balance.l49.t0",
+ "file": "lang\\en-us.js",
+ "line": 1082,
+ "reason": "跨业务域同名 tail=\"l49.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.footprint.l49.t0",
+ "file": "lang\\en-us.js",
+ "line": 1132,
+ "reason": "跨业务域同名 tail=\"l49.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.goods_list.l49.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 730,
+ "reason": "跨业务域同名 tail=\"l49.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l49.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 845,
+ "reason": "跨业务域同名 tail=\"l49.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.balance.l49.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1082,
+ "reason": "跨业务域同名 tail=\"l49.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.footprint.l49.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1132,
+ "reason": "跨业务域同名 tail=\"l49.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.goods_list.l56.t0",
+ "file": "lang\\en-us.js",
+ "line": 731,
+ "reason": "跨业务域同名 tail=\"l56.t0\",出现在 ['fenxiao', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.order_detail.l56.t0",
+ "file": "lang\\en-us.js",
+ "line": 804,
+ "reason": "跨业务域同名 tail=\"l56.t0\",出现在 ['fenxiao', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.balance.l56.t0",
+ "file": "lang\\en-us.js",
+ "line": 1083,
+ "reason": "跨业务域同名 tail=\"l56.t0\",出现在 ['fenxiao', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.invite_friends.l56.t0",
+ "file": "lang\\en-us.js",
+ "line": 1166,
+ "reason": "跨业务域同名 tail=\"l56.t0\",出现在 ['fenxiao', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l56.t0",
+ "file": "lang\\en-us.js",
+ "line": 1249,
+ "reason": "跨业务域同名 tail=\"l56.t0\",出现在 ['fenxiao', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.cases.index.l56.t0",
+ "file": "lang\\en-us.js",
+ "line": 1576,
+ "reason": "跨业务域同名 tail=\"l56.t0\",出现在 ['fenxiao', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l56.t0",
+ "file": "lang\\en-us.js",
+ "line": 1668,
+ "reason": "跨业务域同名 tail=\"l56.t0\",出现在 ['fenxiao', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.list.l56.t0",
+ "file": "lang\\en-us.js",
+ "line": 1695,
+ "reason": "跨业务域同名 tail=\"l56.t0\",出现在 ['fenxiao', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.goods_list.l56.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 731,
+ "reason": "跨业务域同名 tail=\"l56.t0\",出现在 ['fenxiao', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.order_detail.l56.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 804,
+ "reason": "跨业务域同名 tail=\"l56.t0\",出现在 ['fenxiao', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.balance.l56.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1083,
+ "reason": "跨业务域同名 tail=\"l56.t0\",出现在 ['fenxiao', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.invite_friends.l56.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1166,
+ "reason": "跨业务域同名 tail=\"l56.t0\",出现在 ['fenxiao', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l56.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1249,
+ "reason": "跨业务域同名 tail=\"l56.t0\",出现在 ['fenxiao', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.cases.index.l56.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1576,
+ "reason": "跨业务域同名 tail=\"l56.t0\",出现在 ['fenxiao', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l56.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1668,
+ "reason": "跨业务域同名 tail=\"l56.t0\",出现在 ['fenxiao', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.list.l56.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1695,
+ "reason": "跨业务域同名 tail=\"l56.t0\",出现在 ['fenxiao', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.goods_list.l59.t0",
+ "file": "lang\\en-us.js",
+ "line": 732,
+ "reason": "跨业务域同名 tail=\"l59.t0\",出现在 ['fenxiao', 'member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l59.t0",
+ "file": "lang\\en-us.js",
+ "line": 778,
+ "reason": "跨业务域同名 tail=\"l59.t0\",出现在 ['fenxiao', 'member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l59.t0",
+ "file": "lang\\en-us.js",
+ "line": 837,
+ "reason": "跨业务域同名 tail=\"l59.t0\",出现在 ['fenxiao', 'member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l59.t0",
+ "file": "lang\\en-us.js",
+ "line": 1072,
+ "reason": "跨业务域同名 tail=\"l59.t0\",出现在 ['fenxiao', 'member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.footprint.l59.t0",
+ "file": "lang\\en-us.js",
+ "line": 1135,
+ "reason": "跨业务域同名 tail=\"l59.t0\",出现在 ['fenxiao', 'member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level.l59.t0",
+ "file": "lang\\en-us.js",
+ "line": 1176,
+ "reason": "跨业务域同名 tail=\"l59.t0\",出现在 ['fenxiao', 'member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l59.t0",
+ "file": "lang\\en-us.js",
+ "line": 1502,
+ "reason": "跨业务域同名 tail=\"l59.t0\",出现在 ['fenxiao', 'member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l59.t0",
+ "file": "lang\\en-us.js",
+ "line": 1671,
+ "reason": "跨业务域同名 tail=\"l59.t0\",出现在 ['fenxiao', 'member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.goods_list.l59.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 732,
+ "reason": "跨业务域同名 tail=\"l59.t0\",出现在 ['fenxiao', 'member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l59.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 778,
+ "reason": "跨业务域同名 tail=\"l59.t0\",出现在 ['fenxiao', 'member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l59.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 837,
+ "reason": "跨业务域同名 tail=\"l59.t0\",出现在 ['fenxiao', 'member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l59.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1072,
+ "reason": "跨业务域同名 tail=\"l59.t0\",出现在 ['fenxiao', 'member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.footprint.l59.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1135,
+ "reason": "跨业务域同名 tail=\"l59.t0\",出现在 ['fenxiao', 'member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level.l59.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1176,
+ "reason": "跨业务域同名 tail=\"l59.t0\",出现在 ['fenxiao', 'member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l59.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1502,
+ "reason": "跨业务域同名 tail=\"l59.t0\",出现在 ['fenxiao', 'member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l59.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1671,
+ "reason": "跨业务域同名 tail=\"l59.t0\",出现在 ['fenxiao', 'member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l124.t0",
+ "file": "lang\\en-us.js",
+ "line": 734,
+ "reason": "跨业务域同名 tail=\"l124.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.balance_detail.l124.t0",
+ "file": "lang\\en-us.js",
+ "line": 1084,
+ "reason": "跨业务域同名 tail=\"l124.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l124.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 734,
+ "reason": "跨业务域同名 tail=\"l124.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.balance_detail.l124.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1084,
+ "reason": "跨业务域同名 tail=\"l124.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l125.t0",
+ "file": "lang\\en-us.js",
+ "line": 735,
+ "reason": "跨业务域同名 tail=\"l125.t0\",出现在 ['fenxiao', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l125.t0",
+ "file": "lang\\en-us.js",
+ "line": 1479,
+ "reason": "跨业务域同名 tail=\"l125.t0\",出现在 ['fenxiao', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l125.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 735,
+ "reason": "跨业务域同名 tail=\"l125.t0\",出现在 ['fenxiao', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l125.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1479,
+ "reason": "跨业务域同名 tail=\"l125.t0\",出现在 ['fenxiao', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l142.t0",
+ "file": "lang\\en-us.js",
+ "line": 737,
+ "reason": "跨业务域同名 tail=\"l142.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.address_edit.l142.t0",
+ "file": "lang\\en-us.js",
+ "line": 1052,
+ "reason": "跨业务域同名 tail=\"l142.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.invite_friends.l142.t0",
+ "file": "lang\\en-us.js",
+ "line": 1159,
+ "reason": "跨业务域同名 tail=\"l142.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l142.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 737,
+ "reason": "跨业务域同名 tail=\"l142.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.address_edit.l142.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1052,
+ "reason": "跨业务域同名 tail=\"l142.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.invite_friends.l142.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1159,
+ "reason": "跨业务域同名 tail=\"l142.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l172.t0",
+ "file": "lang\\en-us.js",
+ "line": 740,
+ "reason": "跨业务域同名 tail=\"l172.t0\",出现在 ['fenxiao', 'goods'](应收敛到 common)"
+ },
+ {
+ "key": "goods.list.l172.t0",
+ "file": "lang\\en-us.js",
+ "line": 947,
+ "reason": "跨业务域同名 tail=\"l172.t0\",出现在 ['fenxiao', 'goods'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l172.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 740,
+ "reason": "跨业务域同名 tail=\"l172.t0\",出现在 ['fenxiao', 'goods'](应收敛到 common)"
+ },
+ {
+ "key": "goods.list.l172.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 947,
+ "reason": "跨业务域同名 tail=\"l172.t0\",出现在 ['fenxiao', 'goods'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l21.t0",
+ "file": "lang\\en-us.js",
+ "line": 742,
+ "reason": "跨业务域同名 tail=\"l21.t0\",出现在 ['fenxiao', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.promote.l21.t0",
+ "file": "lang\\en-us.js",
+ "line": 806,
+ "reason": "跨业务域同名 tail=\"l21.t0\",出现在 ['fenxiao', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l21.t0",
+ "file": "lang\\en-us.js",
+ "line": 817,
+ "reason": "跨业务域同名 tail=\"l21.t0\",出现在 ['fenxiao', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.pay.result.l21.t0",
+ "file": "lang\\en-us.js",
+ "line": 1684,
+ "reason": "跨业务域同名 tail=\"l21.t0\",出现在 ['fenxiao', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l21.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 742,
+ "reason": "跨业务域同名 tail=\"l21.t0\",出现在 ['fenxiao', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.promote.l21.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 806,
+ "reason": "跨业务域同名 tail=\"l21.t0\",出现在 ['fenxiao', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l21.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 817,
+ "reason": "跨业务域同名 tail=\"l21.t0\",出现在 ['fenxiao', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.pay.result.l21.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1684,
+ "reason": "跨业务域同名 tail=\"l21.t0\",出现在 ['fenxiao', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l214.t0",
+ "file": "lang\\en-us.js",
+ "line": 744,
+ "reason": "跨业务域同名 tail=\"l214.t0\",出现在 ['fenxiao', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "member.card_buy.l214.t0",
+ "file": "lang\\en-us.js",
+ "line": 1122,
+ "reason": "跨业务域同名 tail=\"l214.t0\",出现在 ['fenxiao', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l214.t0",
+ "file": "lang\\en-us.js",
+ "line": 1367,
+ "reason": "跨业务域同名 tail=\"l214.t0\",出现在 ['fenxiao', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l214.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 744,
+ "reason": "跨业务域同名 tail=\"l214.t0\",出现在 ['fenxiao', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "member.card_buy.l214.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1122,
+ "reason": "跨业务域同名 tail=\"l214.t0\",出现在 ['fenxiao', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l214.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1367,
+ "reason": "跨业务域同名 tail=\"l214.t0\",出现在 ['fenxiao', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l22.t0",
+ "file": "lang\\en-us.js",
+ "line": 746,
+ "reason": "跨业务域同名 tail=\"l22.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.promote.l22.t0",
+ "file": "lang\\en-us.js",
+ "line": 807,
+ "reason": "跨业务域同名 tail=\"l22.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l22.t0",
+ "file": "lang\\en-us.js",
+ "line": 852,
+ "reason": "跨业务域同名 tail=\"l22.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l22.t0",
+ "file": "lang\\en-us.js",
+ "line": 1067,
+ "reason": "跨业务域同名 tail=\"l22.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.modify_face.l22.t0",
+ "file": "lang\\en-us.js",
+ "line": 1191,
+ "reason": "跨业务域同名 tail=\"l22.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.cases.index.l22.t0",
+ "file": "lang\\en-us.js",
+ "line": 1573,
+ "reason": "跨业务域同名 tail=\"l22.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l22.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 746,
+ "reason": "跨业务域同名 tail=\"l22.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.promote.l22.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 807,
+ "reason": "跨业务域同名 tail=\"l22.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l22.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 852,
+ "reason": "跨业务域同名 tail=\"l22.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l22.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1067,
+ "reason": "跨业务域同名 tail=\"l22.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.modify_face.l22.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1191,
+ "reason": "跨业务域同名 tail=\"l22.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.cases.index.l22.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1573,
+ "reason": "跨业务域同名 tail=\"l22.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l239.t0",
+ "file": "lang\\en-us.js",
+ "line": 749,
+ "reason": "跨业务域同名 tail=\"l239.t0\",出现在 ['fenxiao', 'goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "goods.cart.l239.t0",
+ "file": "lang\\en-us.js",
+ "line": 912,
+ "reason": "跨业务域同名 tail=\"l239.t0\",出现在 ['fenxiao', 'goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l239.t0",
+ "file": "lang\\en-us.js",
+ "line": 1485,
+ "reason": "跨业务域同名 tail=\"l239.t0\",出现在 ['fenxiao', 'goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l239.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 749,
+ "reason": "跨业务域同名 tail=\"l239.t0\",出现在 ['fenxiao', 'goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "goods.cart.l239.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 912,
+ "reason": "跨业务域同名 tail=\"l239.t0\",出现在 ['fenxiao', 'goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l239.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1485,
+ "reason": "跨业务域同名 tail=\"l239.t0\",出现在 ['fenxiao', 'goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l254.t0",
+ "file": "lang\\en-us.js",
+ "line": 750,
+ "reason": "跨业务域同名 tail=\"l254.t0\",出现在 ['fenxiao', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l254.t0",
+ "file": "lang\\en-us.js",
+ "line": 1373,
+ "reason": "跨业务域同名 tail=\"l254.t0\",出现在 ['fenxiao', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l254.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 750,
+ "reason": "跨业务域同名 tail=\"l254.t0\",出现在 ['fenxiao', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l254.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1373,
+ "reason": "跨业务域同名 tail=\"l254.t0\",出现在 ['fenxiao', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l293.t0",
+ "file": "lang\\en-us.js",
+ "line": 752,
+ "reason": "跨业务域同名 tail=\"l293.t0\",出现在 ['fenxiao', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "member.address.l293.t0",
+ "file": "lang\\en-us.js",
+ "line": 1048,
+ "reason": "跨业务域同名 tail=\"l293.t0\",出现在 ['fenxiao', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l293.t0",
+ "file": "lang\\en-us.js",
+ "line": 1383,
+ "reason": "跨业务域同名 tail=\"l293.t0\",出现在 ['fenxiao', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l293.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 752,
+ "reason": "跨业务域同名 tail=\"l293.t0\",出现在 ['fenxiao', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "member.address.l293.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1048,
+ "reason": "跨业务域同名 tail=\"l293.t0\",出现在 ['fenxiao', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l293.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1383,
+ "reason": "跨业务域同名 tail=\"l293.t0\",出现在 ['fenxiao', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l33.t0",
+ "file": "lang\\en-us.js",
+ "line": 753,
+ "reason": "跨业务域同名 tail=\"l33.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l33.t0",
+ "file": "lang\\en-us.js",
+ "line": 818,
+ "reason": "跨业务域同名 tail=\"l33.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l33.t0",
+ "file": "lang\\en-us.js",
+ "line": 1068,
+ "reason": "跨业务域同名 tail=\"l33.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.balance.l33.t0",
+ "file": "lang\\en-us.js",
+ "line": 1081,
+ "reason": "跨业务域同名 tail=\"l33.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelstatus.l33.t0",
+ "file": "lang\\en-us.js",
+ "line": 1098,
+ "reason": "跨业务域同名 tail=\"l33.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.collection.l33.t0",
+ "file": "lang\\en-us.js",
+ "line": 1125,
+ "reason": "跨业务域同名 tail=\"l33.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level_growth_rules.l33.t0",
+ "file": "lang\\en-us.js",
+ "line": 1185,
+ "reason": "跨业务域同名 tail=\"l33.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.search.l33.t0",
+ "file": "lang\\en-us.js",
+ "line": 1620,
+ "reason": "跨业务域同名 tail=\"l33.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l33.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 753,
+ "reason": "跨业务域同名 tail=\"l33.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l33.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 818,
+ "reason": "跨业务域同名 tail=\"l33.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l33.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1068,
+ "reason": "跨业务域同名 tail=\"l33.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.balance.l33.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1081,
+ "reason": "跨业务域同名 tail=\"l33.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelstatus.l33.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1098,
+ "reason": "跨业务域同名 tail=\"l33.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.collection.l33.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1125,
+ "reason": "跨业务域同名 tail=\"l33.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level_growth_rules.l33.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1185,
+ "reason": "跨业务域同名 tail=\"l33.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.search.l33.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1620,
+ "reason": "跨业务域同名 tail=\"l33.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l33.t1",
+ "file": "lang\\en-us.js",
+ "line": 754,
+ "reason": "跨业务域同名 tail=\"l33.t1\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.collection.l33.t1",
+ "file": "lang\\en-us.js",
+ "line": 1126,
+ "reason": "跨业务域同名 tail=\"l33.t1\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l33.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 754,
+ "reason": "跨业务域同名 tail=\"l33.t1\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.collection.l33.t1",
+ "file": "lang\\zh-cn.js",
+ "line": 1126,
+ "reason": "跨业务域同名 tail=\"l33.t1\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l34.t0",
+ "file": "lang\\en-us.js",
+ "line": 755,
+ "reason": "跨业务域同名 tail=\"l34.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l34.t0",
+ "file": "lang\\en-us.js",
+ "line": 855,
+ "reason": "跨业务域同名 tail=\"l34.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.apply_withdrawal.l34.t0",
+ "file": "lang\\en-us.js",
+ "line": 1064,
+ "reason": "跨业务域同名 tail=\"l34.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level_growth_rules.l34.t0",
+ "file": "lang\\en-us.js",
+ "line": 1186,
+ "reason": "跨业务域同名 tail=\"l34.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund.l34.t0",
+ "file": "lang\\en-us.js",
+ "line": 1642,
+ "reason": "跨业务域同名 tail=\"l34.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.list.l34.t0",
+ "file": "lang\\en-us.js",
+ "line": 1691,
+ "reason": "跨业务域同名 tail=\"l34.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.order_list.l34.t0",
+ "file": "lang\\en-us.js",
+ "line": 1702,
+ "reason": "跨业务域同名 tail=\"l34.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l34.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 755,
+ "reason": "跨业务域同名 tail=\"l34.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l34.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 855,
+ "reason": "跨业务域同名 tail=\"l34.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.apply_withdrawal.l34.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1064,
+ "reason": "跨业务域同名 tail=\"l34.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level_growth_rules.l34.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1186,
+ "reason": "跨业务域同名 tail=\"l34.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund.l34.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1642,
+ "reason": "跨业务域同名 tail=\"l34.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.list.l34.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1691,
+ "reason": "跨业务域同名 tail=\"l34.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.order_list.l34.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1702,
+ "reason": "跨业务域同名 tail=\"l34.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l36.t0",
+ "file": "lang\\en-us.js",
+ "line": 756,
+ "reason": "跨业务域同名 tail=\"l36.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.level_growth_rules.l36.t0",
+ "file": "lang\\en-us.js",
+ "line": 1188,
+ "reason": "跨业务域同名 tail=\"l36.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l36.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 756,
+ "reason": "跨业务域同名 tail=\"l36.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.level_growth_rules.l36.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1188,
+ "reason": "跨业务域同名 tail=\"l36.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l371.t0",
+ "file": "lang\\en-us.js",
+ "line": 757,
+ "reason": "跨业务域同名 tail=\"l371.t0\",出现在 ['fenxiao', 'goods'](应收敛到 common)"
+ },
+ {
+ "key": "goods.public.js.list.l371.t0",
+ "file": "lang\\en-us.js",
+ "line": 970,
+ "reason": "跨业务域同名 tail=\"l371.t0\",出现在 ['fenxiao', 'goods'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l371.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 757,
+ "reason": "跨业务域同名 tail=\"l371.t0\",出现在 ['fenxiao', 'goods'](应收敛到 common)"
+ },
+ {
+ "key": "goods.public.js.list.l371.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 970,
+ "reason": "跨业务域同名 tail=\"l371.t0\",出现在 ['fenxiao', 'goods'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l527.t0",
+ "file": "lang\\en-us.js",
+ "line": 769,
+ "reason": "跨业务域同名 tail=\"l527.t0\",出现在 ['fenxiao', 'goods'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l527.t0",
+ "file": "lang\\en-us.js",
+ "line": 939,
+ "reason": "跨业务域同名 tail=\"l527.t0\",出现在 ['fenxiao', 'goods'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l527.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 769,
+ "reason": "跨业务域同名 tail=\"l527.t0\",出现在 ['fenxiao', 'goods'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l527.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 939,
+ "reason": "跨业务域同名 tail=\"l527.t0\",出现在 ['fenxiao', 'goods'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l55.t0",
+ "file": "lang\\en-us.js",
+ "line": 773,
+ "reason": "跨业务域同名 tail=\"l55.t0\",出现在 ['fenxiao', 'goods', 'member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l55.t0",
+ "file": "lang\\en-us.js",
+ "line": 940,
+ "reason": "跨业务域同名 tail=\"l55.t0\",出现在 ['fenxiao', 'goods', 'member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.account.l55.t0",
+ "file": "lang\\en-us.js",
+ "line": 1033,
+ "reason": "跨业务域同名 tail=\"l55.t0\",出现在 ['fenxiao', 'goods', 'member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.invite_friends.l55.t0",
+ "file": "lang\\en-us.js",
+ "line": 1165,
+ "reason": "跨业务域同名 tail=\"l55.t0\",出现在 ['fenxiao', 'goods', 'member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l55.t0",
+ "file": "lang\\en-us.js",
+ "line": 1500,
+ "reason": "跨业务域同名 tail=\"l55.t0\",出现在 ['fenxiao', 'goods', 'member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l55.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 773,
+ "reason": "跨业务域同名 tail=\"l55.t0\",出现在 ['fenxiao', 'goods', 'member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l55.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 940,
+ "reason": "跨业务域同名 tail=\"l55.t0\",出现在 ['fenxiao', 'goods', 'member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.account.l55.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1033,
+ "reason": "跨业务域同名 tail=\"l55.t0\",出现在 ['fenxiao', 'goods', 'member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.invite_friends.l55.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1165,
+ "reason": "跨业务域同名 tail=\"l55.t0\",出现在 ['fenxiao', 'goods', 'member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l55.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1500,
+ "reason": "跨业务域同名 tail=\"l55.t0\",出现在 ['fenxiao', 'goods', 'member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l568.t0",
+ "file": "lang\\en-us.js",
+ "line": 777,
+ "reason": "跨业务域同名 tail=\"l568.t0\",出现在 ['fenxiao', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l568.t0",
+ "file": "lang\\en-us.js",
+ "line": 1404,
+ "reason": "跨业务域同名 tail=\"l568.t0\",出现在 ['fenxiao', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l568.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 777,
+ "reason": "跨业务域同名 tail=\"l568.t0\",出现在 ['fenxiao', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l568.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1404,
+ "reason": "跨业务域同名 tail=\"l568.t0\",出现在 ['fenxiao', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l70.t0",
+ "file": "lang\\en-us.js",
+ "line": 780,
+ "reason": "跨业务域同名 tail=\"l70.t0\",出现在 ['fenxiao', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon.l70.t0",
+ "file": "lang\\en-us.js",
+ "line": 1598,
+ "reason": "跨业务域同名 tail=\"l70.t0\",出现在 ['fenxiao', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l70.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 780,
+ "reason": "跨业务域同名 tail=\"l70.t0\",出现在 ['fenxiao', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon.l70.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1598,
+ "reason": "跨业务域同名 tail=\"l70.t0\",出现在 ['fenxiao', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l94.t0",
+ "file": "lang\\en-us.js",
+ "line": 782,
+ "reason": "跨业务域同名 tail=\"l94.t0\",出现在 ['fenxiao', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l94.t0",
+ "file": "lang\\en-us.js",
+ "line": 1507,
+ "reason": "跨业务域同名 tail=\"l94.t0\",出现在 ['fenxiao', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.index.l94.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 782,
+ "reason": "跨业务域同名 tail=\"l94.t0\",出现在 ['fenxiao', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l94.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1507,
+ "reason": "跨业务域同名 tail=\"l94.t0\",出现在 ['fenxiao', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.level.l119.t0",
+ "file": "lang\\en-us.js",
+ "line": 783,
+ "reason": "跨业务域同名 tail=\"l119.t0\",出现在 ['fenxiao', 'page'](应收敛到 common)"
+ },
+ {
+ "key": "page.index.l119.t0",
+ "file": "lang\\en-us.js",
+ "line": 1444,
+ "reason": "跨业务域同名 tail=\"l119.t0\",出现在 ['fenxiao', 'page'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.level.l119.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 783,
+ "reason": "跨业务域同名 tail=\"l119.t0\",出现在 ['fenxiao', 'page'](应收敛到 common)"
+ },
+ {
+ "key": "page.index.l119.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1444,
+ "reason": "跨业务域同名 tail=\"l119.t0\",出现在 ['fenxiao', 'page'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.level.l143.t0",
+ "file": "lang\\en-us.js",
+ "line": 785,
+ "reason": "跨业务域同名 tail=\"l143.t0\",出现在 ['fenxiao', 'goods', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.cart.l143.t0",
+ "file": "lang\\en-us.js",
+ "line": 904,
+ "reason": "跨业务域同名 tail=\"l143.t0\",出现在 ['fenxiao', 'goods', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.cases.index.l143.t0",
+ "file": "lang\\en-us.js",
+ "line": 1571,
+ "reason": "跨业务域同名 tail=\"l143.t0\",出现在 ['fenxiao', 'goods', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.level.l143.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 785,
+ "reason": "跨业务域同名 tail=\"l143.t0\",出现在 ['fenxiao', 'goods', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.cart.l143.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 904,
+ "reason": "跨业务域同名 tail=\"l143.t0\",出现在 ['fenxiao', 'goods', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.cases.index.l143.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1571,
+ "reason": "跨业务域同名 tail=\"l143.t0\",出现在 ['fenxiao', 'goods', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.level.l144.t0",
+ "file": "lang\\en-us.js",
+ "line": 786,
+ "reason": "跨业务域同名 tail=\"l144.t0\",出现在 ['fenxiao', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.detail.l144.t0",
+ "file": "lang\\en-us.js",
+ "line": 1466,
+ "reason": "跨业务域同名 tail=\"l144.t0\",出现在 ['fenxiao', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.level.l144.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 786,
+ "reason": "跨业务域同名 tail=\"l144.t0\",出现在 ['fenxiao', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.detail.l144.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1466,
+ "reason": "跨业务域同名 tail=\"l144.t0\",出现在 ['fenxiao', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.level.l157.t0",
+ "file": "lang\\en-us.js",
+ "line": 787,
+ "reason": "跨业务域同名 tail=\"l157.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.public.js.info.l157.t0",
+ "file": "lang\\en-us.js",
+ "line": 1214,
+ "reason": "跨业务域同名 tail=\"l157.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.level.l157.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 787,
+ "reason": "跨业务域同名 tail=\"l157.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.public.js.info.l157.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1214,
+ "reason": "跨业务域同名 tail=\"l157.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.level.l169.t0",
+ "file": "lang\\en-us.js",
+ "line": 788,
+ "reason": "跨业务域同名 tail=\"l169.t0\",出现在 ['fenxiao', 'login'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l169.t0",
+ "file": "lang\\en-us.js",
+ "line": 1003,
+ "reason": "跨业务域同名 tail=\"l169.t0\",出现在 ['fenxiao', 'login'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.level.l169.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 788,
+ "reason": "跨业务域同名 tail=\"l169.t0\",出现在 ['fenxiao', 'login'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l169.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1003,
+ "reason": "跨业务域同名 tail=\"l169.t0\",出现在 ['fenxiao', 'login'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.level.l181.t0",
+ "file": "lang\\en-us.js",
+ "line": 789,
+ "reason": "跨业务域同名 tail=\"l181.t0\",出现在 ['fenxiao', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l181.t0",
+ "file": "lang\\en-us.js",
+ "line": 1483,
+ "reason": "跨业务域同名 tail=\"l181.t0\",出现在 ['fenxiao', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.level.l181.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 789,
+ "reason": "跨业务域同名 tail=\"l181.t0\",出现在 ['fenxiao', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l181.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1483,
+ "reason": "跨业务域同名 tail=\"l181.t0\",出现在 ['fenxiao', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.level.l20.t0",
+ "file": "lang\\en-us.js",
+ "line": 792,
+ "reason": "跨业务域同名 tail=\"l20.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.order.l20.t0",
+ "file": "lang\\en-us.js",
+ "line": 798,
+ "reason": "跨业务域同名 tail=\"l20.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.account_edit.l20.t0",
+ "file": "lang\\en-us.js",
+ "line": 1037,
+ "reason": "跨业务域同名 tail=\"l20.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.invite_friends.l20.t0",
+ "file": "lang\\en-us.js",
+ "line": 1162,
+ "reason": "跨业务域同名 tail=\"l20.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l20.t0",
+ "file": "lang\\en-us.js",
+ "line": 1202,
+ "reason": "跨业务域同名 tail=\"l20.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.list.l20.t0",
+ "file": "lang\\en-us.js",
+ "line": 1688,
+ "reason": "跨业务域同名 tail=\"l20.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.weapp.order_shipping.l20.t0",
+ "file": "lang\\en-us.js",
+ "line": 1706,
+ "reason": "跨业务域同名 tail=\"l20.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.level.l20.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 792,
+ "reason": "跨业务域同名 tail=\"l20.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.order.l20.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 798,
+ "reason": "跨业务域同名 tail=\"l20.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.account_edit.l20.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1037,
+ "reason": "跨业务域同名 tail=\"l20.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.invite_friends.l20.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1162,
+ "reason": "跨业务域同名 tail=\"l20.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l20.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1202,
+ "reason": "跨业务域同名 tail=\"l20.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.list.l20.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1688,
+ "reason": "跨业务域同名 tail=\"l20.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.weapp.order_shipping.l20.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1706,
+ "reason": "跨业务域同名 tail=\"l20.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.level.l221.t0",
+ "file": "lang\\en-us.js",
+ "line": 793,
+ "reason": "跨业务域同名 tail=\"l221.t0\",出现在 ['fenxiao', 'goods', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "goods.cart.l221.t0",
+ "file": "lang\\en-us.js",
+ "line": 910,
+ "reason": "跨业务域同名 tail=\"l221.t0\",出现在 ['fenxiao', 'goods', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l221.t0",
+ "file": "lang\\en-us.js",
+ "line": 1368,
+ "reason": "跨业务域同名 tail=\"l221.t0\",出现在 ['fenxiao', 'goods', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.level.l221.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 793,
+ "reason": "跨业务域同名 tail=\"l221.t0\",出现在 ['fenxiao', 'goods', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "goods.cart.l221.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 910,
+ "reason": "跨业务域同名 tail=\"l221.t0\",出现在 ['fenxiao', 'goods', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l221.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1368,
+ "reason": "跨业务域同名 tail=\"l221.t0\",出现在 ['fenxiao', 'goods', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.level.l28.t0",
+ "file": "lang\\en-us.js",
+ "line": 795,
+ "reason": "跨业务域同名 tail=\"l28.t0\",出现在 ['fenxiao', 'goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l28.t0",
+ "file": "lang\\en-us.js",
+ "line": 843,
+ "reason": "跨业务域同名 tail=\"l28.t0\",出现在 ['fenxiao', 'goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.list.l28.t0",
+ "file": "lang\\en-us.js",
+ "line": 952,
+ "reason": "跨业务域同名 tail=\"l28.t0\",出现在 ['fenxiao', 'goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.balance.l28.t0",
+ "file": "lang\\en-us.js",
+ "line": 1080,
+ "reason": "跨业务域同名 tail=\"l28.t0\",出现在 ['fenxiao', 'goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l28.t0",
+ "file": "lang\\en-us.js",
+ "line": 1204,
+ "reason": "跨业务域同名 tail=\"l28.t0\",出现在 ['fenxiao', 'goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_goods_select.l28.t0",
+ "file": "lang\\en-us.js",
+ "line": 1679,
+ "reason": "跨业务域同名 tail=\"l28.t0\",出现在 ['fenxiao', 'goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.level.l28.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 795,
+ "reason": "跨业务域同名 tail=\"l28.t0\",出现在 ['fenxiao', 'goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l28.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 843,
+ "reason": "跨业务域同名 tail=\"l28.t0\",出现在 ['fenxiao', 'goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.list.l28.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 952,
+ "reason": "跨业务域同名 tail=\"l28.t0\",出现在 ['fenxiao', 'goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.balance.l28.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1080,
+ "reason": "跨业务域同名 tail=\"l28.t0\",出现在 ['fenxiao', 'goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l28.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1204,
+ "reason": "跨业务域同名 tail=\"l28.t0\",出现在 ['fenxiao', 'goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_goods_select.l28.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1679,
+ "reason": "跨业务域同名 tail=\"l28.t0\",出现在 ['fenxiao', 'goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.order.l17.t0",
+ "file": "lang\\en-us.js",
+ "line": 796,
+ "reason": "跨业务域同名 tail=\"l17.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.cart.l17.t0",
+ "file": "lang\\en-us.js",
+ "line": 906,
+ "reason": "跨业务域同名 tail=\"l17.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelstatus.l17.t0",
+ "file": "lang\\en-us.js",
+ "line": 1095,
+ "reason": "跨业务域同名 tail=\"l17.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.invite_friends.l17.t0",
+ "file": "lang\\en-us.js",
+ "line": 1161,
+ "reason": "跨业务域同名 tail=\"l17.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "seal.medium.detail.l17.t0",
+ "file": "lang\\en-us.js",
+ "line": 1532,
+ "reason": "跨业务域同名 tail=\"l17.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund.l17.t0",
+ "file": "lang\\en-us.js",
+ "line": 1636,
+ "reason": "跨业务域同名 tail=\"l17.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.order.l17.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 796,
+ "reason": "跨业务域同名 tail=\"l17.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.cart.l17.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 906,
+ "reason": "跨业务域同名 tail=\"l17.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelstatus.l17.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1095,
+ "reason": "跨业务域同名 tail=\"l17.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.invite_friends.l17.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1161,
+ "reason": "跨业务域同名 tail=\"l17.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "seal.medium.detail.l17.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1532,
+ "reason": "跨业务域同名 tail=\"l17.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund.l17.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1636,
+ "reason": "跨业务域同名 tail=\"l17.t0\",出现在 ['fenxiao', 'goods', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.order.l81.t0",
+ "file": "lang\\en-us.js",
+ "line": 799,
+ "reason": "跨业务域同名 tail=\"l81.t0\",出现在 ['fenxiao', 'help', 'member', 'merch', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "help.list.l81.t0",
+ "file": "lang\\en-us.js",
+ "line": 981,
+ "reason": "跨业务域同名 tail=\"l81.t0\",出现在 ['fenxiao', 'help', 'member', 'merch', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l81.t0",
+ "file": "lang\\en-us.js",
+ "line": 1117,
+ "reason": "跨业务域同名 tail=\"l81.t0\",出现在 ['fenxiao', 'help', 'member', 'merch', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card_buy.l81.t0",
+ "file": "lang\\en-us.js",
+ "line": 1124,
+ "reason": "跨业务域同名 tail=\"l81.t0\",出现在 ['fenxiao', 'help', 'member', 'merch', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l81.t0",
+ "file": "lang\\en-us.js",
+ "line": 1267,
+ "reason": "跨业务域同名 tail=\"l81.t0\",出现在 ['fenxiao', 'help', 'member', 'merch', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l81.t0",
+ "file": "lang\\en-us.js",
+ "line": 1437,
+ "reason": "跨业务域同名 tail=\"l81.t0\",出现在 ['fenxiao', 'help', 'member', 'merch', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund.l81.t0",
+ "file": "lang\\en-us.js",
+ "line": 1646,
+ "reason": "跨业务域同名 tail=\"l81.t0\",出现在 ['fenxiao', 'help', 'member', 'merch', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.order.l81.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 799,
+ "reason": "跨业务域同名 tail=\"l81.t0\",出现在 ['fenxiao', 'help', 'member', 'merch', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "help.list.l81.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 981,
+ "reason": "跨业务域同名 tail=\"l81.t0\",出现在 ['fenxiao', 'help', 'member', 'merch', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l81.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1117,
+ "reason": "跨业务域同名 tail=\"l81.t0\",出现在 ['fenxiao', 'help', 'member', 'merch', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card_buy.l81.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1124,
+ "reason": "跨业务域同名 tail=\"l81.t0\",出现在 ['fenxiao', 'help', 'member', 'merch', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l81.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1267,
+ "reason": "跨业务域同名 tail=\"l81.t0\",出现在 ['fenxiao', 'help', 'member', 'merch', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l81.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1437,
+ "reason": "跨业务域同名 tail=\"l81.t0\",出现在 ['fenxiao', 'help', 'member', 'merch', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund.l81.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1646,
+ "reason": "跨业务域同名 tail=\"l81.t0\",出现在 ['fenxiao', 'help', 'member', 'merch', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.order.l83.t0",
+ "file": "lang\\en-us.js",
+ "line": 800,
+ "reason": "跨业务域同名 tail=\"l83.t0\",出现在 ['fenxiao', 'member', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "member.info.l83.t0",
+ "file": "lang\\en-us.js",
+ "line": 1143,
+ "reason": "跨业务域同名 tail=\"l83.t0\",出现在 ['fenxiao', 'member', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "merch.merchcategory.l83.t0",
+ "file": "lang\\en-us.js",
+ "line": 1241,
+ "reason": "跨业务域同名 tail=\"l83.t0\",出现在 ['fenxiao', 'member', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.order.l83.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 800,
+ "reason": "跨业务域同名 tail=\"l83.t0\",出现在 ['fenxiao', 'member', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "member.info.l83.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1143,
+ "reason": "跨业务域同名 tail=\"l83.t0\",出现在 ['fenxiao', 'member', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "merch.merchcategory.l83.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1241,
+ "reason": "跨业务域同名 tail=\"l83.t0\",出现在 ['fenxiao', 'member', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.order.l85.t0",
+ "file": "lang\\en-us.js",
+ "line": 801,
+ "reason": "跨业务域同名 tail=\"l85.t0\",出现在 ['fenxiao', 'member', 'merch', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelstatus.l85.t0",
+ "file": "lang\\en-us.js",
+ "line": 1101,
+ "reason": "跨业务域同名 tail=\"l85.t0\",出现在 ['fenxiao', 'member', 'merch', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l85.t0",
+ "file": "lang\\en-us.js",
+ "line": 1268,
+ "reason": "跨业务域同名 tail=\"l85.t0\",出现在 ['fenxiao', 'member', 'merch', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.order_list.l85.t0",
+ "file": "lang\\en-us.js",
+ "line": 1508,
+ "reason": "跨业务域同名 tail=\"l85.t0\",出现在 ['fenxiao', 'member', 'merch', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.order.l85.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 801,
+ "reason": "跨业务域同名 tail=\"l85.t0\",出现在 ['fenxiao', 'member', 'merch', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelstatus.l85.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1101,
+ "reason": "跨业务域同名 tail=\"l85.t0\",出现在 ['fenxiao', 'member', 'merch', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l85.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1268,
+ "reason": "跨业务域同名 tail=\"l85.t0\",出现在 ['fenxiao', 'member', 'merch', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.order_list.l85.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1508,
+ "reason": "跨业务域同名 tail=\"l85.t0\",出现在 ['fenxiao', 'member', 'merch', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.order.l87.t0",
+ "file": "lang\\en-us.js",
+ "line": 802,
+ "reason": "跨业务域同名 tail=\"l87.t0\",出现在 ['fenxiao', 'member', 'merch', 'notice'](应收敛到 common)"
+ },
+ {
+ "key": "member.info_edit.l87.t0",
+ "file": "lang\\en-us.js",
+ "line": 1156,
+ "reason": "跨业务域同名 tail=\"l87.t0\",出现在 ['fenxiao', 'member', 'merch', 'notice'](应收敛到 common)"
+ },
+ {
+ "key": "merch.merchcategory.l87.t0",
+ "file": "lang\\en-us.js",
+ "line": 1242,
+ "reason": "跨业务域同名 tail=\"l87.t0\",出现在 ['fenxiao', 'member', 'merch', 'notice'](应收敛到 common)"
+ },
+ {
+ "key": "notice.detail.l87.t0",
+ "file": "lang\\en-us.js",
+ "line": 1286,
+ "reason": "跨业务域同名 tail=\"l87.t0\",出现在 ['fenxiao', 'member', 'merch', 'notice'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.order.l87.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 802,
+ "reason": "跨业务域同名 tail=\"l87.t0\",出现在 ['fenxiao', 'member', 'merch', 'notice'](应收敛到 common)"
+ },
+ {
+ "key": "member.info_edit.l87.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1156,
+ "reason": "跨业务域同名 tail=\"l87.t0\",出现在 ['fenxiao', 'member', 'merch', 'notice'](应收敛到 common)"
+ },
+ {
+ "key": "merch.merchcategory.l87.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1242,
+ "reason": "跨业务域同名 tail=\"l87.t0\",出现在 ['fenxiao', 'member', 'merch', 'notice'](应收敛到 common)"
+ },
+ {
+ "key": "notice.detail.l87.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1286,
+ "reason": "跨业务域同名 tail=\"l87.t0\",出现在 ['fenxiao', 'member', 'merch', 'notice'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.order_detail.l47.t0",
+ "file": "lang\\en-us.js",
+ "line": 803,
+ "reason": "跨业务域同名 tail=\"l47.t0\",出现在 ['fenxiao', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l47.t0",
+ "file": "lang\\en-us.js",
+ "line": 1401,
+ "reason": "跨业务域同名 tail=\"l47.t0\",出现在 ['fenxiao', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l47.t0",
+ "file": "lang\\en-us.js",
+ "line": 1434,
+ "reason": "跨业务域同名 tail=\"l47.t0\",出现在 ['fenxiao', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "page.index.l47.t0",
+ "file": "lang\\en-us.js",
+ "line": 1448,
+ "reason": "跨业务域同名 tail=\"l47.t0\",出现在 ['fenxiao', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.cases.index.l47.t0",
+ "file": "lang\\en-us.js",
+ "line": 1575,
+ "reason": "跨业务域同名 tail=\"l47.t0\",出现在 ['fenxiao', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.evaluate.l47.t0",
+ "file": "lang\\en-us.js",
+ "line": 1611,
+ "reason": "跨业务域同名 tail=\"l47.t0\",出现在 ['fenxiao', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.evaluate.l47.t0",
+ "file": "lang\\en-us.js",
+ "line": 1629,
+ "reason": "跨业务域同名 tail=\"l47.t0\",出现在 ['fenxiao', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.storeclose.l47.t0",
+ "file": "lang\\en-us.js",
+ "line": 1705,
+ "reason": "跨业务域同名 tail=\"l47.t0\",出现在 ['fenxiao', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.order_detail.l47.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 803,
+ "reason": "跨业务域同名 tail=\"l47.t0\",出现在 ['fenxiao', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l47.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1401,
+ "reason": "跨业务域同名 tail=\"l47.t0\",出现在 ['fenxiao', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l47.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1434,
+ "reason": "跨业务域同名 tail=\"l47.t0\",出现在 ['fenxiao', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "page.index.l47.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1448,
+ "reason": "跨业务域同名 tail=\"l47.t0\",出现在 ['fenxiao', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.cases.index.l47.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1575,
+ "reason": "跨业务域同名 tail=\"l47.t0\",出现在 ['fenxiao', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.evaluate.l47.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1611,
+ "reason": "跨业务域同名 tail=\"l47.t0\",出现在 ['fenxiao', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.evaluate.l47.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1629,
+ "reason": "跨业务域同名 tail=\"l47.t0\",出现在 ['fenxiao', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.storeclose.l47.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1705,
+ "reason": "跨业务域同名 tail=\"l47.t0\",出现在 ['fenxiao', 'order', 'page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.order_detail.l60.t0",
+ "file": "lang\\en-us.js",
+ "line": 805,
+ "reason": "跨业务域同名 tail=\"l60.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l60.t0",
+ "file": "lang\\en-us.js",
+ "line": 1210,
+ "reason": "跨业务域同名 tail=\"l60.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l60.t0",
+ "file": "lang\\en-us.js",
+ "line": 1435,
+ "reason": "跨业务域同名 tail=\"l60.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.cases.index.l60.t0",
+ "file": "lang\\en-us.js",
+ "line": 1577,
+ "reason": "跨业务域同名 tail=\"l60.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l60.t0",
+ "file": "lang\\en-us.js",
+ "line": 1672,
+ "reason": "跨业务域同名 tail=\"l60.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.order_detail.l60.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 805,
+ "reason": "跨业务域同名 tail=\"l60.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l60.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1210,
+ "reason": "跨业务域同名 tail=\"l60.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l60.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1435,
+ "reason": "跨业务域同名 tail=\"l60.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.cases.index.l60.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1577,
+ "reason": "跨业务域同名 tail=\"l60.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l60.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1672,
+ "reason": "跨业务域同名 tail=\"l60.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.promote.l35.t0",
+ "file": "lang\\en-us.js",
+ "line": 808,
+ "reason": "跨业务域同名 tail=\"l35.t0\",出现在 ['fenxiao', 'member', 'merch', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "member.level_growth_rules.l35.t0",
+ "file": "lang\\en-us.js",
+ "line": 1187,
+ "reason": "跨业务域同名 tail=\"l35.t0\",出现在 ['fenxiao', 'member', 'merch', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "merch.detail.l35.t0",
+ "file": "lang\\en-us.js",
+ "line": 1238,
+ "reason": "跨业务域同名 tail=\"l35.t0\",出现在 ['fenxiao', 'member', 'merch', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.list.l35.t0",
+ "file": "lang\\en-us.js",
+ "line": 1424,
+ "reason": "跨业务域同名 tail=\"l35.t0\",出现在 ['fenxiao', 'member', 'merch', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.promote.l35.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 808,
+ "reason": "跨业务域同名 tail=\"l35.t0\",出现在 ['fenxiao', 'member', 'merch', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "member.level_growth_rules.l35.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1187,
+ "reason": "跨业务域同名 tail=\"l35.t0\",出现在 ['fenxiao', 'member', 'merch', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "merch.detail.l35.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1238,
+ "reason": "跨业务域同名 tail=\"l35.t0\",出现在 ['fenxiao', 'member', 'merch', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.list.l35.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1424,
+ "reason": "跨业务域同名 tail=\"l35.t0\",出现在 ['fenxiao', 'member', 'merch', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.promote.l44.t0",
+ "file": "lang\\en-us.js",
+ "line": 809,
+ "reason": "跨业务域同名 tail=\"l44.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l44.t0",
+ "file": "lang\\en-us.js",
+ "line": 819,
+ "reason": "跨业务域同名 tail=\"l44.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.address_edit.l44.t0",
+ "file": "lang\\en-us.js",
+ "line": 1060,
+ "reason": "跨业务域同名 tail=\"l44.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon.l44.t0",
+ "file": "lang\\en-us.js",
+ "line": 1592,
+ "reason": "跨业务域同名 tail=\"l44.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.list.l44.t0",
+ "file": "lang\\en-us.js",
+ "line": 1692,
+ "reason": "跨业务域同名 tail=\"l44.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.promote.l44.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 809,
+ "reason": "跨业务域同名 tail=\"l44.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l44.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 819,
+ "reason": "跨业务域同名 tail=\"l44.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.address_edit.l44.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1060,
+ "reason": "跨业务域同名 tail=\"l44.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon.l44.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1592,
+ "reason": "跨业务域同名 tail=\"l44.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.list.l44.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1692,
+ "reason": "跨业务域同名 tail=\"l44.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.promote_code.l139.t0",
+ "file": "lang\\en-us.js",
+ "line": 811,
+ "reason": "跨业务域同名 tail=\"l139.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.account_edit.l139.t0",
+ "file": "lang\\en-us.js",
+ "line": 1034,
+ "reason": "跨业务域同名 tail=\"l139.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.info_edit.l139.t0",
+ "file": "lang\\en-us.js",
+ "line": 1148,
+ "reason": "跨业务域同名 tail=\"l139.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l139.t0",
+ "file": "lang\\en-us.js",
+ "line": 1654,
+ "reason": "跨业务域同名 tail=\"l139.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.promote_code.l139.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 811,
+ "reason": "跨业务域同名 tail=\"l139.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.account_edit.l139.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1034,
+ "reason": "跨业务域同名 tail=\"l139.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.info_edit.l139.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1148,
+ "reason": "跨业务域同名 tail=\"l139.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l139.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1654,
+ "reason": "跨业务域同名 tail=\"l139.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.promote_code.l14.t0",
+ "file": "lang\\en-us.js",
+ "line": 812,
+ "reason": "跨业务域同名 tail=\"l14.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l14.t0",
+ "file": "lang\\en-us.js",
+ "line": 850,
+ "reason": "跨业务域同名 tail=\"l14.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.info.l14.t0",
+ "file": "lang\\en-us.js",
+ "line": 1137,
+ "reason": "跨业务域同名 tail=\"l14.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.modify_face.l14.t0",
+ "file": "lang\\en-us.js",
+ "line": 1190,
+ "reason": "跨业务域同名 tail=\"l14.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail_point.l14.t0",
+ "file": "lang\\en-us.js",
+ "line": 1412,
+ "reason": "跨业务域同名 tail=\"l14.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.brand.l14.t0",
+ "file": "lang\\en-us.js",
+ "line": 1587,
+ "reason": "跨业务域同名 tail=\"l14.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l14.t0",
+ "file": "lang\\en-us.js",
+ "line": 1655,
+ "reason": "跨业务域同名 tail=\"l14.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.promote_code.l14.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 812,
+ "reason": "跨业务域同名 tail=\"l14.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l14.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 850,
+ "reason": "跨业务域同名 tail=\"l14.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.info.l14.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1137,
+ "reason": "跨业务域同名 tail=\"l14.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.modify_face.l14.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1190,
+ "reason": "跨业务域同名 tail=\"l14.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail_point.l14.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1412,
+ "reason": "跨业务域同名 tail=\"l14.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.brand.l14.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1587,
+ "reason": "跨业务域同名 tail=\"l14.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l14.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1655,
+ "reason": "跨业务域同名 tail=\"l14.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.promote_code.l18.t0",
+ "file": "lang\\en-us.js",
+ "line": 813,
+ "reason": "跨业务域同名 tail=\"l18.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'notice', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l18.t0",
+ "file": "lang\\en-us.js",
+ "line": 851,
+ "reason": "跨业务域同名 tail=\"l18.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'notice', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l18.t0",
+ "file": "lang\\en-us.js",
+ "line": 925,
+ "reason": "跨业务域同名 tail=\"l18.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'notice', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l18.t0",
+ "file": "lang\\en-us.js",
+ "line": 1004,
+ "reason": "跨业务域同名 tail=\"l18.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'notice', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l18.t0",
+ "file": "lang\\en-us.js",
+ "line": 1066,
+ "reason": "跨业务域同名 tail=\"l18.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'notice', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "notice.list.l18.t0",
+ "file": "lang\\en-us.js",
+ "line": 1288,
+ "reason": "跨业务域同名 tail=\"l18.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'notice', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "seal.medium.detail.l18.t0",
+ "file": "lang\\en-us.js",
+ "line": 1533,
+ "reason": "跨业务域同名 tail=\"l18.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'notice', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund.l18.t0",
+ "file": "lang\\en-us.js",
+ "line": 1638,
+ "reason": "跨业务域同名 tail=\"l18.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'notice', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.promote_code.l18.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 813,
+ "reason": "跨业务域同名 tail=\"l18.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'notice', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l18.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 851,
+ "reason": "跨业务域同名 tail=\"l18.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'notice', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l18.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 925,
+ "reason": "跨业务域同名 tail=\"l18.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'notice', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l18.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1004,
+ "reason": "跨业务域同名 tail=\"l18.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'notice', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l18.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1066,
+ "reason": "跨业务域同名 tail=\"l18.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'notice', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "notice.list.l18.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1288,
+ "reason": "跨业务域同名 tail=\"l18.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'notice', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "seal.medium.detail.l18.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1533,
+ "reason": "跨业务域同名 tail=\"l18.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'notice', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund.l18.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1638,
+ "reason": "跨业务域同名 tail=\"l18.t0\",出现在 ['fenxiao', 'goods', 'login', 'member', 'notice', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.promote_code.l29.t0",
+ "file": "lang\\en-us.js",
+ "line": 815,
+ "reason": "跨业务域同名 tail=\"l29.t0\",出现在 ['fenxiao', 'point', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.goods_list.l29.t0",
+ "file": "lang\\en-us.js",
+ "line": 1476,
+ "reason": "跨业务域同名 tail=\"l29.t0\",出现在 ['fenxiao', 'point', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "seal.medium.detail.l29.t0",
+ "file": "lang\\en-us.js",
+ "line": 1534,
+ "reason": "跨业务域同名 tail=\"l29.t0\",出现在 ['fenxiao', 'point', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l29.t0",
+ "file": "lang\\en-us.js",
+ "line": 1659,
+ "reason": "跨业务域同名 tail=\"l29.t0\",出现在 ['fenxiao', 'point', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.list.l29.t0",
+ "file": "lang\\en-us.js",
+ "line": 1690,
+ "reason": "跨业务域同名 tail=\"l29.t0\",出现在 ['fenxiao', 'point', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.order_list.l29.t0",
+ "file": "lang\\en-us.js",
+ "line": 1701,
+ "reason": "跨业务域同名 tail=\"l29.t0\",出现在 ['fenxiao', 'point', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.promote_code.l29.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 815,
+ "reason": "跨业务域同名 tail=\"l29.t0\",出现在 ['fenxiao', 'point', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.goods_list.l29.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1476,
+ "reason": "跨业务域同名 tail=\"l29.t0\",出现在 ['fenxiao', 'point', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "seal.medium.detail.l29.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1534,
+ "reason": "跨业务域同名 tail=\"l29.t0\",出现在 ['fenxiao', 'point', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l29.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1659,
+ "reason": "跨业务域同名 tail=\"l29.t0\",出现在 ['fenxiao', 'point', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.list.l29.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1690,
+ "reason": "跨业务域同名 tail=\"l29.t0\",出现在 ['fenxiao', 'point', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.order_list.l29.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1701,
+ "reason": "跨业务域同名 tail=\"l29.t0\",出现在 ['fenxiao', 'point', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l57.t0",
+ "file": "lang\\en-us.js",
+ "line": 821,
+ "reason": "跨业务域同名 tail=\"l57.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l57.t0",
+ "file": "lang\\en-us.js",
+ "line": 847,
+ "reason": "跨业务域同名 tail=\"l57.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.address.l57.t0",
+ "file": "lang\\en-us.js",
+ "line": 1050,
+ "reason": "跨业务域同名 tail=\"l57.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l57.t0",
+ "file": "lang\\en-us.js",
+ "line": 1112,
+ "reason": "跨业务域同名 tail=\"l57.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.footprint.l57.t0",
+ "file": "lang\\en-us.js",
+ "line": 1134,
+ "reason": "跨业务域同名 tail=\"l57.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.info_edit.l57.t0",
+ "file": "lang\\en-us.js",
+ "line": 1150,
+ "reason": "跨业务域同名 tail=\"l57.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level.l57.t0",
+ "file": "lang\\en-us.js",
+ "line": 1175,
+ "reason": "跨业务域同名 tail=\"l57.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l57.t0",
+ "file": "lang\\en-us.js",
+ "line": 1208,
+ "reason": "跨业务域同名 tail=\"l57.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l57.t0",
+ "file": "lang\\en-us.js",
+ "line": 1669,
+ "reason": "跨业务域同名 tail=\"l57.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l57.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 821,
+ "reason": "跨业务域同名 tail=\"l57.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l57.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 847,
+ "reason": "跨业务域同名 tail=\"l57.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.address.l57.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1050,
+ "reason": "跨业务域同名 tail=\"l57.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l57.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1112,
+ "reason": "跨业务域同名 tail=\"l57.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.footprint.l57.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1134,
+ "reason": "跨业务域同名 tail=\"l57.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.info_edit.l57.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1150,
+ "reason": "跨业务域同名 tail=\"l57.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level.l57.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1175,
+ "reason": "跨业务域同名 tail=\"l57.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l57.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1208,
+ "reason": "跨业务域同名 tail=\"l57.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l57.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1669,
+ "reason": "跨业务域同名 tail=\"l57.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l68.t0",
+ "file": "lang\\en-us.js",
+ "line": 822,
+ "reason": "跨业务域同名 tail=\"l68.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.balance_detail.l68.t0",
+ "file": "lang\\en-us.js",
+ "line": 1086,
+ "reason": "跨业务域同名 tail=\"l68.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l68.t0",
+ "file": "lang\\en-us.js",
+ "line": 1213,
+ "reason": "跨业务域同名 tail=\"l68.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.cases.index.l68.t0",
+ "file": "lang\\en-us.js",
+ "line": 1580,
+ "reason": "跨业务域同名 tail=\"l68.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.ranking_list.l68.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 822,
+ "reason": "跨业务域同名 tail=\"l68.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.balance_detail.l68.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1086,
+ "reason": "跨业务域同名 tail=\"l68.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l68.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1213,
+ "reason": "跨业务域同名 tail=\"l68.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.cases.index.l68.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1580,
+ "reason": "跨业务域同名 tail=\"l68.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.team.l92.t0",
+ "file": "lang\\en-us.js",
+ "line": 823,
+ "reason": "跨业务域同名 tail=\"l92.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level.l92.t0",
+ "file": "lang\\en-us.js",
+ "line": 1179,
+ "reason": "跨业务域同名 tail=\"l92.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l92.t0",
+ "file": "lang\\en-us.js",
+ "line": 1678,
+ "reason": "跨业务域同名 tail=\"l92.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.team.l92.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 823,
+ "reason": "跨业务域同名 tail=\"l92.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level.l92.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1179,
+ "reason": "跨业务域同名 tail=\"l92.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l92.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1678,
+ "reason": "跨业务域同名 tail=\"l92.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.team.l96.t0",
+ "file": "lang\\en-us.js",
+ "line": 824,
+ "reason": "跨业务域同名 tail=\"l96.t0\",出现在 ['fenxiao', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l96.t0",
+ "file": "lang\\en-us.js",
+ "line": 1273,
+ "reason": "跨业务域同名 tail=\"l96.t0\",出现在 ['fenxiao', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.team.l96.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 824,
+ "reason": "跨业务域同名 tail=\"l96.t0\",出现在 ['fenxiao', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l96.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1273,
+ "reason": "跨业务域同名 tail=\"l96.t0\",出现在 ['fenxiao', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l178.t0",
+ "file": "lang\\en-us.js",
+ "line": 825,
+ "reason": "跨业务域同名 tail=\"l178.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.account_edit.l178.t0",
+ "file": "lang\\en-us.js",
+ "line": 1036,
+ "reason": "跨业务域同名 tail=\"l178.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l178.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 825,
+ "reason": "跨业务域同名 tail=\"l178.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.account_edit.l178.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1036,
+ "reason": "跨业务域同名 tail=\"l178.t0\",出现在 ['fenxiao', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l189.t0",
+ "file": "lang\\en-us.js",
+ "line": 826,
+ "reason": "跨业务域同名 tail=\"l189.t0\",出现在 ['fenxiao', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l189.t0",
+ "file": "lang\\en-us.js",
+ "line": 1602,
+ "reason": "跨业务域同名 tail=\"l189.t0\",出现在 ['fenxiao', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l189.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 826,
+ "reason": "跨业务域同名 tail=\"l189.t0\",出现在 ['fenxiao', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l189.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1602,
+ "reason": "跨业务域同名 tail=\"l189.t0\",出现在 ['fenxiao', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l196.t0",
+ "file": "lang\\en-us.js",
+ "line": 828,
+ "reason": "跨业务域同名 tail=\"l196.t0\",出现在 ['fenxiao', 'login', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l196.t0",
+ "file": "lang\\en-us.js",
+ "line": 1007,
+ "reason": "跨业务域同名 tail=\"l196.t0\",出现在 ['fenxiao', 'login', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.address.l196.t0",
+ "file": "lang\\en-us.js",
+ "line": 1045,
+ "reason": "跨业务域同名 tail=\"l196.t0\",出现在 ['fenxiao', 'login', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l196.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 828,
+ "reason": "跨业务域同名 tail=\"l196.t0\",出现在 ['fenxiao', 'login', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l196.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1007,
+ "reason": "跨业务域同名 tail=\"l196.t0\",出现在 ['fenxiao', 'login', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.address.l196.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1045,
+ "reason": "跨业务域同名 tail=\"l196.t0\",出现在 ['fenxiao', 'login', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l31.t0",
+ "file": "lang\\en-us.js",
+ "line": 831,
+ "reason": "跨业务域同名 tail=\"l31.t0\",出现在 ['fenxiao', 'member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l31.t0",
+ "file": "lang\\en-us.js",
+ "line": 1108,
+ "reason": "跨业务域同名 tail=\"l31.t0\",出现在 ['fenxiao', 'member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.public.js.signin.l31.t0",
+ "file": "lang\\en-us.js",
+ "line": 1231,
+ "reason": "跨业务域同名 tail=\"l31.t0\",出现在 ['fenxiao', 'member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "merch.detail.l31.t0",
+ "file": "lang\\en-us.js",
+ "line": 1237,
+ "reason": "跨业务域同名 tail=\"l31.t0\",出现在 ['fenxiao', 'member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l31.t0",
+ "file": "lang\\en-us.js",
+ "line": 1496,
+ "reason": "跨业务域同名 tail=\"l31.t0\",出现在 ['fenxiao', 'member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.cases.index.l31.t0",
+ "file": "lang\\en-us.js",
+ "line": 1574,
+ "reason": "跨业务域同名 tail=\"l31.t0\",出现在 ['fenxiao', 'member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l31.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 831,
+ "reason": "跨业务域同名 tail=\"l31.t0\",出现在 ['fenxiao', 'member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l31.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1108,
+ "reason": "跨业务域同名 tail=\"l31.t0\",出现在 ['fenxiao', 'member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.public.js.signin.l31.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1231,
+ "reason": "跨业务域同名 tail=\"l31.t0\",出现在 ['fenxiao', 'member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "merch.detail.l31.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1237,
+ "reason": "跨业务域同名 tail=\"l31.t0\",出现在 ['fenxiao', 'member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l31.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1496,
+ "reason": "跨业务域同名 tail=\"l31.t0\",出现在 ['fenxiao', 'member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.cases.index.l31.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1574,
+ "reason": "跨业务域同名 tail=\"l31.t0\",出现在 ['fenxiao', 'member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l41.t0",
+ "file": "lang\\en-us.js",
+ "line": 832,
+ "reason": "跨业务域同名 tail=\"l41.t0\",出现在 ['fenxiao', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l41.t0",
+ "file": "lang\\en-us.js",
+ "line": 1498,
+ "reason": "跨业务域同名 tail=\"l41.t0\",出现在 ['fenxiao', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.storeclose.l41.t0",
+ "file": "lang\\en-us.js",
+ "line": 1703,
+ "reason": "跨业务域同名 tail=\"l41.t0\",出现在 ['fenxiao', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l41.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 832,
+ "reason": "跨业务域同名 tail=\"l41.t0\",出现在 ['fenxiao', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l41.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1498,
+ "reason": "跨业务域同名 tail=\"l41.t0\",出现在 ['fenxiao', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.storeclose.l41.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1703,
+ "reason": "跨业务域同名 tail=\"l41.t0\",出现在 ['fenxiao', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l42.t0",
+ "file": "lang\\en-us.js",
+ "line": 833,
+ "reason": "跨业务域同名 tail=\"l42.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l42.t0",
+ "file": "lang\\en-us.js",
+ "line": 857,
+ "reason": "跨业务域同名 tail=\"l42.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l42.t0",
+ "file": "lang\\en-us.js",
+ "line": 1109,
+ "reason": "跨业务域同名 tail=\"l42.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l42.t0",
+ "file": "lang\\en-us.js",
+ "line": 1400,
+ "reason": "跨业务域同名 tail=\"l42.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.evaluate.l42.t0",
+ "file": "lang\\en-us.js",
+ "line": 1628,
+ "reason": "跨业务域同名 tail=\"l42.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund.l42.t0",
+ "file": "lang\\en-us.js",
+ "line": 1643,
+ "reason": "跨业务域同名 tail=\"l42.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l42.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 833,
+ "reason": "跨业务域同名 tail=\"l42.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l42.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 857,
+ "reason": "跨业务域同名 tail=\"l42.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l42.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1109,
+ "reason": "跨业务域同名 tail=\"l42.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l42.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1400,
+ "reason": "跨业务域同名 tail=\"l42.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.evaluate.l42.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1628,
+ "reason": "跨业务域同名 tail=\"l42.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund.l42.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1643,
+ "reason": "跨业务域同名 tail=\"l42.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l46.t0",
+ "file": "lang\\en-us.js",
+ "line": 834,
+ "reason": "跨业务域同名 tail=\"l46.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l46.t0",
+ "file": "lang\\en-us.js",
+ "line": 858,
+ "reason": "跨业务域同名 tail=\"l46.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l46.t0",
+ "file": "lang\\en-us.js",
+ "line": 1069,
+ "reason": "跨业务域同名 tail=\"l46.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.balance_detail.l46.t0",
+ "file": "lang\\en-us.js",
+ "line": 1085,
+ "reason": "跨业务域同名 tail=\"l46.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.pay.result.l46.t0",
+ "file": "lang\\en-us.js",
+ "line": 1686,
+ "reason": "跨业务域同名 tail=\"l46.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l46.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 834,
+ "reason": "跨业务域同名 tail=\"l46.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l46.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 858,
+ "reason": "跨业务域同名 tail=\"l46.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l46.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1069,
+ "reason": "跨业务域同名 tail=\"l46.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.balance_detail.l46.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1085,
+ "reason": "跨业务域同名 tail=\"l46.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.pay.result.l46.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1686,
+ "reason": "跨业务域同名 tail=\"l46.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l48.t0",
+ "file": "lang\\en-us.js",
+ "line": 835,
+ "reason": "跨业务域同名 tail=\"l48.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l48.t0",
+ "file": "lang\\en-us.js",
+ "line": 1206,
+ "reason": "跨业务域同名 tail=\"l48.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.payment.l48.t0",
+ "file": "lang\\en-us.js",
+ "line": 1428,
+ "reason": "跨业务域同名 tail=\"l48.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund.l48.t0",
+ "file": "lang\\en-us.js",
+ "line": 1644,
+ "reason": "跨业务域同名 tail=\"l48.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l48.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 835,
+ "reason": "跨业务域同名 tail=\"l48.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l48.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1206,
+ "reason": "跨业务域同名 tail=\"l48.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.payment.l48.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1428,
+ "reason": "跨业务域同名 tail=\"l48.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund.l48.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1644,
+ "reason": "跨业务域同名 tail=\"l48.t0\",出现在 ['fenxiao', 'member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l6.t0",
+ "file": "lang\\en-us.js",
+ "line": 838,
+ "reason": "跨业务域同名 tail=\"l6.t0\",出现在 ['fenxiao', 'member', 'order', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelrefuse.l6.t0",
+ "file": "lang\\en-us.js",
+ "line": 1092,
+ "reason": "跨业务域同名 tail=\"l6.t0\",出现在 ['fenxiao', 'member', 'order', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.coupon.l6.t0",
+ "file": "lang\\en-us.js",
+ "line": 1129,
+ "reason": "跨业务域同名 tail=\"l6.t0\",出现在 ['fenxiao', 'member', 'order', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.list.l6.t0",
+ "file": "lang\\en-us.js",
+ "line": 1425,
+ "reason": "跨业务域同名 tail=\"l6.t0\",出现在 ['fenxiao', 'member', 'order', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "seal.medium.search.l6.t0",
+ "file": "lang\\en-us.js",
+ "line": 1535,
+ "reason": "跨业务域同名 tail=\"l6.t0\",出现在 ['fenxiao', 'member', 'order', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "seal.structure.l6.t0",
+ "file": "lang\\en-us.js",
+ "line": 1538,
+ "reason": "跨业务域同名 tail=\"l6.t0\",出现在 ['fenxiao', 'member', 'order', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.pay.wx_pay.l6.t0",
+ "file": "lang\\en-us.js",
+ "line": 1687,
+ "reason": "跨业务域同名 tail=\"l6.t0\",出现在 ['fenxiao', 'member', 'order', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_apply.l6.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 838,
+ "reason": "跨业务域同名 tail=\"l6.t0\",出现在 ['fenxiao', 'member', 'order', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelrefuse.l6.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1092,
+ "reason": "跨业务域同名 tail=\"l6.t0\",出现在 ['fenxiao', 'member', 'order', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.coupon.l6.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1129,
+ "reason": "跨业务域同名 tail=\"l6.t0\",出现在 ['fenxiao', 'member', 'order', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.list.l6.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1425,
+ "reason": "跨业务域同名 tail=\"l6.t0\",出现在 ['fenxiao', 'member', 'order', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "seal.medium.search.l6.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1535,
+ "reason": "跨业务域同名 tail=\"l6.t0\",出现在 ['fenxiao', 'member', 'order', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "seal.structure.l6.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1538,
+ "reason": "跨业务域同名 tail=\"l6.t0\",出现在 ['fenxiao', 'member', 'order', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.pay.wx_pay.l6.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1687,
+ "reason": "跨业务域同名 tail=\"l6.t0\",出现在 ['fenxiao', 'member', 'order', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l12.t0",
+ "file": "lang\\en-us.js",
+ "line": 840,
+ "reason": "跨业务域同名 tail=\"l12.t0\",出现在 ['fenxiao', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level.l12.t0",
+ "file": "lang\\en-us.js",
+ "line": 1173,
+ "reason": "跨业务域同名 tail=\"l12.t0\",出现在 ['fenxiao', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.pay_password.l12.t0",
+ "file": "lang\\en-us.js",
+ "line": 1196,
+ "reason": "跨业务域同名 tail=\"l12.t0\",出现在 ['fenxiao', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "seal.structure.l12.t0",
+ "file": "lang\\en-us.js",
+ "line": 1536,
+ "reason": "跨业务域同名 tail=\"l12.t0\",出现在 ['fenxiao', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.agreement.contenr.l12.t0",
+ "file": "lang\\en-us.js",
+ "line": 1569,
+ "reason": "跨业务域同名 tail=\"l12.t0\",出现在 ['fenxiao', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.activist.l12.t0",
+ "file": "lang\\en-us.js",
+ "line": 1625,
+ "reason": "跨业务域同名 tail=\"l12.t0\",出现在 ['fenxiao', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l12.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 840,
+ "reason": "跨业务域同名 tail=\"l12.t0\",出现在 ['fenxiao', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level.l12.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1173,
+ "reason": "跨业务域同名 tail=\"l12.t0\",出现在 ['fenxiao', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.pay_password.l12.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1196,
+ "reason": "跨业务域同名 tail=\"l12.t0\",出现在 ['fenxiao', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "seal.structure.l12.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1536,
+ "reason": "跨业务域同名 tail=\"l12.t0\",出现在 ['fenxiao', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.agreement.contenr.l12.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1569,
+ "reason": "跨业务域同名 tail=\"l12.t0\",出现在 ['fenxiao', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.activist.l12.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1625,
+ "reason": "跨业务域同名 tail=\"l12.t0\",出现在 ['fenxiao', 'member', 'seal', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l13.t0",
+ "file": "lang\\en-us.js",
+ "line": 842,
+ "reason": "跨业务域同名 tail=\"l13.t0\",出现在 ['fenxiao', 'login', 'member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l13.t0",
+ "file": "lang\\en-us.js",
+ "line": 1002,
+ "reason": "跨业务域同名 tail=\"l13.t0\",出现在 ['fenxiao', 'login', 'member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancellation.l13.t0",
+ "file": "lang\\en-us.js",
+ "line": 1088,
+ "reason": "跨业务域同名 tail=\"l13.t0\",出现在 ['fenxiao', 'login', 'member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l13.t0",
+ "file": "lang\\en-us.js",
+ "line": 1431,
+ "reason": "跨业务域同名 tail=\"l13.t0\",出现在 ['fenxiao', 'login', 'member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l13.t0",
+ "file": "lang\\en-us.js",
+ "line": 1481,
+ "reason": "跨业务域同名 tail=\"l13.t0\",出现在 ['fenxiao', 'login', 'member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.agreement.contenr.l13.t0",
+ "file": "lang\\en-us.js",
+ "line": 1570,
+ "reason": "跨业务域同名 tail=\"l13.t0\",出现在 ['fenxiao', 'login', 'member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l13.t0",
+ "file": "lang\\en-us.js",
+ "line": 1600,
+ "reason": "跨业务域同名 tail=\"l13.t0\",出现在 ['fenxiao', 'login', 'member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l13.t0",
+ "file": "lang\\en-us.js",
+ "line": 1653,
+ "reason": "跨业务域同名 tail=\"l13.t0\",出现在 ['fenxiao', 'login', 'member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l13.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 842,
+ "reason": "跨业务域同名 tail=\"l13.t0\",出现在 ['fenxiao', 'login', 'member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l13.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1002,
+ "reason": "跨业务域同名 tail=\"l13.t0\",出现在 ['fenxiao', 'login', 'member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancellation.l13.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1088,
+ "reason": "跨业务域同名 tail=\"l13.t0\",出现在 ['fenxiao', 'login', 'member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l13.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1431,
+ "reason": "跨业务域同名 tail=\"l13.t0\",出现在 ['fenxiao', 'login', 'member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l13.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1481,
+ "reason": "跨业务域同名 tail=\"l13.t0\",出现在 ['fenxiao', 'login', 'member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.agreement.contenr.l13.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1570,
+ "reason": "跨业务域同名 tail=\"l13.t0\",出现在 ['fenxiao', 'login', 'member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l13.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1600,
+ "reason": "跨业务域同名 tail=\"l13.t0\",出现在 ['fenxiao', 'login', 'member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l13.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1653,
+ "reason": "跨业务域同名 tail=\"l13.t0\",出现在 ['fenxiao', 'login', 'member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l53.t0",
+ "file": "lang\\en-us.js",
+ "line": 846,
+ "reason": "跨业务域同名 tail=\"l53.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l53.t0",
+ "file": "lang\\en-us.js",
+ "line": 1111,
+ "reason": "跨业务域同名 tail=\"l53.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l53.t0",
+ "file": "lang\\en-us.js",
+ "line": 1207,
+ "reason": "跨业务域同名 tail=\"l53.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_goods_select.l53.t0",
+ "file": "lang\\en-us.js",
+ "line": 1680,
+ "reason": "跨业务域同名 tail=\"l53.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l53.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 846,
+ "reason": "跨业务域同名 tail=\"l53.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l53.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1111,
+ "reason": "跨业务域同名 tail=\"l53.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l53.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1207,
+ "reason": "跨业务域同名 tail=\"l53.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_goods_select.l53.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1680,
+ "reason": "跨业务域同名 tail=\"l53.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l78.t0",
+ "file": "lang\\en-us.js",
+ "line": 848,
+ "reason": "跨业务域同名 tail=\"l78.t0\",出现在 ['fenxiao', 'goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "goods.public.js.list.l78.t0",
+ "file": "lang\\en-us.js",
+ "line": 973,
+ "reason": "跨业务域同名 tail=\"l78.t0\",出现在 ['fenxiao', 'goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.detail.l78.t0",
+ "file": "lang\\en-us.js",
+ "line": 1475,
+ "reason": "跨业务域同名 tail=\"l78.t0\",出现在 ['fenxiao', 'goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdraw_list.l78.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 848,
+ "reason": "跨业务域同名 tail=\"l78.t0\",出现在 ['fenxiao', 'goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "goods.public.js.list.l78.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 973,
+ "reason": "跨业务域同名 tail=\"l78.t0\",出现在 ['fenxiao', 'goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.detail.l78.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1475,
+ "reason": "跨业务域同名 tail=\"l78.t0\",出现在 ['fenxiao', 'goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l10.t0",
+ "file": "lang\\en-us.js",
+ "line": 849,
+ "reason": "跨业务域同名 tail=\"l10.t0\",出现在 ['fenxiao', 'member', 'notice', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.account.l10.t0",
+ "file": "lang\\en-us.js",
+ "line": 1025,
+ "reason": "跨业务域同名 tail=\"l10.t0\",出现在 ['fenxiao', 'member', 'notice', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.info_edit.l10.t0",
+ "file": "lang\\en-us.js",
+ "line": 1144,
+ "reason": "跨业务域同名 tail=\"l10.t0\",出现在 ['fenxiao', 'member', 'notice', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.pay_password.l10.t0",
+ "file": "lang\\en-us.js",
+ "line": 1194,
+ "reason": "跨业务域同名 tail=\"l10.t0\",出现在 ['fenxiao', 'member', 'notice', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "notice.list.l10.t0",
+ "file": "lang\\en-us.js",
+ "line": 1287,
+ "reason": "跨业务域同名 tail=\"l10.t0\",出现在 ['fenxiao', 'member', 'notice', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.public.js.refundMethod.l10.t0",
+ "file": "lang\\en-us.js",
+ "line": 1438,
+ "reason": "跨业务域同名 tail=\"l10.t0\",出现在 ['fenxiao', 'member', 'notice', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon.l10.t0",
+ "file": "lang\\en-us.js",
+ "line": 1589,
+ "reason": "跨业务域同名 tail=\"l10.t0\",出现在 ['fenxiao', 'member', 'notice', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.activist.l10.t0",
+ "file": "lang\\en-us.js",
+ "line": 1623,
+ "reason": "跨业务域同名 tail=\"l10.t0\",出现在 ['fenxiao', 'member', 'notice', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l10.t0",
+ "file": "lang\\en-us.js",
+ "line": 1648,
+ "reason": "跨业务域同名 tail=\"l10.t0\",出现在 ['fenxiao', 'member', 'notice', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l10.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 849,
+ "reason": "跨业务域同名 tail=\"l10.t0\",出现在 ['fenxiao', 'member', 'notice', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.account.l10.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1025,
+ "reason": "跨业务域同名 tail=\"l10.t0\",出现在 ['fenxiao', 'member', 'notice', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.info_edit.l10.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1144,
+ "reason": "跨业务域同名 tail=\"l10.t0\",出现在 ['fenxiao', 'member', 'notice', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.pay_password.l10.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1194,
+ "reason": "跨业务域同名 tail=\"l10.t0\",出现在 ['fenxiao', 'member', 'notice', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "notice.list.l10.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1287,
+ "reason": "跨业务域同名 tail=\"l10.t0\",出现在 ['fenxiao', 'member', 'notice', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.public.js.refundMethod.l10.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1438,
+ "reason": "跨业务域同名 tail=\"l10.t0\",出现在 ['fenxiao', 'member', 'notice', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon.l10.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1589,
+ "reason": "跨业务域同名 tail=\"l10.t0\",出现在 ['fenxiao', 'member', 'notice', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.activist.l10.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1623,
+ "reason": "跨业务域同名 tail=\"l10.t0\",出现在 ['fenxiao', 'member', 'notice', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l10.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1648,
+ "reason": "跨业务域同名 tail=\"l10.t0\",出现在 ['fenxiao', 'member', 'notice', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l26.t0",
+ "file": "lang\\en-us.js",
+ "line": 853,
+ "reason": "跨业务域同名 tail=\"l26.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelstatus.l26.t0",
+ "file": "lang\\en-us.js",
+ "line": 1096,
+ "reason": "跨业务域同名 tail=\"l26.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_batch.l26.t0",
+ "file": "lang\\en-us.js",
+ "line": 1647,
+ "reason": "跨业务域同名 tail=\"l26.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l26.t0",
+ "file": "lang\\en-us.js",
+ "line": 1658,
+ "reason": "跨业务域同名 tail=\"l26.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l26.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 853,
+ "reason": "跨业务域同名 tail=\"l26.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelstatus.l26.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1096,
+ "reason": "跨业务域同名 tail=\"l26.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_batch.l26.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1647,
+ "reason": "跨业务域同名 tail=\"l26.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l26.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1658,
+ "reason": "跨业务域同名 tail=\"l26.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l30.t0",
+ "file": "lang\\en-us.js",
+ "line": 854,
+ "reason": "跨业务域同名 tail=\"l30.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level_growth_rules.l30.t0",
+ "file": "lang\\en-us.js",
+ "line": 1184,
+ "reason": "跨业务域同名 tail=\"l30.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.activist.l30.t0",
+ "file": "lang\\en-us.js",
+ "line": 1626,
+ "reason": "跨业务域同名 tail=\"l30.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l30.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 854,
+ "reason": "跨业务域同名 tail=\"l30.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level_growth_rules.l30.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1184,
+ "reason": "跨业务域同名 tail=\"l30.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.activist.l30.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1626,
+ "reason": "跨业务域同名 tail=\"l30.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l38.t0",
+ "file": "lang\\en-us.js",
+ "line": 856,
+ "reason": "跨业务域同名 tail=\"l38.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.address.l38.t0",
+ "file": "lang\\en-us.js",
+ "line": 1049,
+ "reason": "跨业务域同名 tail=\"l38.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l38.t0",
+ "file": "lang\\en-us.js",
+ "line": 1661,
+ "reason": "跨业务域同名 tail=\"l38.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "fenxiao.withdrawal_detail.l38.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 856,
+ "reason": "跨业务域同名 tail=\"l38.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.address.l38.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1049,
+ "reason": "跨业务域同名 tail=\"l38.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l38.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1661,
+ "reason": "跨业务域同名 tail=\"l38.t0\",出现在 ['fenxiao', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.cart.l123.t0",
+ "file": "lang\\en-us.js",
+ "line": 903,
+ "reason": "跨业务域同名 tail=\"l123.t0\",出现在 ['goods', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.account.l123.t0",
+ "file": "lang\\en-us.js",
+ "line": 1029,
+ "reason": "跨业务域同名 tail=\"l123.t0\",出现在 ['goods', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "goods.cart.l123.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 903,
+ "reason": "跨业务域同名 tail=\"l123.t0\",出现在 ['goods', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.account.l123.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1029,
+ "reason": "跨业务域同名 tail=\"l123.t0\",出现在 ['goods', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "goods.cart.l192.t0",
+ "file": "lang\\en-us.js",
+ "line": 907,
+ "reason": "跨业务域同名 tail=\"l192.t0\",出现在 ['goods', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l192.t0",
+ "file": "lang\\en-us.js",
+ "line": 1362,
+ "reason": "跨业务域同名 tail=\"l192.t0\",出现在 ['goods', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l192.t0",
+ "file": "lang\\en-us.js",
+ "line": 1603,
+ "reason": "跨业务域同名 tail=\"l192.t0\",出现在 ['goods', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.cart.l192.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 907,
+ "reason": "跨业务域同名 tail=\"l192.t0\",出现在 ['goods', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l192.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1362,
+ "reason": "跨业务域同名 tail=\"l192.t0\",出现在 ['goods', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l192.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1603,
+ "reason": "跨业务域同名 tail=\"l192.t0\",出现在 ['goods', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.cart.l226.t0",
+ "file": "lang\\en-us.js",
+ "line": 911,
+ "reason": "跨业务域同名 tail=\"l226.t0\",出现在 ['goods', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.account_edit.l226.t0",
+ "file": "lang\\en-us.js",
+ "line": 1038,
+ "reason": "跨业务域同名 tail=\"l226.t0\",出现在 ['goods', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "goods.cart.l226.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 911,
+ "reason": "跨业务域同名 tail=\"l226.t0\",出现在 ['goods', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.account_edit.l226.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1038,
+ "reason": "跨业务域同名 tail=\"l226.t0\",出现在 ['goods', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "goods.cart.l8.t0",
+ "file": "lang\\en-us.js",
+ "line": 917,
+ "reason": "跨业务域同名 tail=\"l8.t0\",出现在 ['goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelrefuse.l8.t0",
+ "file": "lang\\en-us.js",
+ "line": 1093,
+ "reason": "跨业务域同名 tail=\"l8.t0\",出现在 ['goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelstatus.l8.t0",
+ "file": "lang\\en-us.js",
+ "line": 1099,
+ "reason": "跨业务域同名 tail=\"l8.t0\",出现在 ['goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelsuccess.l8.t0",
+ "file": "lang\\en-us.js",
+ "line": 1104,
+ "reason": "跨业务域同名 tail=\"l8.t0\",出现在 ['goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.form.l8.t0",
+ "file": "lang\\en-us.js",
+ "line": 1586,
+ "reason": "跨业务域同名 tail=\"l8.t0\",出现在 ['goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon.l8.t0",
+ "file": "lang\\en-us.js",
+ "line": 1599,
+ "reason": "跨业务域同名 tail=\"l8.t0\",出现在 ['goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l8.t0",
+ "file": "lang\\en-us.js",
+ "line": 1674,
+ "reason": "跨业务域同名 tail=\"l8.t0\",出现在 ['goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.cart.l8.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 917,
+ "reason": "跨业务域同名 tail=\"l8.t0\",出现在 ['goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelrefuse.l8.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1093,
+ "reason": "跨业务域同名 tail=\"l8.t0\",出现在 ['goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelstatus.l8.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1099,
+ "reason": "跨业务域同名 tail=\"l8.t0\",出现在 ['goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelsuccess.l8.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1104,
+ "reason": "跨业务域同名 tail=\"l8.t0\",出现在 ['goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.form.l8.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1586,
+ "reason": "跨业务域同名 tail=\"l8.t0\",出现在 ['goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon.l8.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1599,
+ "reason": "跨业务域同名 tail=\"l8.t0\",出现在 ['goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l8.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1674,
+ "reason": "跨业务域同名 tail=\"l8.t0\",出现在 ['goods', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.category.l51.t0",
+ "file": "lang\\en-us.js",
+ "line": 918,
+ "reason": "跨业务域同名 tail=\"l51.t0\",出现在 ['goods', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l51.t0",
+ "file": "lang\\en-us.js",
+ "line": 1402,
+ "reason": "跨业务域同名 tail=\"l51.t0\",出现在 ['goods', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l51.t0",
+ "file": "lang\\en-us.js",
+ "line": 1662,
+ "reason": "跨业务域同名 tail=\"l51.t0\",出现在 ['goods', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.category.l51.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 918,
+ "reason": "跨业务域同名 tail=\"l51.t0\",出现在 ['goods', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l51.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1402,
+ "reason": "跨业务域同名 tail=\"l51.t0\",出现在 ['goods', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l51.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1662,
+ "reason": "跨业务域同名 tail=\"l51.t0\",出现在 ['goods', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l129.t0",
+ "file": "lang\\en-us.js",
+ "line": 919,
+ "reason": "跨业务域同名 tail=\"l129.t0\",出现在 ['goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.detail.l129.t0",
+ "file": "lang\\en-us.js",
+ "line": 1465,
+ "reason": "跨业务域同名 tail=\"l129.t0\",出现在 ['goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l129.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 919,
+ "reason": "跨业务域同名 tail=\"l129.t0\",出现在 ['goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.detail.l129.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1465,
+ "reason": "跨业务域同名 tail=\"l129.t0\",出现在 ['goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l152.t0",
+ "file": "lang\\en-us.js",
+ "line": 924,
+ "reason": "跨业务域同名 tail=\"l152.t0\",出现在 ['goods', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "member.pay_password.l152.t0",
+ "file": "lang\\en-us.js",
+ "line": 1197,
+ "reason": "跨业务域同名 tail=\"l152.t0\",出现在 ['goods', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.list.l152.t0",
+ "file": "lang\\en-us.js",
+ "line": 1419,
+ "reason": "跨业务域同名 tail=\"l152.t0\",出现在 ['goods', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l152.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 924,
+ "reason": "跨业务域同名 tail=\"l152.t0\",出现在 ['goods', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "member.pay_password.l152.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1197,
+ "reason": "跨业务域同名 tail=\"l152.t0\",出现在 ['goods', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.list.l152.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1419,
+ "reason": "跨业务域同名 tail=\"l152.t0\",出现在 ['goods', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l187.t0",
+ "file": "lang\\en-us.js",
+ "line": 926,
+ "reason": "跨业务域同名 tail=\"l187.t0\",出现在 ['goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.detail.l187.t0",
+ "file": "lang\\en-us.js",
+ "line": 1467,
+ "reason": "跨业务域同名 tail=\"l187.t0\",出现在 ['goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l187.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 926,
+ "reason": "跨业务域同名 tail=\"l187.t0\",出现在 ['goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.detail.l187.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1467,
+ "reason": "跨业务域同名 tail=\"l187.t0\",出现在 ['goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l350.t0",
+ "file": "lang\\en-us.js",
+ "line": 933,
+ "reason": "跨业务域同名 tail=\"l350.t0\",出现在 ['goods', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l350.t0",
+ "file": "lang\\en-us.js",
+ "line": 1387,
+ "reason": "跨业务域同名 tail=\"l350.t0\",出现在 ['goods', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l350.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 933,
+ "reason": "跨业务域同名 tail=\"l350.t0\",出现在 ['goods', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l350.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1387,
+ "reason": "跨业务域同名 tail=\"l350.t0\",出现在 ['goods', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l99.t0",
+ "file": "lang\\en-us.js",
+ "line": 942,
+ "reason": "跨业务域同名 tail=\"l99.t0\",出现在 ['goods', 'member', 'merch', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level.l99.t0",
+ "file": "lang\\en-us.js",
+ "line": 1181,
+ "reason": "跨业务域同名 tail=\"l99.t0\",出现在 ['goods', 'member', 'merch', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l99.t0",
+ "file": "lang\\en-us.js",
+ "line": 1274,
+ "reason": "跨业务域同名 tail=\"l99.t0\",出现在 ['goods', 'member', 'merch', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail_point.l99.t0",
+ "file": "lang\\en-us.js",
+ "line": 1417,
+ "reason": "跨业务域同名 tail=\"l99.t0\",出现在 ['goods', 'member', 'merch', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.goods_list.l99.t0",
+ "file": "lang\\en-us.js",
+ "line": 1478,
+ "reason": "跨业务域同名 tail=\"l99.t0\",出现在 ['goods', 'member', 'merch', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.search.l99.t0",
+ "file": "lang\\en-us.js",
+ "line": 1622,
+ "reason": "跨业务域同名 tail=\"l99.t0\",出现在 ['goods', 'member', 'merch', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.detail.l99.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 942,
+ "reason": "跨业务域同名 tail=\"l99.t0\",出现在 ['goods', 'member', 'merch', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level.l99.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1181,
+ "reason": "跨业务域同名 tail=\"l99.t0\",出现在 ['goods', 'member', 'merch', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l99.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1274,
+ "reason": "跨业务域同名 tail=\"l99.t0\",出现在 ['goods', 'member', 'merch', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail_point.l99.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1417,
+ "reason": "跨业务域同名 tail=\"l99.t0\",出现在 ['goods', 'member', 'merch', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.goods_list.l99.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1478,
+ "reason": "跨业务域同名 tail=\"l99.t0\",出现在 ['goods', 'member', 'merch', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.search.l99.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1622,
+ "reason": "跨业务域同名 tail=\"l99.t0\",出现在 ['goods', 'member', 'merch', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.list.l148.t0",
+ "file": "lang\\en-us.js",
+ "line": 943,
+ "reason": "跨业务域同名 tail=\"l148.t0\",出现在 ['goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l148.t0",
+ "file": "lang\\en-us.js",
+ "line": 1482,
+ "reason": "跨业务域同名 tail=\"l148.t0\",出现在 ['goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "goods.list.l148.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 943,
+ "reason": "跨业务域同名 tail=\"l148.t0\",出现在 ['goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l148.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1482,
+ "reason": "跨业务域同名 tail=\"l148.t0\",出现在 ['goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "goods.list.l160.t0",
+ "file": "lang\\en-us.js",
+ "line": 944,
+ "reason": "跨业务域同名 tail=\"l160.t0\",出现在 ['goods', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.public.js.evaluate.l160.t0",
+ "file": "lang\\en-us.js",
+ "line": 1632,
+ "reason": "跨业务域同名 tail=\"l160.t0\",出现在 ['goods', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.list.l160.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 944,
+ "reason": "跨业务域同名 tail=\"l160.t0\",出现在 ['goods', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.public.js.evaluate.l160.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1632,
+ "reason": "跨业务域同名 tail=\"l160.t0\",出现在 ['goods', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.list.l168.t0",
+ "file": "lang\\en-us.js",
+ "line": 945,
+ "reason": "跨业务域同名 tail=\"l168.t0\",出现在 ['goods', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.public.js.evaluate.l168.t0",
+ "file": "lang\\en-us.js",
+ "line": 1633,
+ "reason": "跨业务域同名 tail=\"l168.t0\",出现在 ['goods', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.list.l168.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 945,
+ "reason": "跨业务域同名 tail=\"l168.t0\",出现在 ['goods', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.public.js.evaluate.l168.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1633,
+ "reason": "跨业务域同名 tail=\"l168.t0\",出现在 ['goods', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "goods.list.l170.t0",
+ "file": "lang\\en-us.js",
+ "line": 946,
+ "reason": "跨业务域同名 tail=\"l170.t0\",出现在 ['goods', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l170.t0",
+ "file": "lang\\en-us.js",
+ "line": 1246,
+ "reason": "跨业务域同名 tail=\"l170.t0\",出现在 ['goods', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "goods.list.l170.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 946,
+ "reason": "跨业务域同名 tail=\"l170.t0\",出现在 ['goods', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l170.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1246,
+ "reason": "跨业务域同名 tail=\"l170.t0\",出现在 ['goods', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "goods.list.l188.t0",
+ "file": "lang\\en-us.js",
+ "line": 948,
+ "reason": "跨业务域同名 tail=\"l188.t0\",出现在 ['goods', 'login'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l188.t0",
+ "file": "lang\\en-us.js",
+ "line": 1005,
+ "reason": "跨业务域同名 tail=\"l188.t0\",出现在 ['goods', 'login'](应收敛到 common)"
+ },
+ {
+ "key": "goods.list.l188.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 948,
+ "reason": "跨业务域同名 tail=\"l188.t0\",出现在 ['goods', 'login'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l188.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1005,
+ "reason": "跨业务域同名 tail=\"l188.t0\",出现在 ['goods', 'login'](应收敛到 common)"
+ },
+ {
+ "key": "goods.list.l40.t0",
+ "file": "lang\\en-us.js",
+ "line": 953,
+ "reason": "跨业务域同名 tail=\"l40.t0\",出现在 ['goods', 'member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.apply_withdrawal.l40.t0",
+ "file": "lang\\en-us.js",
+ "line": 1065,
+ "reason": "跨业务域同名 tail=\"l40.t0\",出现在 ['goods', 'member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l40.t0",
+ "file": "lang\\en-us.js",
+ "line": 1497,
+ "reason": "跨业务域同名 tail=\"l40.t0\",出现在 ['goods', 'member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "goods.list.l40.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 953,
+ "reason": "跨业务域同名 tail=\"l40.t0\",出现在 ['goods', 'member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.apply_withdrawal.l40.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1065,
+ "reason": "跨业务域同名 tail=\"l40.t0\",出现在 ['goods', 'member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l40.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1497,
+ "reason": "跨业务域同名 tail=\"l40.t0\",出现在 ['goods', 'member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "goods.public.js.cart.l236.t0",
+ "file": "lang\\en-us.js",
+ "line": 954,
+ "reason": "跨业务域同名 tail=\"l236.t0\",出现在 ['goods', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "member.public.js.signin.l236.t0",
+ "file": "lang\\en-us.js",
+ "line": 1228,
+ "reason": "跨业务域同名 tail=\"l236.t0\",出现在 ['goods', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail_point.l236.t0",
+ "file": "lang\\en-us.js",
+ "line": 1416,
+ "reason": "跨业务域同名 tail=\"l236.t0\",出现在 ['goods', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "goods.public.js.cart.l236.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 954,
+ "reason": "跨业务域同名 tail=\"l236.t0\",出现在 ['goods', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "member.public.js.signin.l236.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1228,
+ "reason": "跨业务域同名 tail=\"l236.t0\",出现在 ['goods', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail_point.l236.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1416,
+ "reason": "跨业务域同名 tail=\"l236.t0\",出现在 ['goods', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "goods.public.js.cart.l243.t0",
+ "file": "lang\\en-us.js",
+ "line": 955,
+ "reason": "跨业务域同名 tail=\"l243.t0\",出现在 ['goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l243.t0",
+ "file": "lang\\en-us.js",
+ "line": 1489,
+ "reason": "跨业务域同名 tail=\"l243.t0\",出现在 ['goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "goods.public.js.cart.l243.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 955,
+ "reason": "跨业务域同名 tail=\"l243.t0\",出现在 ['goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l243.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1489,
+ "reason": "跨业务域同名 tail=\"l243.t0\",出现在 ['goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "goods.public.js.list.l378.t0",
+ "file": "lang\\en-us.js",
+ "line": 971,
+ "reason": "跨业务域同名 tail=\"l378.t0\",出现在 ['goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.public.js.payment.l378.t0",
+ "file": "lang\\en-us.js",
+ "line": 1516,
+ "reason": "跨业务域同名 tail=\"l378.t0\",出现在 ['goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "goods.public.js.list.l378.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 971,
+ "reason": "跨业务域同名 tail=\"l378.t0\",出现在 ['goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.public.js.payment.l378.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1516,
+ "reason": "跨业务域同名 tail=\"l378.t0\",出现在 ['goods', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "help.list.l73.t0",
+ "file": "lang\\en-us.js",
+ "line": 980,
+ "reason": "跨业务域同名 tail=\"l73.t0\",出现在 ['help', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l73.t0",
+ "file": "lang\\en-us.js",
+ "line": 1075,
+ "reason": "跨业务域同名 tail=\"l73.t0\",出现在 ['help', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.payment.l73.t0",
+ "file": "lang\\en-us.js",
+ "line": 1430,
+ "reason": "跨业务域同名 tail=\"l73.t0\",出现在 ['help', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "help.list.l73.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 980,
+ "reason": "跨业务域同名 tail=\"l73.t0\",出现在 ['help', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l73.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1075,
+ "reason": "跨业务域同名 tail=\"l73.t0\",出现在 ['help', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.payment.l73.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1430,
+ "reason": "跨业务域同名 tail=\"l73.t0\",出现在 ['help', 'member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "help.list.l9.t0",
+ "file": "lang\\en-us.js",
+ "line": 982,
+ "reason": "跨业务域同名 tail=\"l9.t0\",出现在 ['help', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l9.t0",
+ "file": "lang\\en-us.js",
+ "line": 1077,
+ "reason": "跨业务域同名 tail=\"l9.t0\",出现在 ['help', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelstatus.l9.t0",
+ "file": "lang\\en-us.js",
+ "line": 1102,
+ "reason": "跨业务域同名 tail=\"l9.t0\",出现在 ['help', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l9.t0",
+ "file": "lang\\en-us.js",
+ "line": 1677,
+ "reason": "跨业务域同名 tail=\"l9.t0\",出现在 ['help', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "help.list.l9.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 982,
+ "reason": "跨业务域同名 tail=\"l9.t0\",出现在 ['help', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l9.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1077,
+ "reason": "跨业务域同名 tail=\"l9.t0\",出现在 ['help', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelstatus.l9.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1102,
+ "reason": "跨业务域同名 tail=\"l9.t0\",出现在 ['help', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l9.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1677,
+ "reason": "跨业务域同名 tail=\"l9.t0\",出现在 ['help', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l200.t0",
+ "file": "lang\\en-us.js",
+ "line": 1009,
+ "reason": "跨业务域同名 tail=\"l200.t0\",出现在 ['login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.address_edit.l200.t0",
+ "file": "lang\\en-us.js",
+ "line": 1053,
+ "reason": "跨业务域同名 tail=\"l200.t0\",出现在 ['login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.public.js.evaluate.l200.t0",
+ "file": "lang\\en-us.js",
+ "line": 1634,
+ "reason": "跨业务域同名 tail=\"l200.t0\",出现在 ['login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l200.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1009,
+ "reason": "跨业务域同名 tail=\"l200.t0\",出现在 ['login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.address_edit.l200.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1053,
+ "reason": "跨业务域同名 tail=\"l200.t0\",出现在 ['login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.public.js.evaluate.l200.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1634,
+ "reason": "跨业务域同名 tail=\"l200.t0\",出现在 ['login', 'member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l208.t0",
+ "file": "lang\\en-us.js",
+ "line": 1011,
+ "reason": "跨业务域同名 tail=\"l208.t0\",出现在 ['login', 'order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l208.t0",
+ "file": "lang\\en-us.js",
+ "line": 1366,
+ "reason": "跨业务域同名 tail=\"l208.t0\",出现在 ['login', 'order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.detail.l208.t0",
+ "file": "lang\\en-us.js",
+ "line": 1469,
+ "reason": "跨业务域同名 tail=\"l208.t0\",出现在 ['login', 'order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l208.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1011,
+ "reason": "跨业务域同名 tail=\"l208.t0\",出现在 ['login', 'order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l208.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1366,
+ "reason": "跨业务域同名 tail=\"l208.t0\",出现在 ['login', 'order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.detail.l208.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1469,
+ "reason": "跨业务域同名 tail=\"l208.t0\",出现在 ['login', 'order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l212.t0",
+ "file": "lang\\en-us.js",
+ "line": 1012,
+ "reason": "跨业务域同名 tail=\"l212.t0\",出现在 ['login', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l212.t0",
+ "file": "lang\\en-us.js",
+ "line": 1607,
+ "reason": "跨业务域同名 tail=\"l212.t0\",出现在 ['login', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l212.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1012,
+ "reason": "跨业务域同名 tail=\"l212.t0\",出现在 ['login', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l212.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1607,
+ "reason": "跨业务域同名 tail=\"l212.t0\",出现在 ['login', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l230.t0",
+ "file": "lang\\en-us.js",
+ "line": 1014,
+ "reason": "跨业务域同名 tail=\"l230.t0\",出现在 ['login', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.account_edit.l230.t0",
+ "file": "lang\\en-us.js",
+ "line": 1040,
+ "reason": "跨业务域同名 tail=\"l230.t0\",出现在 ['login', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l230.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1014,
+ "reason": "跨业务域同名 tail=\"l230.t0\",出现在 ['login', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "member.account_edit.l230.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1040,
+ "reason": "跨业务域同名 tail=\"l230.t0\",出现在 ['login', 'member'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l286.t0",
+ "file": "lang\\en-us.js",
+ "line": 1015,
+ "reason": "跨业务域同名 tail=\"l286.t0\",出现在 ['login', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l286.t0",
+ "file": "lang\\en-us.js",
+ "line": 1382,
+ "reason": "跨业务域同名 tail=\"l286.t0\",出现在 ['login', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l286.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1015,
+ "reason": "跨业务域同名 tail=\"l286.t0\",出现在 ['login', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l286.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1382,
+ "reason": "跨业务域同名 tail=\"l286.t0\",出现在 ['login', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l7.t0",
+ "file": "lang\\en-us.js",
+ "line": 1016,
+ "reason": "跨业务域同名 tail=\"l7.t0\",出现在 ['login', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelsuccess.l7.t0",
+ "file": "lang\\en-us.js",
+ "line": 1103,
+ "reason": "跨业务域同名 tail=\"l7.t0\",出现在 ['login', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.info_edit.l7.t0",
+ "file": "lang\\en-us.js",
+ "line": 1151,
+ "reason": "跨业务域同名 tail=\"l7.t0\",出现在 ['login', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "merch.detail.l7.t0",
+ "file": "lang\\en-us.js",
+ "line": 1240,
+ "reason": "跨业务域同名 tail=\"l7.t0\",出现在 ['login', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.list.l7.t0",
+ "file": "lang\\en-us.js",
+ "line": 1697,
+ "reason": "跨业务域同名 tail=\"l7.t0\",出现在 ['login', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "login.find.l7.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1016,
+ "reason": "跨业务域同名 tail=\"l7.t0\",出现在 ['login', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelsuccess.l7.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1103,
+ "reason": "跨业务域同名 tail=\"l7.t0\",出现在 ['login', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.info_edit.l7.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1151,
+ "reason": "跨业务域同名 tail=\"l7.t0\",出现在 ['login', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "merch.detail.l7.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1240,
+ "reason": "跨业务域同名 tail=\"l7.t0\",出现在 ['login', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.list.l7.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1697,
+ "reason": "跨业务域同名 tail=\"l7.t0\",出现在 ['login', 'member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.account.l106.t0",
+ "file": "lang\\en-us.js",
+ "line": 1026,
+ "reason": "跨业务域同名 tail=\"l106.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level.l106.t0",
+ "file": "lang\\en-us.js",
+ "line": 1171,
+ "reason": "跨业务域同名 tail=\"l106.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l106.t0",
+ "file": "lang\\en-us.js",
+ "line": 1359,
+ "reason": "跨业务域同名 tail=\"l106.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l106.t0",
+ "file": "lang\\en-us.js",
+ "line": 1650,
+ "reason": "跨业务域同名 tail=\"l106.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.account.l106.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1026,
+ "reason": "跨业务域同名 tail=\"l106.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level.l106.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1171,
+ "reason": "跨业务域同名 tail=\"l106.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l106.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1359,
+ "reason": "跨业务域同名 tail=\"l106.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l106.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1650,
+ "reason": "跨业务域同名 tail=\"l106.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.account.l37.t0",
+ "file": "lang\\en-us.js",
+ "line": 1032,
+ "reason": "跨业务域同名 tail=\"l37.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.info.l37.t0",
+ "file": "lang\\en-us.js",
+ "line": 1138,
+ "reason": "跨业务域同名 tail=\"l37.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.pay_password.l37.t0",
+ "file": "lang\\en-us.js",
+ "line": 1199,
+ "reason": "跨业务域同名 tail=\"l37.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l37.t0",
+ "file": "lang\\en-us.js",
+ "line": 1390,
+ "reason": "跨业务域同名 tail=\"l37.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.payment.l37.t0",
+ "file": "lang\\en-us.js",
+ "line": 1427,
+ "reason": "跨业务域同名 tail=\"l37.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.logistics.l37.t0",
+ "file": "lang\\en-us.js",
+ "line": 1631,
+ "reason": "跨业务域同名 tail=\"l37.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.pay.result.l37.t0",
+ "file": "lang\\en-us.js",
+ "line": 1685,
+ "reason": "跨业务域同名 tail=\"l37.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.account.l37.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1032,
+ "reason": "跨业务域同名 tail=\"l37.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.info.l37.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1138,
+ "reason": "跨业务域同名 tail=\"l37.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.pay_password.l37.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1199,
+ "reason": "跨业务域同名 tail=\"l37.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l37.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1390,
+ "reason": "跨业务域同名 tail=\"l37.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.payment.l37.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1427,
+ "reason": "跨业务域同名 tail=\"l37.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.logistics.l37.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1631,
+ "reason": "跨业务域同名 tail=\"l37.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.pay.result.l37.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1685,
+ "reason": "跨业务域同名 tail=\"l37.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.account_edit.l67.t0",
+ "file": "lang\\en-us.js",
+ "line": 1043,
+ "reason": "跨业务域同名 tail=\"l67.t0\",出现在 ['member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l67.t0",
+ "file": "lang\\en-us.js",
+ "line": 1074,
+ "reason": "跨业务域同名 tail=\"l67.t0\",出现在 ['member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.public.js.info.l67.t0",
+ "file": "lang\\en-us.js",
+ "line": 1221,
+ "reason": "跨业务域同名 tail=\"l67.t0\",出现在 ['member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l67.t0",
+ "file": "lang\\en-us.js",
+ "line": 1263,
+ "reason": "跨业务域同名 tail=\"l67.t0\",出现在 ['member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l67.t0",
+ "file": "lang\\en-us.js",
+ "line": 1504,
+ "reason": "跨业务域同名 tail=\"l67.t0\",出现在 ['member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.list.l67.t0",
+ "file": "lang\\en-us.js",
+ "line": 1696,
+ "reason": "跨业务域同名 tail=\"l67.t0\",出现在 ['member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.account_edit.l67.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1043,
+ "reason": "跨业务域同名 tail=\"l67.t0\",出现在 ['member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l67.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1074,
+ "reason": "跨业务域同名 tail=\"l67.t0\",出现在 ['member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.public.js.info.l67.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1221,
+ "reason": "跨业务域同名 tail=\"l67.t0\",出现在 ['member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l67.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1263,
+ "reason": "跨业务域同名 tail=\"l67.t0\",出现在 ['member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l67.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1504,
+ "reason": "跨业务域同名 tail=\"l67.t0\",出现在 ['member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.list.l67.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1696,
+ "reason": "跨业务域同名 tail=\"l67.t0\",出现在 ['member', 'merch', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.account_edit.l71.t0",
+ "file": "lang\\en-us.js",
+ "line": 1044,
+ "reason": "跨业务域同名 tail=\"l71.t0\",出现在 ['member', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "member.balance_detail.l71.t0",
+ "file": "lang\\en-us.js",
+ "line": 1087,
+ "reason": "跨业务域同名 tail=\"l71.t0\",出现在 ['member', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "member.info_edit.l71.t0",
+ "file": "lang\\en-us.js",
+ "line": 1152,
+ "reason": "跨业务域同名 tail=\"l71.t0\",出现在 ['member', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "member.invite_friends.l71.t0",
+ "file": "lang\\en-us.js",
+ "line": 1168,
+ "reason": "跨业务域同名 tail=\"l71.t0\",出现在 ['member', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l71.t0",
+ "file": "lang\\en-us.js",
+ "line": 1266,
+ "reason": "跨业务域同名 tail=\"l71.t0\",出现在 ['member', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "member.account_edit.l71.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1044,
+ "reason": "跨业务域同名 tail=\"l71.t0\",出现在 ['member', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "member.balance_detail.l71.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1087,
+ "reason": "跨业务域同名 tail=\"l71.t0\",出现在 ['member', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "member.info_edit.l71.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1152,
+ "reason": "跨业务域同名 tail=\"l71.t0\",出现在 ['member', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "member.invite_friends.l71.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1168,
+ "reason": "跨业务域同名 tail=\"l71.t0\",出现在 ['member', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l71.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1266,
+ "reason": "跨业务域同名 tail=\"l71.t0\",出现在 ['member', 'merch'](应收敛到 common)"
+ },
+ {
+ "key": "member.address.l247.t0",
+ "file": "lang\\en-us.js",
+ "line": 1047,
+ "reason": "跨业务域同名 tail=\"l247.t0\",出现在 ['member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l247.t0",
+ "file": "lang\\en-us.js",
+ "line": 1372,
+ "reason": "跨业务域同名 tail=\"l247.t0\",出现在 ['member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l247.t0",
+ "file": "lang\\en-us.js",
+ "line": 1493,
+ "reason": "跨业务域同名 tail=\"l247.t0\",出现在 ['member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l247.t0",
+ "file": "lang\\en-us.js",
+ "line": 1608,
+ "reason": "跨业务域同名 tail=\"l247.t0\",出现在 ['member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.address.l247.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1047,
+ "reason": "跨业务域同名 tail=\"l247.t0\",出现在 ['member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l247.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1372,
+ "reason": "跨业务域同名 tail=\"l247.t0\",出现在 ['member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l247.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1493,
+ "reason": "跨业务域同名 tail=\"l247.t0\",出现在 ['member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l247.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1608,
+ "reason": "跨业务域同名 tail=\"l247.t0\",出现在 ['member', 'order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.address_edit.l233.t0",
+ "file": "lang\\en-us.js",
+ "line": 1054,
+ "reason": "跨业务域同名 tail=\"l233.t0\",出现在 ['member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l233.t0",
+ "file": "lang\\en-us.js",
+ "line": 1370,
+ "reason": "跨业务域同名 tail=\"l233.t0\",出现在 ['member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "member.address_edit.l233.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1054,
+ "reason": "跨业务域同名 tail=\"l233.t0\",出现在 ['member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l233.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1370,
+ "reason": "跨业务域同名 tail=\"l233.t0\",出现在 ['member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "member.address_edit.l234.t0",
+ "file": "lang\\en-us.js",
+ "line": 1055,
+ "reason": "跨业务域同名 tail=\"l234.t0\",出现在 ['member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l234.t0",
+ "file": "lang\\en-us.js",
+ "line": 1484,
+ "reason": "跨业务域同名 tail=\"l234.t0\",出现在 ['member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.address_edit.l234.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1055,
+ "reason": "跨业务域同名 tail=\"l234.t0\",出现在 ['member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l234.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1484,
+ "reason": "跨业务域同名 tail=\"l234.t0\",出现在 ['member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.address_edit.l241.t0",
+ "file": "lang\\en-us.js",
+ "line": 1056,
+ "reason": "跨业务域同名 tail=\"l241.t0\",出现在 ['member', 'order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l241.t0",
+ "file": "lang\\en-us.js",
+ "line": 1371,
+ "reason": "跨业务域同名 tail=\"l241.t0\",出现在 ['member', 'order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l241.t0",
+ "file": "lang\\en-us.js",
+ "line": 1487,
+ "reason": "跨业务域同名 tail=\"l241.t0\",出现在 ['member', 'order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.address_edit.l241.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1056,
+ "reason": "跨业务域同名 tail=\"l241.t0\",出现在 ['member', 'order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l241.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1371,
+ "reason": "跨业务域同名 tail=\"l241.t0\",出现在 ['member', 'order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l241.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1487,
+ "reason": "跨业务域同名 tail=\"l241.t0\",出现在 ['member', 'order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.apply_withdrawal.l109.t0",
+ "file": "lang\\en-us.js",
+ "line": 1061,
+ "reason": "跨业务域同名 tail=\"l109.t0\",出现在 ['member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l109.t0",
+ "file": "lang\\en-us.js",
+ "line": 1360,
+ "reason": "跨业务域同名 tail=\"l109.t0\",出现在 ['member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "member.apply_withdrawal.l109.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1061,
+ "reason": "跨业务域同名 tail=\"l109.t0\",出现在 ['member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l109.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1360,
+ "reason": "跨业务域同名 tail=\"l109.t0\",出现在 ['member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l54.t0",
+ "file": "lang\\en-us.js",
+ "line": 1071,
+ "reason": "跨业务域同名 tail=\"l54.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund.l54.t0",
+ "file": "lang\\en-us.js",
+ "line": 1645,
+ "reason": "跨业务域同名 tail=\"l54.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l54.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1071,
+ "reason": "跨业务域同名 tail=\"l54.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund.l54.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1645,
+ "reason": "跨业务域同名 tail=\"l54.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l63.t0",
+ "file": "lang\\en-us.js",
+ "line": 1073,
+ "reason": "跨业务域同名 tail=\"l63.t0\",出现在 ['member', 'merch', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancellation.l63.t0",
+ "file": "lang\\en-us.js",
+ "line": 1090,
+ "reason": "跨业务域同名 tail=\"l63.t0\",出现在 ['member', 'merch', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l63.t0",
+ "file": "lang\\en-us.js",
+ "line": 1115,
+ "reason": "跨业务域同名 tail=\"l63.t0\",出现在 ['member', 'merch', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l63.t0",
+ "file": "lang\\en-us.js",
+ "line": 1257,
+ "reason": "跨业务域同名 tail=\"l63.t0\",出现在 ['member', 'merch', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l63.t0",
+ "file": "lang\\en-us.js",
+ "line": 1503,
+ "reason": "跨业务域同名 tail=\"l63.t0\",出现在 ['member', 'merch', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l63.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1073,
+ "reason": "跨业务域同名 tail=\"l63.t0\",出现在 ['member', 'merch', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancellation.l63.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1090,
+ "reason": "跨业务域同名 tail=\"l63.t0\",出现在 ['member', 'merch', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l63.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1115,
+ "reason": "跨业务域同名 tail=\"l63.t0\",出现在 ['member', 'merch', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l63.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1257,
+ "reason": "跨业务域同名 tail=\"l63.t0\",出现在 ['member', 'merch', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l63.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1503,
+ "reason": "跨业务域同名 tail=\"l63.t0\",出现在 ['member', 'merch', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l74.t0",
+ "file": "lang\\en-us.js",
+ "line": 1076,
+ "reason": "跨业务域同名 tail=\"l74.t0\",出现在 ['member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.list.l74.t0",
+ "file": "lang\\en-us.js",
+ "line": 1426,
+ "reason": "跨业务域同名 tail=\"l74.t0\",出现在 ['member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "member.assets.l74.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1076,
+ "reason": "跨业务域同名 tail=\"l74.t0\",出现在 ['member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.list.l74.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1426,
+ "reason": "跨业务域同名 tail=\"l74.t0\",出现在 ['member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancellation.l15.t0",
+ "file": "lang\\en-us.js",
+ "line": 1089,
+ "reason": "跨业务域同名 tail=\"l15.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail_point.l15.t0",
+ "file": "lang\\en-us.js",
+ "line": 1414,
+ "reason": "跨业务域同名 tail=\"l15.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.search.l15.t0",
+ "file": "lang\\en-us.js",
+ "line": 1618,
+ "reason": "跨业务域同名 tail=\"l15.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancellation.l15.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1089,
+ "reason": "跨业务域同名 tail=\"l15.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail_point.l15.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1414,
+ "reason": "跨业务域同名 tail=\"l15.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.search.l15.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1618,
+ "reason": "跨业务域同名 tail=\"l15.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelstatus.l84.t0",
+ "file": "lang\\en-us.js",
+ "line": 1100,
+ "reason": "跨业务域同名 tail=\"l84.t0\",出现在 ['member', 'order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l84.t0",
+ "file": "lang\\en-us.js",
+ "line": 1409,
+ "reason": "跨业务域同名 tail=\"l84.t0\",出现在 ['member', 'order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l84.t0",
+ "file": "lang\\en-us.js",
+ "line": 1505,
+ "reason": "跨业务域同名 tail=\"l84.t0\",出现在 ['member', 'order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.cancelstatus.l84.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1100,
+ "reason": "跨业务域同名 tail=\"l84.t0\",出现在 ['member', 'order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l84.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1409,
+ "reason": "跨业务域同名 tail=\"l84.t0\",出现在 ['member', 'order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l84.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1505,
+ "reason": "跨业务域同名 tail=\"l84.t0\",出现在 ['member', 'order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l25.t0",
+ "file": "lang\\en-us.js",
+ "line": 1107,
+ "reason": "跨业务域同名 tail=\"l25.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level_growth_rules.l25.t0",
+ "file": "lang\\en-us.js",
+ "line": 1183,
+ "reason": "跨业务域同名 tail=\"l25.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund.l25.t0",
+ "file": "lang\\en-us.js",
+ "line": 1641,
+ "reason": "跨业务域同名 tail=\"l25.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.pay.cashier.l25.t0",
+ "file": "lang\\en-us.js",
+ "line": 1682,
+ "reason": "跨业务域同名 tail=\"l25.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l25.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1107,
+ "reason": "跨业务域同名 tail=\"l25.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level_growth_rules.l25.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1183,
+ "reason": "跨业务域同名 tail=\"l25.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund.l25.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1641,
+ "reason": "跨业务域同名 tail=\"l25.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.pay.cashier.l25.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1682,
+ "reason": "跨业务域同名 tail=\"l25.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l58.t0",
+ "file": "lang\\en-us.js",
+ "line": 1113,
+ "reason": "跨业务域同名 tail=\"l58.t0\",出现在 ['member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l58.t0",
+ "file": "lang\\en-us.js",
+ "line": 1209,
+ "reason": "跨业务域同名 tail=\"l58.t0\",出现在 ['member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.public.js.info.l58.t0",
+ "file": "lang\\en-us.js",
+ "line": 1218,
+ "reason": "跨业务域同名 tail=\"l58.t0\",出现在 ['member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l58.t0",
+ "file": "lang\\en-us.js",
+ "line": 1252,
+ "reason": "跨业务域同名 tail=\"l58.t0\",出现在 ['member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l58.t0",
+ "file": "lang\\en-us.js",
+ "line": 1670,
+ "reason": "跨业务域同名 tail=\"l58.t0\",出现在 ['member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l58.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1113,
+ "reason": "跨业务域同名 tail=\"l58.t0\",出现在 ['member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l58.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1209,
+ "reason": "跨业务域同名 tail=\"l58.t0\",出现在 ['member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.public.js.info.l58.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1218,
+ "reason": "跨业务域同名 tail=\"l58.t0\",出现在 ['member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.edit.l58.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1252,
+ "reason": "跨业务域同名 tail=\"l58.t0\",出现在 ['member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l58.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1670,
+ "reason": "跨业务域同名 tail=\"l58.t0\",出现在 ['member', 'merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l62.t0",
+ "file": "lang\\en-us.js",
+ "line": 1114,
+ "reason": "跨业务域同名 tail=\"l62.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.public.js.info.l62.t0",
+ "file": "lang\\en-us.js",
+ "line": 1220,
+ "reason": "跨业务域同名 tail=\"l62.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.cases.index.l62.t0",
+ "file": "lang\\en-us.js",
+ "line": 1578,
+ "reason": "跨业务域同名 tail=\"l62.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l62.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1114,
+ "reason": "跨业务域同名 tail=\"l62.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.public.js.info.l62.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1220,
+ "reason": "跨业务域同名 tail=\"l62.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.cases.index.l62.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1578,
+ "reason": "跨业务域同名 tail=\"l62.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l72.t0",
+ "file": "lang\\en-us.js",
+ "line": 1116,
+ "reason": "跨业务域同名 tail=\"l72.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.info_edit.l72.t0",
+ "file": "lang\\en-us.js",
+ "line": 1153,
+ "reason": "跨业务域同名 tail=\"l72.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level.l72.t0",
+ "file": "lang\\en-us.js",
+ "line": 1177,
+ "reason": "跨业务域同名 tail=\"l72.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.form.formdata.l72.t0",
+ "file": "lang\\en-us.js",
+ "line": 1585,
+ "reason": "跨业务域同名 tail=\"l72.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.evaluate.l72.t0",
+ "file": "lang\\en-us.js",
+ "line": 1630,
+ "reason": "跨业务域同名 tail=\"l72.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l72.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1116,
+ "reason": "跨业务域同名 tail=\"l72.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.info_edit.l72.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1153,
+ "reason": "跨业务域同名 tail=\"l72.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.level.l72.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1177,
+ "reason": "跨业务域同名 tail=\"l72.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.form.formdata.l72.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1585,
+ "reason": "跨业务域同名 tail=\"l72.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.evaluate.l72.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1630,
+ "reason": "跨业务域同名 tail=\"l72.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l86.t0",
+ "file": "lang\\en-us.js",
+ "line": 1119,
+ "reason": "跨业务域同名 tail=\"l86.t0\",出现在 ['member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l86.t0",
+ "file": "lang\\en-us.js",
+ "line": 1506,
+ "reason": "跨业务域同名 tail=\"l86.t0\",出现在 ['member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.search.l86.t0",
+ "file": "lang\\en-us.js",
+ "line": 1621,
+ "reason": "跨业务域同名 tail=\"l86.t0\",出现在 ['member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card.l86.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1119,
+ "reason": "跨业务域同名 tail=\"l86.t0\",出现在 ['member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l86.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1506,
+ "reason": "跨业务域同名 tail=\"l86.t0\",出现在 ['member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.search.l86.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1621,
+ "reason": "跨业务域同名 tail=\"l86.t0\",出现在 ['member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card_buy.l175.t0",
+ "file": "lang\\en-us.js",
+ "line": 1121,
+ "reason": "跨业务域同名 tail=\"l175.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund.l175.t0",
+ "file": "lang\\en-us.js",
+ "line": 1637,
+ "reason": "跨业务域同名 tail=\"l175.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.card_buy.l175.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1121,
+ "reason": "跨业务域同名 tail=\"l175.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund.l175.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1637,
+ "reason": "跨业务域同名 tail=\"l175.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.info.l50.t0",
+ "file": "lang\\en-us.js",
+ "line": 1140,
+ "reason": "跨业务域同名 tail=\"l50.t0\",出现在 ['member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.invite_friends.l50.t0",
+ "file": "lang\\en-us.js",
+ "line": 1164,
+ "reason": "跨业务域同名 tail=\"l50.t0\",出现在 ['member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l50.t0",
+ "file": "lang\\en-us.js",
+ "line": 1499,
+ "reason": "跨业务域同名 tail=\"l50.t0\",出现在 ['member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.list.l50.t0",
+ "file": "lang\\en-us.js",
+ "line": 1694,
+ "reason": "跨业务域同名 tail=\"l50.t0\",出现在 ['member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.info.l50.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1140,
+ "reason": "跨业务域同名 tail=\"l50.t0\",出现在 ['member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.invite_friends.l50.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1164,
+ "reason": "跨业务域同名 tail=\"l50.t0\",出现在 ['member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l50.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1499,
+ "reason": "跨业务域同名 tail=\"l50.t0\",出现在 ['member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.list.l50.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1694,
+ "reason": "跨业务域同名 tail=\"l50.t0\",出现在 ['member', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.info.l66.t0",
+ "file": "lang\\en-us.js",
+ "line": 1141,
+ "reason": "跨业务域同名 tail=\"l66.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l66.t0",
+ "file": "lang\\en-us.js",
+ "line": 1212,
+ "reason": "跨业务域同名 tail=\"l66.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.payment.l66.t0",
+ "file": "lang\\en-us.js",
+ "line": 1429,
+ "reason": "跨业务域同名 tail=\"l66.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.cases.index.l66.t0",
+ "file": "lang\\en-us.js",
+ "line": 1579,
+ "reason": "跨业务域同名 tail=\"l66.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon.l66.t0",
+ "file": "lang\\en-us.js",
+ "line": 1597,
+ "reason": "跨业务域同名 tail=\"l66.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.info.l66.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1141,
+ "reason": "跨业务域同名 tail=\"l66.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l66.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1212,
+ "reason": "跨业务域同名 tail=\"l66.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.payment.l66.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1429,
+ "reason": "跨业务域同名 tail=\"l66.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.cases.index.l66.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1579,
+ "reason": "跨业务域同名 tail=\"l66.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon.l66.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1597,
+ "reason": "跨业务域同名 tail=\"l66.t0\",出现在 ['member', 'order', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.info_edit.l77.t0",
+ "file": "lang\\en-us.js",
+ "line": 1154,
+ "reason": "跨业务域同名 tail=\"l77.t0\",出现在 ['member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.detail.l77.t0",
+ "file": "lang\\en-us.js",
+ "line": 1473,
+ "reason": "跨业务域同名 tail=\"l77.t0\",出现在 ['member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.info_edit.l77.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1154,
+ "reason": "跨业务域同名 tail=\"l77.t0\",出现在 ['member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.detail.l77.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1473,
+ "reason": "跨业务域同名 tail=\"l77.t0\",出现在 ['member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.invite_friends.l217.t0",
+ "file": "lang\\en-us.js",
+ "line": 1163,
+ "reason": "跨业务域同名 tail=\"l217.t0\",出现在 ['member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.payment.l217.t0",
+ "file": "lang\\en-us.js",
+ "line": 1510,
+ "reason": "跨业务域同名 tail=\"l217.t0\",出现在 ['member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.invite_friends.l217.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1163,
+ "reason": "跨业务域同名 tail=\"l217.t0\",出现在 ['member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.payment.l217.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1510,
+ "reason": "跨业务域同名 tail=\"l217.t0\",出现在 ['member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.invite_friends.l61.t0",
+ "file": "lang\\en-us.js",
+ "line": 1167,
+ "reason": "跨业务域同名 tail=\"l61.t0\",出现在 ['member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l61.t0",
+ "file": "lang\\en-us.js",
+ "line": 1436,
+ "reason": "跨业务域同名 tail=\"l61.t0\",出现在 ['member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "member.invite_friends.l61.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1167,
+ "reason": "跨业务域同名 tail=\"l61.t0\",出现在 ['member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l61.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1436,
+ "reason": "跨业务域同名 tail=\"l61.t0\",出现在 ['member', 'order'](应收敛到 common)"
+ },
+ {
+ "key": "member.modify_face.l95.t0",
+ "file": "lang\\en-us.js",
+ "line": 1193,
+ "reason": "跨业务域同名 tail=\"l95.t0\",出现在 ['member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.public.js.payment.l95.t0",
+ "file": "lang\\en-us.js",
+ "line": 1517,
+ "reason": "跨业务域同名 tail=\"l95.t0\",出现在 ['member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.modify_face.l95.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1193,
+ "reason": "跨业务域同名 tail=\"l95.t0\",出现在 ['member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.public.js.payment.l95.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1517,
+ "reason": "跨业务域同名 tail=\"l95.t0\",出现在 ['member', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l65.t0",
+ "file": "lang\\en-us.js",
+ "line": 1211,
+ "reason": "跨业务域同名 tail=\"l65.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon.l65.t0",
+ "file": "lang\\en-us.js",
+ "line": 1596,
+ "reason": "跨业务域同名 tail=\"l65.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "member.point.l65.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1211,
+ "reason": "跨业务域同名 tail=\"l65.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon.l65.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1596,
+ "reason": "跨业务域同名 tail=\"l65.t0\",出现在 ['member', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "merch.detail.l102.t0",
+ "file": "lang\\en-us.js",
+ "line": 1236,
+ "reason": "跨业务域同名 tail=\"l102.t0\",出现在 ['merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon.l102.t0",
+ "file": "lang\\en-us.js",
+ "line": 1590,
+ "reason": "跨业务域同名 tail=\"l102.t0\",出现在 ['merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "merch.detail.l102.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1236,
+ "reason": "跨业务域同名 tail=\"l102.t0\",出现在 ['merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon.l102.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1590,
+ "reason": "跨业务域同名 tail=\"l102.t0\",出现在 ['merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.js.list.l80.t0",
+ "file": "lang\\en-us.js",
+ "line": 1275,
+ "reason": "跨业务域同名 tail=\"l80.t0\",出现在 ['merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l80.t0",
+ "file": "lang\\en-us.js",
+ "line": 1675,
+ "reason": "跨业务域同名 tail=\"l80.t0\",出现在 ['merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "merch.public.js.list.l80.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1275,
+ "reason": "跨业务域同名 tail=\"l80.t0\",出现在 ['merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l80.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1675,
+ "reason": "跨业务域同名 tail=\"l80.t0\",出现在 ['merch', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l276.t0",
+ "file": "lang\\en-us.js",
+ "line": 1377,
+ "reason": "跨业务域同名 tail=\"l276.t0\",出现在 ['order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l276.t0",
+ "file": "lang\\en-us.js",
+ "line": 1494,
+ "reason": "跨业务域同名 tail=\"l276.t0\",出现在 ['order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.list.l276.t0",
+ "file": "lang\\en-us.js",
+ "line": 1689,
+ "reason": "跨业务域同名 tail=\"l276.t0\",出现在 ['order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l276.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1377,
+ "reason": "跨业务域同名 tail=\"l276.t0\",出现在 ['order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l276.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1494,
+ "reason": "跨业务域同名 tail=\"l276.t0\",出现在 ['order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.list.l276.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1689,
+ "reason": "跨业务域同名 tail=\"l276.t0\",出现在 ['order', 'point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l305.t0",
+ "file": "lang\\en-us.js",
+ "line": 1385,
+ "reason": "跨业务域同名 tail=\"l305.t0\",出现在 ['order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l305.t0",
+ "file": "lang\\en-us.js",
+ "line": 1495,
+ "reason": "跨业务域同名 tail=\"l305.t0\",出现在 ['order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail.l305.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1385,
+ "reason": "跨业务域同名 tail=\"l305.t0\",出现在 ['order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l305.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1495,
+ "reason": "跨业务域同名 tail=\"l305.t0\",出现在 ['order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail_point.l128.t0",
+ "file": "lang\\en-us.js",
+ "line": 1411,
+ "reason": "跨业务域同名 tail=\"l128.t0\",出现在 ['order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l128.t0",
+ "file": "lang\\en-us.js",
+ "line": 1480,
+ "reason": "跨业务域同名 tail=\"l128.t0\",出现在 ['order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "order.detail_point.l128.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1411,
+ "reason": "跨业务域同名 tail=\"l128.t0\",出现在 ['order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l128.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1480,
+ "reason": "跨业务域同名 tail=\"l128.t0\",出现在 ['order', 'point'](应收敛到 common)"
+ },
+ {
+ "key": "page.index.l115.t0",
+ "file": "lang\\en-us.js",
+ "line": 1443,
+ "reason": "跨业务域同名 tail=\"l115.t0\",出现在 ['page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.activist.l115.t0",
+ "file": "lang\\en-us.js",
+ "line": 1624,
+ "reason": "跨业务域同名 tail=\"l115.t0\",出现在 ['page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "page.index.l115.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1443,
+ "reason": "跨业务域同名 tail=\"l115.t0\",出现在 ['page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.activist.l115.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1624,
+ "reason": "跨业务域同名 tail=\"l115.t0\",出现在 ['page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "page.index.l89.t0",
+ "file": "lang\\en-us.js",
+ "line": 1449,
+ "reason": "跨业务域同名 tail=\"l89.t0\",出现在 ['page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.list.l89.t0",
+ "file": "lang\\en-us.js",
+ "line": 1698,
+ "reason": "跨业务域同名 tail=\"l89.t0\",出现在 ['page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "page.index.l89.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1449,
+ "reason": "跨业务域同名 tail=\"l89.t0\",出现在 ['page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.recharge.list.l89.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1698,
+ "reason": "跨业务域同名 tail=\"l89.t0\",出现在 ['page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "page.index.public.js.index.l121.t0",
+ "file": "lang\\en-us.js",
+ "line": 1450,
+ "reason": "跨业务域同名 tail=\"l121.t0\",出现在 ['page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l121.t0",
+ "file": "lang\\en-us.js",
+ "line": 1651,
+ "reason": "跨业务域同名 tail=\"l121.t0\",出现在 ['page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "page.index.public.js.index.l121.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1450,
+ "reason": "跨业务域同名 tail=\"l121.t0\",出现在 ['page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund_detail.l121.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1651,
+ "reason": "跨业务域同名 tail=\"l121.t0\",出现在 ['page', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.detail.l195.t0",
+ "file": "lang\\en-us.js",
+ "line": 1468,
+ "reason": "跨业务域同名 tail=\"l195.t0\",出现在 ['point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l195.t0",
+ "file": "lang\\en-us.js",
+ "line": 1604,
+ "reason": "跨业务域同名 tail=\"l195.t0\",出现在 ['point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.detail.l195.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1468,
+ "reason": "跨业务域同名 tail=\"l195.t0\",出现在 ['point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.coupon_receive.l195.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1604,
+ "reason": "跨业务域同名 tail=\"l195.t0\",出现在 ['point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.goods_list.l79.t0",
+ "file": "lang\\en-us.js",
+ "line": 1477,
+ "reason": "跨业务域同名 tail=\"l79.t0\",出现在 ['point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.brand.l79.t0",
+ "file": "lang\\en-us.js",
+ "line": 1588,
+ "reason": "跨业务域同名 tail=\"l79.t0\",出现在 ['point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.goods_list.l79.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1477,
+ "reason": "跨业务域同名 tail=\"l79.t0\",出现在 ['point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.goods.brand.l79.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1588,
+ "reason": "跨业务域同名 tail=\"l79.t0\",出现在 ['point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l242.t0",
+ "file": "lang\\en-us.js",
+ "line": 1488,
+ "reason": "跨业务域同名 tail=\"l242.t0\",出现在 ['point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund.l242.t0",
+ "file": "lang\\en-us.js",
+ "line": 1640,
+ "reason": "跨业务域同名 tail=\"l242.t0\",出现在 ['point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "point.list.l242.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1488,
+ "reason": "跨业务域同名 tail=\"l242.t0\",出现在 ['point', 'tool'](应收敛到 common)"
+ },
+ {
+ "key": "tool.order.refund.l242.t0",
+ "file": "lang\\zh-cn.js",
+ "line": 1640,
+ "reason": "跨业务域同名 tail=\"l242.t0\",出现在 ['point', 'tool'](应收敛到 common)"
+ }
+ ],
+ "非 snake_case key 段": [
+ {
+ "key": "pageTitles.article.detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 210,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.article.list",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 211,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.bale.detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 212,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.bale.payment",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 213,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.bargain.detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 214,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.bargain.launch",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 215,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.bargain.list",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 216,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.bargain.my_bargain",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 217,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.bargain.payment",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 218,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.combo.detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 219,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.combo.payment",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 220,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.contact.contact",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 221,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.diy.diy",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 222,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.apply",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 223,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.bill",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 224,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.follow",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 225,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.goods_list",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 226,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.index",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 227,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.level",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 228,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.order",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 229,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.order_detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 230,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.promote_code",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 231,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.team",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 232,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.withdraw_apply",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 233,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.withdraw_list",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 234,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.game.cards",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 235,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.game.record",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 236,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.game.smash_eggs",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 237,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.game.turntable",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 238,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.brand",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 239,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.cart",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 240,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.category",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 241,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.consult",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 242,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.consult_edit",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 243,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.coupon",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 244,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.coupon_receive",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 245,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 246,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.evaluate",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 247,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.list",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 248,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.not_exist",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 249,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.point",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 250,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.search",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 251,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.groupbuy.detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 252,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.groupbuy.list",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 253,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.groupbuy.payment",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 254,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.help.detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 255,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.help.list",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 256,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.hongbao.list",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 257,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.hongbao.my_hongbao",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 258,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.index.index",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 259,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.live.list",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 260,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.login.find",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 261,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.login.login",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 262,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.login.register",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 263,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.account",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 264,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.account_edit",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 265,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.address",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 266,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.address_edit",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 267,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.apply_withdrawal",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 268,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.assets",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 269,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.balance",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 270,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.balance_detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 271,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.cancellation",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 272,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.cancelrefuse",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 273,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.cancelstatus",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 274,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.cancelsuccess",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 275,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.card",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 276,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.card_buy",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 277,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.collection",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 278,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.contact",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 279,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.coupon",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 280,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.footprint",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 281,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.gift",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 282,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.gift_detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 283,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.index",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 284,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.info",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 285,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.info_edit",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 286,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.invite_friends",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 287,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.level",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 288,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.message",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 289,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.modify_face",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 290,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.pay_password",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 291,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.point",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 292,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.point_detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 293,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.signin",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 294,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.withdrawal",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 295,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.withdrawal_detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 296,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.notice.detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 297,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.notice.list",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 298,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.activist",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 299,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 300,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.detail_local_delivery",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 301,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.detail_pickup",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 302,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.detail_point",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 303,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.detail_virtual",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 304,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.evaluate",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 305,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.list",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 306,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.logistics",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 307,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.payment",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 308,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.refund",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 309,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.refund_batch",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 310,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.refund_detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 311,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.pay.index",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 312,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.pay.result",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 313,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.pintuan.detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 314,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.pintuan.list",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 315,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.pintuan.my_spell",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 316,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.pintuan.payment",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 317,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.pintuan.share",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 318,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.point.detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 319,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.point.list",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 320,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.point.order_detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 321,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.point.order_list",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 322,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.point.payment",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 323,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.point.result",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 324,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.presale.detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 325,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.presale.list",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 326,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.presale.order_detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 327,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.presale.order_list",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 328,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.presale.payment",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 329,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.recharge.detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 330,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.recharge.list",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 331,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.recharge.order_list",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 332,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.seckill.detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 333,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.seckill.list",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 334,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.seckill.payment",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 335,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.store_notes.note_detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 336,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.store_notes.note_list",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 337,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.storeclose.storeclose",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 338,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.topics.detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 339,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.topics.goods_detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 340,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.topics.list",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 341,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.topics.payment",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 342,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.verification.detail",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 343,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.verification.index",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 344,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.verification.list",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 345,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.vr.index",
+ "segment": "pageTitles",
+ "file": "lang\\en-us.js",
+ "line": 346,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l13.t0",
+ "segment": "orderMethod",
+ "file": "lang\\en-us.js",
+ "line": 1431,
+ "reason": "key 段 \"orderMethod\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l13.t1",
+ "segment": "orderMethod",
+ "file": "lang\\en-us.js",
+ "line": 1432,
+ "reason": "key 段 \"orderMethod\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l176.t0",
+ "segment": "orderMethod",
+ "file": "lang\\en-us.js",
+ "line": 1433,
+ "reason": "key 段 \"orderMethod\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l47.t0",
+ "segment": "orderMethod",
+ "file": "lang\\en-us.js",
+ "line": 1434,
+ "reason": "key 段 \"orderMethod\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l60.t0",
+ "segment": "orderMethod",
+ "file": "lang\\en-us.js",
+ "line": 1435,
+ "reason": "key 段 \"orderMethod\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l61.t0",
+ "segment": "orderMethod",
+ "file": "lang\\en-us.js",
+ "line": 1436,
+ "reason": "key 段 \"orderMethod\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l81.t0",
+ "segment": "orderMethod",
+ "file": "lang\\en-us.js",
+ "line": 1437,
+ "reason": "key 段 \"orderMethod\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "order.public.js.refundMethod.l10.t0",
+ "segment": "refundMethod",
+ "file": "lang\\en-us.js",
+ "line": 1438,
+ "reason": "key 段 \"refundMethod\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "order.public.js.refundMethod.l11.t0",
+ "segment": "refundMethod",
+ "file": "lang\\en-us.js",
+ "line": 1439,
+ "reason": "key 段 \"refundMethod\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "Filter",
+ "segment": "Filter",
+ "file": "lang\\en-us.js",
+ "line": 1723,
+ "reason": "key 段 \"Filter\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "Make",
+ "segment": "Make",
+ "file": "lang\\en-us.js",
+ "line": 1724,
+ "reason": "key 段 \"Make\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "Price",
+ "segment": "Price",
+ "file": "lang\\en-us.js",
+ "line": 1725,
+ "reason": "key 段 \"Price\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "Random",
+ "segment": "Random",
+ "file": "lang\\en-us.js",
+ "line": 1726,
+ "reason": "key 段 \"Random\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "Sales",
+ "segment": "Sales",
+ "file": "lang\\en-us.js",
+ "line": 1727,
+ "reason": "key 段 \"Sales\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "Search",
+ "segment": "Search",
+ "file": "lang\\en-us.js",
+ "line": 1728,
+ "reason": "key 段 \"Search\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "accountInputPlaceholder",
+ "segment": "accountInputPlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1731,
+ "reason": "key 段 \"accountInputPlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "accountPlaceholder",
+ "segment": "accountPlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1732,
+ "reason": "key 段 \"accountPlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "accountType",
+ "segment": "accountType",
+ "file": "lang\\en-us.js",
+ "line": 1733,
+ "reason": "key 段 \"accountType\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "addressPlaceholder",
+ "segment": "addressPlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1736,
+ "reason": "key 段 \"addressPlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "agreeAgreementTip",
+ "segment": "agreeAgreementTip",
+ "file": "lang\\en-us.js",
+ "line": 1737,
+ "reason": "key 段 \"agreeAgreementTip\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "aiNickname",
+ "segment": "aiNickname",
+ "file": "lang\\en-us.js",
+ "line": 1738,
+ "reason": "key 段 \"aiNickname\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "aiThinking",
+ "segment": "aiThinking",
+ "file": "lang\\en-us.js",
+ "line": 1739,
+ "reason": "key 段 \"aiThinking\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "alikeNickname",
+ "segment": "alikeNickname",
+ "file": "lang\\en-us.js",
+ "line": 1740,
+ "reason": "key 段 \"alikeNickname\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "alikePhone",
+ "segment": "alikePhone",
+ "file": "lang\\en-us.js",
+ "line": 1741,
+ "reason": "key 段 \"alikePhone\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "allElection",
+ "segment": "allElection",
+ "file": "lang\\en-us.js",
+ "line": 1743,
+ "reason": "key 段 \"allElection\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "animateCodeInput",
+ "segment": "animateCodeInput",
+ "file": "lang\\en-us.js",
+ "line": 1744,
+ "reason": "key 段 \"animateCodeInput\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "audioMessage",
+ "segment": "audioMessage",
+ "file": "lang\\en-us.js",
+ "line": 1745,
+ "reason": "key 段 \"audioMessage\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "avatarSelectorTitle",
+ "segment": "avatarSelectorTitle",
+ "file": "lang\\en-us.js",
+ "line": 1746,
+ "reason": "key 段 \"avatarSelectorTitle\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "captchaPlaceholder",
+ "segment": "captchaPlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1751,
+ "reason": "key 段 \"captchaPlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "changeAvatar",
+ "segment": "changeAvatar",
+ "file": "lang\\en-us.js",
+ "line": 1752,
+ "reason": "key 段 \"changeAvatar\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "changeAvatarDesc",
+ "segment": "changeAvatarDesc",
+ "file": "lang\\en-us.js",
+ "line": 1753,
+ "reason": "key 段 \"changeAvatarDesc\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "changeNickname",
+ "segment": "changeNickname",
+ "file": "lang\\en-us.js",
+ "line": 1754,
+ "reason": "key 段 \"changeNickname\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "changeNicknameDesc",
+ "segment": "changeNicknameDesc",
+ "file": "lang\\en-us.js",
+ "line": 1755,
+ "reason": "key 段 \"changeNicknameDesc\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "chatCleared",
+ "segment": "chatCleared",
+ "file": "lang\\en-us.js",
+ "line": 1756,
+ "reason": "key 段 \"chatCleared\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "chooseFromAlbum",
+ "segment": "chooseFromAlbum",
+ "file": "lang\\en-us.js",
+ "line": 1757,
+ "reason": "key 段 \"chooseFromAlbum\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "confirmClearChat",
+ "segment": "confirmClearChat",
+ "file": "lang\\en-us.js",
+ "line": 1762,
+ "reason": "key 段 \"confirmClearChat\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "confirmCodeInput",
+ "segment": "confirmCodeInput",
+ "file": "lang\\en-us.js",
+ "line": 1763,
+ "reason": "key 段 \"confirmCodeInput\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "confirmOpenLink",
+ "segment": "confirmOpenLink",
+ "file": "lang\\en-us.js",
+ "line": 1764,
+ "reason": "key 段 \"confirmOpenLink\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "consigneePlaceholder",
+ "segment": "consigneePlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1766,
+ "reason": "key 段 \"consigneePlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "contactInfo",
+ "segment": "contactInfo",
+ "file": "lang\\en-us.js",
+ "line": 1768,
+ "reason": "key 段 \"contactInfo\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "copyFail",
+ "segment": "copyFail",
+ "file": "lang\\en-us.js",
+ "line": 1770,
+ "reason": "key 段 \"copyFail\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "copyFailed",
+ "segment": "copyFailed",
+ "file": "lang\\en-us.js",
+ "line": 1771,
+ "reason": "key 段 \"copyFailed\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "copySuccess",
+ "segment": "copySuccess",
+ "file": "lang\\en-us.js",
+ "line": 1772,
+ "reason": "key 段 \"copySuccess\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "defaultNickname",
+ "segment": "defaultNickname",
+ "file": "lang\\en-us.js",
+ "line": 1773,
+ "reason": "key 段 \"defaultNickname\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "dynacodeInputPlaceholder",
+ "segment": "dynacodeInputPlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1776,
+ "reason": "key 段 \"dynacodeInputPlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "dynacodePlaceholder",
+ "segment": "dynacodePlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1777,
+ "reason": "key 段 \"dynacodePlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "editNickname",
+ "segment": "editNickname",
+ "file": "lang\\en-us.js",
+ "line": 1779,
+ "reason": "key 段 \"editNickname\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "emojiTitle",
+ "segment": "emojiTitle",
+ "file": "lang\\en-us.js",
+ "line": 1780,
+ "reason": "key 段 \"emojiTitle\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "emptyTips",
+ "segment": "emptyTips",
+ "file": "lang\\en-us.js",
+ "line": 1781,
+ "reason": "key 段 \"emptyTips\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "enterCaptchaTip",
+ "segment": "enterCaptchaTip",
+ "file": "lang\\en-us.js",
+ "line": 1782,
+ "reason": "key 段 \"enterCaptchaTip\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "enterCorrectMobileTip",
+ "segment": "enterCorrectMobileTip",
+ "file": "lang\\en-us.js",
+ "line": 1783,
+ "reason": "key 段 \"enterCorrectMobileTip\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "enterMobileTip",
+ "segment": "enterMobileTip",
+ "file": "lang\\en-us.js",
+ "line": 1784,
+ "reason": "key 段 \"enterMobileTip\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "exchangeSuccess",
+ "segment": "exchangeSuccess",
+ "file": "lang\\en-us.js",
+ "line": 1785,
+ "reason": "key 段 \"exchangeSuccess\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "exclusiveCustomerService",
+ "segment": "exclusiveCustomerService",
+ "file": "lang\\en-us.js",
+ "line": 1786,
+ "reason": "key 段 \"exclusiveCustomerService\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "expandEditorTitle",
+ "segment": "expandEditorTitle",
+ "file": "lang\\en-us.js",
+ "line": 1787,
+ "reason": "key 段 \"expandEditorTitle\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "fallbackWelcome",
+ "segment": "fallbackWelcome",
+ "file": "lang\\en-us.js",
+ "line": 1789,
+ "reason": "key 段 \"fallbackWelcome\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "featureDeveloping",
+ "segment": "featureDeveloping",
+ "file": "lang\\en-us.js",
+ "line": 1790,
+ "reason": "key 段 \"featureDeveloping\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "fileOpenFail",
+ "segment": "fileOpenFail",
+ "file": "lang\\en-us.js",
+ "line": 1792,
+ "reason": "key 段 \"fileOpenFail\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "findanimateCode",
+ "segment": "findanimateCode",
+ "file": "lang\\en-us.js",
+ "line": 1793,
+ "reason": "key 段 \"findanimateCode\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "forgetPasswordText",
+ "segment": "forgetPasswordText",
+ "file": "lang\\en-us.js",
+ "line": 1795,
+ "reason": "key 段 \"forgetPasswordText\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "getAddress",
+ "segment": "getAddress",
+ "file": "lang\\en-us.js",
+ "line": 1796,
+ "reason": "key 段 \"getAddress\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "getDynacode",
+ "segment": "getDynacode",
+ "file": "lang\\en-us.js",
+ "line": 1797,
+ "reason": "key 段 \"getDynacode\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "goHome",
+ "segment": "goHome",
+ "file": "lang\\en-us.js",
+ "line": 1798,
+ "reason": "key 段 \"goHome\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "improveService",
+ "segment": "improveService",
+ "file": "lang\\en-us.js",
+ "line": 1801,
+ "reason": "key 段 \"improveService\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "inputPlaceholder",
+ "segment": "inputPlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1802,
+ "reason": "key 段 \"inputPlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "loadHistoryFail",
+ "segment": "loadHistoryFail",
+ "file": "lang\\en-us.js",
+ "line": 1805,
+ "reason": "key 段 \"loadHistoryFail\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "loadMoreHistory",
+ "segment": "loadMoreHistory",
+ "file": "lang\\en-us.js",
+ "line": 1806,
+ "reason": "key 段 \"loadMoreHistory\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "loginButtonText",
+ "segment": "loginButtonText",
+ "file": "lang\\en-us.js",
+ "line": 1808,
+ "reason": "key 段 \"loginButtonText\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "loginSuccessTip",
+ "segment": "loginSuccessTip",
+ "file": "lang\\en-us.js",
+ "line": 1809,
+ "reason": "key 段 \"loginSuccessTip\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "loginTpis",
+ "segment": "loginTpis",
+ "file": "lang\\en-us.js",
+ "line": 1810,
+ "reason": "key 段 \"loginTpis\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "logoutContent",
+ "segment": "logoutContent",
+ "file": "lang\\en-us.js",
+ "line": 1812,
+ "reason": "key 段 \"logoutContent\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "logoutTitle",
+ "segment": "logoutTitle",
+ "file": "lang\\en-us.js",
+ "line": 1813,
+ "reason": "key 段 \"logoutTitle\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "menuClearChat",
+ "segment": "menuClearChat",
+ "file": "lang\\en-us.js",
+ "line": 1816,
+ "reason": "key 段 \"menuClearChat\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "menuExport",
+ "segment": "menuExport",
+ "file": "lang\\en-us.js",
+ "line": 1817,
+ "reason": "key 段 \"menuExport\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "menuHelp",
+ "segment": "menuHelp",
+ "file": "lang\\en-us.js",
+ "line": 1818,
+ "reason": "key 段 \"menuHelp\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "menuSettings",
+ "segment": "menuSettings",
+ "file": "lang\\en-us.js",
+ "line": 1819,
+ "reason": "key 段 \"menuSettings\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "messageContent",
+ "segment": "messageContent",
+ "file": "lang\\en-us.js",
+ "line": 1820,
+ "reason": "key 段 \"messageContent\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "mobileInputPlaceholder",
+ "segment": "mobileInputPlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1822,
+ "reason": "key 段 \"mobileInputPlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "mobilePhone",
+ "segment": "mobilePhone",
+ "file": "lang\\en-us.js",
+ "line": 1823,
+ "reason": "key 段 \"mobilePhone\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "mobilePlaceholder",
+ "segment": "mobilePlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1824,
+ "reason": "key 段 \"mobilePlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "modifyNickname",
+ "segment": "modifyNickname",
+ "file": "lang\\en-us.js",
+ "line": 1826,
+ "reason": "key 段 \"modifyNickname\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "moreFunctions",
+ "segment": "moreFunctions",
+ "file": "lang\\en-us.js",
+ "line": 1827,
+ "reason": "key 段 \"moreFunctions\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "newAddAccount",
+ "segment": "newAddAccount",
+ "file": "lang\\en-us.js",
+ "line": 1829,
+ "reason": "key 段 \"newAddAccount\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "newAddAddress",
+ "segment": "newAddAddress",
+ "file": "lang\\en-us.js",
+ "line": 1830,
+ "reason": "key 段 \"newAddAddress\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "newNicknamePlaceholder",
+ "segment": "newNicknamePlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1831,
+ "reason": "key 段 \"newNicknamePlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "nicknameChangeSuccess",
+ "segment": "nicknameChangeSuccess",
+ "file": "lang\\en-us.js",
+ "line": 1833,
+ "reason": "key 段 \"nicknameChangeSuccess\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "nicknameTip",
+ "segment": "nicknameTip",
+ "file": "lang\\en-us.js",
+ "line": 1834,
+ "reason": "key 段 \"nicknameTip\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "noContentToCopy",
+ "segment": "noContentToCopy",
+ "file": "lang\\en-us.js",
+ "line": 1835,
+ "reason": "key 段 \"noContentToCopy\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "noEmityNickname",
+ "segment": "noEmityNickname",
+ "file": "lang\\en-us.js",
+ "line": 1836,
+ "reason": "key 段 \"noEmityNickname\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "noEmityUsername",
+ "segment": "noEmityUsername",
+ "file": "lang\\en-us.js",
+ "line": 1837,
+ "reason": "key 段 \"noEmityUsername\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "noMatchResult",
+ "segment": "noMatchResult",
+ "file": "lang\\en-us.js",
+ "line": 1838,
+ "reason": "key 段 \"noMatchResult\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "oneClickNavigation",
+ "segment": "oneClickNavigation",
+ "file": "lang\\en-us.js",
+ "line": 1839,
+ "reason": "key 段 \"oneClickNavigation\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "onlineMessage",
+ "segment": "onlineMessage",
+ "file": "lang\\en-us.js",
+ "line": 1840,
+ "reason": "key 段 \"onlineMessage\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "openLink",
+ "segment": "openLink",
+ "file": "lang\\en-us.js",
+ "line": 1841,
+ "reason": "key 段 \"openLink\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "openingFile",
+ "segment": "openingFile",
+ "file": "lang\\en-us.js",
+ "line": 1842,
+ "reason": "key 段 \"openingFile\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "operationFailed",
+ "segment": "operationFailed",
+ "file": "lang\\en-us.js",
+ "line": 1843,
+ "reason": "key 段 \"operationFailed\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "passwordInputPlaceholder",
+ "segment": "passwordInputPlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1845,
+ "reason": "key 段 \"passwordInputPlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "passwordPlaceholder",
+ "segment": "passwordPlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1846,
+ "reason": "key 段 \"passwordPlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "paymentAmount",
+ "segment": "paymentAmount",
+ "file": "lang\\en-us.js",
+ "line": 1847,
+ "reason": "key 段 \"paymentAmount\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "paymentFail",
+ "segment": "paymentFail",
+ "file": "lang\\en-us.js",
+ "line": 1848,
+ "reason": "key 段 \"paymentFail\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "paymentSuccess",
+ "segment": "paymentSuccess",
+ "file": "lang\\en-us.js",
+ "line": 1849,
+ "reason": "key 段 \"paymentSuccess\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pleaseEnterMessage",
+ "segment": "pleaseEnterMessage",
+ "file": "lang\\en-us.js",
+ "line": 1851,
+ "reason": "key 段 \"pleaseEnterMessage\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pleaseEnterMobile",
+ "segment": "pleaseEnterMobile",
+ "file": "lang\\en-us.js",
+ "line": 1852,
+ "reason": "key 段 \"pleaseEnterMobile\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pleaseEnterName",
+ "segment": "pleaseEnterName",
+ "file": "lang\\en-us.js",
+ "line": 1853,
+ "reason": "key 段 \"pleaseEnterName\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pleaseInputNewPassword",
+ "segment": "pleaseInputNewPassword",
+ "file": "lang\\en-us.js",
+ "line": 1854,
+ "reason": "key 段 \"pleaseInputNewPassword\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pleaseInputOldPassword",
+ "segment": "pleaseInputOldPassword",
+ "file": "lang\\en-us.js",
+ "line": 1855,
+ "reason": "key 段 \"pleaseInputOldPassword\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "privacyPolicy",
+ "segment": "privacyPolicy",
+ "file": "lang\\en-us.js",
+ "line": 1856,
+ "reason": "key 段 \"privacyPolicy\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "privacyPolicyText",
+ "segment": "privacyPolicyText",
+ "file": "lang\\en-us.js",
+ "line": 1857,
+ "reason": "key 段 \"privacyPolicyText\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "rePasswordPlaceholder",
+ "segment": "rePasswordPlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1859,
+ "reason": "key 段 \"rePasswordPlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "realName",
+ "segment": "realName",
+ "file": "lang\\en-us.js",
+ "line": 1860,
+ "reason": "key 段 \"realName\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "receivingCity",
+ "segment": "receivingCity",
+ "file": "lang\\en-us.js",
+ "line": 1861,
+ "reason": "key 段 \"receivingCity\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "receivingReply",
+ "segment": "receivingReply",
+ "file": "lang\\en-us.js",
+ "line": 1862,
+ "reason": "key 段 \"receivingReply\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "recordingTip",
+ "segment": "recordingTip",
+ "file": "lang\\en-us.js",
+ "line": 1863,
+ "reason": "key 段 \"recordingTip\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "registerAgreementText",
+ "segment": "registerAgreementText",
+ "file": "lang\\en-us.js",
+ "line": 1864,
+ "reason": "key 段 \"registerAgreementText\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "registrationAgreement",
+ "segment": "registrationAgreement",
+ "file": "lang\\en-us.js",
+ "line": 1865,
+ "reason": "key 段 \"registrationAgreement\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "requestFailTip",
+ "segment": "requestFailTip",
+ "file": "lang\\en-us.js",
+ "line": 1866,
+ "reason": "key 段 \"requestFailTip\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "searchAtBottom",
+ "segment": "searchAtBottom",
+ "file": "lang\\en-us.js",
+ "line": 1871,
+ "reason": "key 段 \"searchAtBottom\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "searchAtTop",
+ "segment": "searchAtTop",
+ "file": "lang\\en-us.js",
+ "line": 1872,
+ "reason": "key 段 \"searchAtTop\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "searchClose",
+ "segment": "searchClose",
+ "file": "lang\\en-us.js",
+ "line": 1873,
+ "reason": "key 段 \"searchClose\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "searchEntrance",
+ "segment": "searchEntrance",
+ "file": "lang\\en-us.js",
+ "line": 1874,
+ "reason": "key 段 \"searchEntrance\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "searchPlaceholder",
+ "segment": "searchPlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1875,
+ "reason": "key 段 \"searchPlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "serviceTemporaryUnavailable",
+ "segment": "serviceTemporaryUnavailable",
+ "file": "lang\\en-us.js",
+ "line": 1879,
+ "reason": "key 段 \"serviceTemporaryUnavailable\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "serviceTypeNotSupported",
+ "segment": "serviceTypeNotSupported",
+ "file": "lang\\en-us.js",
+ "line": 1880,
+ "reason": "key 段 \"serviceTypeNotSupported\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "serviceUnavailable",
+ "segment": "serviceUnavailable",
+ "file": "lang\\en-us.js",
+ "line": 1881,
+ "reason": "key 段 \"serviceUnavailable\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "settingsTitle",
+ "segment": "settingsTitle",
+ "file": "lang\\en-us.js",
+ "line": 1882,
+ "reason": "key 段 \"settingsTitle\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "startRecordTip",
+ "segment": "startRecordTip",
+ "file": "lang\\en-us.js",
+ "line": 1886,
+ "reason": "key 段 \"startRecordTip\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "surePhoneNumber",
+ "segment": "surePhoneNumber",
+ "file": "lang\\en-us.js",
+ "line": 1890,
+ "reason": "key 段 \"surePhoneNumber\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "telephonePlaceholder",
+ "segment": "telephonePlaceholder",
+ "file": "lang\\en-us.js",
+ "line": 1892,
+ "reason": "key 段 \"telephonePlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "thanksFeedback",
+ "segment": "thanksFeedback",
+ "file": "lang\\en-us.js",
+ "line": 1893,
+ "reason": "key 段 \"thanksFeedback\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "timeFormatBeforeYesterday",
+ "segment": "timeFormatBeforeYesterday",
+ "file": "lang\\en-us.js",
+ "line": 1894,
+ "reason": "key 段 \"timeFormatBeforeYesterday\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "timeFormatYesterday",
+ "segment": "timeFormatYesterday",
+ "file": "lang\\en-us.js",
+ "line": 1895,
+ "reason": "key 段 \"timeFormatYesterday\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "toGoodsCategoryPage",
+ "segment": "toGoodsCategoryPage",
+ "file": "lang\\en-us.js",
+ "line": 1897,
+ "reason": "key 段 \"toGoodsCategoryPage\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "toLogin",
+ "segment": "toLogin",
+ "file": "lang\\en-us.js",
+ "line": 1898,
+ "reason": "key 段 \"toLogin\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "updateSuccess",
+ "segment": "updateSuccess",
+ "file": "lang\\en-us.js",
+ "line": 1900,
+ "reason": "key 段 \"updateSuccess\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "userServiceAgreementText",
+ "segment": "userServiceAgreementText",
+ "file": "lang\\en-us.js",
+ "line": 1901,
+ "reason": "key 段 \"userServiceAgreementText\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "videoMessage",
+ "segment": "videoMessage",
+ "file": "lang\\en-us.js",
+ "line": 1902,
+ "reason": "key 段 \"videoMessage\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "voiceInputFailed",
+ "segment": "voiceInputFailed",
+ "file": "lang\\en-us.js",
+ "line": 1904,
+ "reason": "key 段 \"voiceInputFailed\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "voiceInputTitle",
+ "segment": "voiceInputTitle",
+ "file": "lang\\en-us.js",
+ "line": 1905,
+ "reason": "key 段 \"voiceInputTitle\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "welcomeText",
+ "segment": "welcomeText",
+ "file": "lang\\en-us.js",
+ "line": 1909,
+ "reason": "key 段 \"welcomeText\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.article.detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 210,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.article.list",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 211,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.bale.detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 212,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.bale.payment",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 213,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.bargain.detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 214,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.bargain.launch",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 215,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.bargain.list",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 216,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.bargain.my_bargain",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 217,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.bargain.payment",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 218,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.combo.detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 219,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.combo.payment",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 220,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.contact.contact",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 221,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.diy.diy",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 222,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.apply",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 223,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.bill",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 224,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.follow",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 225,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.goods_list",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 226,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.index",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 227,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.level",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 228,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.order",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 229,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.order_detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 230,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.promote_code",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 231,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.team",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 232,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.withdraw_apply",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 233,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.fenxiao.withdraw_list",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 234,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.game.cards",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 235,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.game.record",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 236,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.game.smash_eggs",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 237,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.game.turntable",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 238,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.brand",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 239,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.cart",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 240,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.category",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 241,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.consult",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 242,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.consult_edit",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 243,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.coupon",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 244,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.coupon_receive",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 245,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 246,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.evaluate",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 247,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.list",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 248,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.not_exist",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 249,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.point",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 250,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.goods.search",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 251,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.groupbuy.detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 252,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.groupbuy.list",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 253,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.groupbuy.payment",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 254,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.help.detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 255,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.help.list",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 256,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.hongbao.list",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 257,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.hongbao.my_hongbao",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 258,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.index.index",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 259,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.live.list",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 260,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.login.find",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 261,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.login.login",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 262,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.login.register",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 263,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.account",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 264,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.account_edit",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 265,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.address",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 266,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.address_edit",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 267,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.apply_withdrawal",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 268,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.assets",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 269,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.balance",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 270,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.balance_detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 271,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.cancellation",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 272,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.cancelrefuse",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 273,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.cancelstatus",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 274,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.cancelsuccess",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 275,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.card",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 276,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.card_buy",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 277,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.collection",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 278,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.contact",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 279,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.coupon",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 280,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.footprint",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 281,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.gift",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 282,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.gift_detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 283,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.index",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 284,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.info",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 285,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.info_edit",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 286,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.invite_friends",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 287,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.level",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 288,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.message",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 289,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.modify_face",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 290,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.pay_password",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 291,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.point",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 292,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.point_detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 293,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.signin",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 294,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.withdrawal",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 295,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.member.withdrawal_detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 296,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.notice.detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 297,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.notice.list",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 298,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.activist",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 299,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 300,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.detail_local_delivery",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 301,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.detail_pickup",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 302,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.detail_point",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 303,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.detail_virtual",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 304,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.evaluate",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 305,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.list",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 306,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.logistics",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 307,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.payment",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 308,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.refund",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 309,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.refund_batch",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 310,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.order.refund_detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 311,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.pay.index",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 312,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.pay.result",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 313,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.pintuan.detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 314,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.pintuan.list",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 315,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.pintuan.my_spell",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 316,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.pintuan.payment",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 317,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.pintuan.share",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 318,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.point.detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 319,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.point.list",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 320,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.point.order_detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 321,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.point.order_list",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 322,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.point.payment",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 323,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.point.result",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 324,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.presale.detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 325,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.presale.list",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 326,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.presale.order_detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 327,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.presale.order_list",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 328,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.presale.payment",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 329,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.recharge.detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 330,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.recharge.list",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 331,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.recharge.order_list",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 332,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.seckill.detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 333,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.seckill.list",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 334,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.seckill.payment",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 335,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.store_notes.note_detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 336,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.store_notes.note_list",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 337,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.storeclose.storeclose",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 338,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.topics.detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 339,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.topics.goods_detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 340,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.topics.list",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 341,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.topics.payment",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 342,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.verification.detail",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 343,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.verification.index",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 344,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.verification.list",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 345,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pageTitles.vr.index",
+ "segment": "pageTitles",
+ "file": "lang\\zh-cn.js",
+ "line": 346,
+ "reason": "key 段 \"pageTitles\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l13.t0",
+ "segment": "orderMethod",
+ "file": "lang\\zh-cn.js",
+ "line": 1431,
+ "reason": "key 段 \"orderMethod\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l13.t1",
+ "segment": "orderMethod",
+ "file": "lang\\zh-cn.js",
+ "line": 1432,
+ "reason": "key 段 \"orderMethod\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l176.t0",
+ "segment": "orderMethod",
+ "file": "lang\\zh-cn.js",
+ "line": 1433,
+ "reason": "key 段 \"orderMethod\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l47.t0",
+ "segment": "orderMethod",
+ "file": "lang\\zh-cn.js",
+ "line": 1434,
+ "reason": "key 段 \"orderMethod\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l60.t0",
+ "segment": "orderMethod",
+ "file": "lang\\zh-cn.js",
+ "line": 1435,
+ "reason": "key 段 \"orderMethod\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l61.t0",
+ "segment": "orderMethod",
+ "file": "lang\\zh-cn.js",
+ "line": 1436,
+ "reason": "key 段 \"orderMethod\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "order.public.js.orderMethod.l81.t0",
+ "segment": "orderMethod",
+ "file": "lang\\zh-cn.js",
+ "line": 1437,
+ "reason": "key 段 \"orderMethod\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "order.public.js.refundMethod.l10.t0",
+ "segment": "refundMethod",
+ "file": "lang\\zh-cn.js",
+ "line": 1438,
+ "reason": "key 段 \"refundMethod\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "order.public.js.refundMethod.l11.t0",
+ "segment": "refundMethod",
+ "file": "lang\\zh-cn.js",
+ "line": 1439,
+ "reason": "key 段 \"refundMethod\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "Filter",
+ "segment": "Filter",
+ "file": "lang\\zh-cn.js",
+ "line": 1723,
+ "reason": "key 段 \"Filter\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "Make",
+ "segment": "Make",
+ "file": "lang\\zh-cn.js",
+ "line": 1724,
+ "reason": "key 段 \"Make\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "Price",
+ "segment": "Price",
+ "file": "lang\\zh-cn.js",
+ "line": 1725,
+ "reason": "key 段 \"Price\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "Random",
+ "segment": "Random",
+ "file": "lang\\zh-cn.js",
+ "line": 1726,
+ "reason": "key 段 \"Random\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "Sales",
+ "segment": "Sales",
+ "file": "lang\\zh-cn.js",
+ "line": 1727,
+ "reason": "key 段 \"Sales\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "Search",
+ "segment": "Search",
+ "file": "lang\\zh-cn.js",
+ "line": 1728,
+ "reason": "key 段 \"Search\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "accountInputPlaceholder",
+ "segment": "accountInputPlaceholder",
+ "file": "lang\\zh-cn.js",
+ "line": 1731,
+ "reason": "key 段 \"accountInputPlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "accountPlaceholder",
+ "segment": "accountPlaceholder",
+ "file": "lang\\zh-cn.js",
+ "line": 1732,
+ "reason": "key 段 \"accountPlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "accountType",
+ "segment": "accountType",
+ "file": "lang\\zh-cn.js",
+ "line": 1733,
+ "reason": "key 段 \"accountType\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "addressPlaceholder",
+ "segment": "addressPlaceholder",
+ "file": "lang\\zh-cn.js",
+ "line": 1736,
+ "reason": "key 段 \"addressPlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "agreeAgreementTip",
+ "segment": "agreeAgreementTip",
+ "file": "lang\\zh-cn.js",
+ "line": 1737,
+ "reason": "key 段 \"agreeAgreementTip\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "aiNickname",
+ "segment": "aiNickname",
+ "file": "lang\\zh-cn.js",
+ "line": 1738,
+ "reason": "key 段 \"aiNickname\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "aiThinking",
+ "segment": "aiThinking",
+ "file": "lang\\zh-cn.js",
+ "line": 1739,
+ "reason": "key 段 \"aiThinking\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "alikeNickname",
+ "segment": "alikeNickname",
+ "file": "lang\\zh-cn.js",
+ "line": 1740,
+ "reason": "key 段 \"alikeNickname\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "alikePhone",
+ "segment": "alikePhone",
+ "file": "lang\\zh-cn.js",
+ "line": 1741,
+ "reason": "key 段 \"alikePhone\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "allElection",
+ "segment": "allElection",
+ "file": "lang\\zh-cn.js",
+ "line": 1743,
+ "reason": "key 段 \"allElection\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "animateCodeInput",
+ "segment": "animateCodeInput",
+ "file": "lang\\zh-cn.js",
+ "line": 1744,
+ "reason": "key 段 \"animateCodeInput\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "audioMessage",
+ "segment": "audioMessage",
+ "file": "lang\\zh-cn.js",
+ "line": 1745,
+ "reason": "key 段 \"audioMessage\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "avatarSelectorTitle",
+ "segment": "avatarSelectorTitle",
+ "file": "lang\\zh-cn.js",
+ "line": 1746,
+ "reason": "key 段 \"avatarSelectorTitle\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "captchaPlaceholder",
+ "segment": "captchaPlaceholder",
+ "file": "lang\\zh-cn.js",
+ "line": 1751,
+ "reason": "key 段 \"captchaPlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "changeAvatar",
+ "segment": "changeAvatar",
+ "file": "lang\\zh-cn.js",
+ "line": 1752,
+ "reason": "key 段 \"changeAvatar\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "changeAvatarDesc",
+ "segment": "changeAvatarDesc",
+ "file": "lang\\zh-cn.js",
+ "line": 1753,
+ "reason": "key 段 \"changeAvatarDesc\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "changeNickname",
+ "segment": "changeNickname",
+ "file": "lang\\zh-cn.js",
+ "line": 1754,
+ "reason": "key 段 \"changeNickname\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "changeNicknameDesc",
+ "segment": "changeNicknameDesc",
+ "file": "lang\\zh-cn.js",
+ "line": 1755,
+ "reason": "key 段 \"changeNicknameDesc\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "chatCleared",
+ "segment": "chatCleared",
+ "file": "lang\\zh-cn.js",
+ "line": 1756,
+ "reason": "key 段 \"chatCleared\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "chooseFromAlbum",
+ "segment": "chooseFromAlbum",
+ "file": "lang\\zh-cn.js",
+ "line": 1757,
+ "reason": "key 段 \"chooseFromAlbum\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "confirmClearChat",
+ "segment": "confirmClearChat",
+ "file": "lang\\zh-cn.js",
+ "line": 1762,
+ "reason": "key 段 \"confirmClearChat\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "confirmCodeInput",
+ "segment": "confirmCodeInput",
+ "file": "lang\\zh-cn.js",
+ "line": 1763,
+ "reason": "key 段 \"confirmCodeInput\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "confirmOpenLink",
+ "segment": "confirmOpenLink",
+ "file": "lang\\zh-cn.js",
+ "line": 1764,
+ "reason": "key 段 \"confirmOpenLink\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "consigneePlaceholder",
+ "segment": "consigneePlaceholder",
+ "file": "lang\\zh-cn.js",
+ "line": 1766,
+ "reason": "key 段 \"consigneePlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "contactInfo",
+ "segment": "contactInfo",
+ "file": "lang\\zh-cn.js",
+ "line": 1768,
+ "reason": "key 段 \"contactInfo\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "copyFail",
+ "segment": "copyFail",
+ "file": "lang\\zh-cn.js",
+ "line": 1770,
+ "reason": "key 段 \"copyFail\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "copyFailed",
+ "segment": "copyFailed",
+ "file": "lang\\zh-cn.js",
+ "line": 1771,
+ "reason": "key 段 \"copyFailed\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "copySuccess",
+ "segment": "copySuccess",
+ "file": "lang\\zh-cn.js",
+ "line": 1772,
+ "reason": "key 段 \"copySuccess\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "defaultNickname",
+ "segment": "defaultNickname",
+ "file": "lang\\zh-cn.js",
+ "line": 1773,
+ "reason": "key 段 \"defaultNickname\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "dynacodeInputPlaceholder",
+ "segment": "dynacodeInputPlaceholder",
+ "file": "lang\\zh-cn.js",
+ "line": 1776,
+ "reason": "key 段 \"dynacodeInputPlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "dynacodePlaceholder",
+ "segment": "dynacodePlaceholder",
+ "file": "lang\\zh-cn.js",
+ "line": 1777,
+ "reason": "key 段 \"dynacodePlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "editNickname",
+ "segment": "editNickname",
+ "file": "lang\\zh-cn.js",
+ "line": 1779,
+ "reason": "key 段 \"editNickname\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "emojiTitle",
+ "segment": "emojiTitle",
+ "file": "lang\\zh-cn.js",
+ "line": 1780,
+ "reason": "key 段 \"emojiTitle\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "emptyTips",
+ "segment": "emptyTips",
+ "file": "lang\\zh-cn.js",
+ "line": 1781,
+ "reason": "key 段 \"emptyTips\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "enterCaptchaTip",
+ "segment": "enterCaptchaTip",
+ "file": "lang\\zh-cn.js",
+ "line": 1782,
+ "reason": "key 段 \"enterCaptchaTip\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "enterCorrectMobileTip",
+ "segment": "enterCorrectMobileTip",
+ "file": "lang\\zh-cn.js",
+ "line": 1783,
+ "reason": "key 段 \"enterCorrectMobileTip\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "enterMobileTip",
+ "segment": "enterMobileTip",
+ "file": "lang\\zh-cn.js",
+ "line": 1784,
+ "reason": "key 段 \"enterMobileTip\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "exchangeSuccess",
+ "segment": "exchangeSuccess",
+ "file": "lang\\zh-cn.js",
+ "line": 1785,
+ "reason": "key 段 \"exchangeSuccess\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "exclusiveCustomerService",
+ "segment": "exclusiveCustomerService",
+ "file": "lang\\zh-cn.js",
+ "line": 1786,
+ "reason": "key 段 \"exclusiveCustomerService\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "expandEditorTitle",
+ "segment": "expandEditorTitle",
+ "file": "lang\\zh-cn.js",
+ "line": 1787,
+ "reason": "key 段 \"expandEditorTitle\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "fallbackWelcome",
+ "segment": "fallbackWelcome",
+ "file": "lang\\zh-cn.js",
+ "line": 1789,
+ "reason": "key 段 \"fallbackWelcome\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "featureDeveloping",
+ "segment": "featureDeveloping",
+ "file": "lang\\zh-cn.js",
+ "line": 1790,
+ "reason": "key 段 \"featureDeveloping\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "fileOpenFail",
+ "segment": "fileOpenFail",
+ "file": "lang\\zh-cn.js",
+ "line": 1792,
+ "reason": "key 段 \"fileOpenFail\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "findanimateCode",
+ "segment": "findanimateCode",
+ "file": "lang\\zh-cn.js",
+ "line": 1793,
+ "reason": "key 段 \"findanimateCode\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "forgetPasswordText",
+ "segment": "forgetPasswordText",
+ "file": "lang\\zh-cn.js",
+ "line": 1795,
+ "reason": "key 段 \"forgetPasswordText\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "getAddress",
+ "segment": "getAddress",
+ "file": "lang\\zh-cn.js",
+ "line": 1796,
+ "reason": "key 段 \"getAddress\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "getDynacode",
+ "segment": "getDynacode",
+ "file": "lang\\zh-cn.js",
+ "line": 1797,
+ "reason": "key 段 \"getDynacode\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "goHome",
+ "segment": "goHome",
+ "file": "lang\\zh-cn.js",
+ "line": 1798,
+ "reason": "key 段 \"goHome\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "improveService",
+ "segment": "improveService",
+ "file": "lang\\zh-cn.js",
+ "line": 1801,
+ "reason": "key 段 \"improveService\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "inputPlaceholder",
+ "segment": "inputPlaceholder",
+ "file": "lang\\zh-cn.js",
+ "line": 1802,
+ "reason": "key 段 \"inputPlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "loadHistoryFail",
+ "segment": "loadHistoryFail",
+ "file": "lang\\zh-cn.js",
+ "line": 1805,
+ "reason": "key 段 \"loadHistoryFail\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "loadMoreHistory",
+ "segment": "loadMoreHistory",
+ "file": "lang\\zh-cn.js",
+ "line": 1806,
+ "reason": "key 段 \"loadMoreHistory\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "loginButtonText",
+ "segment": "loginButtonText",
+ "file": "lang\\zh-cn.js",
+ "line": 1808,
+ "reason": "key 段 \"loginButtonText\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "loginSuccessTip",
+ "segment": "loginSuccessTip",
+ "file": "lang\\zh-cn.js",
+ "line": 1809,
+ "reason": "key 段 \"loginSuccessTip\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "loginTpis",
+ "segment": "loginTpis",
+ "file": "lang\\zh-cn.js",
+ "line": 1810,
+ "reason": "key 段 \"loginTpis\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "logoutContent",
+ "segment": "logoutContent",
+ "file": "lang\\zh-cn.js",
+ "line": 1812,
+ "reason": "key 段 \"logoutContent\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "logoutTitle",
+ "segment": "logoutTitle",
+ "file": "lang\\zh-cn.js",
+ "line": 1813,
+ "reason": "key 段 \"logoutTitle\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "menuClearChat",
+ "segment": "menuClearChat",
+ "file": "lang\\zh-cn.js",
+ "line": 1816,
+ "reason": "key 段 \"menuClearChat\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "menuExport",
+ "segment": "menuExport",
+ "file": "lang\\zh-cn.js",
+ "line": 1817,
+ "reason": "key 段 \"menuExport\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "menuHelp",
+ "segment": "menuHelp",
+ "file": "lang\\zh-cn.js",
+ "line": 1818,
+ "reason": "key 段 \"menuHelp\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "menuSettings",
+ "segment": "menuSettings",
+ "file": "lang\\zh-cn.js",
+ "line": 1819,
+ "reason": "key 段 \"menuSettings\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "messageContent",
+ "segment": "messageContent",
+ "file": "lang\\zh-cn.js",
+ "line": 1820,
+ "reason": "key 段 \"messageContent\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "mobileInputPlaceholder",
+ "segment": "mobileInputPlaceholder",
+ "file": "lang\\zh-cn.js",
+ "line": 1822,
+ "reason": "key 段 \"mobileInputPlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "mobilePhone",
+ "segment": "mobilePhone",
+ "file": "lang\\zh-cn.js",
+ "line": 1823,
+ "reason": "key 段 \"mobilePhone\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "mobilePlaceholder",
+ "segment": "mobilePlaceholder",
+ "file": "lang\\zh-cn.js",
+ "line": 1824,
+ "reason": "key 段 \"mobilePlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "modifyNickname",
+ "segment": "modifyNickname",
+ "file": "lang\\zh-cn.js",
+ "line": 1826,
+ "reason": "key 段 \"modifyNickname\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "moreFunctions",
+ "segment": "moreFunctions",
+ "file": "lang\\zh-cn.js",
+ "line": 1827,
+ "reason": "key 段 \"moreFunctions\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "newAddAccount",
+ "segment": "newAddAccount",
+ "file": "lang\\zh-cn.js",
+ "line": 1829,
+ "reason": "key 段 \"newAddAccount\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "newAddAddress",
+ "segment": "newAddAddress",
+ "file": "lang\\zh-cn.js",
+ "line": 1830,
+ "reason": "key 段 \"newAddAddress\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "newNicknamePlaceholder",
+ "segment": "newNicknamePlaceholder",
+ "file": "lang\\zh-cn.js",
+ "line": 1831,
+ "reason": "key 段 \"newNicknamePlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "nicknameChangeSuccess",
+ "segment": "nicknameChangeSuccess",
+ "file": "lang\\zh-cn.js",
+ "line": 1833,
+ "reason": "key 段 \"nicknameChangeSuccess\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "nicknameTip",
+ "segment": "nicknameTip",
+ "file": "lang\\zh-cn.js",
+ "line": 1834,
+ "reason": "key 段 \"nicknameTip\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "noContentToCopy",
+ "segment": "noContentToCopy",
+ "file": "lang\\zh-cn.js",
+ "line": 1835,
+ "reason": "key 段 \"noContentToCopy\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "noEmityNickname",
+ "segment": "noEmityNickname",
+ "file": "lang\\zh-cn.js",
+ "line": 1836,
+ "reason": "key 段 \"noEmityNickname\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "noEmityUsername",
+ "segment": "noEmityUsername",
+ "file": "lang\\zh-cn.js",
+ "line": 1837,
+ "reason": "key 段 \"noEmityUsername\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "noMatchResult",
+ "segment": "noMatchResult",
+ "file": "lang\\zh-cn.js",
+ "line": 1838,
+ "reason": "key 段 \"noMatchResult\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "oneClickNavigation",
+ "segment": "oneClickNavigation",
+ "file": "lang\\zh-cn.js",
+ "line": 1839,
+ "reason": "key 段 \"oneClickNavigation\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "onlineMessage",
+ "segment": "onlineMessage",
+ "file": "lang\\zh-cn.js",
+ "line": 1840,
+ "reason": "key 段 \"onlineMessage\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "openLink",
+ "segment": "openLink",
+ "file": "lang\\zh-cn.js",
+ "line": 1841,
+ "reason": "key 段 \"openLink\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "openingFile",
+ "segment": "openingFile",
+ "file": "lang\\zh-cn.js",
+ "line": 1842,
+ "reason": "key 段 \"openingFile\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "operationFailed",
+ "segment": "operationFailed",
+ "file": "lang\\zh-cn.js",
+ "line": 1843,
+ "reason": "key 段 \"operationFailed\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "passwordInputPlaceholder",
+ "segment": "passwordInputPlaceholder",
+ "file": "lang\\zh-cn.js",
+ "line": 1845,
+ "reason": "key 段 \"passwordInputPlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "passwordPlaceholder",
+ "segment": "passwordPlaceholder",
+ "file": "lang\\zh-cn.js",
+ "line": 1846,
+ "reason": "key 段 \"passwordPlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "paymentAmount",
+ "segment": "paymentAmount",
+ "file": "lang\\zh-cn.js",
+ "line": 1847,
+ "reason": "key 段 \"paymentAmount\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "paymentFail",
+ "segment": "paymentFail",
+ "file": "lang\\zh-cn.js",
+ "line": 1848,
+ "reason": "key 段 \"paymentFail\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "paymentSuccess",
+ "segment": "paymentSuccess",
+ "file": "lang\\zh-cn.js",
+ "line": 1849,
+ "reason": "key 段 \"paymentSuccess\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pleaseEnterMessage",
+ "segment": "pleaseEnterMessage",
+ "file": "lang\\zh-cn.js",
+ "line": 1851,
+ "reason": "key 段 \"pleaseEnterMessage\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pleaseEnterMobile",
+ "segment": "pleaseEnterMobile",
+ "file": "lang\\zh-cn.js",
+ "line": 1852,
+ "reason": "key 段 \"pleaseEnterMobile\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pleaseEnterName",
+ "segment": "pleaseEnterName",
+ "file": "lang\\zh-cn.js",
+ "line": 1853,
+ "reason": "key 段 \"pleaseEnterName\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pleaseInputNewPassword",
+ "segment": "pleaseInputNewPassword",
+ "file": "lang\\zh-cn.js",
+ "line": 1854,
+ "reason": "key 段 \"pleaseInputNewPassword\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "pleaseInputOldPassword",
+ "segment": "pleaseInputOldPassword",
+ "file": "lang\\zh-cn.js",
+ "line": 1855,
+ "reason": "key 段 \"pleaseInputOldPassword\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "privacyPolicy",
+ "segment": "privacyPolicy",
+ "file": "lang\\zh-cn.js",
+ "line": 1856,
+ "reason": "key 段 \"privacyPolicy\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "privacyPolicyText",
+ "segment": "privacyPolicyText",
+ "file": "lang\\zh-cn.js",
+ "line": 1857,
+ "reason": "key 段 \"privacyPolicyText\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "rePasswordPlaceholder",
+ "segment": "rePasswordPlaceholder",
+ "file": "lang\\zh-cn.js",
+ "line": 1859,
+ "reason": "key 段 \"rePasswordPlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "realName",
+ "segment": "realName",
+ "file": "lang\\zh-cn.js",
+ "line": 1860,
+ "reason": "key 段 \"realName\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "receivingCity",
+ "segment": "receivingCity",
+ "file": "lang\\zh-cn.js",
+ "line": 1861,
+ "reason": "key 段 \"receivingCity\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "receivingReply",
+ "segment": "receivingReply",
+ "file": "lang\\zh-cn.js",
+ "line": 1862,
+ "reason": "key 段 \"receivingReply\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "recordingTip",
+ "segment": "recordingTip",
+ "file": "lang\\zh-cn.js",
+ "line": 1863,
+ "reason": "key 段 \"recordingTip\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "registerAgreementText",
+ "segment": "registerAgreementText",
+ "file": "lang\\zh-cn.js",
+ "line": 1864,
+ "reason": "key 段 \"registerAgreementText\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "registrationAgreement",
+ "segment": "registrationAgreement",
+ "file": "lang\\zh-cn.js",
+ "line": 1865,
+ "reason": "key 段 \"registrationAgreement\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "requestFailTip",
+ "segment": "requestFailTip",
+ "file": "lang\\zh-cn.js",
+ "line": 1866,
+ "reason": "key 段 \"requestFailTip\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "searchAtBottom",
+ "segment": "searchAtBottom",
+ "file": "lang\\zh-cn.js",
+ "line": 1871,
+ "reason": "key 段 \"searchAtBottom\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "searchAtTop",
+ "segment": "searchAtTop",
+ "file": "lang\\zh-cn.js",
+ "line": 1872,
+ "reason": "key 段 \"searchAtTop\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "searchClose",
+ "segment": "searchClose",
+ "file": "lang\\zh-cn.js",
+ "line": 1873,
+ "reason": "key 段 \"searchClose\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "searchEntrance",
+ "segment": "searchEntrance",
+ "file": "lang\\zh-cn.js",
+ "line": 1874,
+ "reason": "key 段 \"searchEntrance\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "searchPlaceholder",
+ "segment": "searchPlaceholder",
+ "file": "lang\\zh-cn.js",
+ "line": 1875,
+ "reason": "key 段 \"searchPlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "serviceTemporaryUnavailable",
+ "segment": "serviceTemporaryUnavailable",
+ "file": "lang\\zh-cn.js",
+ "line": 1879,
+ "reason": "key 段 \"serviceTemporaryUnavailable\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "serviceTypeNotSupported",
+ "segment": "serviceTypeNotSupported",
+ "file": "lang\\zh-cn.js",
+ "line": 1880,
+ "reason": "key 段 \"serviceTypeNotSupported\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "serviceUnavailable",
+ "segment": "serviceUnavailable",
+ "file": "lang\\zh-cn.js",
+ "line": 1881,
+ "reason": "key 段 \"serviceUnavailable\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "settingsTitle",
+ "segment": "settingsTitle",
+ "file": "lang\\zh-cn.js",
+ "line": 1882,
+ "reason": "key 段 \"settingsTitle\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "startRecordTip",
+ "segment": "startRecordTip",
+ "file": "lang\\zh-cn.js",
+ "line": 1886,
+ "reason": "key 段 \"startRecordTip\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "surePhoneNumber",
+ "segment": "surePhoneNumber",
+ "file": "lang\\zh-cn.js",
+ "line": 1890,
+ "reason": "key 段 \"surePhoneNumber\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "telephonePlaceholder",
+ "segment": "telephonePlaceholder",
+ "file": "lang\\zh-cn.js",
+ "line": 1892,
+ "reason": "key 段 \"telephonePlaceholder\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "thanksFeedback",
+ "segment": "thanksFeedback",
+ "file": "lang\\zh-cn.js",
+ "line": 1893,
+ "reason": "key 段 \"thanksFeedback\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "timeFormatBeforeYesterday",
+ "segment": "timeFormatBeforeYesterday",
+ "file": "lang\\zh-cn.js",
+ "line": 1894,
+ "reason": "key 段 \"timeFormatBeforeYesterday\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "timeFormatYesterday",
+ "segment": "timeFormatYesterday",
+ "file": "lang\\zh-cn.js",
+ "line": 1895,
+ "reason": "key 段 \"timeFormatYesterday\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "toGoodsCategoryPage",
+ "segment": "toGoodsCategoryPage",
+ "file": "lang\\zh-cn.js",
+ "line": 1897,
+ "reason": "key 段 \"toGoodsCategoryPage\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "toLogin",
+ "segment": "toLogin",
+ "file": "lang\\zh-cn.js",
+ "line": 1898,
+ "reason": "key 段 \"toLogin\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "updateSuccess",
+ "segment": "updateSuccess",
+ "file": "lang\\zh-cn.js",
+ "line": 1900,
+ "reason": "key 段 \"updateSuccess\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "userServiceAgreementText",
+ "segment": "userServiceAgreementText",
+ "file": "lang\\zh-cn.js",
+ "line": 1901,
+ "reason": "key 段 \"userServiceAgreementText\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "videoMessage",
+ "segment": "videoMessage",
+ "file": "lang\\zh-cn.js",
+ "line": 1902,
+ "reason": "key 段 \"videoMessage\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "voiceInputFailed",
+ "segment": "voiceInputFailed",
+ "file": "lang\\zh-cn.js",
+ "line": 1904,
+ "reason": "key 段 \"voiceInputFailed\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "voiceInputTitle",
+ "segment": "voiceInputTitle",
+ "file": "lang\\zh-cn.js",
+ "line": 1905,
+ "reason": "key 段 \"voiceInputTitle\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ },
+ {
+ "key": "welcomeText",
+ "segment": "welcomeText",
+ "file": "lang\\zh-cn.js",
+ "line": 1909,
+ "reason": "key 段 \"welcomeText\" 不是 snake_case(必须小写字母开头 + 小写字母/数字/下划线)"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/docs/i18n-real-zh.json b/docs/i18n-real-zh.json
new file mode 100644
index 0000000..87039d5
--- /dev/null
+++ b/docs/i18n-real-zh.json
@@ -0,0 +1,1392 @@
+{
+ "客服不在线": "common.chat-message.l60.t0",
+ "客服在线": "common.chat-message.l63.t0",
+ "未获取到 shopInfo,使用默认设置": "common.hover-nav.l192.t0",
+ "来自悬浮按钮的咨询": "common.hover-nav.l239.t0",
+ "刚刚": "common.l-time.l40.t0",
+ "分钟前": "common.l-time.l40.t1",
+ "~ 空空如也 ~": "common.mescroll.my-list-mescroll.l44.t0",
+ "去看看": "common.mescroll.my-list-mescroll.l45.t0",
+ "已发送": "common.ns-chat.ns-chat-goods.l12.t0",
+ "发送": "common.ns-chat.ns-chat-goods.l25.t0",
+ "订单状态:": "common.ns-chat.ns-chat-order.l7.t0",
+ "配送方式:": "common.ns-chat.ns-chat-order.l8.t0",
+ "销量:": "common.ns-chat.ns-chat-receiveGoods.l9.t0",
+ "联系客服": "common.ns-contact.l32.t0",
+ "请联系客服,客服电话是": "common.ns-contact.l35.t0",
+ "抱歉,商家暂无客服,请线下联系": "common.ns-contact.l35.t1",
+ "公安备案": "common.ns-copyright.l13.t0",
+ "暂无相关数据": "common.ns-empty.l18.t0",
+ "去逛逛": "common.ns-empty.l31.t0",
+ "请选择": "common.ns-form.l37.t0",
+ "请选择省市": "common.ns-form.l191.t0",
+ "请选择省市区/县": "common.ns-form.l191.t1",
+ "请输入": "common.ns-form.l368.t0",
+ "身份证输入不合法": "common.ns-form.l378.t0",
+ "手机号输入不合法": "common.ns-form.l395.t0",
+ "请至少选择一个": "common.ns-form.l432.t0",
+ "请至少上传一张": "common.ns-form.l442.t0",
+ "结束日期不能小于开始日期": "common.ns-form.l470.t0",
+ "结束时间必须大于开始时间": "common.ns-form.l498.t0",
+ "最多上传": "common.ns-form.l545.t0",
+ "张图片": "common.ns-form.l545.t1",
+ "猜你喜欢": "common.ns-goods-recommend.l13.t0",
+ "购买": "common.ns-goods-recommend.l20.t0",
+ "加入购物车": "common.ns-goods-sku.ns-goods-sku-category.l75.t0",
+ "确定": "common.ns-goods-sku.ns-goods-sku-category.l76.t0",
+ "库存不足": "common.ns-goods-sku.ns-goods-sku-category.l264.t0",
+ "该商品每次最多购买": "common.ns-goods-sku.ns-goods-sku-category.l272.t0",
+ "该商品每人限购": "common.ns-goods-sku.ns-goods-sku-category.l278.t0",
+ ",您已购买了": "common.ns-goods-sku.ns-goods-sku-category.l279.t0",
+ "商品已下架": "common.ns-goods-sku.ns-goods-sku-category.l378.t0",
+ "商品已售罄": "common.ns-goods-sku.ns-goods-sku-category.l388.t0",
+ "加入购物车成功": "common.ns-goods-sku.ns-goods-sku-category.l459.t0",
+ "商品库存不足": "common.ns-goods-sku.ns-goods-sku-index.l70.t0",
+ "商品添加购物车成功": "common.ns-goods-sku.ns-goods-sku-index.l124.t0",
+ "件": "common.ns-goods-sku.ns-goods-sku-index.l150.t0",
+ "尾款": "common.ns-goods-sku.l51.t0",
+ "库存": "common.ns-goods-sku.l120.t0",
+ "已选规格:": "common.ns-goods-sku.l124.t0",
+ "兑换数量": "common.ns-goods-sku.l161.t0",
+ "购买数量": "common.ns-goods-sku.l162.t0",
+ "(每人限购": "common.ns-goods-sku.l163.t0",
+ "(限购": "common.ns-goods-sku.l167.t0",
+ "兑换": "common.ns-goods-sku.l185.t0",
+ "立即购买": "common.ns-goods-sku.l195.t0",
+ "确认": "common.ns-goods-sku.l196.t0",
+ "立即抢购": "common.ns-goods-sku.l199.t0",
+ "该商品已下架": "common.ns-goods-sku.l208.t0",
+ "该规格未参与打包一口价活动": "common.ns-goods-sku.l710.t0",
+ "该商品": "common.ns-goods-sku.l897.t0",
+ "起售": "common.ns-goods-sku.l897.t1",
+ "预览商品无法购买": "common.ns-goods-sku.l985.t0",
+ "购买数量不能小于等于0": "common.ns-goods-sku.l1007.t0",
+ "库存小于最低购买数量": "common.ns-goods-sku.l1014.t0",
+ "加载中": "common.ns-loading.l16.t0",
+ "检测到您还未绑定手机号": "common.ns-login.l10.t0",
+ "为了方便您接收订单等信息,需要绑定手机号": "common.ns-login.l11.t0",
+ "手机号": "common.ns-login.l15.t0",
+ "请输入手机号": "common.ns-login.l16.t0",
+ "验证码": "common.ns-login.l19.t0",
+ "请输入验证码": "common.ns-login.l20.t0",
+ "动态码": "common.ns-login.l24.t0",
+ "请输入动态码": "common.ns-login.l25.t0",
+ "保存": "common.ns-login.l30.t0",
+ "欢迎来到": "common.ns-login.l35.t0",
+ "使用手机号登录,": "common.ns-login.l37.t0",
+ "注册登录,": "common.ns-login.l37.t1",
+ "《隐私条款》": "common.ns-login.l51.t0",
+ "《用户服务协议》": "common.ns-login.l53.t0",
+ "同意隐私协议并授权手机号": "common.ns-login.l61.t0",
+ "授权手机号码": "common.ns-login.l66.t0",
+ "头像": "common.ns-login.l79.t0",
+ "昵称": "common.ns-login.l87.t0",
+ "请输入昵称": "common.ns-login.l88.t0",
+ "获取手机号": "common.ns-login.l115.t0",
+ "获取动态码": "common.ns-login.l169.t0",
+ "请确认相关协议": "common.ns-login.l231.t0",
+ "上传失败": "common.ns-login.l327.t0",
+ "请输入正确的手机号": "common.ns-login.l393.t0",
+ "s后可重新获取": "common.ns-login.l414.t0",
+ "登录中": "common.ns-login.l606.t0",
+ "登录失败": "common.ns-login.l646.t0",
+ "请授权您的手机号码": "common.ns-login.l672.t0",
+ "头像拉取失败": "common.ns-login.l718.t0",
+ "请输入商品名称": "common.ns-navbar.l31.t0",
+ "定位中...": "common.ns-navbar.l39.t0",
+ "附近门店": "common.ns-navbar.l41.t0",
+ "请选择日期": "common.ns-newform.l149.t0",
+ "开始日期": "common.ns-newform.l173.t0",
+ "结束日期": "common.ns-newform.l187.t0",
+ "请选择时间": "common.ns-newform.l210.t0",
+ "开始时间": "common.ns-newform.l234.t0",
+ "结束时间": "common.ns-newform.l248.t0",
+ "请选择省市区": "common.ns-newform.l271.t0",
+ "支付方式": "common.ns-payment.l7.t0",
+ "支付金额": "common.ns-payment.l13.t0",
+ "余额抵扣": "common.ns-payment.l18.t0",
+ "可用¥": "common.ns-payment.l19.t0",
+ "平台尚未配置支付方式!": "common.ns-payment.l34.t0",
+ "确认支付": "common.ns-payment.l39.t0",
+ "支付宝支付": "common.ns-payment.l75.t0",
+ "微信支付": "common.ns-payment.l80.t0",
+ "请选择支付方式!": "common.ns-payment.l161.t0",
+ "支付中...": "common.ns-payment.l166.t0",
+ "未获取到支付信息!": "common.ns-payment.l185.t0",
+ "您已取消支付": "common.ns-payment.l298.t0",
+ "支付失败,失败原因:": "common.ns-payment.l398.t0",
+ "选择送达时间": "common.ns-select-time.l6.t0",
+ "选择自提时间": "common.ns-select-time.l7.t0",
+ "立即配送(": "common.ns-select-time.l89.t0",
+ "月": "common.ns-select-time.l96.t0",
+ "日": "common.ns-select-time.l98.t0",
+ "周日": "common.ns-select-time.l148.t0",
+ "周一": "common.ns-select-time.l148.t1",
+ "周二": "common.ns-select-time.l148.t2",
+ "周三": "common.ns-select-time.l148.t3",
+ "周四": "common.ns-select-time.l148.t4",
+ "周五": "common.ns-select-time.l148.t5",
+ "周六": "common.ns-select-time.l148.t6",
+ "今天": "common.ns-select-time.l173.t0",
+ "明天": "common.ns-select-time.l185.t0",
+ "视频地址不存在": "common.ns-video-player-popup.l17.t0",
+ "余额支付": "common.payment.l18.t0",
+ "取消": "common.pick-regions.l17.t0",
+ "完成": "common.pick-regions.l18.t0",
+ "用户隐私保护提示": "common.privacy-popup.l5.t0",
+ "不同意": "common.privacy-popup.l15.t0",
+ "同意并继续": "common.privacy-popup.l18.t0",
+ "用户隐私保护指引": "common.privacy-popup.l46.t0",
+ "本小程序": "common.privacy-popup.l47.t0",
+ "本应用": "common.privacy-popup.l49.t0",
+ "=========低版本基础库==========": "common.privacy-popup.l82.t0",
+ "未同意隐私协议,无法使用相关功能": "common.privacy-popup.l253.t0",
+ "积分奖励": "common.register-reward.l14.t0",
+ "积分": "common.register-reward.l19.t0",
+ "用于下单时抵现或兑换商品等": "common.register-reward.l21.t0",
+ "立即查看": "common.register-reward.l23.t0",
+ "成长值": "common.register-reward.l27.t0",
+ "用于提升会员等级": "common.register-reward.l34.t0",
+ "红包奖励": "common.register-reward.l40.t0",
+ "元": "common.register-reward.l45.t0",
+ "不可提现下单时可用": "common.register-reward.l47.t0",
+ "优惠券奖励": "common.register-reward.l53.t0",
+ "打": "common.register-reward.l60.t0",
+ "折": "common.register-reward.l60.t1",
+ "减": "common.register-reward.l60.t2",
+ "添加企业微信客服": "common.wxwork-contact.l16.t0",
+ "点击确定后将跳转至企业微信,添加专业客服为您服务": "common.wxwork-contact.l19.t0",
+ "企业微信SDK初始化失败": "common.wxwork-contact.l108.t0",
+ "初始化企业微信SDK失败:": "common.wxwork-contact.l112.t0",
+ "未配置企业微信客服信息": "common.wxwork-contact.l145.t0",
+ "跳转成功": "common.wxwork-contact.l168.t0",
+ "跳转企业微信失败:": "common.wxwork-contact.l173.t0",
+ "跳转失败,请检查企业微信配置": "common.wxwork-contact.l174.t0",
+ "企业微信SDK未初始化": "common.wxwork-contact.l184.t0",
+ "打开用户资料失败:": "common.wxwork-contact.l192.t0",
+ "打开用户资料失败": "common.wxwork-contact.l193.t0",
+ "提示": "common.wxwork-contact.l202.t0",
+ "选择时间": "common.yuyue-date.l6.t0",
+ "指定日期": "common.yuyue-date.l23.t0",
+ "预约时间:": "common.yuyue-date.l57.t0",
+ "确认预约": "common.yuyue-date.l60.t0",
+ "如不想线上预约,可致电商家电话预约": "common.yuyue-date.l63.t0",
+ "已约满": "common.yuyue-date.l103.t0",
+ "可预约": "common.yuyue-date.l108.t0",
+ "暂无选择": "common.yuyue-date.l176.t0",
+ "不可以预约": "common.yuyue-date.l216.t0",
+ "小时前": "common.l-time.time.l110.t0",
+ "天前": "common.l-time.time.l119.t0",
+ "下拉刷新": "common.mescroll.mescroll-uni-option.l6.t0",
+ "释放更新": "common.mescroll.mescroll-uni-option.l7.t0",
+ "加载中 ...": "common.mescroll.mescroll-uni-option.l8.t0",
+ "~ 暂无相关数据 ~": "common.mescroll.mescroll-uni-option.l30.t0",
+ "一": "common.yuyue-date.l34.t0",
+ "二": "common.yuyue-date.l34.t1",
+ "三": "common.yuyue-date.l34.t2",
+ "四": "common.yuyue-date.l34.t3",
+ "五": "common.yuyue-date.l34.t4",
+ "六": "common.yuyue-date.l34.t5",
+ "周${days[day]}": "common.yuyue-date.l38.t0",
+ "后天": "common.yuyue-date.l53.t0",
+ "滚到底后跳变": "diy.diy-article.l10.t0",
+ "查看更多": "diy.diy-article.l94.t0",
+ "暂无相关文章": "diy.diy-article.l99.t0",
+ "但不是 .read-wrap,特异性 view": "diy.diy-article.l908.t0",
+ "组件内部": "diy.diy-article.l925.t0",
+ "低至0元免费拿": "diy.diy-bargain.l15.t0",
+ "继续砍价": "diy.diy-bargain.l78.t0",
+ "全部": "diy.diy-category-item.l47.t0",
+ "选规格": "diy.diy-category-item.l132.t0",
+ "已经到底了~": "diy.diy-category-item.l163.t0",
+ "商品分类": "diy.diy-category.l12.t0",
+ "展开": "diy.diy-category.l54.t0",
+ "点击收起": "diy.diy-category.l71.t0",
+ "暂时没有分类哦!": "diy.diy-category.l123.t0",
+ "总计:": "diy.diy-category.l138.t0",
+ "去结算": "diy.diy-category.l144.t0",
+ "视频号仅支持在微信小程序环境中播放": "diy.diy-channel-list.l268.t0",
+ "打开视频号失败": "diy.diy-channel-list.l278.t0",
+ "满": "diy.diy-coupon.l32.t0",
+ "元可用": "diy.diy-coupon.l32.t1",
+ "无门槛优惠券": "diy.diy-coupon.l32.t2",
+ "去使用": "diy.diy-coupon.l38.t0",
+ "领取": "diy.diy-coupon.l71.t0",
+ "所有商品可用": "diy.diy-coupon.l103.t0",
+ "指定商品可用": "diy.diy-coupon.l104.t0",
+ "指定商品不可用": "diy.diy-coupon.l105.t0",
+ "立即使用": "diy.diy-coupon.l143.t0",
+ "立即领取": "diy.diy-coupon.l181.t0",
+ "优惠券": "diy.diy-coupon.l209.t0",
+ "无门槛使用": "diy.diy-coupon.l229.t0",
+ "暂无优惠券": "diy.diy-coupon.l241.t0",
+ "该优惠券已抢光": "diy.diy-coupon.l407.t0",
+ "领取成功": "diy.diy-coupon.l430.t0",
+ "赚 ¥": "diy.diy-fenxiao-goods-list.l23.t0",
+ "关注成功": "diy.diy-fenxiao-goods-list.l141.t0",
+ "确认取消关注该商品吗": "diy.diy-fenxiao-goods-list.l153.t0",
+ "取消成功": "diy.diy-fenxiao-goods-list.l170.t0",
+ "提交": "diy.diy-form.l142.t0",
+ "默认表单": "diy.diy-form.l301.t0",
+ "提交成功": "diy.diy-form.l306.t0",
+ "提交失败": "diy.diy-form.l315.t0",
+ "该分类下暂无商品": "diy.diy-index-page.l156.t0",
+ "首页": "diy.diy-index-page.l196.t0",
+ "立即添加": "diy.diy-kefu.l17.t0",
+ "查看": "diy.diy-listmenu.l15.t0",
+ "主播:": "diy.diy-live.l29.t0",
+ "直播商品:": "diy.diy-live.l33.t0",
+ "一键导航": "diy.diy-map.l9.t0",
+ "点击授权头像昵称": "diy.diy-member-info.l15.t0",
+ "点击获取微信头像": "diy.diy-member-info.l39.t0",
+ "超级会员": "diy.diy-member-info.l110.t0",
+ "查看特权": "diy.diy-member-info.l113.t0",
+ "会员可享更多权益": "diy.diy-member-info.l114.t0",
+ "开通可享更多权益": "diy.diy-member-info.l121.t0",
+ "立即开通": "diy.diy-member-info.l125.t0",
+ "查看更多权益": "diy.diy-member-info.l137.t0",
+ "余额": "diy.diy-member-info.l146.t0",
+ "余额充值": "diy.diy-member-info.l164.t0",
+ "获取您的昵称、头像": "diy.diy-member-info.l197.t0",
+ "获取用户头像、昵称完善个人资料,主要用于向用户提供具有辨识度的用户中心界面": "diy.diy-member-info.l198.t0",
+ "微信用户": "diy.diy-member-info.l407.t0",
+ "使用会员码需先绑定手机号,是否绑定手机号?": "diy.diy-member-info.l497.t0",
+ "品牌": "diy.diy-merch-list.l66.t0",
+ "单品介绍": "diy.diy-notes.l20.t0",
+ "掌柜说": "diy.diy-notes.l21.t0",
+ "公告": "diy.diy-notice.l45.t0",
+ "我知道了": "diy.diy-notice.l49.t0",
+ "门店消费时使用,支付时点击下方展示付款码": "diy.diy-payment-qrcode.l6.t0",
+ "付款码": "diy.diy-payment-qrcode.l12.t0",
+ "扫码付": "diy.diy-payment-qrcode.l16.t0",
+ "门店支付": "diy.diy-payment-qrcode.l22.t0",
+ "扫码付请退出程序后直接使用微信扫一扫或返回上一页使用付款码进行支付": "diy.diy-payment-qrcode.l33.t0",
+ "已拼": "diy.diy-pinfan.l28.t0",
+ "返": "diy.diy-pinfan.l52.t0",
+ "返优惠券": "diy.diy-pinfan.l55.t0",
+ "人参与": "diy.diy-pintuan.l29.t0",
+ "人拼团成功": "diy.diy-pintuan.l29.t1",
+ "去参团": "diy.diy-pintuan.l151.t0",
+ "搜索": "diy.diy-search.l31.t0",
+ "距离开始": "diy.diy-seckill.l16.t0",
+ "距离结束": "diy.diy-seckill.l19.t0",
+ "原价:": "diy.diy-seckill.l90.t0",
+ "即将开始": "diy.diy-seckill.l100.t0",
+ "秒杀活动即将开启,敬请期待!": "diy.diy-seckill.l505.t0",
+ "切换": "diy.diy-store.l10.t0",
+ "获取当前位置...": "diy.diy-store.l20.t0",
+ "商品搜索": "diy.diy-store.l66.t0",
+ "专区": "diy.diy-text.l211.t0",
+ "H5端预加载视频失败:": "diy.diy-video.l146.t0",
+ "视频加载失败:": "diy.diy-video.l187.t0",
+ "当前环境不是微信小程序": "diy.js.wechat-channel.l59.t0",
+ "当前微信基础库版本过低,需要 2.19.2 或以上版本": "diy.js.wechat-channel.l60.t0",
+ "当前环境不支持微信视频号": "diy.js.wechat-channel.l61.t0",
+ "缺少必要字段: {field}": "diy.js.wechat-channel.l62.t0",
+ "缺少必要字段: ${field}": "diy.js.wechat-channel.l111.t0",
+ "微信视频号错误:": "diy.js.wechat-channel.l170.t0",
+ "关注公众号": "page.index.l16.t0",
+ "跳过": "page.index.l47.t0",
+ "关注了解更多": "page.index.l89.t0",
+ "请确认门店": "page.index.l108.t0",
+ "重新定位": "page.index.l115.t0",
+ "当前门店": "page.index.l119.t0",
+ "确认进入": "page.index.l130.t0",
+ "选择其他门店": "page.index.l133.t0",
+ "构建版本信息": "page.index.public.js.index.l121.t0",
+ "提交 ID: ${v.commitId}\\n构建时间: ${v.buildTime}": "page.index.public.js.index.l122.t0",
+ "未获取到构建版本信息": "page.index.public.js.index.l126.t0",
+ "未配置": "goods._components.goods-detail-view.l75.t0",
+ "门店": "goods._components.goods-detail-view.l81.t0",
+ "服务": "goods._components.goods-detail-view.l99.t0",
+ "官方认证商家,值得信赖!": "goods._components.goods-detail-view.l143.t0",
+ "配送": "goods._components.goods-detail-view.l156.t0",
+ "商品服务": "goods._components.goods-detail-view.l180.t0",
+ "门店列表": "goods._components.goods-detail-view.l213.t0",
+ "添加": "goods._components.goods-detail-view.l257.t0",
+ "添加社群": "goods._components.goods-detail-view.l264.t0",
+ "长按识别二维码,添加社群": "goods._components.goods-detail-view.l269.t0",
+ "暂无评价": "goods._components.goods-detail-view.l290.t0",
+ "查看全部": "goods._components.goods-detail-view.l292.t0",
+ "规格属性": "goods._components.goods-detail-view.l338.t0",
+ "保存图片": "goods._components.goods-detail-view.l397.t0",
+ "长按图片进行保存": "goods._components.goods-detail-view.l400.t0",
+ "分享": "goods._components.goods-detail-view.l411.t0",
+ "分享给好友": "goods._components.goods-detail-view.l417.t0",
+ "分享到好物圈": "goods._components.goods-detail-view.l426.t0",
+ "生成分享海报": "goods._components.goods-detail-view.l434.t0",
+ "复制链接": "goods._components.goods-detail-view.l441.t0",
+ "取消分享": "goods._components.goods-detail-view.l446.t0",
+ "限时折扣": "goods._components.ns-goods-promotion.l6.t0",
+ "当前商品正在参加": "goods._components.ns-goods-promotion.l7.t0",
+ "团购": "goods._components.ns-goods-promotion.l13.t0",
+ "拼团": "goods._components.ns-goods-promotion.l19.t0",
+ "秒杀": "goods._components.ns-goods-promotion.l25.t0",
+ "专题活动": "goods._components.ns-goods-promotion.l31.t0",
+ "砍价": "goods._components.ns-goods-promotion.l37.t0",
+ "拼团返利": "goods._components.ns-goods-promotion.l43.t0",
+ "共": "goods.cart.l8.t0",
+ "领券结算最高可减": "goods.cart.l17.t0",
+ "满减": "goods.cart.l123.t0",
+ "失效商品": "goods.cart.l143.t0",
+ "清空": "goods.cart.l145.t0",
+ "已失效": "goods.cart.l192.t0",
+ "购物车为空": "goods.cart.l202.t0",
+ "赶紧去逛逛, 购买心仪的商品吧": "goods.cart.l202.t1",
+ "优惠明细": "goods.cart.l221.t0",
+ "商品总额": "goods.cart.l226.t0",
+ "合计": "goods.cart.l239.t0",
+ "有效期:长期有效": "goods.cart.l294.t0",
+ "已领取": "goods.cart.l298.t0",
+ "领券": "goods.cart.l341.t0",
+ "立即": "goods.cart.l341.t1",
+ "发现超多好物,快来看看": "goods.category.l51.t0",
+ "已售": "goods.detail.l18.t0",
+ "距结束仅剩": "goods.detail.l23.t0",
+ "原价": "goods.detail.l55.t0",
+ "开通": "goods.detail.l99.t0",
+ "- 套餐包含以下的服务及商品 -": "goods.detail.l129.t0",
+ "卡项内项目/商品总的可用次数为": "goods.detail.l131.t0",
+ "次数不限 ,": "goods.detail.l132.t0",
+ "永久": "goods.detail.l133.t0",
+ "天": "goods.detail.l134.t0",
+ "收起": "goods.detail.l152.t0",
+ "选择": "goods.detail.l187.t0",
+ "促销": "goods.detail.l194.t0",
+ "组合套餐": "goods.detail.l220.t0",
+ "套餐价": "goods.detail.l300.t0",
+ "最多可抵¥": "goods.detail.l348.t0",
+ "有效期:": "goods.detail.l349.t0",
+ "有效期:领取之日起": "goods.detail.l350.t0",
+ "已抢光": "goods.detail.l354.t0",
+ "满送": "goods.detail.l379.t0",
+ "包邮": "goods.detail.l383.t0",
+ "商品留言": "goods.detail.l396.t0",
+ "可在手机端拨打 021-51815181": "goods.detail.l523.t0",
+ "复制到剪切板": "goods.detail.l527.t0",
+ "复制成功": "goods.detail.l591.t0",
+ "综合": "goods.list.l19.t0",
+ "销量": "goods.list.l23.t0",
+ "价格": "goods.list.l28.t0",
+ "筛选": "goods.list.l40.t0",
+ "暂无商品": "goods.list.l148.t0",
+ "是否包邮": "goods.list.l160.t0",
+ "价格区间(元)": "goods.list.l168.t0",
+ "最低价": "goods.list.l170.t0",
+ "最高价": "goods.list.l172.t0",
+ "全部分类": "goods.list.l188.t0",
+ "重置": "goods.list.l203.t0",
+ "海报生成中...": "goods._components.goods-detail-view.detail.l285.t0",
+ "保存成功": "goods._components.goods-detail-view.detail.l351.t0",
+ "保存失败,请稍后重试": "goods._components.goods-detail-view.detail.l356.t0",
+ "请选择要删除的商品": "goods.public.js.cart.l236.t0",
+ "确定要删除这些商品吗?": "goods.public.js.cart.l243.t0",
+ "确定要删除该商品吗?": "goods.public.js.cart.l243.t1",
+ "确定要清空这些商品吗?": "goods.public.js.cart.l385.t0",
+ "您已领取过该优惠券,快去使用吧": "goods.public.js.detail.l321.t0",
+ "领取成功,快去使用吧": "goods.public.js.detail.l323.t0",
+ ";满": "goods.public.js.detail.l379.t0",
+ "送": "goods.public.js.detail.l386.t0",
+ "、送": "goods.public.js.detail.l392.t0",
+ "张": "goods.public.js.detail.l392.t1",
+ "折优惠券": "goods.public.js.detail.l392.t2",
+ "元优惠券": "goods.public.js.detail.l395.t0",
+ "商品列表": "goods.public.js.list.l78.t0",
+ "搜索到": "goods.public.js.list.l126.t0",
+ "件“": "goods.public.js.list.l126.t1",
+ "”相关的优质商品": "goods.public.js.list.l126.t2",
+ "请输入最高价": "goods.public.js.list.l365.t0",
+ "筛选价格不能小于0": "goods.public.js.list.l371.t0",
+ "最低价不能大于最高价": "goods.public.js.list.l378.t0",
+ "最高价不能小于最低价": "goods.public.js.list.l384.t0",
+ "确认订单": "order._components.common-payment.l7.t0",
+ "手机号码": "order._components.common-payment.l27.t0",
+ "请输入您的手机号码": "order._components.common-payment.l28.t0",
+ "请设置收货地址": "order._components.common-payment.l57.t0",
+ "点击切换": "order._components.common-payment.l75.t0",
+ "您的附近没有可配送的门店,请选择其他配送方式": "order._components.common-payment.l81.t0",
+ "送达时间": "order._components.common-payment.l100.t0",
+ "请选择送达时间": "order._components.common-payment.l102.t0",
+ "营业时间:": "order._components.common-payment.l128.t0",
+ "姓名": "order._components.common-payment.l138.t0",
+ "预留手机": "order._components.common-payment.l144.t0",
+ "提货时间": "order._components.common-payment.l149.t0",
+ "当前无自提门店,请选择其它配送方式": "order._components.common-payment.l156.t0",
+ "该商品不支持": "order._components.common-payment.l192.t0",
+ "买家留言": "order._components.common-payment.l227.t0",
+ "无留言": "order._components.common-payment.l230.t0",
+ "已选择1张优惠券": "order._components.common-payment.l238.t0",
+ "优惠": "order._components.common-payment.l239.t0",
+ "不使用优惠券": "order._components.common-payment.l242.t0",
+ "小计:": "order._components.common-payment.l251.t0",
+ "已使用优惠券,优惠": "order._components.common-payment.l276.t0",
+ "活动优惠": "order._components.common-payment.l285.t0",
+ "使用": "order._components.common-payment.l293.t0",
+ "发票": "order._components.common-payment.l301.t0",
+ "纸质": "order._components.common-payment.l303.t0",
+ "电子": "order._components.common-payment.l303.t1",
+ "无需发票": "order._components.common-payment.l304.t0",
+ "本单预计可省": "order._components.common-payment.l316.t0",
+ "商品金额": "order._components.common-payment.l335.t0",
+ "运费": "order._components.common-payment.l342.t0",
+ "税费": "order._components.common-payment.l351.t0",
+ "发票邮寄费": "order._components.common-payment.l361.t0",
+ "积分抵扣": "order._components.common-payment.l385.t0",
+ "会员卡": "order._components.common-payment.l393.t0",
+ "购买前请先阅读": "order._components.common-payment.l403.t0",
+ ",下单即代表同意该协议": "order._components.common-payment.l403.t1",
+ "合计:": "order._components.common-payment.l408.t0",
+ "提交订单": "order._components.common-payment.l414.t0",
+ "差": "order._components.common-payment.l415.t0",
+ "已为您甄选出附近所有相关门店": "order._components.common-payment.l452.t0",
+ "地址:": "order._components.common-payment.l469.t0",
+ "所选择收货地址附近没有可以自提的门店": "order._components.common-payment.l478.t0",
+ "留言前建议先与商家协调一致": "order._components.common-payment.l500.t0",
+ "长期有效": "order._components.common-payment.l551.t0",
+ "暂无可用的优惠券": "order._components.common-payment.l557.t0",
+ "买家信息": "order._components.common-payment.l587.t0",
+ "选择次卡": "order._components.common-payment.l602.t0",
+ "不限次数": "order._components.common-payment.l610.t0",
+ "剩余": "order._components.common-payment.l611.t0",
+ "订单关闭原因:": "order.detail.l16.t0",
+ "收货地址:": "order.detail.l37.t0",
+ "送达时间:": "order.detail.l42.t0",
+ "配送员:": "order.detail.l47.t0",
+ "外卖电话:": "order.detail.l51.t0",
+ "当前无自提门店": "order.detail.l84.t0",
+ "提货码:": "order.detail.l106.t0",
+ "复制": "order.detail.l109.t0",
+ "申请售后": "order.detail.l192.t0",
+ "申请退款": "order.detail.l192.t1",
+ "查看售后": "order.detail.l198.t0",
+ "查看退款": "order.detail.l198.t1",
+ "订单类型:": "order.detail.l208.t0",
+ "订单编号:": "order.detail.l214.t0",
+ "订单交易号:": "order.detail.l221.t0",
+ "创建时间:": "order.detail.l227.t0",
+ "关闭时间:": "order.detail.l233.t0",
+ "支付方式:": "order.detail.l241.t0",
+ "支付时间:": "order.detail.l247.t0",
+ "配送方式:": "order.detail.l254.t0",
+ "买家留言:": "order.detail.l260.t0",
+ "活动优惠:": "order.detail.l266.t0",
+ "发票类型:": "order.detail.l274.t0",
+ "纸质发票": "order.detail.l276.t0",
+ "电子发票": "order.detail.l276.t1",
+ "发票抬头类型:": "order.detail.l280.t0",
+ "个人": "order.detail.l282.t0",
+ "企业": "order.detail.l282.t1",
+ "发票抬头:": "order.detail.l286.t0",
+ "发票内容:": "order.detail.l293.t0",
+ "发票邮寄地址:": "order.detail.l299.t0",
+ "发票接收邮件:": "order.detail.l305.t0",
+ "我的卡包:": "order.detail.l329.t0",
+ "请将条形码或二维码出示给核销员": "order.detail.l350.t0",
+ "核销信息": "order.detail.l360.t0",
+ "核销次数": "order.detail.l362.t0",
+ "有效期": "order.detail.l372.t0",
+ "永久有效": "order.detail.l376.t0",
+ "核销记录": "order.detail.l382.t0",
+ "核销人": "order.detail.l387.t0",
+ "核销时间": "order.detail.l393.t0",
+ "暂无核销记录": "order.detail.l400.t0",
+ "卡密信息": "order.detail.l406.t0",
+ "卡号:": "order.detail.l409.t0",
+ "密码:": "order.detail.l416.t0",
+ "订单调整": "order.detail.l537.t0",
+ "使用余额": "order.detail.l568.t0",
+ "实付金额:": "order.detail.l589.t0",
+ "评价": "order.detail.l601.t0",
+ "追评": "order.detail.l602.t0",
+ "未获取到订单信息!": "order.detail.l737.t0",
+ "待支付": "order.detail_point.l14.t0",
+ "已完成": "order.detail_point.l14.t1",
+ "已关闭": "order.detail_point.l15.t0",
+ "使用积分": "order.detail_point.l99.t0",
+ "关闭": "order.detail_point.l126.t0",
+ "支付": "order.detail_point.l128.t0",
+ "确定关闭此次兑换?": "order.detail_point.l225.t0",
+ "关闭成功": "order.detail_point.l236.t0",
+ "请输入商品名称/订单编号": "order.list.l6.t0",
+ "订单号:": "order.list.l35.t0",
+ "加购物车": "order.list.l74.t0",
+ "查看详情": "order.list.l141.t0",
+ "合并付款": "order.list.l152.t0",
+ "待付款": "order.list.l297.t0",
+ "待发货": "order.list.l302.t0",
+ "待收货": "order.list.l307.t0",
+ "待使用": "order.list.l317.t0",
+ "满减送": "order.payment.l37.t0",
+ "购买可享受满": "order.payment.l48.t0",
+ "购物满": "order.payment.l66.t0",
+ "可得": "order.payment.l73.t0",
+ "周卡": "order._components.common-payment.payment.l134.t0",
+ "周": "order._components.common-payment.payment.l135.t0",
+ "月卡": "order._components.common-payment.payment.l142.t0",
+ "季卡": "order._components.common-payment.payment.l150.t0",
+ "季": "order._components.common-payment.payment.l151.t0",
+ "年卡": "order._components.common-payment.payment.l158.t0",
+ "年": "order._components.common-payment.payment.l159.t0",
+ "请输入预留手机": "order._components.common-payment.payment.l487.t0",
+ "商家未设置配送方式": "order._components.common-payment.payment.l500.t0",
+ "请先选择您的收货地址": "order._components.common-payment.payment.l509.t0",
+ "没有可提货的门店,请选择其他配送方式": "order._components.common-payment.payment.l517.t0",
+ "请选择提货时间": "order._components.common-payment.payment.l535.t0",
+ "没有可配送的门店,请选择其他配送方式": "order._components.common-payment.payment.l544.t0",
+ "请填写发票抬头": "order._components.common-payment.payment.l840.t0",
+ "请填写纳税人识别号": "order._components.common-payment.payment.l846.t0",
+ "请填写发票邮寄地址": "order._components.common-payment.payment.l852.t0",
+ "请填写邮箱": "order._components.common-payment.payment.l858.t0",
+ "请填写正确的邮箱": "order._components.common-payment.payment.l866.t0",
+ "请选择发票内容": "order._components.common-payment.payment.l873.t0",
+ "商家已将支付金额调整为": "order.public.js.orderMethod.l13.t0",
+ "元,是否继续支付?": "order.public.js.orderMethod.l13.t1",
+ "您确定要关闭该订单吗?": "order.public.js.orderMethod.l47.t0",
+ "当前订单可能存在拼团,维权等操作,": "order.public.js.orderMethod.l60.t0",
+ "不可以关闭哦!": "order.public.js.orderMethod.l61.t0",
+ "您确定已经收到货物了吗?": "order.public.js.orderMethod.l81.t0",
+ "您确定要进行收货吗?": "order.public.js.orderMethod.l176.t0",
+ "撤销之后本次申请将会关闭,如后续仍有问题可再次发起申请。": "order.public.js.refundMethod.l10.t0",
+ "暂不撤销": "order.public.js.refundMethod.l11.t0",
+ "请填写申请信息": "fenxiao.apply.l16.t0",
+ "邀请人": "fenxiao.apply.l27.t0",
+ "名称": "fenxiao.apply.l32.t0",
+ "申请成为": "fenxiao.apply.l45.t0",
+ "分销商申请条件": "fenxiao.apply.l52.t0",
+ "展开更多": "fenxiao.apply.l82.t0",
+ "成为分销商的条件": "fenxiao.apply.l100.t0",
+ "成为": "fenxiao.apply.l101.t0",
+ "您还不是分销商": "fenxiao.apply.l126.t0",
+ "您已提交": "fenxiao.apply.l131.t0",
+ "您提交的": "fenxiao.apply.l133.t0",
+ "重新申请": "fenxiao.apply.l134.t0",
+ "无": "fenxiao.apply.l166.t0",
+ "商家未开启分销": "fenxiao.apply.l194.t0",
+ "申请": "fenxiao.apply.l210.t0",
+ "请仔细阅读协议,并勾选": "fenxiao.apply.l278.t0",
+ "账单编号:": "fenxiao.bill.l11.t0",
+ "暂无账单信息": "fenxiao.bill.l19.t0",
+ "人": "fenxiao.child_fenxiao.l23.t0",
+ "单": "fenxiao.child_fenxiao.l24.t0",
+ "暂无数据": "fenxiao.child_fenxiao.l32.t0",
+ "赚": "fenxiao.goods_list.l43.t0",
+ "暂无分销商品": "fenxiao.goods_list.l49.t0",
+ "分享好友": "fenxiao.goods_list.l56.t0",
+ "生成海报": "fenxiao.goods_list.l59.t0",
+ "长按保存图片": "fenxiao.goods_list.l118.t0",
+ "总店": "fenxiao.index.l21.t0",
+ "上级代理商:": "fenxiao.index.l21.t1",
+ "已邀请成功:": "fenxiao.index.l22.t0",
+ "等级未解锁": "fenxiao.index.l33.t0",
+ "0 ? info.level_name : '等级未解锁' }}": "fenxiao.index.l33.t1",
+ "下单、邀请好友均可提升等级": "fenxiao.index.l34.t0",
+ "做任务": "fenxiao.index.l36.t0",
+ "可": "fenxiao.index.l43.t0",
+ "总": "fenxiao.index.l55.t0",
+ "已提现": "fenxiao.index.l59.t0",
+ "提现中(元)": "fenxiao.index.l64.t0",
+ "待入账(元)": "fenxiao.index.l70.t0",
+ "我的粉丝": "fenxiao.index.l93.t0",
+ "邀请的用户": "fenxiao.index.l94.t0",
+ "订单": "fenxiao.index.l114.t0",
+ "我的邀请码": "fenxiao.index.l124.t0",
+ "邀好友赚好礼": "fenxiao.index.l125.t0",
+ "邀请好友": "fenxiao.index.l133.t0",
+ "账单报表": "fenxiao.index.l142.t0",
+ "您的排名为第": "fenxiao.index.l162.t0",
+ "推广人排行": "fenxiao.index.l171.t0",
+ "您的排名为": "fenxiao.index.l172.t0",
+ "等级说明": "fenxiao.index.l180.t0",
+ "您还不是": "fenxiao.index.l214.t0",
+ "立即加入": "fenxiao.index.l215.t0",
+ "快速升级技巧": "fenxiao.index.l223.t0",
+ "未完成": "fenxiao.index.l231.t0",
+ "去完成": "fenxiao.index.l239.t0",
+ "满足任意一条件即可升级": "fenxiao.index.l254.t0",
+ "满足全部条件才能进行升级": "fenxiao.index.l254.t1",
+ "中心": "fenxiao.index.l293.t0",
+ "当前分销商已冻结": "fenxiao.index.l371.t0",
+ "下级消费": "fenxiao.index.l483.t0",
+ "下级消费单数满": "fenxiao.index.l484.t0",
+ "分销商自己购买和自己推荐的直属会员购买的订单次数": "fenxiao.index.l485.t0",
+ "下级消费金额满": "fenxiao.index.l498.t0",
+ "分销商自己购买和推荐的直属会员购买的订单的总额": "fenxiao.index.l499.t0",
+ "下级消费产生": "fenxiao.index.l512.t0",
+ "总额满": "fenxiao.index.l512.t1",
+ "分销商自己购买和自己推荐的直属会员购买的订单": "fenxiao.index.l514.t0",
+ "总额": "fenxiao.index.l514.t1",
+ "自身消费": "fenxiao.index.l526.t0",
+ "自身消费单数满": "fenxiao.index.l527.t0",
+ "分销商自己购买的订单次数": "fenxiao.index.l528.t0",
+ "自身消费金额满": "fenxiao.index.l539.t0",
+ "分销商自己购买的订单总额": "fenxiao.index.l540.t0",
+ "邀请好友人数达到": "fenxiao.index.l553.t0",
+ "分销商的直属下级会员人数(包含已经申请成为分销商的)": "fenxiao.index.l554.t0",
+ "邀请好友成为分销商人数达到": "fenxiao.index.l567.t0",
+ "分销商的直属下级分销商人数": "fenxiao.index.l568.t0",
+ "一级分佣比率": "fenxiao.level.l20.t0",
+ "二级分佣比率": "fenxiao.level.l24.t0",
+ "三级分佣比率": "fenxiao.level.l28.t0",
+ "分销商自己购买和自己推荐的直属会员购买的订单次数达到": "fenxiao.level.l119.t0",
+ "分销商自己购买和推荐的直属会员购买的订单的总额达到": "fenxiao.level.l131.t0",
+ "下级消费产生佣金总额满": "fenxiao.level.l143.t0",
+ "分销商自己购买和自己推荐的直属会员购买的订单佣金总额达到": "fenxiao.level.l144.t0",
+ "分销商自己购买的订单次数达到": "fenxiao.level.l157.t0",
+ "分销商自己购买的订单总额满足": "fenxiao.level.l169.t0",
+ "分销商的直属下级会员人数达到": "fenxiao.level.l181.t0",
+ "人(包含已经申请成为分销商的)": "fenxiao.level.l181.t1",
+ "分销商的直属下级分销商人数达到": "fenxiao.level.l193.t0",
+ "等级": "fenxiao.level.l221.t0",
+ "已退款": "fenxiao.order.l17.t0",
+ "已结算": "fenxiao.order.l19.t0",
+ "待结算": "fenxiao.order.l20.t0",
+ "暂无订单": "fenxiao.order.l81.t0",
+ "暂无待结算订单": "fenxiao.order.l83.t0",
+ "暂无已结算订单": "fenxiao.order.l85.t0",
+ "暂无已退款订单": "fenxiao.order.l87.t0",
+ "返佣详情": "fenxiao.order_detail.l47.t0",
+ "分佣层级:": "fenxiao.order_detail.l56.t0",
+ "返佣金额:": "fenxiao.order_detail.l60.t0",
+ "已邀请好友": "fenxiao.promote.l21.t0",
+ "已下单好友": "fenxiao.promote.l22.t0",
+ "暂无已邀请好友,快去邀请吧": "fenxiao.promote.l35.t0",
+ "暂无活动规则": "fenxiao.promote.l44.t0",
+ "长按识别图中二维码": "fenxiao.promote_code.l14.t0",
+ "保存海报": "fenxiao.promote_code.l18.t0",
+ "您拒绝了保存图片到相册的授权请求,无法保存图片到相册,如需正常使用,请授权之后再进行操作。": "fenxiao.promote_code.l24.t0",
+ "立即授权": "fenxiao.promote_code.l29.t0",
+ "下载失败": "fenxiao.promote_code.l114.t0",
+ "海报生成失败": "fenxiao.promote_code.l139.t0",
+ "点击提现": "fenxiao.ranking_list.l19.t0",
+ "我的团队": "fenxiao.ranking_list.l21.t0",
+ "分销佣金": "fenxiao.ranking_list.l33.t0",
+ "佣金排行": "fenxiao.ranking_list.l44.t0",
+ "您排行第": "fenxiao.ranking_list.l45.t0",
+ "推广人数": "fenxiao.ranking_list.l57.t0",
+ "推广排行": "fenxiao.ranking_list.l68.t0",
+ "一级": "fenxiao.team.l92.t0",
+ "二级": "fenxiao.team.l96.t0",
+ "提现到": "fenxiao.withdraw_apply.l5.t0",
+ "微信默认钱包": "fenxiao.withdraw_apply.l6.t0",
+ "请添加提现账户": "fenxiao.withdraw_apply.l19.t0",
+ "提现金额:": "fenxiao.withdraw_apply.l31.t0",
+ "可提现金额:": "fenxiao.withdraw_apply.l41.t0",
+ "全部提现": "fenxiao.withdraw_apply.l42.t0",
+ "最小提现金额为": "fenxiao.withdraw_apply.l46.t0",
+ "手续费为": "fenxiao.withdraw_apply.l48.t0",
+ "提现": "fenxiao.withdraw_apply.l59.t0",
+ "提现记录": "fenxiao.withdraw_apply.l64.t0",
+ "请输入提现金额": "fenxiao.withdraw_apply.l178.t0",
+ "提现金额超出可提现金额": "fenxiao.withdraw_apply.l189.t0",
+ "提现金额小于最低提现金额": "fenxiao.withdraw_apply.l196.t0",
+ "请先添加提现方式": "fenxiao.withdraw_apply.l205.t0",
+ "提现申请成功": "fenxiao.withdraw_apply.l238.t0",
+ "支付宝": "fenxiao.withdraw_list.l12.t0",
+ "银行卡": "fenxiao.withdraw_list.l12.t1",
+ "微信": "fenxiao.withdraw_list.l13.t0",
+ "暂无提现记录": "fenxiao.withdraw_list.l28.t0",
+ "已转账": "fenxiao.withdraw_list.l45.t0",
+ "待审核": "fenxiao.withdraw_list.l49.t0",
+ "已审核": "fenxiao.withdraw_list.l53.t0",
+ "已拒绝": "fenxiao.withdraw_list.l57.t0",
+ "明细": "fenxiao.withdraw_list.l78.t0",
+ "当前状态": "fenxiao.withdrawal_detail.l10.t0",
+ "交易号": "fenxiao.withdrawal_detail.l14.t0",
+ "手续费": "fenxiao.withdrawal_detail.l18.t0",
+ "申请时间": "fenxiao.withdrawal_detail.l22.t0",
+ "审核时间": "fenxiao.withdrawal_detail.l26.t0",
+ "银行名称": "fenxiao.withdrawal_detail.l30.t0",
+ "收款账号": "fenxiao.withdrawal_detail.l34.t0",
+ "拒绝理由": "fenxiao.withdrawal_detail.l38.t0",
+ "转账方式名称": "fenxiao.withdrawal_detail.l42.t0",
+ "转账时间": "fenxiao.withdrawal_detail.l46.t0",
+ "请输入您要搜索的商品": "merch.detail.l7.t0",
+ "上滑查看更多": "merch.detail.l31.t0",
+ "↑ 收起": "merch.detail.l35.t0",
+ "↓ 展开": "merch.detail.l35.t1",
+ "立即咨询": "merch.detail.l102.t0",
+ "物业": "merch.merchcategory.l83.t0",
+ "鞋里革": "merch.merchcategory.l87.t0",
+ "领取之日起": "point.detail.l77.t0",
+ "天内有效": "point.detail.l77.t1",
+ "到期": "point.detail.l78.t0",
+ "属性": "point.detail.l129.t0",
+ "商品属性": "point.detail.l144.t0",
+ "兑换详情": "point.detail.l187.t0",
+ "暂无兑换详情!": "point.detail.l195.t0",
+ "登录之后方可兑换": "point.detail.l208.t0",
+ "积分不足": "point.detail.l213.t0",
+ "仅需": "point.detail.l296.t0",
+ "积分即可兑换": "point.detail.l296.t1",
+ "上新时间": "point.goods_list.l29.t0",
+ "立即兑换": "point.goods_list.l79.t0",
+ "积分区间": "point.goods_list.l99.t0",
+ "搜索商品": "point.list.l13.t0",
+ "我的积分": "point.list.l31.t0",
+ "提醒": "point.list.l40.t0",
+ "积分兑好礼,每日上新换不停!": "point.list.l41.t0",
+ "活动规则": "point.list.l50.t0",
+ "储值赚积分": "point.list.l55.t0",
+ "兑换记录": "point.list.l59.t0",
+ "积分抽奖": "point.list.l63.t0",
+ "积分明细": "point.list.l67.t0",
+ "储值": "point.list.l84.t0",
+ "去储值": "point.list.l86.t0",
+ "积分换券": "point.list.l94.t0",
+ "可用": "point.list.l125.t0",
+ "全场券": "point.list.l128.t0",
+ "积分换红包": "point.list.l148.t0",
+ "积分换礼品": "point.list.l181.t0",
+ "积分说明": "point.list.l234.t0",
+ "积分的获取": "point.list.l239.t0",
+ "1、积分可在注册、签到、分享、消费、充值时获得。": "point.list.l240.t0",
+ "2、在购买部分商品时可获得积分。": "point.list.l241.t0",
+ "积分的使用": "point.list.l242.t0",
+ "1、积分可用于兑换积分中心的商品。": "point.list.l243.t0",
+ "2、积分可在参与某些活动时使用。": "point.list.l244.t0",
+ "3、积分不得转让,出售,不设有效期。": "point.list.l245.t0",
+ "积分的查询": "point.list.l246.t0",
+ "1、积分可在会员中心中查询具体数额以及明细。": "point.list.l247.t0",
+ "积分换好物": "point.list.l276.t0",
+ "商家未开启积分商城": "point.list.l305.t0",
+ "暂无相关活动": "point.list.l583.t0",
+ "暂无积分兑换订单": "point.order_list.l85.t0",
+ "自提时间": "point.payment.l133.t0",
+ "所需积分": "point.payment.l217.t0",
+ "下架": "merch.public.edit.l56.t0",
+ "上架": "merch.public.edit.l56.t1",
+ "当日达": "merch.public.edit.l58.t0",
+ "次日达": "merch.public.edit.l58.t1",
+ "隔日达": "merch.public.edit.l58.t2",
+ "自定义": "merch.public.edit.l58.t3",
+ "自动发货": "merch.public.edit.l63.t0",
+ "手动发货": "merch.public.edit.l67.t0",
+ "到店核销": "merch.public.edit.l71.t0",
+ "自动收货": "merch.public.edit.l81.t0",
+ "买家确认收货": "merch.public.edit.l85.t0",
+ "购买后几日有效": "merch.public.edit.l93.t0",
+ "指定过期日期": "merch.public.edit.l93.t1",
+ "添加卡密": "merch.public.edit.l96.t0",
+ "单次限购": "merch.public.edit.l99.t0",
+ "长期限购": "merch.public.edit.l103.t0",
+ "编辑商品": "merch.public.edit.l126.t0",
+ "添加商品": "merch.public.edit.l133.t0",
+ "商品不存在": "merch.public.edit.l170.t0",
+ "商品可以属于多个分类,最多10个": "merch.public.edit.l496.t0",
+ "添加卡密【": "merch.public.edit.l533.t0",
+ "商品简介不能超过100个字符": "merch.public.edit.l578.t0",
+ "请上传商品图片": "merch.public.edit.l585.t0",
+ "请输入销售价": "merch.public.edit.l635.t0",
+ "[销售价]格式输入错误": "merch.public.edit.l641.t0",
+ "[原价价]格式输入错误": "merch.public.edit.l648.t0",
+ "请输入库存": "merch.public.edit.l658.t0",
+ "[库存]格式输入错误": "merch.public.edit.l665.t0",
+ "[起售]格式输入错误": "merch.public.edit.l671.t0",
+ "起售数量不能小于0": "merch.public.edit.l677.t0",
+ "请选择商品表单": "merch.public.edit.l908.t0",
+ "请选择供应商": "merch.public.edit.l929.t0",
+ "商家不存在": "merch.public.js.list.l80.t0",
+ "未获取到创建订单所需数据!": "point.public.js.payment.l95.t0",
+ "订单未创建": "point.public.js.payment.l283.t0",
+ "去设置": "point.public.js.payment.l285.t0",
+ "请输入正确的手机号码": "point.public.js.payment.l318.t0",
+ "请输入正确的预留手机": "point.public.js.payment.l356.t0",
+ "请选择自提时间": "point.public.js.payment.l363.t0",
+ "请选择配送时间": "point.public.js.payment.l378.t0",
+ "预览": "tool._components.img-cropping.l22.t0",
+ "上传": "tool._components.img-cropping.l23.t0",
+ "加载中...": "tool._components.img-cropping.l212.t0",
+ "裁剪框的宽或高没有设置": "tool._components.img-cropping.l235.t0",
+ "请选择正确图片": "tool._components.img-cropping.l255.t0",
+ "感谢您一直以来的支持,在您生日到来之际,特为您送上最真诚的祝福!": "tool._components.ns-birthday-gift.l11.t0",
+ "生日贺礼": "tool._components.ns-birthday-gift.l14.t0",
+ "元红包": "tool._components.ns-birthday-gift.l33.t0",
+ "不可提现红包": "tool._components.ns-birthday-gift.l35.t0",
+ "可提现红包": "tool._components.ns-birthday-gift.l45.t0",
+ "元优惠劵": "tool._components.ns-birthday-gift.l57.t0",
+ "感谢您一直以来的支持,为回馈会员,商城": "tool._components.ns-new-gift.l14.t0",
+ "用于参与活动购买商品时抵扣": "tool._components.ns-new-gift.l23.t0",
+ "暂无内容": "tool.agreement.contenr.l11.t0",
+ "该协议内容暂未设置": "tool.agreement.contenr.l12.t0",
+ "重新加载": "tool.agreement.contenr.l13.t0",
+ "[AI Chat] → 分支1: ID变化,加载历史": "ai_chat.ai-chat.ai-chat-message.l618.t0",
+ "[AI Chat] → 分支2: ID不变但只有初始消息,从服务端恢复": "ai_chat.ai-chat.ai-chat-message.l623.t0",
+ "[AI Chat] → 分支3: 全新会话": "ai_chat.ai-chat.ai-chat-message.l627.t0",
+ "[AI Chat] → 分支4: 跳过加载,保留当前消息, messages.length:": "ai_chat.ai-chat.ai-chat-message.l630.t0",
+ "[AI Chat] 已有会话,跳过欢迎语": "ai_chat.ai-chat.ai-chat-message.l638.t0",
+ "[AI Chat] API getServiceConfig 返回:": "ai_chat.ai-chat.ai-chat-message.l649.t0",
+ "[AI Chat] 使用远程欢迎语:": "ai_chat.ai-chat.ai-chat-message.l660.t0",
+ "[AI Chat] 获取服务配置失败:": "ai_chat.ai-chat.ai-chat-message.l664.t0",
+ "[AI Chat] 使用降级欢迎语": "ai_chat.ai-chat.ai-chat-message.l672.t0",
+ "[AI Chat] 无可用欢迎语": "ai_chat.ai-chat.ai-chat-message.l674.t0",
+ "[AI Chat] loadChatHistoryIfExist 被调用, convId:": "ai_chat.ai-chat.ai-chat-message.l767.t0",
+ "[AI Chat] 请求历史 API...": "ai_chat.ai-chat.ai-chat-message.l771.t0",
+ "[AI Chat] 历史 API 返回:": "ai_chat.ai-chat.ai-chat-message.l775.t0",
+ "[AI Chat] 历史记录为空或格式无效, success:": "ai_chat.ai-chat.ai-chat-message.l778.t0",
+ "[AI Chat] 原始消息数:": "ai_chat.ai-chat.ai-chat-message.l781.t0",
+ "[AI Chat] 过滤后消息数:": "ai_chat.ai-chat.ai-chat-message.l801.t0",
+ "内容摘要:": "ai_chat.ai-chat.ai-chat-message.l801.t1",
+ "[AI Chat] 加载历史记录失败:": "ai_chat.ai-chat.ai-chat-message.l807.t0",
+ "AI服务调用失败:": "ai_chat.ai-chat.ai-chat-message.l884.t0",
+ "流式请求失败:": "ai_chat.ai-chat.ai-chat-message.l1026.t0",
+ "流式请求失败": "ai_chat.ai-chat.ai-chat-message.l1082.t0",
+ "AI正在思考": "ai_chat.ai-chat.ai-chat-message.l1100.t0",
+ "AI正在分析": "ai_chat.ai-chat.ai-chat-message.l1101.t0",
+ "AI正在检索": "ai_chat.ai-chat.ai-chat-message.l1102.t0",
+ "AI正在生成": "ai_chat.ai-chat.ai-chat-message.l1103.t0",
+ "你好": "ai_chat.ai-chat.ai-chat-message.l1128.t0",
+ "您好!我是AI智能客服,很高兴为您服务!有什么可以帮助您的吗?": "ai_chat.ai-chat.ai-chat-message.l1128.t1",
+ "我们的产品价格根据型号和配置有所不同,具体价格请查看商品详情页面。": "ai_chat.ai-chat.ai-chat-message.l1129.t0",
+ "发货": "ai_chat.ai-chat.ai-chat-message.l1130.t0",
+ "一般情况下,订单会在24小时内发货,具体时效请查看物流信息。": "ai_chat.ai-chat.ai-chat-message.l1130.t1",
+ "退货": "ai_chat.ai-chat.ai-chat-message.l1131.t0",
+ "支持7天无理由退货,请确保商品完好无损。": "ai_chat.ai-chat.ai-chat-message.l1131.t1",
+ "客服": "ai_chat.ai-chat.ai-chat-message.l1132.t0",
+ "我们的客服工作时间是9:00-18:00,有问题可以随时联系我们。": "ai_chat.ai-chat.ai-chat-message.l1132.t1",
+ "感谢您的咨询!关于": "ai_chat.ai-chat.ai-chat-message.l1139.t0",
+ "的问题,我们的专业客服会尽快为您解答。您也可以查看我们的帮助文档获取更多信息。": "ai_chat.ai-chat.ai-chat-message.l1139.t1",
+ "加载历史消息中...": "ai_chat.ai-chat.ai-chat-message.l1429.t0",
+ "加载历史失败:": "ai_chat.ai-chat.ai-chat-message.l1477.t0",
+ "加载更多历史消息": "ai_chat.ai-chat.ai-chat-message.l1483.t0",
+ "已复制选中内容": "ai_chat.ai-chat.ai-chat-message.l1691.t0",
+ "已复制": "ai_chat.ai-chat.ai-chat-message.l1691.t1",
+ "[AI Chat] 开始复制, 内容长度:": "ai_chat.ai-chat.ai-chat-message.l1705.t0",
+ "内容前50字:": "ai_chat.ai-chat.ai-chat-message.l1705.t1",
+ "[AI Chat] 复制成功": "ai_chat.ai-chat.ai-chat-message.l1709.t0",
+ "[AI Chat] 复制失败, 详细错误:": "ai_chat.ai-chat.ai-chat-message.l1713.t0",
+ "[AI Chat] 复制失败 errMsg:": "ai_chat.ai-chat.ai-chat-message.l1714.t0",
+ "无错误消息": "ai_chat.ai-chat.ai-chat-message.l1714.t1",
+ "[开心]": "ai_chat.ai-chat.ai-chat-message.l1971.t0",
+ "[大笑]": "ai_chat.ai-chat.ai-chat-message.l1972.t0",
+ "[微笑]": "ai_chat.ai-chat.ai-chat-message.l1973.t0",
+ "[爱心]": "ai_chat.ai-chat.ai-chat-message.l1974.t0",
+ "[点赞]": "ai_chat.ai-chat.ai-chat-message.l1975.t0",
+ "[哭泣]": "ai_chat.ai-chat.ai-chat-message.l1976.t0",
+ "[感谢/拜托]": "ai_chat.ai-chat.ai-chat-message.l1977.t0",
+ "[喜欢]": "ai_chat.ai-chat.ai-chat-message.l1978.t0",
+ "[庆祝]": "ai_chat.ai-chat.ai-chat-message.l1979.t0",
+ "[思考]": "ai_chat.ai-chat.ai-chat-message.l1980.t0",
+ "[尴尬]": "ai_chat.ai-chat.ai-chat-message.l1981.t0",
+ "[喜爱]": "ai_chat.ai-chat.ai-chat-message.l1983.t0",
+ "[飞吻]": "ai_chat.ai-chat.ai-chat-message.l1984.t0",
+ "[坏笑]": "ai_chat.ai-chat.ai-chat-message.l1985.t0",
+ "[难过]": "ai_chat.ai-chat.ai-chat-message.l1987.t0",
+ "[生气]": "ai_chat.ai-chat.ai-chat-message.l1989.t0",
+ "[困]": "ai_chat.ai-chat.ai-chat-message.l1990.t0",
+ "[拥抱]": "ai_chat.ai-chat.ai-chat-message.l1991.t0",
+ "[天使]": "ai_chat.ai-chat.ai-chat-message.l1996.t0",
+ "[惊喜]": "ai_chat.ai-chat.ai-chat-message.l1997.t0",
+ "[好吃]": "ai_chat.ai-chat.ai-chat-message.l1998.t0",
+ "[调皮]": "ai_chat.ai-chat.ai-chat-message.l1999.t0",
+ "[搞怪]": "ai_chat.ai-chat.ai-chat-message.l2001.t0",
+ "[发财]": "ai_chat.ai-chat.ai-chat-message.l2003.t0",
+ "[害羞]": "ai_chat.ai-chat.ai-chat-message.l2004.t0",
+ "[嘘]": "ai_chat.ai-chat.ai-chat-message.l2005.t0",
+ "[闭嘴]": "ai_chat.ai-chat.ai-chat-message.l2006.t0",
+ "[疑惑]": "ai_chat.ai-chat.ai-chat-message.l2007.t0",
+ "[无语]": "ai_chat.ai-chat.ai-chat-message.l2008.t0",
+ "[沉默]": "ai_chat.ai-chat.ai-chat-message.l2010.t0",
+ "[不屑]": "ai_chat.ai-chat.ai-chat-message.l2011.t0",
+ "[白眼]": "ai_chat.ai-chat.ai-chat-message.l2012.t0",
+ "[说谎]": "ai_chat.ai-chat.ai-chat-message.l2014.t0",
+ "[安心]": "ai_chat.ai-chat.ai-chat-message.l2015.t0",
+ "[流口水]": "ai_chat.ai-chat.ai-chat-message.l2017.t0",
+ "[生病]": "ai_chat.ai-chat.ai-chat-message.l2018.t0",
+ "[发烧]": "ai_chat.ai-chat.ai-chat-message.l2019.t0",
+ "[受伤]": "ai_chat.ai-chat.ai-chat-message.l2020.t0",
+ "[恶心]": "ai_chat.ai-chat.ai-chat-message.l2021.t0",
+ "[呕吐]": "ai_chat.ai-chat.ai-chat-message.l2022.t0",
+ "[感冒]": "ai_chat.ai-chat.ai-chat-message.l2023.t0",
+ "[热]": "ai_chat.ai-chat.ai-chat-message.l2024.t0",
+ "[冷]": "ai_chat.ai-chat.ai-chat-message.l2025.t0",
+ "[头晕]": "ai_chat.ai-chat.ai-chat-message.l2026.t0",
+ "[晕]": "ai_chat.ai-chat.ai-chat-message.l2027.t0",
+ "[爆炸]": "ai_chat.ai-chat.ai-chat-message.l2028.t0",
+ "[酷]": "ai_chat.ai-chat.ai-chat-message.l2029.t0",
+ "[书呆子]": "ai_chat.ai-chat.ai-chat-message.l2031.t0",
+ "[困惑]": "ai_chat.ai-chat.ai-chat-message.l2033.t0",
+ "[担心]": "ai_chat.ai-chat.ai-chat-message.l2034.t0",
+ "[惊讶]": "ai_chat.ai-chat.ai-chat-message.l2036.t0",
+ "[震惊]": "ai_chat.ai-chat.ai-chat-message.l2038.t0",
+ "[脸红]": "ai_chat.ai-chat.ai-chat-message.l2039.t0",
+ "[恳求]": "ai_chat.ai-chat.ai-chat-message.l2040.t0",
+ "[害怕]": "ai_chat.ai-chat.ai-chat-message.l2043.t0",
+ "[紧张]": "ai_chat.ai-chat.ai-chat-message.l2044.t0",
+ "[失望]": "ai_chat.ai-chat.ai-chat-message.l2045.t0",
+ "[恐惧]": "ai_chat.ai-chat.ai-chat-message.l2046.t0",
+ "[困扰]": "ai_chat.ai-chat.ai-chat-message.l2047.t0",
+ "[痛苦]": "ai_chat.ai-chat.ai-chat-message.l2048.t0",
+ "[汗]": "ai_chat.ai-chat.ai-chat-message.l2050.t0",
+ "[累]": "ai_chat.ai-chat.ai-chat-message.l2051.t0",
+ "[愤怒]": "ai_chat.ai-chat.ai-chat-message.l2054.t0",
+ "[咒骂]": "ai_chat.ai-chat.ai-chat-message.l2056.t0",
+ "[恶魔]": "ai_chat.ai-chat.ai-chat-message.l2057.t0",
+ "[骷髅]": "ai_chat.ai-chat.ai-chat-message.l2059.t0",
+ "[便便]": "ai_chat.ai-chat.ai-chat-message.l2060.t0",
+ "[鬼]": "ai_chat.ai-chat.ai-chat-message.l2061.t0",
+ "[外星人]": "ai_chat.ai-chat.ai-chat-message.l2062.t0",
+ "[机器人]": "ai_chat.ai-chat.ai-chat-message.l2063.t0",
+ "[万圣节]": "ai_chat.ai-chat.ai-chat-message.l2064.t0",
+ "[开心猫]": "ai_chat.ai-chat.ai-chat-message.l2065.t0",
+ "[微笑猫]": "ai_chat.ai-chat.ai-chat-message.l2066.t0",
+ "[大笑猫]": "ai_chat.ai-chat.ai-chat-message.l2067.t0",
+ "[花痴猫]": "ai_chat.ai-chat.ai-chat-message.l2068.t0",
+ "[得意猫]": "ai_chat.ai-chat.ai-chat-message.l2069.t0",
+ "[亲亲猫]": "ai_chat.ai-chat.ai-chat-message.l2070.t0",
+ "[惊讶猫]": "ai_chat.ai-chat.ai-chat-message.l2071.t0",
+ "[哭泣猫]": "ai_chat.ai-chat.ai-chat-message.l2072.t0",
+ "[生气猫]": "ai_chat.ai-chat.ai-chat-message.l2073.t0",
+ "[挥手]": "ai_chat.ai-chat.ai-chat-message.l2074.t0",
+ "[举手]": "ai_chat.ai-chat.ai-chat-message.l2075.t0",
+ "[手掌]": "ai_chat.ai-chat.ai-chat-message.l2076.t0",
+ "[捏]": "ai_chat.ai-chat.ai-chat-message.l2080.t0",
+ "[耶]": "ai_chat.ai-chat.ai-chat-message.l2081.t0",
+ "[好运]": "ai_chat.ai-chat.ai-chat-message.l2082.t0",
+ "[爱你]": "ai_chat.ai-chat.ai-chat-message.l2083.t0",
+ "[摇滚]": "ai_chat.ai-chat.ai-chat-message.l2084.t0",
+ "[打电话]": "ai_chat.ai-chat.ai-chat-message.l2085.t0",
+ "[左边]": "ai_chat.ai-chat.ai-chat-message.l2086.t0",
+ "[右边]": "ai_chat.ai-chat.ai-chat-message.l2087.t0",
+ "[上边]": "ai_chat.ai-chat.ai-chat-message.l2088.t0",
+ "[竖中指]": "ai_chat.ai-chat.ai-chat-message.l2089.t0",
+ "[下边]": "ai_chat.ai-chat.ai-chat-message.l2090.t0",
+ "[向上]": "ai_chat.ai-chat.ai-chat-message.l2091.t0",
+ "[鄙视]": "ai_chat.ai-chat.ai-chat-message.l2092.t0",
+ "[拳头]": "ai_chat.ai-chat.ai-chat-message.l2093.t0",
+ "[左拳]": "ai_chat.ai-chat.ai-chat-message.l2095.t0",
+ "[右拳]": "ai_chat.ai-chat.ai-chat-message.l2096.t0",
+ "[鼓掌]": "ai_chat.ai-chat.ai-chat-message.l2097.t0",
+ "[举手庆祝]": "ai_chat.ai-chat.ai-chat-message.l2098.t0",
+ "[张开手]": "ai_chat.ai-chat.ai-chat-message.l2099.t0",
+ "[摊手]": "ai_chat.ai-chat.ai-chat-message.l2100.t0",
+ "[握手]": "ai_chat.ai-chat.ai-chat-message.l2101.t0",
+ "[写字]": "ai_chat.ai-chat.ai-chat-message.l2102.t0",
+ "[美甲]": "ai_chat.ai-chat.ai-chat-message.l2103.t0",
+ "[自拍]": "ai_chat.ai-chat.ai-chat-message.l2104.t0",
+ "[肌肉]": "ai_chat.ai-chat.ai-chat-message.l2105.t0",
+ "[心跳]": "ai_chat.ai-chat.ai-chat-message.l2107.t0",
+ "[两颗心]": "ai_chat.ai-chat.ai-chat-message.l2108.t0",
+ "[闪亮心]": "ai_chat.ai-chat.ai-chat-message.l2109.t0",
+ "[礼物心]": "ai_chat.ai-chat.ai-chat-message.l2110.t0",
+ "[旋转心]": "ai_chat.ai-chat.ai-chat-message.l2111.t0",
+ "[丘比特]": "ai_chat.ai-chat.ai-chat-message.l2112.t0",
+ "[情书]": "ai_chat.ai-chat.ai-chat-message.l2113.t0",
+ "[心形]": "ai_chat.ai-chat.ai-chat-message.l2114.t0",
+ "[黄心]": "ai_chat.ai-chat.ai-chat-message.l2115.t0",
+ "[蓝心]": "ai_chat.ai-chat.ai-chat-message.l2116.t0",
+ "[紫心]": "ai_chat.ai-chat.ai-chat-message.l2117.t0",
+ "[黑心]": "ai_chat.ai-chat.ai-chat-message.l2118.t0",
+ "[心碎]": "ai_chat.ai-chat.ai-chat-message.l2119.t0",
+ "[炸弹]": "ai_chat.ai-chat.ai-chat-message.l2121.t0",
+ "[风]": "ai_chat.ai-chat.ai-chat-message.l2125.t0",
+ "[眼睛]": "ai_chat.ai-chat.ai-chat-message.l2126.t0",
+ "[看]": "ai_chat.ai-chat.ai-chat-message.l2127.t0",
+ "[舌头]": "ai_chat.ai-chat.ai-chat-message.l2128.t0",
+ "[嘴巴]": "ai_chat.ai-chat.ai-chat-message.l2129.t0",
+ "[耳朵]": "ai_chat.ai-chat.ai-chat-message.l2130.t0",
+ "[鼻子]": "ai_chat.ai-chat.ai-chat-message.l2131.t0",
+ "[AI Chat Page] onShow 触发": "ai_chat.ai-chat.index.l146.t0",
+ "onKeyboardHeightChange 不可用:": "ai_chat.ai-chat.index.l157.t0",
+ "[AI Chat Page] onUnload 触发": "ai_chat.ai-chat.index.l180.t0",
+ "事件处理错误:": "ai_chat.ai-chat.index.l236.t0",
+ "初始化导航栏失败:": "ai_chat.ai-chat.index.l266.t0",
+ "我理解您的需求,让我为您详细解答。": "ai_chat.ai-chat.index.l424.t0",
+ "感谢您的提问,这是一个很好的问题。": "ai_chat.ai-chat.index.l425.t0",
+ "根据您的问题,我建议您可以考虑以下几个方面:": "ai_chat.ai-chat.index.l426.t0",
+ "这个问题很常见,让我为您提供一些解决方案。": "ai_chat.ai-chat.index.l427.t0",
+ "我明白您的困惑,让我帮您分析一下。": "ai_chat.ai-chat.index.l428.t0",
+ "$ {randomResponse}\\n\\n您的问题": "ai_chat.ai-chat.index.l437.t0",
+ "我已经收到,正在为您处理中...": "ai_chat.ai-chat.index.l437.t1",
+ "聊天组件未初始化": "ai_chat.ai-chat.index.l481.t0",
+ "我想了解以下商品的详细信息:\\n商品名称:${product.goods_name}\\n价格:¥${product.price}\\n商品ID:${product.goods_id}": "ai_chat.ai-chat.index.l485.t0",
+ "【AI客服】servicerConfig 未加载,200ms后重试...": "ai_chat.ai-chat.index.l521.t0",
+ "发表时间:": "article.detail.l5.t0",
+ "暂无文章": "article.list.l24.t0",
+ "文章列表": "article.list.l91.t0",
+ "完成时间:": "tool.cases.index.l22.t0",
+ "查看PDF文件": "tool.cases.index.l31.t0",
+ "在线留言": "tool.cases.index.l47.t0",
+ "请输入您的姓名": "tool.cases.index.l56.t0",
+ "联系方式": "tool.cases.index.l60.t0",
+ "请输入您的手机号": "tool.cases.index.l62.t0",
+ "留言内容": "tool.cases.index.l66.t0",
+ "请输入留言内容": "tool.cases.index.l68.t0",
+ "正在加载": "tool.cases.index.l143.t0",
+ "文件不存在": "tool.cases.index.l167.t0",
+ "企业文件": "contact.l76.t0",
+ "企业视频": "contact.l93.t0",
+ "请输入您的邮箱": "contact.l165.t0",
+ "联系我们": "contact.l314.t0",
+ "请填写姓名": "contact.l372.t0",
+ "手机号格式不正确": "contact.l376.t0",
+ "请填写留言内容": "contact.l380.t0",
+ "提交失败,请重试": "contact.l405.t0",
+ "文件地址不存在": "tool.file-preview.l15.t0",
+ "不支持的文件类型": "tool.file-preview.l32.t0",
+ "请输入您要搜索的文件名称": "tool.files.list.l5.t0",
+ "暂无文件": "tool.files.list.l32.t0",
+ "请填写表单所需信息": "tool.form.l8.t0",
+ "参数错误": "tool.form.formdata.l72.t0",
+ "暂无更多品牌,去首页看看吧": "tool.goods.brand.l14.t0",
+ "你想要的大牌都在这里": "tool.goods.brand.l79.t0",
+ "满减券": "tool.goods.coupon.l8.t0",
+ "折扣券": "tool.goods.coupon.l10.t0",
+ "无门槛券": "tool.goods.coupon.l11.t0",
+ "指定商品": "tool.goods.coupon.l44.t0",
+ "全场商品": "tool.goods.coupon.l45.t0",
+ "适用门店:全部门店": "tool.goods.coupon.l52.t0",
+ "适用门店:": "tool.goods.coupon.l52.t1",
+ "已过期": "tool.goods.coupon.l65.t0",
+ "已达上限": "tool.goods.coupon.l66.t0",
+ "暂无可领取的优惠券": "tool.goods.coupon.l70.t0",
+ "商家未开启优惠券": "tool.goods.coupon.l102.t0",
+ "有效期至": "tool.goods.coupon_receive.l13.t0",
+ "注:扫描二维码或点击右上角进行分享": "tool.goods.coupon_receive.l27.t0",
+ "来迟了该优惠券已被领取完了!": "tool.goods.coupon_receive.l186.t0",
+ "该优惠券活动已结束!": "tool.goods.coupon_receive.l189.t0",
+ "该优惠券活动已关闭": "tool.goods.coupon_receive.l192.t0",
+ "该优惠券领取已达到上限!": "tool.goods.coupon_receive.l195.t0",
+ "恭喜您获得一张": "tool.goods.coupon_receive.l207.t0",
+ "元的优惠券": "tool.goods.coupon_receive.l207.t1",
+ "满${this.info.at_least}元可用": "tool.goods.coupon_receive.l212.t0",
+ ",满${this.info.at_least}元可用": "tool.goods.coupon_receive.l247.t0",
+ ",无门槛优惠券": "tool.goods.coupon_receive.l249.t0",
+ "商家回复:": "tool.goods.evaluate.l47.t0",
+ "追加评价": "tool.goods.evaluate.l52.t0",
+ "暂无商品评价": "tool.goods.evaluate.l69.t0",
+ "好评": "tool.goods.evaluate.l82.t0",
+ "中评": "tool.goods.evaluate.l82.t1",
+ "差评": "tool.goods.evaluate.l82.t2",
+ "您查看的商品不存在,可能已下架或被删除": "tool.goods.not_exist.l5.t0",
+ "历史搜索": "tool.goods.search.l15.t0",
+ "热门搜索": "tool.goods.search.l33.t0",
+ "确认删除全部历史记录?": "tool.goods.search.l86.t0",
+ "确认删除该条历史记录?": "tool.goods.search.l99.t0",
+ "搜索内容不能为空哦": "tool.goods.search.l165.t0",
+ "暂无帮助信息": "help.list.l9.t0",
+ "帮助中心": "help.list.l73.t0",
+ "帮助中心使你更加方便": "help.list.l81.t0",
+ "请确认您的账号已绑定此手机号": "login.find.l7.t0",
+ "已将验证码发送至手机号:": "login.find.l13.t0",
+ "请设置新的密码": "login.find.l18.t0",
+ "建议您的新密码以简单好记为标准": "login.find.l19.t0",
+ "重新获取": "login.find.l100.t0",
+ "该手机号未注册": "login.find.l169.t0",
+ "请输入密码": "login.find.l188.t0",
+ "密码长度不能小于": "login.find.l196.t0",
+ "位": "login.find.l196.t1",
+ "密码需包含": "login.find.l200.t0",
+ "数字": "login.find.l204.t0",
+ "、小写字母": "login.find.l208.t0",
+ "、大写字母": "login.find.l212.t0",
+ "、特殊字符": "login.find.l216.t0",
+ "两次密码不一致": "login.find.l230.t0",
+ "重新获取(": "login.find.l286.t0",
+ "提现到余额": "member.account.l10.t0",
+ "修改": "member.account.l32.t0",
+ "设为默认账户": "member.account.l37.t0",
+ "暂无账户信息,请添加": "member.account.l55.t0",
+ "操作提示": "member.account.l106.t0",
+ "确定要删除该账户吗?": "member.account.l107.t0",
+ "删除成功": "member.account.l118.t0",
+ "删除失败": "member.account.l123.t0",
+ "银行": "member.account.l184.t0",
+ "请输入真实姓名": "member.account_edit.l5.t0",
+ "请输入银行名称": "member.account_edit.l20.t0",
+ "提现账号": "member.account_edit.l23.t0",
+ "请输入提现账号": "member.account_edit.l24.t0",
+ "编辑账户": "member.account_edit.l67.t0",
+ "新增账户": "member.account_edit.l71.t0",
+ "微信零钱": "member.account_edit.l139.t0",
+ "请输入姓名": "member.account_edit.l163.t0",
+ "请选择账户类型": "member.account_edit.l178.t0",
+ "添加成功": "member.account_edit.l226.t0",
+ "修改成功": "member.account_edit.l230.t0",
+ "设为默认地址": "member.address.l38.t0",
+ "暂无收货地址,请添加": "member.address.l57.t0",
+ "确定要删除该地址吗?": "member.address.l196.t0",
+ "默认地址,不能删除": "member.address.l201.t0",
+ "修改默认地址成功": "member.address.l247.t0",
+ "PC端微信不支持一键获取地址": "member.address.l293.t0",
+ "地址信息": "member.address_edit.l4.t0",
+ "请选择省市区县": "member.address_edit.l44.t0",
+ "编辑收货地址": "member.address_edit.l138.t0",
+ "新增收货地址": "member.address_edit.l142.t0",
+ "数据有误": "member.address_edit.l200.t0",
+ "是否授权当前位置": "member.address_edit.l233.t0",
+ "需要获取您的地理位置,请确认授权,否则地图功能将无法使用": "member.address_edit.l234.t0",
+ "授权成功": "member.address_edit.l241.t0",
+ "授权失败": "member.address_edit.l259.t0",
+ "详细地址不能为空": "member.address_edit.l319.t0",
+ "请添加提现方式": "member.apply_withdrawal.l19.t0",
+ "提现金额": "member.apply_withdrawal.l24.t0",
+ "可提现余额:": "member.apply_withdrawal.l34.t0",
+ ",手续费为": "member.apply_withdrawal.l40.t0",
+ "未开启提现": "member.apply_withdrawal.l109.t0",
+ "风险提示:确认申请后您的资产将被清空且不可找回!": "member.assets.l5.t0",
+ "账户资产": "member.assets.l9.t0",
+ "现金余额": "member.assets.l18.t0",
+ "储值余额": "member.assets.l22.t0",
+ "订单资产": "member.assets.l33.t0",
+ "退款中": "member.assets.l46.t0",
+ "分销资产": "member.assets.l54.t0",
+ "可提现佣金": "member.assets.l59.t0",
+ "提现中佣金": "member.assets.l63.t0",
+ "待结算订单": "member.assets.l67.t0",
+ "上一步": "member.assets.l73.t0",
+ "确认申请": "member.assets.l74.t0",
+ "账户余额(元)": "member.balance.l19.t0",
+ "现金余额(元)": "member.balance.l24.t0",
+ "储值余额(元)": "member.balance.l28.t0",
+ "充值": "member.balance.l33.t0",
+ "余额明细": "member.balance.l49.t0",
+ "充值记录": "member.balance.l56.t0",
+ "暂无余额明细": "member.balance_detail.l46.t0",
+ "收入": "member.balance_detail.l68.t0",
+ "支出": "member.balance_detail.l71.t0",
+ "${year}年${month}月": "member.balance_detail.l124.t0",
+ "勾选即表示您已阅读并同意本协议": "member.cancellation.l13.t0",
+ "下一步": "member.cancellation.l15.t0",
+ "请先勾选同意协议": "member.cancellation.l63.t0",
+ "您的申请已拒绝": "member.cancelrefuse.l5.t0",
+ "拒绝理由:": "member.cancelrefuse.l6.t0",
+ "返回": "member.cancelrefuse.l8.t0",
+ "提交申请": "member.cancelstatus.l8.t0",
+ "您已提交申请,请耐心等待~": "member.cancelstatus.l9.t0",
+ "等待审核": "member.cancelstatus.l16.t0",
+ "等待审核中,审核通过后您的账号将直接被删除": "member.cancelstatus.l17.t0",
+ "审核通过,注销完成": "member.cancelstatus.l26.t0",
+ "您已成功注销账号,期待下一次与您相遇": "member.cancelstatus.l27.t0",
+ "撤销申请": "member.cancelstatus.l33.t0",
+ "风险提示": "member.cancelstatus.l84.t0",
+ "确定要撤销申请吗?": "member.cancelstatus.l85.t0",
+ "您已成功注销账号": "member.cancelsuccess.l7.t0",
+ "待下次与您更好的相遇,如需再次使用,请重新注册": "member.cancelsuccess.l8.t0",
+ "会员大礼包等权益": "member.card.l25.t0",
+ "立即续费": "member.card.l31.t0",
+ "会员权益": "member.card.l42.t0",
+ "全场包邮": "member.card.l52.t0",
+ "享受商品包邮服务": "member.card.l53.t0",
+ "消费折扣": "member.card.l57.t0",
+ "部分商品下单可享": "member.card.l58.t0",
+ "积分回馈": "member.card.l62.t0",
+ "下单享": "member.card.l63.t0",
+ "开卡礼包": "member.card.l72.t0",
+ "积分礼包": "member.card.l81.t0",
+ "赠送": "member.card.l82.t0",
+ "红包礼包": "member.card.l86.t0",
+ "优惠券礼包": "member.card.l91.t0",
+ "会员卡说明": "member.card.l104.t0",
+ "专属会员权益,快来体验": "member.card.l174.t0",
+ "卡种选择": "member.card_buy.l81.t0",
+ "充值开通": "member.card_buy.l175.t0",
+ "暂无可开会员卡": "member.card_buy.l214.t0",
+ "您有尚未过期的会员卡,再次购卡会覆盖掉之前的卡,是否继续?": "member.card_buy.l353.t0",
+ "暂无关注的商品": "member.collection.l33.t0",
+ "赶紧去逛逛, 关注心仪的商品吧": "member.collection.l33.t1",
+ "未使用": "member.coupon.l5.t0",
+ "已使用": "member.coupon.l6.t0",
+ "(最大优惠": "member.coupon.l45.t0",
+ "管理": "member.footprint.l4.t0",
+ "暂无浏览过的商品": "member.footprint.l49.t0",
+ "赶紧去逛逛, 发现更多商品吧": "member.footprint.l49.t1",
+ "全选": "member.footprint.l57.t0",
+ "删除": "member.footprint.l59.t0",
+ "请选择要删除的数据!": "member.footprint.l137.t0",
+ "账号": "member.info.l14.t0",
+ "性别": "member.info.l37.t0",
+ "生日": "member.info.l43.t0",
+ "密码": "member.info.l50.t0",
+ "所在地址": "member.info.l66.t0",
+ "注销账号": "member.info.l75.t0",
+ "版本号": "member.info.l83.t0",
+ "退出登录": "member.info.l101.t0",
+ "用户名": "member.info_edit.l7.t0",
+ "用户名仅可修改一次,请谨慎设置": "member.info_edit.l10.t0",
+ "请选择生日": "member.info_edit.l57.t0",
+ "请先绑定手机再执行该操作": "member.info_edit.l71.t0",
+ "立即绑定": "member.info_edit.l72.t0",
+ "原密码": "member.info_edit.l77.t0",
+ "新密码": "member.info_edit.l82.t0",
+ "再次输入": "member.info_edit.l87.t0",
+ "短信验证码": "member.info_edit.l120.t0",
+ "一键授权绑定": "member.info_edit.l131.t0",
+ "手动绑定": "member.info_edit.l134.t0",
+ "所在地区": "member.info_edit.l139.t0",
+ "详细地址": "member.info_edit.l147.t0",
+ "立即邀请": "member.invite_friends.l17.t0",
+ "我的好友": "member.invite_friends.l20.t0",
+ "没有更多数据了": "member.invite_friends.l50.t0",
+ "您还没有邀请到新朋友哦": "member.invite_friends.l55.t0",
+ "邀请好友,赚取好礼。赶紧去试试吧~": "member.invite_friends.l56.t0",
+ "邀请好友奖励": "member.invite_friends.l61.t0",
+ "现金红包": "member.invite_friends.l71.t0",
+ "分享给好友,让好友通过你的分享链接进入并注册登录,可获得以下奖励:": "member.invite_friends.l98.t0",
+ "如何邀请好友": "member.invite_friends.l126.t0",
+ "分享链接给好友": "member.invite_friends.l133.t0",
+ "好友进入": "member.invite_friends.l142.t0",
+ "好友注册成功获得奖励": "member.invite_friends.l151.t0",
+ "活动说明": "member.invite_friends.l217.t0",
+ "当前等级:": "member.level.l12.t0",
+ "当前等级": "member.level.l57.t0",
+ "当前成长值": "member.level.l59.t0",
+ "您现在已经是最高等级": "member.level.l72.t0",
+ "包邮服务": "member.level.l91.t0",
+ "提供商品包邮服务": "member.level.l92.t0",
+ "享受消费折扣服务": "member.level.l98.t0",
+ "不享受任何消费折扣和其他权益": "member.level.l99.t0",
+ "提供": "member.level.l100.t0",
+ "享受积分回馈服务": "member.level.l106.t0",
+ "会员礼包": "member.level.l113.t0",
+ "将前往详情页面": "member.level.l268.t0",
+ "什么是成长值": "member.level_growth_rules.l23.t0",
+ "成长值是消费者在店铺成为会员后,通过消费计算出来的值。成长值决定会员等级,会员等级越高,所享受的会员权益和会员礼包就越多。": "member.level_growth_rules.l25.t0",
+ "如何获得成长值": "member.level_growth_rules.l30.t0",
+ "1、注册会员送x成长值。": "member.level_growth_rules.l33.t0",
+ "2、会员充值到余额送x成长值。": "member.level_growth_rules.l34.t0",
+ "3、会员签到送x成长值。": "member.level_growth_rules.l35.t0",
+ "4、会员消费x元,交易完成即可获得x个成长值。": "member.level_growth_rules.l36.t0",
+ "点击上传": "member.modify_face.l14.t0",
+ "确认保存": "member.modify_face.l22.t0",
+ "重新上传": "member.modify_face.l23.t0",
+ "头像上传失败": "member.modify_face.l95.t0",
+ "头像修改成功": "member.modify_face.l117.t0",
+ "请输入6位支付密码,建议不要使用重复或连续数字": "member.pay_password.l3.t0",
+ "验证码已发送至": "member.pay_password.l4.t0",
+ "输入短信验证码": "member.pay_password.l10.t0",
+ "请设置支付密码": "member.pay_password.l11.t0",
+ "请再次输入": "member.pay_password.l12.t0",
+ "获取验证码": "member.pay_password.l37.t0",
+ "设置支付密码需要先绑定手机号,是否立即绑定?": "member.pay_password.l52.t0",
+ "两次输入的密码不一致": "member.pay_password.l152.t0",
+ "当前积分": "member.point.l20.t0",
+ "累计积分": "member.point.l24.t0",
+ "累计消费": "member.point.l28.t0",
+ "今日获得": "member.point.l32.t0",
+ "积分商城": "member.point.l48.t0",
+ "做任务赚积分": "member.point.l53.t0",
+ "每日签到": "member.point.l57.t0",
+ "连续签到可获得更多积分": "member.point.l58.t0",
+ "去签到": "member.point.l60.t0",
+ "购买商品": "member.point.l65.t0",
+ "购买商品可获得积分": "member.point.l66.t0",
+ "去下单": "member.point.l68.t0",
+ "[公告]": "notice.detail.l87.t0",
+ "置顶": "notice.list.l10.t0",
+ "暂无公告": "notice.list.l18.t0",
+ "退款成功": "tool.order.activist.l10.t0",
+ "退款失败": "tool.order.activist.l12.t0",
+ "退款:¥": "tool.order.activist.l30.t0",
+ "撤销成功": "tool.order.activist.l115.t0",
+ "描述相符": "tool.order.evaluate.l16.t0",
+ "请在此处输入您的评价": "tool.order.evaluate.l42.t0",
+ "请在此处输入您的追评": "tool.order.evaluate.l47.t0",
+ "匿名": "tool.order.evaluate.l72.t0",
+ "承运公司:": "tool.order.logistics.l37.t0",
+ "退款无需退货": "tool.order.refund.l17.t0",
+ "没收到货,或与卖家协商同意无需退货只退款": "tool.order.refund.l18.t0",
+ "退货退款": "tool.order.refund.l24.t0",
+ "已收到货,需退还收到的货物": "tool.order.refund.l25.t0",
+ "退款原因:": "tool.order.refund.l34.t0",
+ "退款金额:": "tool.order.refund.l42.t0",
+ "退款说明": "tool.order.refund.l48.t0",
+ "请输入退款说明(选填)": "tool.order.refund.l54.t0",
+ "退款原因": "tool.order.refund.l81.t0",
+ "未获取到该订单项退款信息": "tool.order.refund.l175.t0",
+ "请选择退款原因": "tool.order.refund.l242.t0",
+ "退款方式:": "tool.order.refund_batch.l26.t0",
+ "如果商家拒绝,你可重新发起申请": "tool.order.refund_detail.l8.t0",
+ "如果商家同意,将通过申请并退款给你": "tool.order.refund_detail.l9.t0",
+ "如果商家逾期未处理,平台将自动通过申请并退款给你": "tool.order.refund_detail.l10.t0",
+ "如果商家确认收货将会退款给你": "tool.order.refund_detail.l13.t0",
+ "如果商家拒绝收货,该次退款将会关闭,你可以重新发起退款": "tool.order.refund_detail.l14.t0",
+ "协商记录": "tool.order.refund_detail.l19.t0",
+ "退货地址": "tool.order.refund_detail.l24.t0",
+ "收货人:": "tool.order.refund_detail.l26.t0",
+ "联系方式:": "tool.order.refund_detail.l29.t0",
+ "退货地址:": "tool.order.refund_detail.l32.t0",
+ "退款信息": "tool.order.refund_detail.l38.t0",
+ "仅退款": "tool.order.refund_detail.l51.t0",
+ "退款退货": "tool.order.refund_detail.l51.t1",
+ "原路退款": "tool.order.refund_detail.l52.t0",
+ "线下退款": "tool.order.refund_detail.l52.t1",
+ "退款到余额": "tool.order.refund_detail.l52.t2",
+ "退款途径:": "tool.order.refund_detail.l52.t3",
+ "退款编号:": "tool.order.refund_detail.l56.t0",
+ "申请时间:": "tool.order.refund_detail.l57.t0",
+ "退款时间:": "tool.order.refund_detail.l58.t0",
+ "退款说明:": "tool.order.refund_detail.l59.t0",
+ "退款积分:": "tool.order.refund_detail.l60.t0",
+ "物流公司": "tool.order.refund_detail.l76.t0",
+ "请输入物流公司": "tool.order.refund_detail.l80.t0",
+ "物流单号": "tool.order.refund_detail.l88.t0",
+ "请输入物流单号": "tool.order.refund_detail.l92.t0",
+ "物流说明": "tool.order.refund_detail.l100.t0",
+ "选填": "tool.order.refund_detail.l106.t0",
+ "买家": "tool.order.refund_detail.l121.t0",
+ "卖家": "tool.order.refund_detail.l121.t1",
+ "返回详情": "tool.order.refund_detail.l139.t0",
+ "请选择商品": "tool.order.refund_goods_select.l28.t0",
+ "未查找到订单信息": "tool.order.refund_goods_select.l53.t0",
+ "店铺尚未配置支付方式!": "tool.pay.cashier.l23.t0",
+ "该支付单据已支付": "tool.pay.cashier.l25.t0",
+ "未获取到支付信息": "tool.pay.cashier.l27.t0",
+ "恭喜您获得": "tool.pay.result.l21.t0",
+ "张优惠券": "tool.pay.result.l37.t0",
+ "查看订单": "tool.pay.result.l46.t0",
+ "点击右上角跳转到浏览器打开": "tool.pay.wx_pay.l6.t0",
+ "账户余额": "tool.recharge.list.l7.t0",
+ "请输入充值金额": "tool.recharge.list.l20.t0",
+ "售价": "tool.recharge.list.l29.t0",
+ "其他金额": "tool.recharge.list.l34.t0",
+ ">,优惠券X{{ list[isIndex].coupon_id.split(": "tool.recharge.list.l44.t0",
+ ",优惠券X": "tool.recharge.list.l44.t1",
+ "充值说明": "tool.recharge.list.l50.t0",
+ ">,优惠券X{{ item.coupon_id.split(": "tool.recharge.list.l56.t0",
+ "金额": "tool.recharge.list.l67.t0",
+ "确认充值": "tool.recharge.list.l89.t0",
+ "请选择套餐": "tool.recharge.list.l276.t0",
+ "充值成功": "tool.recharge.order_list.l16.t0",
+ "赠送:": "tool.recharge.order_list.l24.t0",
+ "优惠券x": "tool.recharge.order_list.l29.t0",
+ "暂无充值记录": "tool.recharge.order_list.l34.t0",
+ "导出图片": "seal.medium.detail.l17.t0",
+ "导出PDF": "seal.medium.detail.l18.t0",
+ "搜索结果": "seal.medium.detail.l29.t0",
+ "请输入介质名称": "seal.medium.search.l6.t0",
+ "当前选择:": "seal.structure.l6.t0",
+ "选型结果:": "seal.structure.l12.t0",
+ "结果文件": "seal.structure.l23.t0",
+ "该店铺已打烊...": "tool.storeclose.l41.t0",
+ "店铺不存在": "tool.storeclose.l45.t0",
+ "店铺打烊": "tool.storeclose.l47.t0",
+ "缺少merchant_trade_no参数": "tool.weapp.order_shipping.l20.t0",
+ "未知错误": "tool.weapp.order_shipping.l32.t0",
+ "未知": "member.public.js.info.l58.t0",
+ "男": "member.public.js.info.l62.t0",
+ "女": "member.public.js.info.l67.t0",
+ "个人资料": "member.public.js.info.l157.t0",
+ "与原真实姓名一致,无需修改": "member.public.js.info.l404.t0",
+ "真实姓名不能为空": "member.public.js.info.l411.t0",
+ "新密码长度不能小于": "member.public.js.info.l579.t0",
+ "新密码不能与原密码相同": "member.public.js.info.l612.t0",
+ "已发送(": "member.public.js.info.l726.t0",
+ "请勿重复点击": "member.public.js.info.l744.t0",
+ "请选择所在地区": "member.public.js.info.l869.t0",
+ "请输入详细地址": "member.public.js.info.l874.t0",
+ "确定要注销当前账号吗?": "member.public.js.member-public.l64.t0",
+ "商家未开启会员签到": "member.public.js.signin.l31.t0",
+ "签到未开启": "member.public.js.signin.l201.t0",
+ "签到有礼": "member.public.js.signin.l236.t0",
+ "天天签到,积分好礼送不停": "member.public.js.signin.l237.t0",
+ "签到有礼,天天签到,积分好礼送不停": "member.public.js.signin.l268.t0",
+ "未获取到订单数据": "tool.order.public.js.evaluate.l90.t0",
+ "商家未开启商品评价功能": "tool.order.public.js.evaluate.l160.t0",
+ "商品的评价不能为空哦": "tool.order.public.js.evaluate.l168.t0",
+ "评价成功": "tool.order.public.js.evaluate.l200.t0",
+ "设置主题颜色失败": "common.index.l460.t0",
+ "加载": "common.index.l466.t0",
+ "[theme] loadTheme 返回空:": "common.index.l477.t0",
+ "[theme] applyThemeWithRemote 失败,回退到纯预设:": "common.index.l496.t0",
+ "[theme] 纯预设回退也失败:": "common.index.l506.t0"
+}
\ No newline at end of file
diff --git a/docs/i18n-rules.md b/docs/i18n-rules.md
new file mode 100644
index 0000000..63ca6ec
--- /dev/null
+++ b/docs/i18n-rules.md
@@ -0,0 +1,125 @@
+# i18n 改造铁律(AI 必须遵守)
+
+> 本文档给 Claude / 其他 AI 在做 i18n 改造时作为强制约束。
+> 违反任何一条都会导致运行时崩溃或被 CI 拦截。
+
+## 8 条铁律
+
+### 1. 禁止在一次 commit 里"先加 i18n 再回退硬编码"
+- 每次 commit 的目标必须可逆、可单独 cherry-pick
+- 不允许"完成 A 但中途又撤掉 A"
+- 历史教训:commit f258987 一刀切删掉前 9 个 commit 的 i18n 工作,全部归零
+
+### 2. 禁止重复定义 key
+- 新增 key 前必须 `grep "<新 key 路径>" lang/en-us.js lang/zh-cn.js`
+- 已存在就**复用**,不允许再加一份
+- 校验:`python scripts/i18n_check.py` 必须 exit 0
+- 历史教训:commit 47098bd 把 `saveSuccess` / `yuan` / `searchResultCount` 在 common/member/article 三处定义各一次
+
+### 3. 禁止改 CSS / 模板结构 / 与本次任务无关的代码
+- i18n 改造只允许动 `$lang(...)` 表达式内的字符串和 `data()`/`methods` 里被赋值的 lang key
+- 不允许改 `
-
+
\ No newline at end of file
diff --git a/pages/index/public/js/index.js b/pages/index/public/js/index.js
index addebae..8edd140 100644
--- a/pages/index/public/js/index.js
+++ b/pages/index/public/js/index.js
@@ -1,130 +1,130 @@
-export default {
- data() {
- return {
- minScrollTop: 100, // 设置回到顶端按钮显示要求,最小页面滚动距离
- wechatQrcode: '', // 公众号二维码
- diyRoute: '/pages/index/index',
- shopInfo: null // 店铺信息
- };
- },
- onLoad(option) {
- // #ifdef H5
- // H5地图选择位置回调数据
- if (option.module && option.module == 'locationPicker') {
- option.name = ''; // 清空地址
- }
- // #endif
- this.name = option.name || 'DIY_VIEW_INDEX'; // 根据店铺运营模式,打开平台(shop)或者连锁门店(stroe)页面,接口会自行判断
-
- // 获取店铺信息
- this.shopInfo = uni.getStorageSync('shopInfo');
- },
- onShow() {
- // 获取关注公众号二维码
- this.getFollowQrcode();
-
- // 重新获取店铺信息
- this.shopInfo = uni.getStorageSync('shopInfo');
- },
- mounted() {
- // 监听图片、文字、商品列表等组件的点击事件
- this.unsubscribe = this.$eventBus?.onMany([
- 'rubik-cube-tap',
- 'picture-tap',
- 'text-tap',
- 'goods-list-tap',
- 'presale-tap',
- 'notes-tap',
- 'merch-list-tap',
- 'map-tap',
- 'img-ads-tap',
- 'many-goods-list-tap',
- 'search-tap',
- ], this._handleDiyGroupInteractionEvent);
- },
- beforeDestroy() {
- // 移除图片点击事件监听
- if (this.unsubscribe) this.unsubscribe();
- },
- methods: {
- // 关注公众号
- getFollowQrcode() {
- if (!this.$util.isWeiXin()) return;
- this.$api.sendRequest({
- url: '/wechat/api/wechat/followqrcode',
- success: res => {
- if (res.code >= 0 && res.data) {
- this.wechatQrcode = res.data.qrcode;
- }
- }
- });
- },
- officialAccountsOpen() {
- this.$refs.officialAccountsPopup.open();
- },
- officialAccountsClose() {
- this.$refs.officialAccountsPopup.close();
- },
- // 判断是否需要登录授权
- _requireHomeAuth() {
- // #ifdef MP-WEIXIN
- // 检查 index_login_auth 都开启时才需要登录授权
- return this.shopInfo?.index_login_auth === 1;
- // #endif
-
- // TODO: 其他平台, 后面可以根据平台类型判断
-
- return false;
- },
- // 统一处理点击及触摸事件
- _handleDiyGroupInteractionEvent(payload) {
- // 如果不需要登录授权,直接返回 true 继续传播
- if (!this._requireHomeAuth()) {
- return true;
- }
-
- // 如果已登录,直接返回 true 继续传播
- if (this.storeToken) {
- return true;
- }
-
- this.$refs.login?.open();
-
- // 阻止事件继续传播
- return false;
- },
- /**
- * 标题连击 5 次显示构建版本信息(供测试人员使用)
- */
- onTitleTap() {
- this._titleTapCount = (this._titleTapCount || 0) + 1;
- if (this._titleTapTimer) {
- clearTimeout(this._titleTapTimer);
- }
- if (this._titleTapCount >= 5) {
- this._titleTapCount = 0;
- this._showVersionInfo();
- return;
- }
- // 2 秒内未达到 5 次则重置计数
- this._titleTapTimer = setTimeout(() => {
- this._titleTapCount = 0;
- }, 2000);
- },
- _showVersionInfo() {
- let v = null;
- try {
- v = typeof __app_version !== 'undefined' ? __app_version : null;
- } catch (e) {}
- if (v && v.commitId) {
- uni.showModal({
- title: '构建版本信息',
- content: `提交 ID: ${v.commitId}\n构建时间: ${v.buildTime}`,
- showCancel: false
- });
- } else {
- console.log('未获取到构建版本信息');
- }
- }
- }
+export default {
+ data() {
+ return {
+ minScrollTop: 100, // 设置回到顶端按钮显示要求,最小页面滚动距离
+ wechatQrcode: '', // 公众号二维码
+ diyRoute: '/pages/index/index',
+ shopInfo: null // 店铺信息
+ };
+ },
+ onLoad(option) {
+ // #ifdef H5
+ // H5地图选择位置回调数据
+ if (option.module && option.module == 'locationPicker') {
+ option.name = ''; // 清空地址
+ }
+ // #endif
+ this.name = option.name || 'DIY_VIEW_INDEX'; // 根据店铺运营模式,打开平台(shop)或者连锁门店(stroe)页面,接口会自行判断
+
+ // 获取店铺信息
+ this.shopInfo = uni.getStorageSync('shopInfo');
+ },
+ onShow() {
+ // 获取关注公众号二维码
+ this.getFollowQrcode();
+
+ // 重新获取店铺信息
+ this.shopInfo = uni.getStorageSync('shopInfo');
+ },
+ mounted() {
+ // 监听图片、文字、商品列表等组件的点击事件
+ this.unsubscribe = this.$eventBus?.onMany([
+ 'rubik-cube-tap',
+ 'picture-tap',
+ 'text-tap',
+ 'goods-list-tap',
+ 'presale-tap',
+ 'notes-tap',
+ 'merch-list-tap',
+ 'map-tap',
+ 'img-ads-tap',
+ 'many-goods-list-tap',
+ 'search-tap',
+ ], this._handleDiyGroupInteractionEvent);
+ },
+ beforeDestroy() {
+ // 移除图片点击事件监听
+ if (this.unsubscribe) this.unsubscribe();
+ },
+ methods: {
+ // 关注公众号
+ getFollowQrcode() {
+ if (!this.$util.isWeiXin()) return;
+ this.$api.sendRequest({
+ url: '/wechat/api/wechat/followqrcode',
+ success: res => {
+ if (res.code >= 0 && res.data) {
+ this.wechatQrcode = res.data.qrcode;
+ }
+ }
+ });
+ },
+ officialAccountsOpen() {
+ this.$refs.officialAccountsPopup.open();
+ },
+ officialAccountsClose() {
+ this.$refs.officialAccountsPopup.close();
+ },
+ // 判断是否需要登录授权
+ _requireHomeAuth() {
+ // #ifdef MP-WEIXIN
+ // 检查 index_login_auth 都开启时才需要登录授权
+ return this.shopInfo?.index_login_auth === 1;
+ // #endif
+
+ // TODO: 其他平台, 后面可以根据平台类型判断
+
+ return false;
+ },
+ // 统一处理点击及触摸事件
+ _handleDiyGroupInteractionEvent(payload) {
+ // 如果不需要登录授权,直接返回 true 继续传播
+ if (!this._requireHomeAuth()) {
+ return true;
+ }
+
+ // 如果已登录,直接返回 true 继续传播
+ if (this.storeToken) {
+ return true;
+ }
+
+ this.$refs.login?.open();
+
+ // 阻止事件继续传播
+ return false;
+ },
+ /**
+ * 标题连击 5 次显示构建版本信息(供测试人员使用)
+ */
+ onTitleTap() {
+ this._titleTapCount = (this._titleTapCount || 0) + 1;
+ if (this._titleTapTimer) {
+ clearTimeout(this._titleTapTimer);
+ }
+ if (this._titleTapCount >= 5) {
+ this._titleTapCount = 0;
+ this._showVersionInfo();
+ return;
+ }
+ // 2 秒内未达到 5 次则重置计数
+ this._titleTapTimer = setTimeout(() => {
+ this._titleTapCount = 0;
+ }, 2000);
+ },
+ _showVersionInfo() {
+ let v = null;
+ try {
+ v = typeof __app_version !== 'undefined' ? __app_version : null;
+ } catch (e) {}
+ if (v && v.commitId) {
+ uni.showModal({
+ title: $lang('page.index.public.js.index.l121.t0'),
+ content: $lang(`page.index.public.js.index.l122.t0`),
+ showCancel: false
+ });
+ } else {
+ console.log($lang('page.index.public.js.index.l126.t0'));
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/pages_goods/_components/goods-detail-view/detail.js b/pages_goods/_components/goods-detail-view/detail.js
index 54348a3..a6e45e8 100644
--- a/pages_goods/_components/goods-detail-view/detail.js
+++ b/pages_goods/_components/goods-detail-view/detail.js
@@ -1,463 +1,523 @@
-// 商品详情业务
-import {
- Weixin
-} from '@/common/js/wx-jssdk.js';
-
-export default {
- data() {
- return {
- skuId: 0,
- goodsId: 0,
- isIphoneX: false, //判断手机是否是iphoneX以上
- whetherCollection: 0,
-
- //是否开启预览,0:不开启,1:开启
- preview: 0,
- videoContext: '',
-
- // 媒体,图片,视频
-
- // 解决每个商品SKU图片数量不同时,无法切换到第一个,导致轮播图显示不出来
- swiperInterval: 1,
- swiperAutoplay: false,
- swiperCurrent: 1,
- switchMedia: 'img',
-
- //评价
- goodsEvaluate: [{
- member_headimg: '',
- member_name: '',
- content: '',
- images: [],
- create_time: 0,
- sku_name: ''
- }],
- evaluateConfig: {
- evaluate_audit: 1,
- evaluate_show: 0,
- evaluate_status: 1
- },
-
- // 是否可分享到好物圈
- goodsCircle: false,
- service: null,
- shareUrl: '', // 分享链接
- source_member: 0, //分享人的id
- isCommunity: false, //社群弹窗
-
- poster: "-1", //海报
- posterMsg: "", //海报错误信息
- posterHeight: 0,
- posterParams: {}, //海报所需参数
- goodsRoute: '',
- posterApi: '',
- goodsAttrShow: false, // 商品属性是否展开
-
- //门店列表
- storeList: {
- data: [],
- page: 1,
- page_size: 10
- },
- isShowStore: false,
- latitude: null, // 纬度
- longitude: null, // 经度
- evaluateCount: 0, // 商品评论数量
- deliveryType: null, // 配送方式
- isVirtual: 0 //是否为虚拟商品
- }
- },
- created() {
- this.isIphoneX = this.$util.uniappIsIPhoneX();
-
- if (this.location) {
- this.latitude = this.location.latitude;
- this.longitude = this.location.longitude;
- } else {
- this.$util.getLocation();
- }
- this.getStoreData();
- },
- watch: {
- location: function (nVal) {
- if (nVal) {
- this.latitude = nVal.latitude;
- this.longitude = nVal.longitude;
- this.getStoreData();
- }
- }
- },
- methods: {
- init(params) {
- this.skuId = params.sku_id;
- this.goodsId = params.goods_id;
- this.preview = params.preview;
- this.source_member = params.source_member;
- this.whetherCollection = params.whetherCollection;
- this.posterParams = params.posterParams;
-
- this.shareUrl = params.shareUrl;
- this.goodsRoute = params.goodsRoute;
- this.posterApi = params.posterApi;
- this.isVirtual = params.isVirtual;
- this.deliveryType = params.deliveryType;
- this.evaluateConfig = params.evaluateConfig;
-
- if (this.evaluateConfig.evaluate_show == 1) {
- //商品评论
- this.getGoodsEvaluate(params.evaluateList);
- this.evaluateCount = params.evaluateCount;
- }
-
- for (let k in this.deliveryType) {
- if (k == 'store') {
- this.isShowStore = true;
- }
- }
-
- this.getService();
-
- this.videoContext = uni.createVideoContext('goodsVideo');
-
- // #ifdef MP-WEIXIN
- this.goodsSyncToGoodsCircle();
- // #endif
-
- },
- swiperChange(e) {
- this.swiperCurrent = e.detail.current + 1;
- },
-
- //-------------------------------------服务-------------------------------------
-
- openMerchantsServicePopup() {
- this.$refs.merchantsServicePopup.open();
- },
- closeMerchantsServicePopup() {
- this.$refs.merchantsServicePopup.close();
- },
-
- //-------------------------------------门店列表-------------------------------------
- openStoreListPopup() {
- this.$refs.storeListPopup.open();
- },
- closeStoreListPopup() {
- this.$refs.storeListPopup.close();
- },
- getStoreData() {
- //门店列表
- let data = {
- page: this.storeList.page,
- page_size: this.storeList.page_size
- };
- if (this.latitude && this.longitude) {
- data.latitude = this.latitude;
- data.longitude = this.longitude;
- }
- this.$api.sendRequest({
- url: '/api/store/page',
- data: data,
- success: res => {
- if (this.storeList.page == 1) this.storeList.data == [];
- if (res.code >= 0 && res.data) {
- this.storeList.data = this.storeList.data.concat(res.data.list);
- } else {
- this.$util.showToast({
- title: res.message
- });
- }
- }
- });
- },
- selectStore(item) {
- this.$util.redirectTo('/pages_tool/store/detail', {
- store_id: item.store_id
- });
- this.closeStoreListPopup();
- },
- //-------------------------------------属性-------------------------------------
-
- switchGoodsAttr() {
- this.goodsAttrShow = !this.goodsAttrShow;
- },
- //-------------------------------------评价-------------------------------------
- //商品评论列表
- getGoodsEvaluate(list) {
- if (list) {
- this.goodsEvaluate = list;
- this.goodsEvaluate.forEach((item, index) => {
- if (this.goodsEvaluate[index].images) this.goodsEvaluate[index].images = this.goodsEvaluate[index].images.split(",");
- if (this.goodsEvaluate[index].is_anonymous == 1) this.goodsEvaluate[index].member_name = this.goodsEvaluate[index].member_name.replace(this.goodsEvaluate[index].member_name.substring(1, this.goodsEvaluate[index].member_name.length - 1), '***')
- })
- // if (this.goodsEvaluate.images) this.goodsEvaluate.images = this.goodsEvaluate.images.split(",");
- // if (this.goodsEvaluate.is_anonymous == 1) this.goodsEvaluate.member_name = this.goodsEvaluate.member_name.replace(
- // this.goodsEvaluate.member_name.substring(1, this.goodsEvaluate.member_name.length - 1), '***')
- }
- },
- // 预览评价图片
- previewEvaluate(index, img_index, field) {
- var paths = [];
- for (let i = 0; i < this.goodsEvaluate[index][field].length; i++) {
- paths.push(this.$util.img(this.goodsEvaluate[index][field][i]));
- }
- uni.previewImage({
- current: img_index,
- urls: paths
- });
- },
- //-------------------------------------关注-------------------------------------
- async collection() {
- if (this.preview) return; // 开启预览,禁止任何操作和跳转
-
- if (this.storeToken) {
-
- //未关注添加关注
- if (this.whetherCollection == 0) {
- let res = await this.$api.sendRequest({
- url: "/api/goodscollect/add",
- data: {
- sku_id: this.skuId,
- goods_id: this.goodsSkuDetail.goods_id,
- sku_name: this.goodsSkuDetail.sku_name,
- sku_price: this.goodsSkuDetail.show_price,
- sku_image: this.goodsSkuDetail.sku_image
- },
- async: false,
- });
- var data = res.data;
- if (data > 0) {
- this.whetherCollection = 1;
- }
- } else {
- //已关注取消关注
- let res = await this.$api.sendRequest({
- url: "/api/goodscollect/delete",
- data: {
- goods_id: this.goodsSkuDetail.goods_id
- },
- async: false,
- });
- var data = res.data;
- if (data > 0) {
- this.whetherCollection = 0;
- }
- }
- return this.whetherCollection;
- } else {
- if (this.source_member) {
- this.$refs.login.open(this.shareUrl + '&source_member=' + this.source_member);
- } else {
- this.$refs.login.open(this.shareUrl);
- }
- }
- },
- //-------------------------------------分享-------------------------------------
- // 打开分享弹出层
- openSharePopup() {
- this.$refs.sharePopup.open();
- },
- // 关闭分享弹出层
- closeSharePopup() {
- this.$refs.sharePopup.close();
- },
- copyUrl() {
- let text = this.$config.h5Domain + this.shareUrl;
- if (this.memberInfo && this.memberInfo.member_id) text += '&source_member=' + this.memberInfo.member_id;
- this.$util.copy(text, () => {
- this.closeSharePopup();
- });
- },
-
- //-------------------------------------海报-------------------------------------
- // 打开海报弹出层
- openPosterPopup() {
- this.getGoodsPoster();
- this.$refs.sharePopup.close();
- },
- // 关闭海报弹出层
- closePosterPopup() {
- this.$refs.posterPopup.close();
- this.poster = ''
- },
- //生成海报
- getGoodsPoster() {
- uni.showLoading({
- 'title': '海报生成中...'
- })
- //活动海报信息
- if (this.memberInfo && this.memberInfo.member_id) this.posterParams.source_member = this.memberInfo.member_id;
-
- this.$api.sendRequest({
- url: this.posterApi,
- data: {
- page: this.goodsRoute,
- qrcode_param: JSON.stringify(this.posterParams)
- },
- success: res => {
- if (res.code == 0) {
- this.$refs.posterPopup.open();
- this.poster = res.data.path + "?time=" + new Date().getTime();
- } else {
- this.posterMsg = res.message;
- this.$util.showToast({
- title: res.message
- })
- }
- uni.hideLoading();
- },
- fail: err => {
- uni.hideLoading();
- }
- });
- },
- // 预览图片
- previewMedia(index) {
- var paths = [];
- for (let i = 0; i < this.goodsSkuDetail.sku_images.length; i++) {
- paths.push(this.$util.img(this.goodsSkuDetail.sku_images[i], {
- size: 'big'
- }));
- }
- uni.previewImage({
- current: index,
- urls: paths,
- // longPressActions: {
- // itemList: ['发送给朋友', '保存图片', '关注'],
- // success: function(data) {
- // console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
- // },
- // fail: function(err) {
- // console.log(err.errMsg);
- // }
- // }
- });
- },
- swiperImageError(index) {
- this.goodsSkuDetail.sku_images[index] = this.$util.getDefaultImage().goods;
- this.$forceUpdate();
- },
- // #ifdef MP || APP-PLUS
- //小程序中保存海报
- saveGoodsPoster() {
- let url = this.$util.img(this.poster);
- uni.downloadFile({
- url: url,
- success: (res) => {
- if (res.errMsg == "downloadFile:ok") {
- uni.saveImageToPhotosAlbum({
- filePath: res.tempFilePath,
- success: () => {
- this.$util.showToast({
- title: "保存成功"
- });
- },
- fail: (err) => {
- this.$util.showToast({
- title: "保存失败,请稍后重试"
- });
- }
- });
- }
- },
- fail: (err) => {
- this.$util.showToast({
- title: "保存失败,请稍后重试"
- });
- }
- });
- },
- // #endif
- //售后保障查询
- getService() {
- this.$api.sendRequest({
- url: '/api/goods/aftersale',
- success: res => {
- if (res.code == 0 && res.data) {
- this.service = res.data;
- }
- }
- });
- },
-
- // #ifdef MP-WEIXIN
- /**
- * 将商品同步到微信圈子
- */
- goodsSyncToGoodsCircle() {
- this.$api.sendRequest({
- url: '/goodscircle/api/goods/sync',
- data: {
- goods_id: this.goodsSkuDetail.goods_id
- },
- success: res => {
- if (res.code == 0) {
- this.goodsCircle = true;
- }
- }
- })
- },
- /**
- * 将商品推荐到微信圈子
- */
- openBusinessView() {
- if (wx.openBusinessView) {
- wx.openBusinessView({
- businessType: 'friendGoodsRecommend',
- extraData: {
- product: {
- item_code: this.goodsSkuDetail.goods_id,
- title: this.goodsSkuDetail.sku_name,
- image_list: this.goodsSkuDetail.sku_images.map((ele) => {
- return this.$util.img(ele);
- })
- }
- },
- success: function (res) {
- },
- fail: function (res) {
- }
- })
- }
- },
- // #endif
- toEvaluateDetail(id) {
- this.$util.redirectTo('/pages_tool/goods/evaluate', {
- goods_id: id
- });
- },
- showImg(e) {
- //拿到图片的路径里面的内容放在我们数组中
- let contentimg = e.target.dataset.nodes;
- let arrImg = [];
- for (var i = 0; i < contentimg.length; i++) {
- var img = contentimg[i].children;
- if (Array.isArray(img)) {
- for (var j = 0; j < img.length; j++) {
- if (img[j].attrs && img[j].name == "img") {
- if (img[j].attrs.src) {
- arrImg.push(img[j].attrs.src)
- }
- }
- }
- }
- }
- //最后一步就是把我们的所有图片放在预览的api中就可以了
- uni.previewImage({
- current: arrImg,
- urls: arrImg,
- })
- },
-
- //-------------------------------------社群-------------------------------------
-
- //添加福利群
- onCommunity() {
- this.isCommunity = true
- },
- onCloseCommunity() {
- this.isCommunity = false
- },
-
- }
-
+// 商品详情业务
+import {
+ Weixin
+} from '@/common/js/wx-jssdk.js';
+
+export default {
+ data() {
+ return {
+ skuId: 0,
+ goodsId: 0,
+ isIphoneX: false, //判断手机是否是iphoneX以上
+ whetherCollection: 0,
+
+ //是否开启预览,0:不开启,1:开启
+ preview: 0,
+ videoContext: '',
+
+ // 媒体,图片,视频
+
+ // 解决每个商品SKU图片数量不同时,无法切换到第一个,导致轮播图显示不出来
+ swiperInterval: 1,
+ swiperAutoplay: false,
+ swiperCurrent: 1,
+ switchMedia: 'img',
+
+ //评价
+ goodsEvaluate: [{
+ member_headimg: '',
+ member_name: '',
+ content: '',
+ images: [],
+ create_time: 0,
+ sku_name: ''
+ }],
+ evaluateConfig: {
+ evaluate_audit: 1,
+ evaluate_show: 0,
+ evaluate_status: 1
+ },
+
+ // 是否可分享到好物圈
+ goodsCircle: false,
+ service: null,
+ shareUrl: '', // 分享链接
+ source_member: 0, //分享人的id
+ isCommunity: false, //社群弹窗
+
+ poster: "-1", //海报
+ posterMsg: "", //海报错误信息
+ posterHeight: 0,
+ posterParams: {}, //海报所需参数
+ goodsRoute: '',
+ posterApi: '',
+ goodsAttrShow: false, // 商品属性是否展开
+
+ //门店列表
+ storeList: {
+ data: [],
+ page: 1,
+ page_size: 10
+ },
+ isShowStore: false,
+ latitude: null, // 纬度
+ longitude: null, // 经度
+ evaluateCount: 0, // 商品评论数量
+ deliveryType: null, // 配送方式
+ isVirtual: 0, //是否为虚拟商品
+
+ // 详情 Tab: 'html' 商品详情 / 'pdf' 文档详情
+ detailTab: 'html'
+ }
+ },
+ created() {
+ this.isIphoneX = this.$util.uniappIsIPhoneX();
+
+ if (this.location) {
+ this.latitude = this.location.latitude;
+ this.longitude = this.location.longitude;
+ } else {
+ this.$util.getLocation();
+ }
+ this.getStoreData();
+ },
+ watch: {
+ location: function (nVal) {
+ if (nVal) {
+ this.latitude = nVal.latitude;
+ this.longitude = nVal.longitude;
+ this.getStoreData();
+ }
+ },
+ // 跟随 goodsSkuDetail 变化重新决定默认 Tab
+ // 解决 refreshGoodsSkuDetail 后续合并 pdf_url 时,Tab 已显示但 detailTab 仍为 'html' 的问题
+ goodsSkuDetail: {
+ deep: true,
+ immediate: true,
+ handler(newVal) {
+ if (!newVal) return;
+ if (newVal.pdf_url) {
+ this.detailTab = 'pdf';
+ } else if (newVal.goods_content) {
+ this.detailTab = 'html';
+ }
+ }
+ }
+ },
+ methods: {
+ init(params) {
+ this.skuId = params.sku_id;
+ this.goodsId = params.goods_id;
+ this.preview = params.preview;
+ this.source_member = params.source_member;
+ this.whetherCollection = params.whetherCollection;
+ this.posterParams = params.posterParams;
+
+ this.shareUrl = params.shareUrl;
+ this.goodsRoute = params.goodsRoute;
+ this.posterApi = params.posterApi;
+ this.isVirtual = params.isVirtual;
+ this.deliveryType = params.deliveryType;
+ this.evaluateConfig = params.evaluateConfig;
+
+ if (this.evaluateConfig.evaluate_show == 1) {
+ //商品评论
+ this.getGoodsEvaluate(params.evaluateList);
+ this.evaluateCount = params.evaluateCount;
+ }
+
+ for (let k in this.deliveryType) {
+ if (k == 'store') {
+ this.isShowStore = true;
+ }
+ }
+
+ this.getService();
+
+ this.videoContext = uni.createVideoContext('goodsVideo');
+
+ // #ifdef MP-WEIXIN
+ this.goodsSyncToGoodsCircle();
+ // #endif
+
+ },
+ swiperChange(e) {
+ this.swiperCurrent = e.detail.current + 1;
+ },
+
+ //-------------------------------------服务-------------------------------------
+
+ openMerchantsServicePopup() {
+ this.$refs.merchantsServicePopup.open();
+ },
+ closeMerchantsServicePopup() {
+ this.$refs.merchantsServicePopup.close();
+ },
+
+ //-------------------------------------门店列表-------------------------------------
+ openStoreListPopup() {
+ this.$refs.storeListPopup.open();
+ },
+ closeStoreListPopup() {
+ this.$refs.storeListPopup.close();
+ },
+ getStoreData() {
+ //门店列表
+ let data = {
+ page: this.storeList.page,
+ page_size: this.storeList.page_size
+ };
+ if (this.latitude && this.longitude) {
+ data.latitude = this.latitude;
+ data.longitude = this.longitude;
+ }
+ this.$api.sendRequest({
+ url: '/api/store/page',
+ data: data,
+ success: res => {
+ if (this.storeList.page == 1) this.storeList.data == [];
+ if (res.code >= 0 && res.data) {
+ this.storeList.data = this.storeList.data.concat(res.data.list);
+ } else {
+ this.$util.showToast({
+ title: res.message
+ });
+ }
+ }
+ });
+ },
+ selectStore(item) {
+ this.$util.redirectTo('/pages_tool/store/detail', {
+ store_id: item.store_id
+ });
+ this.closeStoreListPopup();
+ },
+ //-------------------------------------属性-------------------------------------
+
+ switchGoodsAttr() {
+ this.goodsAttrShow = !this.goodsAttrShow;
+ },
+ //-------------------------------------评价-------------------------------------
+ //商品评论列表
+ getGoodsEvaluate(list) {
+ if (list) {
+ this.goodsEvaluate = list;
+ this.goodsEvaluate.forEach((item, index) => {
+ if (this.goodsEvaluate[index].images) this.goodsEvaluate[index].images = this.goodsEvaluate[index].images.split(",");
+ if (this.goodsEvaluate[index].is_anonymous == 1) this.goodsEvaluate[index].member_name = this.goodsEvaluate[index].member_name.replace(this.goodsEvaluate[index].member_name.substring(1, this.goodsEvaluate[index].member_name.length - 1), '***')
+ })
+ // if (this.goodsEvaluate.images) this.goodsEvaluate.images = this.goodsEvaluate.images.split(",");
+ // if (this.goodsEvaluate.is_anonymous == 1) this.goodsEvaluate.member_name = this.goodsEvaluate.member_name.replace(
+ // this.goodsEvaluate.member_name.substring(1, this.goodsEvaluate.member_name.length - 1), '***')
+ }
+ },
+ // 预览评价图片
+ previewEvaluate(index, img_index, field) {
+ var paths = [];
+ for (let i = 0; i < this.goodsEvaluate[index][field].length; i++) {
+ paths.push(this.$util.img(this.goodsEvaluate[index][field][i]));
+ }
+ uni.previewImage({
+ current: img_index,
+ urls: paths
+ });
+ },
+ //-------------------------------------关注-------------------------------------
+ async collection() {
+ if (this.preview) return; // 开启预览,禁止任何操作和跳转
+
+ if (this.storeToken) {
+
+ //未关注添加关注
+ if (this.whetherCollection == 0) {
+ let res = await this.$api.sendRequest({
+ url: "/api/goodscollect/add",
+ data: {
+ sku_id: this.skuId,
+ goods_id: this.goodsSkuDetail.goods_id,
+ sku_name: this.goodsSkuDetail.sku_name,
+ sku_price: this.goodsSkuDetail.show_price,
+ sku_image: this.goodsSkuDetail.sku_image
+ },
+ async: false,
+ });
+ var data = res.data;
+ if (data > 0) {
+ this.whetherCollection = 1;
+ }
+ } else {
+ //已关注取消关注
+ let res = await this.$api.sendRequest({
+ url: "/api/goodscollect/delete",
+ data: {
+ goods_id: this.goodsSkuDetail.goods_id
+ },
+ async: false,
+ });
+ var data = res.data;
+ if (data > 0) {
+ this.whetherCollection = 0;
+ }
+ }
+ return this.whetherCollection;
+ } else {
+ if (this.source_member) {
+ this.$refs.login.open(this.shareUrl + '&source_member=' + this.source_member);
+ } else {
+ this.$refs.login.open(this.shareUrl);
+ }
+ }
+ },
+ //-------------------------------------分享-------------------------------------
+ // 打开分享弹出层
+ openSharePopup() {
+ this.$refs.sharePopup.open();
+ },
+ // 关闭分享弹出层
+ closeSharePopup() {
+ this.$refs.sharePopup.close();
+ },
+ copyUrl() {
+ let text = this.$config.h5Domain + this.shareUrl;
+ if (this.memberInfo && this.memberInfo.member_id) text += '&source_member=' + this.memberInfo.member_id;
+ this.$util.copy(text, () => {
+ this.closeSharePopup();
+ });
+ },
+
+ //-------------------------------------海报-------------------------------------
+ // 打开海报弹出层
+ openPosterPopup() {
+ this.getGoodsPoster();
+ this.$refs.sharePopup.close();
+ },
+ // 关闭海报弹出层
+ closePosterPopup() {
+ this.$refs.posterPopup.close();
+ this.poster = ''
+ },
+ //生成海报
+ getGoodsPoster() {
+ uni.showLoading({
+ 'title': $lang('goods._components.goods-detail-view.detail.l285.t0')
+ })
+ //活动海报信息
+ if (this.memberInfo && this.memberInfo.member_id) this.posterParams.source_member = this.memberInfo.member_id;
+
+ this.$api.sendRequest({
+ url: this.posterApi,
+ data: {
+ page: this.goodsRoute,
+ qrcode_param: JSON.stringify(this.posterParams)
+ },
+ success: res => {
+ if (res.code == 0) {
+ this.$refs.posterPopup.open();
+ this.poster = res.data.path + "?time=" + new Date().getTime();
+ } else {
+ this.posterMsg = res.message;
+ this.$util.showToast({
+ title: res.message
+ })
+ }
+ uni.hideLoading();
+ },
+ fail: err => {
+ uni.hideLoading();
+ }
+ });
+ },
+ // 预览图片
+ previewMedia(index) {
+ var paths = [];
+ for (let i = 0; i < this.goodsSkuDetail.sku_images.length; i++) {
+ paths.push(this.$util.img(this.goodsSkuDetail.sku_images[i], {
+ size: 'big'
+ }));
+ }
+ uni.previewImage({
+ current: index,
+ urls: paths,
+ // longPressActions: {
+ // itemList: ['发送给朋友', '保存图片', '关注'],
+ // success: function(data) {
+ // console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
+ // },
+ // fail: function(err) {
+ // console.log(err.errMsg);
+ // }
+ // }
+ });
+ },
+ swiperImageError(index) {
+ this.goodsSkuDetail.sku_images[index] = this.$util.getDefaultImage().goods;
+ this.$forceUpdate();
+ },
+ // #ifdef MP || APP-PLUS
+ //小程序中保存海报
+ saveGoodsPoster() {
+ let url = this.$util.img(this.poster);
+ uni.downloadFile({
+ url: url,
+ success: (res) => {
+ if (res.errMsg == "downloadFile:ok") {
+ uni.saveImageToPhotosAlbum({
+ filePath: res.tempFilePath,
+ success: () => {
+ this.$util.showToast({
+ title: $lang("goods._components.goods-detail-view.detail.l351.t0")
+ });
+ },
+ fail: (err) => {
+ this.$util.showToast({
+ title: $lang("goods._components.goods-detail-view.detail.l356.t0")
+ });
+ }
+ });
+ }
+ },
+ fail: (err) => {
+ this.$util.showToast({
+ title: $lang("goods._components.goods-detail-view.detail.l356.t0")
+ });
+ }
+ });
+ },
+ // #endif
+ //售后保障查询
+ getService() {
+ this.$api.sendRequest({
+ url: '/api/goods/aftersale',
+ success: res => {
+ if (res.code == 0 && res.data) {
+ this.service = res.data;
+ }
+ }
+ });
+ },
+
+ // #ifdef MP-WEIXIN
+ /**
+ * 将商品同步到微信圈子
+ */
+ goodsSyncToGoodsCircle() {
+ this.$api.sendRequest({
+ url: '/goodscircle/api/goods/sync',
+ data: {
+ goods_id: this.goodsSkuDetail.goods_id
+ },
+ success: res => {
+ if (res.code == 0) {
+ this.goodsCircle = true;
+ }
+ }
+ })
+ },
+ /**
+ * 将商品推荐到微信圈子
+ */
+ openBusinessView() {
+ if (wx.openBusinessView) {
+ wx.openBusinessView({
+ businessType: 'friendGoodsRecommend',
+ extraData: {
+ product: {
+ item_code: this.goodsSkuDetail.goods_id,
+ title: this.goodsSkuDetail.sku_name,
+ image_list: this.goodsSkuDetail.sku_images.map((ele) => {
+ return this.$util.img(ele);
+ })
+ }
+ },
+ success: function (res) {
+ },
+ fail: function (res) {
+ }
+ })
+ }
+ },
+ // #endif
+ toEvaluateDetail(id) {
+ this.$util.redirectTo('/pages_tool/goods/evaluate', {
+ goods_id: id
+ });
+ },
+ showImg(e) {
+ //拿到图片的路径里面的内容放在我们数组中
+ let contentimg = e.target.dataset.nodes;
+ let arrImg = [];
+ for (var i = 0; i < contentimg.length; i++) {
+ var img = contentimg[i].children;
+ if (Array.isArray(img)) {
+ for (var j = 0; j < img.length; j++) {
+ if (img[j].attrs && img[j].name == "img") {
+ if (img[j].attrs.src) {
+ arrImg.push(img[j].attrs.src)
+ }
+ }
+ }
+ }
+ }
+ //最后一步就是把我们的所有图片放在预览的api中就可以了
+ uni.previewImage({
+ current: arrImg,
+ urls: arrImg,
+ })
+ },
+
+ //-------------------------------------社群-------------------------------------
+
+ //添加福利群
+ onCommunity() {
+ this.isCommunity = true
+ },
+ onCloseCommunity() {
+ this.isCommunity = false
+ },
+
+ //-------------------------------------PDF文档-------------------------------------
+ // 切换详情 Tab
+ switchDetailTab(tab) {
+ if (tab !== 'html' && tab !== 'pdf') return;
+ this.detailTab = tab;
+ },
+ onTapDoc(pdf_url) {
+ if (!pdf_url) return;
+ uni.showLoading({
+ title: '正在加载'
+ });
+ let url = this.$util.img(pdf_url);
+ uni.downloadFile({
+ url: url,
+ success: (res) => {
+ if (res.statusCode === 200) {
+ let filePath = res.tempFilePath;
+ uni.openDocument({
+ filePath: filePath,
+ success: () => {
+ console.log('打开成功');
+ },
+ fail: () => {},
+ complete: () => {
+ uni.hideLoading();
+ }
+ });
+ }
+ },
+ fail: (res) => {
+ uni.hideLoading();
+ },
+ complete: (res) => {
+ if (res.statusCode === 404) {
+ uni.showToast({
+ title: '文件不存在',
+ icon: 'none'
+ });
+ }
+ }
+ });
+ },
+
+ }
+
}
\ No newline at end of file
diff --git a/pages_goods/_components/goods-detail-view/goods-detail-view.vue b/pages_goods/_components/goods-detail-view/goods-detail-view.vue
index 03d718c..3ac445c 100644
--- a/pages_goods/_components/goods-detail-view/goods-detail-view.vue
+++ b/pages_goods/_components/goods-detail-view/goods-detail-view.vue
@@ -1,532 +1,679 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ swiperCurrent }}
- /{{ goodsSkuDetail.sku_images.length }}
-
-
-
-
-
-
-
-
-
-
- {{
- $lang('video') }}
- {{ $lang('image') }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ $lang('send') }}
-
-
-
- {{ $lang('express') }}
-
-
-
-
-
-
- 未配置
-
-
-
-
-
-
-
- 服务
-
-
-
-
-
-
-
-
- {{ item.service_name }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ goodsSkuDetail.merchinfo.merch_name }}
- 官方认证商家,值得信赖!
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 评价
- ({{ evaluateCount }})
-
- 暂无评价
-
- 查看全部
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ item.member_name[0] }}***{{ item.member_name[item.member_name.length - 1]
- }}
-
- {{ item.member_name }}
-
-
-
-
-
- {{ $util.timeStampTurnTime(item.create_time) }}
-
- {{ item.content }}
-
-
-
-
-
-
-
-
-
-
-
-
- 规格属性
-
-
-
- {{ item.attr_name }}
- {{ item.attr_value_name }}
-
-
-
-
- 展开
-
-
- 收起
-
-
-
-
-
-
-
-
-
-
- {{ $lang('details') }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 保存图片
-
-
- 长按图片进行保存
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/pages_goods/_components/ns-goods-promotion/ns-goods-promotion.vue b/pages_goods/_components/ns-goods-promotion/ns-goods-promotion.vue
index 93c8905..7302f54 100644
--- a/pages_goods/_components/ns-goods-promotion/ns-goods-promotion.vue
+++ b/pages_goods/_components/ns-goods-promotion/ns-goods-promotion.vue
@@ -1,125 +1,125 @@
-
-
-
-
-
- 限时折扣
- 当前商品正在参加{{ item.promotion_name }}
-
-
-
-
-
- 团购
- 当前商品正在参加{{ item.promotion_name }}
-
-
-
-
- 拼团
- 当前商品正在参加{{ item.promotion_name }}
-
-
-
-
- 秒杀
- 当前商品正在参加{{ item.promotion_name }}
-
-
-
-
- 专题活动
- 当前商品正在参加{{ item.promotion_name }}
-
-
-
-
- 砍价
- 当前商品正在参加{{ item.promotion_name }}
-
-
-
-
- 拼团返利
- 当前商品正在参加{{ item.promotion_name }}
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ {{ $lang("goods._components.ns-goods-promotion.l6.t0") }}
+ { $lang("goods._components.ns-goods-promotion.l7.t0") } item.promotion_name }}
+
+
+
+
+
+ {{ $lang("goods._components.ns-goods-promotion.l13.t0") }}
+ { $lang("goods._components.ns-goods-promotion.l7.t0") } item.promotion_name }}
+
+
+
+
+ {{ $lang("goods._components.ns-goods-promotion.l19.t0") }}
+ { $lang("goods._components.ns-goods-promotion.l7.t0") } item.promotion_name }}
+
+
+
+
+ {{ $lang("goods._components.ns-goods-promotion.l25.t0") }}
+ { $lang("goods._components.ns-goods-promotion.l7.t0") } item.promotion_name }}
+
+
+
+
+ {{ $lang("goods._components.ns-goods-promotion.l31.t0") }}
+ { $lang("goods._components.ns-goods-promotion.l7.t0") } item.promotion_name }}
+
+
+
+
+ {{ $lang("goods._components.ns-goods-promotion.l37.t0") }}
+ { $lang("goods._components.ns-goods-promotion.l7.t0") } item.promotion_name }}
+
+
+
+
+ {{ $lang("goods._components.ns-goods-promotion.l43.t0") }}
+ { $lang("goods._components.ns-goods-promotion.l7.t0") } item.promotion_name }}
+
+
+
+
+
+
+
+
+
diff --git a/pages_goods/cart.vue b/pages_goods/cart.vue
index b8dea99..6414191 100644
--- a/pages_goods/cart.vue
+++ b/pages_goods/cart.vue
@@ -1,390 +1,390 @@
-
-
-
-
-
-
-
-
-
- 优惠券
- 领券结算最高可减{{ discount.coupon_info.coupon_money | moneyFormat }}元
-
-
- 点击{{ discount.coupon_info.receive_type == 'wait' ? '领取' : '查看' }}
-
-
-
-
-
- {{ globalStoreInfo.store_name }}
-
-
-
-
-
-
-
-
-
-
- {{ isEnEnv ?
- item.en_goods_name : item.goods_name }}
-
-
-
-
- {{ x.spec_name }}:{{ x.spec_value_name }}
- {{ i < item.sku_spec_format.length - 1 ? ';' : '' }}
-
-
-
-
-
-
-
-
-
-
-
- {{
- $lang('common.currencySymbol') }}
- {{ parseFloat(item.member_price).toFixed(2).split('.')[0] }}
- .{{
- parseFloat(item.member_price).toFixed(2).split('.')[1]
- }}
-
-
-
-
-
-
-
- {{
- $lang('common.currencySymbol') }}
- {{ parseFloat(item.discount_price).toFixed(2).split('.')[0]
- }}
- .{{
- parseFloat(item.discount_price).toFixed(2).split('.')[1]
- }}
-
-
-
-
-
-
-
-
-
- {{
- $lang('common.currencySymbol') }}
- {{ parseFloat(item.member_price).toFixed(2).split('.')[0] }}
- .{{
- parseFloat(item.member_price).toFixed(2).split('.')[1]
- }}
-
-
-
-
-
-
-
- {{
- $lang('common.currencySymbol') }}
- {{ parseFloat(item.price).toFixed(2).split('.')[0] }}
- .{{
- parseFloat(item.price).toFixed(2).split('.')[1]
- }}
-
-
-
-
-
-
-
- 满减
-
-
- {{ Number(mitem.limit) }}减{{
- mitem.discount_money }}
-
-
-
-
-
-
- {{ $lang('del') }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ goodsItem.sku_name }}
-
-
-
-
- {{ x.spec_name }}:{{ x.spec_value_name }}
- {{ i < goodsItem.sku_spec_format.length - 1 ? '; ' : '' }}
-
-
-
-
-
-
-
-
- {{
- $lang('common.currencySymbol') }}
- {{ parseFloat(goodsItem.member_price).toFixed(2).split('.')[0]
- }}
- .{{
- parseFloat(goodsItem.member_price).toFixed(2).split('.')[1]
- }}
-
-
-
- {{
- $lang('common.currencySymbol') }}
- {{ parseFloat(goodsItem.discount_price).toFixed(2).split('.')[0]
- }}
- .{{
- parseFloat(goodsItem.discount_price).toFixed(2).split('.')[1]
- }}
-
-
-
- 已失效
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ $lang('allElection') }}
-
-
-
- {{ $lang('total') }}:
- {{ $lang('common.currencySymbol') }}
-
- {{ parseFloat(discount.order_money).toFixed(2).split('.')[0]
- }}
- .{{ parseFloat(discount.order_money).toFixed(2).split('.')[1]
- }}
-
-
- {{ parseFloat(totalPrice).toFixed(2).split('.')[0] }}
- .{{ parseFloat(totalPrice).toFixed(2).split('.')[1] }}
-
-
-
- 优惠明细
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages_goods/cart.vue.bak b/pages_goods/cart.vue.bak
new file mode 100644
index 0000000..b8dea99
--- /dev/null
+++ b/pages_goods/cart.vue.bak
@@ -0,0 +1,390 @@
+
+
+
+
+
+
+
+
+
+ 优惠券
+ 领券结算最高可减{{ discount.coupon_info.coupon_money | moneyFormat }}元
+
+
+ 点击{{ discount.coupon_info.receive_type == 'wait' ? '领取' : '查看' }}
+
+
+
+
+
+ {{ globalStoreInfo.store_name }}
+
+
+
+
+
+
+
+
+
+
+ {{ isEnEnv ?
+ item.en_goods_name : item.goods_name }}
+
+
+
+
+ {{ x.spec_name }}:{{ x.spec_value_name }}
+ {{ i < item.sku_spec_format.length - 1 ? ';' : '' }}
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ $lang('common.currencySymbol') }}
+ {{ parseFloat(item.member_price).toFixed(2).split('.')[0] }}
+ .{{
+ parseFloat(item.member_price).toFixed(2).split('.')[1]
+ }}
+
+
+
+
+
+
+
+ {{
+ $lang('common.currencySymbol') }}
+ {{ parseFloat(item.discount_price).toFixed(2).split('.')[0]
+ }}
+ .{{
+ parseFloat(item.discount_price).toFixed(2).split('.')[1]
+ }}
+
+
+
+
+
+
+
+
+
+ {{
+ $lang('common.currencySymbol') }}
+ {{ parseFloat(item.member_price).toFixed(2).split('.')[0] }}
+ .{{
+ parseFloat(item.member_price).toFixed(2).split('.')[1]
+ }}
+
+
+
+
+
+
+
+ {{
+ $lang('common.currencySymbol') }}
+ {{ parseFloat(item.price).toFixed(2).split('.')[0] }}
+ .{{
+ parseFloat(item.price).toFixed(2).split('.')[1]
+ }}
+
+
+
+
+
+
+
+ 满减
+
+
+ {{ Number(mitem.limit) }}减{{
+ mitem.discount_money }}
+
+
+
+
+
+
+ {{ $lang('del') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ goodsItem.sku_name }}
+
+
+
+
+ {{ x.spec_name }}:{{ x.spec_value_name }}
+ {{ i < goodsItem.sku_spec_format.length - 1 ? '; ' : '' }}
+
+
+
+
+
+
+
+
+ {{
+ $lang('common.currencySymbol') }}
+ {{ parseFloat(goodsItem.member_price).toFixed(2).split('.')[0]
+ }}
+ .{{
+ parseFloat(goodsItem.member_price).toFixed(2).split('.')[1]
+ }}
+
+
+
+ {{
+ $lang('common.currencySymbol') }}
+ {{ parseFloat(goodsItem.discount_price).toFixed(2).split('.')[0]
+ }}
+ .{{
+ parseFloat(goodsItem.discount_price).toFixed(2).split('.')[1]
+ }}
+
+
+
+ 已失效
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $lang('allElection') }}
+
+
+
+ {{ $lang('total') }}:
+ {{ $lang('common.currencySymbol') }}
+
+ {{ parseFloat(discount.order_money).toFixed(2).split('.')[0]
+ }}
+ .{{ parseFloat(discount.order_money).toFixed(2).split('.')[1]
+ }}
+
+
+ {{ parseFloat(totalPrice).toFixed(2).split('.')[0] }}
+ .{{ parseFloat(totalPrice).toFixed(2).split('.')[1] }}
+
+
+
+ 优惠明细
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages_goods/category.vue b/pages_goods/category.vue
index 7f265db..f8b1c05 100644
--- a/pages_goods/category.vue
+++ b/pages_goods/category.vue
@@ -1,149 +1,149 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages_goods/detail.vue b/pages_goods/detail.vue
index 16437a8..0127d51 100644
--- a/pages_goods/detail.vue
+++ b/pages_goods/detail.vue
@@ -1,760 +1,760 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 限时折扣
- 已售{{ goodsSkuDetail.sale_num }}{{ goodsSkuDetail.unit }}
-
-
-
-
- 距结束仅剩
-
-
-
-
-
-
-
-
-
-
-
- {{ $lang('common.currencySymbol') }}
- {{ parseFloat(goodsSkuDetail.discount_price).toFixed(2).split('.')[0] }}
- .{{ parseFloat(goodsSkuDetail.discount_price).toFixed(2).split('.')[1] }}
-
-
-
- {{ $lang('common.currencySymbol') }}
- {{ parseFloat(goodsSkuDetail.member_price).toFixed(2).split('.')[0] }}
- .{{ parseFloat(goodsSkuDetail.member_price).toFixed(2).split('.')[1] }}
-
-
-
-
- 原价
- {{ $lang('common.currencySymbol') }}
- {{ goodsSkuDetail.price }}
-
-
-
- {{ $lang('common.currencySymbol') }}
- {{ parseFloat(goodsSkuDetail.price).toFixed(2).split('.')[0] }}
- .{{ parseFloat(goodsSkuDetail.price).toFixed(2).split('.')[1] }}
-
-
-
-
- {{ $lang('common.currencySymbol') }}
-
- {{ goodsSkuDetail.price }}
- {{ goodsSkuDetail.market_price }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ isEnEnv ? goodsSkuDetail.en_goods_name : goodsSkuDetail.goods_name }}
-
- {{ goodsSkuDetail.introduction }}
-
-
- {{ goodsSkuDetail.label_name }}
-
-
- {{$lang('stock')}}: {{ goodsSkuDetail.stock +goodsSkuDetail.unit}}
- {{$lang('sales')}}: {{ goodsSkuDetail.sale_num+goodsSkuDetail.unit }}
-
-
-
-
-
-
-
-
-
-
- {{$lang('commission')}}
-
-
- One {{$lang('commissiontext')}}
-
- ¥
- {{ parseFloat(goodsSkuDetail.fenxiao_detail.commission_money).toFixed(2).split('.')[0] }}
- .{{ parseFloat(goodsSkuDetail.fenxiao_detail.commission_money).toFixed(2).split('.')[1] }}
-
-
-
-
-
-
-
-
-
-
- {{$lang('spec')}}
-
- {{ item.spec_name }}/{{ item.spec_value_name }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 组合套餐
- {{ bundling[0].bl_name }}
-
-
-
-
-
-
-
-
-
-
- {{ $lang('common.currencySymbol') }}
- {{ goodsSkuDetail.price }}
-
-
- {{ isEnEnv ? goodsSkuDetail.en_goods_name : goodsSkuDetail.goods_name }}
-
-
-
-
-
-
-
- {{ $lang('common.currencySymbol') }}
- {{ item.price }}
-
-
- {{ item.sku_name }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $lang("goods._components.ns-goods-promotion.l6.t0") }}
+ { $lang("goods.detail.l18") } goodsSkuDetail.sale_num }}{{ goodsSkuDetail.unit }}
+
+
+
+
+ {{ $lang("goods.detail.l23") }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ $lang('common.currency_symbol') }}
+ {{ parseFloat(goodsSkuDetail.discount_price).toFixed(2).split('.')[0] }}
+ .{{ parseFloat(goodsSkuDetail.discount_price).toFixed(2).split('.')[1] }}
+
+
+
+ {{ $lang('common.currency_symbol') }}
+ {{ parseFloat(goodsSkuDetail.member_price).toFixed(2).split('.')[0] }}
+ .{{ parseFloat(goodsSkuDetail.member_price).toFixed(2).split('.')[1] }}
+
+
+
+
+ {{ $lang("goods.detail.l55") }}
+ {{ $lang('common.currency_symbol') }}
+ {{ goodsSkuDetail.price }}
+
+
+
+ {{ $lang('common.currency_symbol') }}
+ {{ parseFloat(goodsSkuDetail.price).toFixed(2).split('.')[0] }}
+ .{{ parseFloat(goodsSkuDetail.price).toFixed(2).split('.')[1] }}
+
+
+
+
+ {{ $lang('common.currency_symbol') }}
+
+ {{ goodsSkuDetail.price }}
+ {{ goodsSkuDetail.market_price }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ isEnEnv ? goodsSkuDetail.en_goods_name : goodsSkuDetail.goods_name }}
+
+ {{ goodsSkuDetail.introduction }}
+
+
+ {{ goodsSkuDetail.label_name }}
+
+
+ {{$lang('goods.detail.stock')}}: {{ goodsSkuDetail.stock +goodsSkuDetail.unit}}
+ {{$lang('goods.list.sales')}}: {{ goodsSkuDetail.sale_num+goodsSkuDetail.unit }}
+
+
+
+
+
+
+
+
+
+
+ {{$lang('fenxiao.list.commission')}}
+
+
+ One {{$lang('fenxiao.list.commissiontext')}}
+
+ ¥
+ {{ parseFloat(goodsSkuDetail.fenxiao_detail.commission_money).toFixed(2).split('.')[0] }}
+ .{{ parseFloat(goodsSkuDetail.fenxiao_detail.commission_money).toFixed(2).split('.')[1] }}
+
+
+
+
+
+
+
+
+
+
+ {{$lang('goods.detail.spec')}}
+
+ {{ item.spec_name }}/{{ item.spec_value_name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $lang("goods.detail.l220") }}
+ {{ bundling[0].bl_name }}
+
+
+
+
+
+
+
+
+
+
+ {{ $lang('common.currency_symbol') }}
+ {{ goodsSkuDetail.price }}
+
+
+ {{ isEnEnv ? goodsSkuDetail.en_goods_name : goodsSkuDetail.goods_name }}
+
+
+
+
+
+
+
+ {{ $lang('common.currency_symbol') }}
+ {{ item.price }}
+
+
+ {{ item.sku_name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_goods/list.vue b/pages_goods/list.vue
index 1e0f8b9..24c2de5 100644
--- a/pages_goods/list.vue
+++ b/pages_goods/list.vue
@@ -1,269 +1,269 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ langstatus ? $lang('Random') : '综合' }}
-
-
-
- {{ langstatus ? $lang('Sales') : '销量' }}
-
-
-
- {{ langstatus ? $lang('Price') : '价格' }}
-
-
-
-
-
-
-
-
-
- {{ langstatus ? $lang('Filter') : '筛选' }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ goodsTag(item) }}
-
-
-
-
-
-
-
-
-
- {{ isEnEnv ? item.en_goods_name : item.goods_name }}
-
-
-
-
-
- {{ $lang('common.currencySymbol') }}
- {{
- parseFloat(showPrice(item)).toFixed(2).split('.')[0] }}
- .{{
- parseFloat(showPrice(item)).toFixed(2).split('.')[1] }}
-
-
-
-
- 已售{{ item.sale_num }}{{ item.unit
- ? item.unit : '件' }}
-
-
-
- {{ $lang('buy') }}
-
-
-
-
-
-
- {{ $lang('consult') }}
-
-
-
-
-
-
-
-
-
- {{ goodsTag(item) }}
-
-
-
-
-
-
-
- {{ isEnEnv ? item.en_goods_name : item.goods_name }}
-
-
-
-
- {{ $lang('common.currencySymbol') }}
- {{
- parseFloat(showPrice(item)).toFixed(2).split('.')[0] }}
- .{{
- parseFloat(showPrice(item)).toFixed(2).split('.')[1] }}
-
-
-
-
- 已售{{ item.sale_num }}{{ item.unit
- ? item.unit : '件' }}
-
-
-
- {{ $lang('buy') }}
-
-
-
-
-
-
- {{ $lang('consult') }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- 筛选
-
-
-
-
-
-
-
-
-
-
-
-
- 全部分类
-
-
- 全部
-
-
- {{
- item.category_name }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/pages_goods/public/js/cart.js b/pages_goods/public/js/cart.js
index 35134f6..c50e84b 100644
--- a/pages_goods/public/js/cart.js
+++ b/pages_goods/public/js/cart.js
@@ -1,598 +1,598 @@
-import common from './common.js';
-
-export default {
- mixins: [common],
- data() {
- return {
- cartData: [], // 购物车
- checkAll: true,
- totalPrice: '0.00',
- totalCount: 0,
- isSub: false,
- invalidGoods: [], // 失效商品集合
- isIphoneX: false, //判断手机是否是iphoneX以上,
- isAction: false, // 是否操作删除
- goodsSkuDetail: null,
- discount: {},
- manjian: {},
- receiveSub: false,
- discountPopupShow: false,
- startX: '', // 触摸开始位置
- endX: '', // 触摸结束位置
- refresherTriggered: false, // 设置当前下拉刷新状态,true 表示下拉刷新已经被触发,false 表示下拉刷新未被触发
- timeout: {}
- };
- },
- onLoad() {
- uni.hideTabBar();
- this.isIphoneX = this.$util.uniappIsIPhoneX();
- },
- onShow() {
- if (this.storeToken) {
- this.getCartData();
- } else {
- this.cartData = [];
- this.invalidGoods = [];
- this.calculationTotalPrice();
- }
- },
- onHide() {
- this.isAction = false;
- },
- onUnload() {
- if (!this.storeToken && this.$refs.login) this.$refs.login.cancelCompleteInfo();
- },
- onReady() {
- if (!this.storeToken) {
- if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
- }
- },
- computed: {
- hasData() {
- return this.cartData.length > 0 || this.invalidGoods.length > 0;
- }
- },
- methods: {
- initNum(item) {
- let max_buy = item.max_buy > 0 && item.max_buy < item.stock ? item.max_buy : item.stock;
- max_buy = max_buy == 0 ? 1 : max_buy;
- if (item.num > max_buy) return max_buy;
- return item.num;
- },
- /**
- * 获取购物车数据
- */
- getCartData() {
- this.$api.sendRequest({
- url: '/api/cart/goodslists',
- success: res => {
- if (res.code >= 0) {
- if (res.data.length) this.handleCartData(res.data);
- else this.cartData = [];
- }
- this.refresherTriggered = false;
- if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
- },
- fail: res => {
- if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
- }
- });
- },
- /**
- * 处理购物车数据结构
- */
- handleCartData(data) {
- this.invalidGoods = [];
- this.cartData = [];
- var temp = {};
- data.forEach((item, index) => {
- if (item.goods_state == 1) {
- if (item.store_goods_status != undefined && item.store_goods_status != 1) {
- this.invalidGoods.push(item);
- } else if (item.min_buy > 0 && item.min_buy > item.stock) {
- // 如果最小限购超出库存则该商品失效
- this.invalidGoods.push(item);
- } else {
- item.checked = true;
- item.edit = false;
- if (temp['site_' + item.site_id] != undefined) {
- temp['site_' + item.site_id].cartList.push(item);
- } else {
- temp['site_' + item.site_id] = {
- siteId: item.site_id,
- siteName: item.site_name,
- edit: false,
- checked: true,
- cartList: [item]
- };
- }
- }
- } else {
- this.invalidGoods.push(item);
- }
- });
-
- this.cartData = [];
- Object.keys(temp).forEach(key => {
- this.cartData.push(temp[key]);
- });
- this.calculationTotalPrice();
- if (this.cartData.length) {
- this.cartData[0].cartList.forEach(v => {
- if (v.sku_spec_format) {
- v.sku_spec_format = JSON.parse(v.sku_spec_format);
- } else {
- v.sku_spec_format = [];
- }
- });
- }
- if (this.invalidGoods.length) {
- this.invalidGoods.forEach(v => {
- if (v.sku_spec_format) {
- v.sku_spec_format = JSON.parse(v.sku_spec_format);
- } else {
- v.sku_spec_format = [];
- }
- });
- }
- },
- /**
- * 单选
- * @param siteIndex
- * @param index
- */
- singleElection(siteIndex, index) {
- this.cartData[siteIndex].cartList[index].checked = !this.cartData[siteIndex].cartList[index].checked;
- this.calculationTotalPrice();
- },
- /**
- * 店铺全选
- * @param checked
- * @param index
- */
- siteAllElection(checked, index) {
- this.cartData[index].checked = checked;
- this.cartData[index].cartList.forEach(item => {
- item.checked = checked;
- });
- this.calculationTotalPrice();
- },
- /**
- * 全选
- */
- allElection(checked) {
- if (typeof checked == 'boolean') {
- this.checkAll = checked;
- } else {
- this.checkAll = !this.checkAll;
- }
- if (this.cartData.length) {
- this.cartData.forEach(siteItem => {
- siteItem.checked = this.checkAll;
- siteItem.cartList.forEach(item => {
- item.checked = this.checkAll;
- });
- });
- }
- this.calculationTotalPrice();
- },
- /**
- * 计算购物车总价
- */
- calculationTotalPrice() {
- if (this.cartData.length) {
- let totalPrice = 0,
- totalCount = 0,
- siteAllElectionCount = 0;
-
- this.cartData.forEach(siteItem => {
- let siteGoodsCount = 0;
- siteItem.cartList.forEach(item => {
- if (item.checked) {
- siteGoodsCount += 1;
- totalCount += parseInt(item.num);
- if (Number(item.member_price) > 0 && Number(item.member_price) < Number(item.discount_price)) {
- totalPrice += item.member_price * item.num;
- } else {
- totalPrice += item.discount_price * item.num;
- }
- }
- });
- if (siteItem.cartList.length == siteGoodsCount) {
- siteItem.checked = true;
- siteAllElectionCount += 1;
- } else {
- siteItem.checked = false;
- }
- });
- this.totalPrice = totalPrice.toFixed(2);
- this.totalCount = totalCount;
- this.checkAll = this.cartData.length == siteAllElectionCount;
- } else {
- this.totalPrice = '0.00';
- this.totalCount = 0;
- }
- this.discountCalculate();
- },
- /**
- * 删除购物车
- * @param tag
- * @param siteIndex
- * @param cartIndex
- */
- deleteCart(tag, siteIndex, cartIndex) {
- var cart_id = [];
- if (tag == 'all') {
- for (let i = 0; i < this.cartData.length; i++) {
- for (let j = 0; j < this.cartData[i].cartList.length; j++) {
- if (this.cartData[i].cartList[j].checked) cart_id.push(this.cartData[i].cartList[j].cart_id);
- }
- }
- } else {
- cart_id.push(this.cartData[siteIndex].cartList[cartIndex].cart_id);
- }
- if (cart_id.length == 0) {
- this.$util.showToast({
- title: '请选择要删除的商品'
- });
- return;
- }
-
- uni.showModal({
- title: '提示',
- content: cart_id.length > 1 ? '确定要删除这些商品吗?' : '确定要删除该商品吗?',
- success: res => {
- if (res.confirm) {
- cart_id = cart_id.toString();
-
- this.$api.sendRequest({
- url: '/api/cart/delete',
- data: {
- cart_id
- },
- success: res => {
- if (res.code >= 0) {
-
- if (tag == 'all') {
- // 全选
- for (var i = 0; i < this.cartData.length; i++) {
- for (var j = 0; j < this.cartData[i].cartList.length; j++) {
- var item = this.cartData[i].cartList[j];
- if (item.checked) {
- this.cartData[i].cartList.splice(j, 1);
- j = -1;
- }
- }
- if (this.cartData[i].cartList.length == 0) {
- this.cartData.splice(i, 1);
- i = -1;
- }
- }
-
- this.$store.dispatch('emptyCart');
- } else {
- let item = this.cartData[siteIndex].cartList;
- let goods_id = item[cartIndex].goods_id;
- let sku_id = item[cartIndex].sku_id;
-
- delete this.cartList['goods_' + goods_id]['sku_' + sku_id];
- if (Object.keys(this.cartList['goods_' + goods_id]).length == 2) {
- delete this.cartList['goods_' + goods_id];
- }
- this.$store.dispatch('cartCalculate');
-
- item.splice(cartIndex, 1);
- if (item.length == 0) this.cartData.splice(siteIndex, 1);
-
- }
-
- this.resetEditStatus();
- this.calculationTotalPrice();
- } else {
- this.$util.showToast({
- title: res.message
- });
- }
- }
- });
- }
- }
- });
- },
- /**
- * 变更购物车数量
- * @param {Object} params
- */
- cartNumChange(num, params) {
- if (isNaN(num)) return;
- let data = this.cartData[params.siteIndex].cartList[params.cartIndex],
- max_buy = data.is_limit && data.max_buy > 0 && data.max_buy < data.stock ? data.max_buy : data.stock,
- min_buy = data.min_buy > 0 ? data.min_buy : 1;
- if (num > max_buy) num = max_buy;
- if (num < min_buy) num = min_buy;
-
- let cartId = this.cartData[params.siteIndex].cartList[params.cartIndex].cart_id
-
- if (this.timeout[cartId]) clearTimeout(this.timeout[cartId])
-
- this.timeout[cartId] = setTimeout(() => {
- this.$api.sendRequest({
- url: '/api/cart/edit',
- data: {
- num,
- cart_id: cartId
- },
- success: res => {
- if (res.code >= 0) {
- let item = this.cartData[params.siteIndex].cartList[params.cartIndex];
- let goods_id = item.goods_id;
- let sku_id = item.sku_id;
- item.num = num;
-
- this.cartList['goods_' + goods_id]['sku_' + sku_id].num = num;
- this.$store.dispatch('cartCalculate');
- this.resetEditStatus();
-
- this.calculationTotalPrice();
- } else {
- this.$util.showToast({
- title: res.message
- });
- }
- }
- });
- }, 800)
- },
- /**
- * 结算
- */
- settlement() {
- if (this.totalCount > 0) {
- let cart_ids = [];
- this.cartData.forEach(siteItem => {
- siteItem.cartList.forEach(item => {
- if (item.checked) {
- cart_ids.push(item.cart_id);
- }
- });
- });
-
- if (this.discount.coupon_info && this.discount.coupon_info.receive_type == 'wait') this.receiveCoupon(
- this.discount.coupon_info.coupon_type_id, false);
-
- if (this.isSub) return;
- this.isSub = true;
-
- uni.removeStorageSync('delivery');
- uni.setStorage({
- key: 'orderCreateData',
- data: {
- cart_ids: cart_ids.toString()
- },
- success: () => {
- this.$util.redirectTo('/pages_order/payment');
- this.isSub = false;
- }
- });
- }
- },
- /**
- * 清空失效商品
- */
- clearInvalidGoods() {
- uni.showModal({
- title: '提示',
- content: '确定要清空这些商品吗?',
- success: res => {
- if (res.confirm) {
- var cart_ids = [];
- this.invalidGoods.forEach(goodsItem => {
- cart_ids.push(goodsItem.cart_id);
- });
- if (cart_ids.length) {
- this.$api.sendRequest({
- url: '/api/cart/delete',
- data: {
- cart_id: cart_ids.toString()
- },
- success: res => {
- if (res.code >= 0) {
- this.invalidGoods = [];
- this.refreshCartNumber();
- } else {
- this.$util.showToast({
- title: res.message
- });
- }
- }
- });
- }
- }
- }
- });
- },
- imageError(siteIndex, cartIndex) {
- this.cartData[siteIndex].cartList[cartIndex].sku_image = this.$util.getDefaultImage().goods;
- this.$forceUpdate();
- },
- toGoodsDetail(item) {
- this.$util.redirectTo('/pages_goods/detail', {
- sku_id: item.sku_id
- });
- },
- // 购物车数量
- refreshCartNumber() {
- if (this.storeToken) {
- this.$store.dispatch('getCartNumber');
- this.resetEditStatus();
- }
- },
- goodsLimit(event, params) {
- let data = this.cartData[params.siteIndex].cartList[params.cartIndex];
- if (event.type == 'plus') {
- if (data.max_buy > 0 && data.max_buy < data.stock) {
- this.$util.showToast({
- title: '该商品每人限购' + data.max_buy + '件'
- });
- } else {
- this.$util.showToast({
- title: '库存不足'
- });
- }
- } else {
- // 数量减至最少时,则删除商品
- this.deleteCart('single', params.siteIndex, params.cartIndex);
- // this.$util.showToast({
- // title: '最少购买' + event.value + '件'
- // });
- }
- },
- // 重置编辑状态
- resetEditStatus() {
- if (this.cartData.length) {
- for (var i = 0; i < this.cartData[0].cartList.length; i++) {
- this.cartData[0].cartList[i].edit = false;
- }
- this.$forceUpdate();
- }
- },
- changeAction() {
- this.isAction = !this.isAction;
- this.resetEditStatus();
- },
- selectSku(data) {
- let goodsSkuDetail = this.$util.deepClone(data);
- if (goodsSkuDetail.goods_spec_format) goodsSkuDetail.goods_spec_format = JSON.parse(goodsSkuDetail.goods_spec_format);
- this.goodsSkuDetail = goodsSkuDetail;
-
- this.$nextTick(() => {
- this.$refs.selectSku.show('confirm', (sku_id, num) => {
- this.$api.sendRequest({
- url: '/api/cart/editcartsku',
- data: {
- cart_id: data.cart_id,
- sku_id: sku_id,
- num: num
- },
- success: res => {
- if (res.code >= 0) {
- this.invalidGoods = [];
- this.getCartData();
- this.refreshCartNumber();
- } else {
- this.$util.showToast({
- title: res.message
- });
- }
- }
- });
- }, this.goodsSkuDetail);
- })
- },
- toggleDiscountPopup() {
- if (this.$refs.discountPopup.showPopup) this.$refs.discountPopup.close();
- else this.$refs.discountPopup.open();
- this.discountPopupShow = !this.discountPopupShow;
- },
- /**
- * 优惠信息计算
- */
- discountCalculate() {
- if (this.cartData.length == 0) return;
- let skuIds = [];
- this.cartData.forEach(siteItem => {
- siteItem.cartList.forEach(item => {
- if (item.checked) {
- skuIds.push({
- sku_id: item.sku_id,
- num: item.num
- });
- }
- });
- });
- if (skuIds.length == 0) {
- this.discount = {};
- return;
- }
-
- this.$api.sendRequest({
- url: '/api/cartcalculate/calculate',
- data: {
- sku_ids: JSON.stringify(skuIds)
- },
- success: res => {
- if (res.code >= 0 && res.data && (res.data.coupon_money > 0 || res.data.promotion_money > 0)) {
- this.discount = res.data;
- let manjian = {};
- res.data.goods_list.forEach(item => {
- if (item.promotion && item.promotion.manjian) {
- manjian['sku_' + item.sku_id] = JSON.parse(item.promotion.manjian.rule_json);
- }
- })
- Object.assign(this.manjian, manjian);
- this.refresherTriggered = false;
- } else {
- this.discount = {};
- }
- }
- })
- },
- /**
- * 领取优惠券
- * tips 失败时是否提示
- * @param {Object} couponTypeId
- */
- receiveCoupon(couponTypeId, tips = true) {
- if (this.receiveSub) return;
- this.receiveSub = true;
- this.$api.sendRequest({
- url: '/coupon/api/coupon/receive',
- data: {
- coupon_type_id: couponTypeId,
- get_type: 2 //获取方式:1订单2.直接领取3.活动领取
- },
- success: res => {
- if (res.code == 0) {
- this.$set(this.discount.coupon_info, 'receive_type', '');
- } else {
- if (tips) this.$util.showToast({
- title: res.message
- });
- this.receiveSub = false;
- }
- }
- });
- },
- // 手指触摸事件 用于菜单左滑
- touchS(e) {
- this.startX = e.touches[0].clientX;
- },
- touchE(e, cartIndex) {
- this.endX = e.changedTouches[0].clientX;
- // 触摸开始到停止的差值,小于0左滑,大于0右滑
- var disX = this.startX - this.endX;
- // cartIndex.edit = disX > 50;
- if (disX > 50) cartIndex.edit = true;
- else if (disX < 0) cartIndex.edit = false;
- this.$forceUpdate();
- },
- moneyFormat(money) {
- if (isNaN(parseFloat(money))) return money;
- return parseFloat(money).toFixed(2);
- },
- refreshSkuDetail(goodsSkuDetail) {
- this.goodsSkuDetail = goodsSkuDetail;
- },
- onRefresh(e) {
- this.refresherTriggered = true;
- if (this.storeToken) {
- this.getCartData();
- this.refreshCartNumber();
- } else {
- this.cartData = [];
- this.invalidGoods = [];
- this.calculationTotalPrice();
- }
- }
- },
+import common from './common.js';
+
+export default {
+ mixins: [common],
+ data() {
+ return {
+ cartData: [], // 购物车
+ checkAll: true,
+ totalPrice: '0.00',
+ totalCount: 0,
+ isSub: false,
+ invalidGoods: [], // 失效商品集合
+ isIphoneX: false, //判断手机是否是iphoneX以上,
+ isAction: false, // 是否操作删除
+ goodsSkuDetail: null,
+ discount: {},
+ manjian: {},
+ receiveSub: false,
+ discountPopupShow: false,
+ startX: '', // 触摸开始位置
+ endX: '', // 触摸结束位置
+ refresherTriggered: false, // 设置当前下拉刷新状态,true 表示下拉刷新已经被触发,false 表示下拉刷新未被触发
+ timeout: {}
+ };
+ },
+ onLoad() {
+ uni.hideTabBar();
+ this.isIphoneX = this.$util.uniappIsIPhoneX();
+ },
+ onShow() {
+ if (this.storeToken) {
+ this.getCartData();
+ } else {
+ this.cartData = [];
+ this.invalidGoods = [];
+ this.calculationTotalPrice();
+ }
+ },
+ onHide() {
+ this.isAction = false;
+ },
+ onUnload() {
+ if (!this.storeToken && this.$refs.login) this.$refs.login.cancelCompleteInfo();
+ },
+ onReady() {
+ if (!this.storeToken) {
+ if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
+ }
+ },
+ computed: {
+ hasData() {
+ return this.cartData.length > 0 || this.invalidGoods.length > 0;
+ }
+ },
+ methods: {
+ initNum(item) {
+ let max_buy = item.max_buy > 0 && item.max_buy < item.stock ? item.max_buy : item.stock;
+ max_buy = max_buy == 0 ? 1 : max_buy;
+ if (item.num > max_buy) return max_buy;
+ return item.num;
+ },
+ /**
+ * 获取购物车数据
+ */
+ getCartData() {
+ this.$api.sendRequest({
+ url: '/api/cart/goodslists',
+ success: res => {
+ if (res.code >= 0) {
+ if (res.data.length) this.handleCartData(res.data);
+ else this.cartData = [];
+ }
+ this.refresherTriggered = false;
+ if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
+ },
+ fail: res => {
+ if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
+ }
+ });
+ },
+ /**
+ * 处理购物车数据结构
+ */
+ handleCartData(data) {
+ this.invalidGoods = [];
+ this.cartData = [];
+ var temp = {};
+ data.forEach((item, index) => {
+ if (item.goods_state == 1) {
+ if (item.store_goods_status != undefined && item.store_goods_status != 1) {
+ this.invalidGoods.push(item);
+ } else if (item.min_buy > 0 && item.min_buy > item.stock) {
+ // 如果最小限购超出库存则该商品失效
+ this.invalidGoods.push(item);
+ } else {
+ item.checked = true;
+ item.edit = false;
+ if (temp['site_' + item.site_id] != undefined) {
+ temp['site_' + item.site_id].cartList.push(item);
+ } else {
+ temp['site_' + item.site_id] = {
+ siteId: item.site_id,
+ siteName: item.site_name,
+ edit: false,
+ checked: true,
+ cartList: [item]
+ };
+ }
+ }
+ } else {
+ this.invalidGoods.push(item);
+ }
+ });
+
+ this.cartData = [];
+ Object.keys(temp).forEach(key => {
+ this.cartData.push(temp[key]);
+ });
+ this.calculationTotalPrice();
+ if (this.cartData.length) {
+ this.cartData[0].cartList.forEach(v => {
+ if (v.sku_spec_format) {
+ v.sku_spec_format = JSON.parse(v.sku_spec_format);
+ } else {
+ v.sku_spec_format = [];
+ }
+ });
+ }
+ if (this.invalidGoods.length) {
+ this.invalidGoods.forEach(v => {
+ if (v.sku_spec_format) {
+ v.sku_spec_format = JSON.parse(v.sku_spec_format);
+ } else {
+ v.sku_spec_format = [];
+ }
+ });
+ }
+ },
+ /**
+ * 单选
+ * @param siteIndex
+ * @param index
+ */
+ singleElection(siteIndex, index) {
+ this.cartData[siteIndex].cartList[index].checked = !this.cartData[siteIndex].cartList[index].checked;
+ this.calculationTotalPrice();
+ },
+ /**
+ * 店铺全选
+ * @param checked
+ * @param index
+ */
+ siteAllElection(checked, index) {
+ this.cartData[index].checked = checked;
+ this.cartData[index].cartList.forEach(item => {
+ item.checked = checked;
+ });
+ this.calculationTotalPrice();
+ },
+ /**
+ * 全选
+ */
+ allElection(checked) {
+ if (typeof checked == 'boolean') {
+ this.checkAll = checked;
+ } else {
+ this.checkAll = !this.checkAll;
+ }
+ if (this.cartData.length) {
+ this.cartData.forEach(siteItem => {
+ siteItem.checked = this.checkAll;
+ siteItem.cartList.forEach(item => {
+ item.checked = this.checkAll;
+ });
+ });
+ }
+ this.calculationTotalPrice();
+ },
+ /**
+ * 计算购物车总价
+ */
+ calculationTotalPrice() {
+ if (this.cartData.length) {
+ let totalPrice = 0,
+ totalCount = 0,
+ siteAllElectionCount = 0;
+
+ this.cartData.forEach(siteItem => {
+ let siteGoodsCount = 0;
+ siteItem.cartList.forEach(item => {
+ if (item.checked) {
+ siteGoodsCount += 1;
+ totalCount += parseInt(item.num);
+ if (Number(item.member_price) > 0 && Number(item.member_price) < Number(item.discount_price)) {
+ totalPrice += item.member_price * item.num;
+ } else {
+ totalPrice += item.discount_price * item.num;
+ }
+ }
+ });
+ if (siteItem.cartList.length == siteGoodsCount) {
+ siteItem.checked = true;
+ siteAllElectionCount += 1;
+ } else {
+ siteItem.checked = false;
+ }
+ });
+ this.totalPrice = totalPrice.toFixed(2);
+ this.totalCount = totalCount;
+ this.checkAll = this.cartData.length == siteAllElectionCount;
+ } else {
+ this.totalPrice = '0.00';
+ this.totalCount = 0;
+ }
+ this.discountCalculate();
+ },
+ /**
+ * 删除购物车
+ * @param tag
+ * @param siteIndex
+ * @param cartIndex
+ */
+ deleteCart(tag, siteIndex, cartIndex) {
+ var cart_id = [];
+ if (tag == 'all') {
+ for (let i = 0; i < this.cartData.length; i++) {
+ for (let j = 0; j < this.cartData[i].cartList.length; j++) {
+ if (this.cartData[i].cartList[j].checked) cart_id.push(this.cartData[i].cartList[j].cart_id);
+ }
+ }
+ } else {
+ cart_id.push(this.cartData[siteIndex].cartList[cartIndex].cart_id);
+ }
+ if (cart_id.length == 0) {
+ this.$util.showToast({
+ title: $lang('goods.public.js.cart.l236')
+ });
+ return;
+ }
+
+ uni.showModal({
+ title: $lang('common.wxwork-contact.l202.t0'),
+ content: cart_id.length > 1 ? '确定要删除这些商品吗?' : $lang('goods.public.js.cart.l243'),
+ success: res => {
+ if (res.confirm) {
+ cart_id = cart_id.toString();
+
+ this.$api.sendRequest({
+ url: '/api/cart/delete',
+ data: {
+ cart_id
+ },
+ success: res => {
+ if (res.code >= 0) {
+
+ if (tag == 'all') {
+ // 全选
+ for (var i = 0; i < this.cartData.length; i++) {
+ for (var j = 0; j < this.cartData[i].cartList.length; j++) {
+ var item = this.cartData[i].cartList[j];
+ if (item.checked) {
+ this.cartData[i].cartList.splice(j, 1);
+ j = -1;
+ }
+ }
+ if (this.cartData[i].cartList.length == 0) {
+ this.cartData.splice(i, 1);
+ i = -1;
+ }
+ }
+
+ this.$store.dispatch('emptyCart');
+ } else {
+ let item = this.cartData[siteIndex].cartList;
+ let goods_id = item[cartIndex].goods_id;
+ let sku_id = item[cartIndex].sku_id;
+
+ delete this.cartList['goods_' + goods_id]['sku_' + sku_id];
+ if (Object.keys(this.cartList['goods_' + goods_id]).length == 2) {
+ delete this.cartList['goods_' + goods_id];
+ }
+ this.$store.dispatch('cartCalculate');
+
+ item.splice(cartIndex, 1);
+ if (item.length == 0) this.cartData.splice(siteIndex, 1);
+
+ }
+
+ this.resetEditStatus();
+ this.calculationTotalPrice();
+ } else {
+ this.$util.showToast({
+ title: res.message
+ });
+ }
+ }
+ });
+ }
+ }
+ });
+ },
+ /**
+ * 变更购物车数量
+ * @param {Object} params
+ */
+ cartNumChange(num, params) {
+ if (isNaN(num)) return;
+ let data = this.cartData[params.siteIndex].cartList[params.cartIndex],
+ max_buy = data.is_limit && data.max_buy > 0 && data.max_buy < data.stock ? data.max_buy : data.stock,
+ min_buy = data.min_buy > 0 ? data.min_buy : 1;
+ if (num > max_buy) num = max_buy;
+ if (num < min_buy) num = min_buy;
+
+ let cartId = this.cartData[params.siteIndex].cartList[params.cartIndex].cart_id
+
+ if (this.timeout[cartId]) clearTimeout(this.timeout[cartId])
+
+ this.timeout[cartId] = setTimeout(() => {
+ this.$api.sendRequest({
+ url: '/api/cart/edit',
+ data: {
+ num,
+ cart_id: cartId
+ },
+ success: res => {
+ if (res.code >= 0) {
+ let item = this.cartData[params.siteIndex].cartList[params.cartIndex];
+ let goods_id = item.goods_id;
+ let sku_id = item.sku_id;
+ item.num = num;
+
+ this.cartList['goods_' + goods_id]['sku_' + sku_id].num = num;
+ this.$store.dispatch('cartCalculate');
+ this.resetEditStatus();
+
+ this.calculationTotalPrice();
+ } else {
+ this.$util.showToast({
+ title: res.message
+ });
+ }
+ }
+ });
+ }, 800)
+ },
+ /**
+ * 结算
+ */
+ settlement() {
+ if (this.totalCount > 0) {
+ let cart_ids = [];
+ this.cartData.forEach(siteItem => {
+ siteItem.cartList.forEach(item => {
+ if (item.checked) {
+ cart_ids.push(item.cart_id);
+ }
+ });
+ });
+
+ if (this.discount.coupon_info && this.discount.coupon_info.receive_type == 'wait') this.receiveCoupon(
+ this.discount.coupon_info.coupon_type_id, false);
+
+ if (this.isSub) return;
+ this.isSub = true;
+
+ uni.removeStorageSync('delivery');
+ uni.setStorage({
+ key: 'orderCreateData',
+ data: {
+ cart_ids: cart_ids.toString()
+ },
+ success: () => {
+ this.$util.redirectTo('/pages_order/payment');
+ this.isSub = false;
+ }
+ });
+ }
+ },
+ /**
+ * 清空失效商品
+ */
+ clearInvalidGoods() {
+ uni.showModal({
+ title: $lang('common.wxwork-contact.l202.t0'),
+ content: $lang('goods.public.js.cart.l385'),
+ success: res => {
+ if (res.confirm) {
+ var cart_ids = [];
+ this.invalidGoods.forEach(goodsItem => {
+ cart_ids.push(goodsItem.cart_id);
+ });
+ if (cart_ids.length) {
+ this.$api.sendRequest({
+ url: '/api/cart/delete',
+ data: {
+ cart_id: cart_ids.toString()
+ },
+ success: res => {
+ if (res.code >= 0) {
+ this.invalidGoods = [];
+ this.refreshCartNumber();
+ } else {
+ this.$util.showToast({
+ title: res.message
+ });
+ }
+ }
+ });
+ }
+ }
+ }
+ });
+ },
+ imageError(siteIndex, cartIndex) {
+ this.cartData[siteIndex].cartList[cartIndex].sku_image = this.$util.getDefaultImage().goods;
+ this.$forceUpdate();
+ },
+ toGoodsDetail(item) {
+ this.$util.redirectTo('/pages_goods/detail', {
+ sku_id: item.sku_id
+ });
+ },
+ // 购物车数量
+ refreshCartNumber() {
+ if (this.storeToken) {
+ this.$store.dispatch('getCartNumber');
+ this.resetEditStatus();
+ }
+ },
+ goodsLimit(event, params) {
+ let data = this.cartData[params.siteIndex].cartList[params.cartIndex];
+ if (event.type == 'plus') {
+ if (data.max_buy > 0 && data.max_buy < data.stock) {
+ this.$util.showToast({
+ title: $lang('common.ns-goods-sku.ns-goods-sku-category.l278.t0') + data.max_buy + $lang('common.ns-goods-sku.ns-goods-sku-index.l150.t0')
+ });
+ } else {
+ this.$util.showToast({
+ title: $lang('common.ns-goods-sku.ns-goods-sku-category.l264.t0')
+ });
+ }
+ } else {
+ // 数量减至最少时,则删除商品
+ this.deleteCart('single', params.siteIndex, params.cartIndex);
+ // this.$util.showToast({
+ // title: '最少购买' + event.value + '件'
+ // });
+ }
+ },
+ // 重置编辑状态
+ resetEditStatus() {
+ if (this.cartData.length) {
+ for (var i = 0; i < this.cartData[0].cartList.length; i++) {
+ this.cartData[0].cartList[i].edit = false;
+ }
+ this.$forceUpdate();
+ }
+ },
+ changeAction() {
+ this.isAction = !this.isAction;
+ this.resetEditStatus();
+ },
+ selectSku(data) {
+ let goodsSkuDetail = this.$util.deepClone(data);
+ if (goodsSkuDetail.goods_spec_format) goodsSkuDetail.goods_spec_format = JSON.parse(goodsSkuDetail.goods_spec_format);
+ this.goodsSkuDetail = goodsSkuDetail;
+
+ this.$nextTick(() => {
+ this.$refs.selectSku.show('confirm', (sku_id, num) => {
+ this.$api.sendRequest({
+ url: '/api/cart/editcartsku',
+ data: {
+ cart_id: data.cart_id,
+ sku_id: sku_id,
+ num: num
+ },
+ success: res => {
+ if (res.code >= 0) {
+ this.invalidGoods = [];
+ this.getCartData();
+ this.refreshCartNumber();
+ } else {
+ this.$util.showToast({
+ title: res.message
+ });
+ }
+ }
+ });
+ }, this.goodsSkuDetail);
+ })
+ },
+ toggleDiscountPopup() {
+ if (this.$refs.discountPopup.showPopup) this.$refs.discountPopup.close();
+ else this.$refs.discountPopup.open();
+ this.discountPopupShow = !this.discountPopupShow;
+ },
+ /**
+ * 优惠信息计算
+ */
+ discountCalculate() {
+ if (this.cartData.length == 0) return;
+ let skuIds = [];
+ this.cartData.forEach(siteItem => {
+ siteItem.cartList.forEach(item => {
+ if (item.checked) {
+ skuIds.push({
+ sku_id: item.sku_id,
+ num: item.num
+ });
+ }
+ });
+ });
+ if (skuIds.length == 0) {
+ this.discount = {};
+ return;
+ }
+
+ this.$api.sendRequest({
+ url: '/api/cartcalculate/calculate',
+ data: {
+ sku_ids: JSON.stringify(skuIds)
+ },
+ success: res => {
+ if (res.code >= 0 && res.data && (res.data.coupon_money > 0 || res.data.promotion_money > 0)) {
+ this.discount = res.data;
+ let manjian = {};
+ res.data.goods_list.forEach(item => {
+ if (item.promotion && item.promotion.manjian) {
+ manjian['sku_' + item.sku_id] = JSON.parse(item.promotion.manjian.rule_json);
+ }
+ })
+ Object.assign(this.manjian, manjian);
+ this.refresherTriggered = false;
+ } else {
+ this.discount = {};
+ }
+ }
+ })
+ },
+ /**
+ * 领取优惠券
+ * tips 失败时是否提示
+ * @param {Object} couponTypeId
+ */
+ receiveCoupon(couponTypeId, tips = true) {
+ if (this.receiveSub) return;
+ this.receiveSub = true;
+ this.$api.sendRequest({
+ url: '/coupon/api/coupon/receive',
+ data: {
+ coupon_type_id: couponTypeId,
+ get_type: 2 //获取方式:1订单2.直接领取3.活动领取
+ },
+ success: res => {
+ if (res.code == 0) {
+ this.$set(this.discount.coupon_info, 'receive_type', '');
+ } else {
+ if (tips) this.$util.showToast({
+ title: res.message
+ });
+ this.receiveSub = false;
+ }
+ }
+ });
+ },
+ // 手指触摸事件 用于菜单左滑
+ touchS(e) {
+ this.startX = e.touches[0].clientX;
+ },
+ touchE(e, cartIndex) {
+ this.endX = e.changedTouches[0].clientX;
+ // 触摸开始到停止的差值,小于0左滑,大于0右滑
+ var disX = this.startX - this.endX;
+ // cartIndex.edit = disX > 50;
+ if (disX > 50) cartIndex.edit = true;
+ else if (disX < 0) cartIndex.edit = false;
+ this.$forceUpdate();
+ },
+ moneyFormat(money) {
+ if (isNaN(parseFloat(money))) return money;
+ return parseFloat(money).toFixed(2);
+ },
+ refreshSkuDetail(goodsSkuDetail) {
+ this.goodsSkuDetail = goodsSkuDetail;
+ },
+ onRefresh(e) {
+ this.refresherTriggered = true;
+ if (this.storeToken) {
+ this.getCartData();
+ this.refreshCartNumber();
+ } else {
+ this.cartData = [];
+ this.invalidGoods = [];
+ this.calculationTotalPrice();
+ }
+ }
+ },
}
\ No newline at end of file
diff --git a/pages_goods/public/js/detail.js b/pages_goods/public/js/detail.js
index 787a955..76ab684 100644
--- a/pages_goods/public/js/detail.js
+++ b/pages_goods/public/js/detail.js
@@ -1,525 +1,525 @@
-export default {
- data() {
- return {
- goodsRoute: '/pages_goods/detail',
- couponList: [], //优惠券列表
- couponBtnSwitch: false, //获取优惠券防止重复提交
-
- posterApi: '/api/goods/poster',
-
- //满减活动
- manjian: {
- type: 0,
- manjian_name: "",
- rule_json: null
- },
- //组合套餐
- bundlingType: false,
- bundling: [{
- bundling_goods: {
- bl_name: '',
- sku_image: ''
- }
- }],
-
- membercard: null, // 会员卡信息
- hackReset: true,
- cardOff: false,
- informationform:[]//留言表单
-
- }
- },
- computed: {
- showDiscount() {
- var flag = false;
- if (
- this.preview == 0 &&
- this.addonIsExist.discount &&
- this.goodsSkuDetail.promotion_type == 1 &&
- this.goodsSkuDetail.discountTimeMachine &&
- (!this.goodsSkuDetail.member_price || (this.goodsSkuDetail.member_price > 0 && Number(this.goodsSkuDetail.member_price) > Number(this.goodsSkuDetail.discount_price))
- )
- ) {
- flag = true;
- }
- return flag;
- },
- memberCardDiscount() {
- let discount = 0,
- showPrice = this.goodsSkuDetail.member_price > 0 && Number(this.goodsSkuDetail.member_price) < Number(this.goodsSkuDetail.discount_price) ? this.goodsSkuDetail.member_price : this.goodsSkuDetail.discount_price;
- if (this.membercard && this.membercard.member_price > 0 && (parseFloat(showPrice) > parseFloat(this.membercard.member_price))) {
- discount = parseFloat(showPrice) - parseFloat(this.membercard.member_price);
- }
- return discount.toFixed(2);
- },
- //表单高度
- FormHeight(){
- let height = 48;
- if (this.goodsForm && this.goodsForm.length) {
- height += this.goodsForm.length * 5;
- }
- height += 'vh';
- return height;
- }
- },
- onLoad(data) {
-
- // #ifdef MP-ALIPAY
- let options = my.getLaunchOptionsSync();
- options.query && Object.assign(data, options.query)
- // #endif
-
- this.skuId = data.sku_id || 0;
- this.goodsId = data.goods_id || 0;
-
- // 小程序扫码进入
- if (data.scene) {
- var sceneParams = decodeURIComponent(data.scene);
- sceneParams = sceneParams.split('&');
- if (sceneParams.length) {
- sceneParams.forEach(item => {
- if (item.indexOf('goods_id') != -1) this.goodsId = item.split('-')[1];
- });
- }
- }
-
- // #ifdef MP-WEIXIN
- this.getShareImg();
- // #endif
- },
- async onShow() {
- //同步获取商品详情
- await this.getGoodsSkuDetail();
- },
- onHide() {
- this.couponBtnSwitch = false;
- },
- methods: {
- //拨打电话
- phoneClick(mobile){
- uni.makePhoneCall({
- phoneNumber: mobile+'',
- success(){},
- fail(){}
- })
- },
- setSkuId(val) {
- if (val) {
- this.skuId = val;
- this.getBundling();
- }
- },
- // 获取商品详情
- async getGoodsSkuDetail() {
- let res = await this.$api.sendRequest({
- url: '/api/goodssku/detail',
- async: false,
- data: {
- sku_id: this.skuId,
- goods_id: this.goodsId,
- }
- });
- let data = res.data;
- if (data.goods_sku_detail != null) {
- if (data.goods_sku_detail.promotion_type == 'presale' && data.goods_sku_detail.presale_id) {
- this.$util.redirectTo('/pages_promotion/presale/detail', {
- id: data.goods_sku_detail.presale_id,
- sku_id: this.skuId
- }, 'reLaunch');
- return;
- }
- if(uni.getStorageSync('lang') == 'en-us') data.goods_sku_detail.goods_name = data.goods_sku_detail.en_goods_name
-
- this.goodsSkuDetail = data.goods_sku_detail;
- if (!this.skuId) this.skuId = this.goodsSkuDetail.sku_id;
- if (!this.goodsId) this.goodsId = this.goodsSkuDetail.goods_id;
- // 分享参数、链接
- this.shareQuery = 'goods_id=' + this.goodsSkuDetail.goods_id;
- this.shareUrl = this.goodsRoute + '?' + this.shareQuery;
-
- // 在线客服聊天参数
- this.chatRoomParams = {
- sku_id: this.goodsSkuDetail.sku_id
- };
- let typeId = this.goodsSkuDetail.goods_promotion[0];
- if (typeId) {
- // 限时折扣
- if (typeId.discount_id) {
- this.chatRoomParams.type = 'discount'
- this.chatRoomParams.type_id = typeId.discount_id
- }
- }
-
- // 海报参数
- this.posterParams = {
- goods_id: this.goodsId
- };
-
- // 处理商品数据
- this.handleGoodsSkuData();
-
- // 限时折扣
- if (this.goodsSkuDetail.promotion_type == 1 && this.addonIsExist.discount) {
- //检测倒计时
- if ((this.goodsSkuDetail.end_time - res.timestamp) > 0) {
- this.goodsSkuDetail.discountTimeMachine = this.$util.countDown(this.goodsSkuDetail.end_time - res.timestamp);
- } else {
- this.goodsSkuDetail.promotion_type = 0;
- }
- }
- if (this.goodsSkuDetail.promotion_type == 1 && this.goodsSkuDetail.discountTimeMachine) {
- if (this.goodsSkuDetail.member_price > 0 && Number(this.goodsSkuDetail.member_price) <= Number(this.goodsSkuDetail.discount_price)) {
- this.goodsSkuDetail.show_price = this.goodsSkuDetail.member_price;
- } else {
- this.goodsSkuDetail.show_price = this.goodsSkuDetail.discount_price;
- }
- } else {
- if (this.goodsSkuDetail.member_price > 0) {
- this.goodsSkuDetail.show_price = this.goodsSkuDetail.member_price;
- } else {
- this.goodsSkuDetail.show_price = this.goodsSkuDetail.price;
- }
- }
-
- // 满减
- if (this.goodsSkuDetail.manjian) {
- this.getManjian(this.goodsSkuDetail.manjian);
- }
-
- // 会员卡
- if (this.goodsSkuDetail.membercard) {
- this.membercard = this.goodsSkuDetail.membercard;
- }
-
- // 优惠券
- if (this.goodsSkuDetail.coupon_list) {
- this.couponList = this.goodsSkuDetail.coupon_list;
- this.couponList.forEach(v => {
- if (v.count == v.lead_count) v.useState = 2;
- else if (v.max_fetch != 0 && v.member_coupon_num && v.member_coupon_num >= v.max_fetch) v.useState = 1;
- else v.useState = 0;
- });
- this.couponList = this.couponList.sort(this.sortBy('useState'))
- }
-
- // 组合套餐
- // if (this.goodsSkuDetail.bundling_list) {
- // this.handleBundlingData(this.goodsSkuDetail.bundling_list);
- // }
-
- if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
-
- } else {
- this.$util.redirectTo('/pages_tool/goods/not_exist', {}, 'redirectTo');
- }
- },
- choiceSku() {
- this.$refs.goodsSku.show("buy_now", () => {
- this.$store.dispatch('getCartNumber');
- });
- },
-
- //商品留言打开
- showinformation(){
- this.informationform = this.goodsSkuDetail.goods_form
- this.$refs.informationPopup.open();
- },
- //商品留言关闭
- closeinformationPopup(){
- this.$refs.informationPopup.close();
- },
- //保存商品留言
- saveubfirnation(){
- //缺少
- if (!this.$refs.form.verify()) return;
-
- // uni.setStorageSync('goodFormData', {
- // goods_id: this.goodsSkuDetail.goods_id,
- // form_data: this.$refs.form.formData
- // });
- this.$api.sendRequest({
- url: '/api/goods/information',
- data: {
- goods_id: this.goodsSkuDetail.goods_id,
- form_data: JSON.stringify(this.$refs.form.formData)
- },
- success: res => {
- var data = res.data;
- if (res.code == 0) {
-
- }else{
- this.$util.showToast({
- title: res.msg
- });
- }
-
-
- },
- });
- },
- // 加入购物车
- joinCart() {
- if (!this.storeToken && this.preview == 0) {
- this.$refs.login.open(this.shareUrl);
- return;
- }
- if (this.goodsSkuDetail.is_virtual == 1) {
- this.$refs.goodsSku.show("buy_now", () => {
- this.$store.dispatch('getCartNumber');
- });
- } else {
- this.$refs.goodsSku.show("join_cart", () => {
- this.$store.dispatch('getCartNumber');
- });
- }
- },
- // 立即购买
- buyNow() {
- if (!this.storeToken && this.preview == 0) {
- this.$refs.login.open(this.shareUrl);
- return;
- }
- this.$refs.goodsSku.show("buy_now", () => {
- });
- },
-
- sortBy(field) {
- //根据传过来的字段进行排序,y-x 得分从高到低,x-y 从低到高
- return (y, x) => {
- return y[field] - x[field]
- }
- },
-
- // 打开优惠券弹出层
- openCouponPopup() {
- this.$refs.couponPopup.open();
- },
- // 关闭优惠券弹出层
- closeCouponPopup() {
- this.$refs.couponPopup.close();
- },
- // 领取优惠券
- receiveCoupon(item) {
- let that = this;
- if (this.preview) return; // 开启预览,禁止任何操作和跳转
- if (this.couponBtnSwitch) return;
- this.couponBtnSwitch = true;
- if (this.storeToken) {
- this.$api.sendRequest({
- url: '/coupon/api/coupon/receive',
- data: {
- coupon_type_id: item.coupon_type_id,
- get_type: 2 //获取方式:1订单2.直接领取3.活动领取
- },
- success: res => {
- var data = res.data;
-
- let msg = '';
-
- let list = this.couponList;
- if (res.data.is_exist == 1 && res.code < 0) {
- msg = '您已领取过该优惠券,快去使用吧';
- } else if (res.code == 0) {
- msg = '领取成功,快去使用吧';
- } else {
- msg = res.message;
- }
- if (res.data.is_exist == 1) {
- for (let i = 0; i < list.length; i++) {
- if (list[i].coupon_type_id == item.coupon_type_id) {
- that.$set(that.couponList[i], 'useState', 1);
- }
- }
- } else {
- for (let i = 0; i < list.length; i++) {
- if (list[i].coupon_type_id == item.coupon_type_id) {
- that.$set(that.couponList[i], 'useState', 2);
-
- }
-
- }
- }
- this.$util.showToast({
- title: msg
- });
- that.$forceUpdate()
- this.hackReset = false;
- this.$nextTick(() => {
- this.hackReset = true;
- })
-
- this.couponBtnSwitch = false;
- },
- });
- } else {
- this.$refs.login.open(this.shareUrl);
- this.couponBtnSwitch = false;
- }
- },
-
- //-------------------------------------满减-------------------------------------
-
- //获取满减信息
- getManjian(data) {
- this.manjian = data;
- let limit = data.type == 0 ? '元' : '件';
- Object.keys(data.rule_json).forEach((key) => {
- var item = data.rule_json[key];
- if (item.coupon_data) {
- for (var i = 0; i < item.coupon_data.length; i++) {
- item.coupon_data[i].coupon_num = item.coupon_num[i]
- }
- }
- item.limit = data.type == 0 ? parseFloat(item.limit).toFixed(2) : parseInt(item.limit);
- // 满减
- if (item.discount_money != undefined) {
- if (this.manjian.manjian == undefined) {
- this.manjian.manjian = '满' + item.limit + limit + '减' + item.discount_money + '元';
- } else {
- this.manjian.manjian += ';满' + item.limit + limit + '减' + item.discount_money + '元';
- }
- }
- // 满送
- if (item.point != undefined || item.coupon != undefined) {
- let text = '';
- if (item.point != undefined) {
- text = '送' + item.point + '积分';
- }
- if (item.coupon != undefined && item.coupon_data != undefined) {
- item.coupon_data.forEach((couponItem, couponIndex) => {
- if (couponItem.type == 'discount') {
- if (text == '') text = '送' + item.coupon_num[couponIndex] + '张' + parseFloat(couponItem.discount) + '折优惠券';
- else text += '、送' + item.coupon_num[couponIndex] + '张' + parseFloat(couponItem.discount) + '折优惠券';
- } else {
- if (text == '') text = '送' + item.coupon_num[couponIndex] + '张' + parseFloat(couponItem.money) + '元优惠券';
- else text += '、送' + item.coupon_num[couponIndex] + '张' + parseFloat(couponItem.money) + '元优惠券';
- }
- })
- }
- if (this.manjian.mansong == undefined) {
- this.manjian.mansong = '满' + item.limit + limit + text;
- } else {
- this.manjian.mansong += ';' + '满' + item.limit + limit + text;
- }
- }
- // 包邮
- if (item.free_shipping != undefined) {
- if (this.manjian.free_shipping == undefined) {
- this.manjian.free_shipping = '满' + item.limit + limit + '包邮';
- } else {
- this.manjian.free_shipping += ';满' + item.limit + limit + '包邮';
- }
- }
- });
- },
- openManjianPopup() {
- this.$refs.manjianPopup.open();
- },
- closeManjianPopup() {
- this.$refs.manjianPopup.close();
- },
-
- //-------------------------------------组合套餐-------------------------------------
-
- //获取当前商品关联的组合套餐
- getBundling() {
- // 连锁门店没有营销活动
- if (this.globalStoreConfig && this.globalStoreConfig.store_business == 'store') return;
-
- this.$api.sendRequest({
- url: "/bundling/api/bundling/lists",
- data: {
- sku_id: this.skuId
- },
- success: res => {
- // this.handleBundlingData(res.data);
- }
- });
- },
- handleBundlingData(data) {
- this.bundling = data;
- if (this.bundling.length) {
-
- for (var i = 0; i < this.bundling[0].bundling_goods.length; i++) {
- if (this.bundling[0].bundling_goods[i].sku_id == this.skuId) {
- this.bundlingType = true;
- break;
- } else {
- this.bundlingType = false;
- }
- }
-
- for (var i = 0; i < this.bundling.length; i++) {
- for (var j = 0; j < this.bundling[i].bundling_goods.length; j++) {
- if (this.bundling[i].bundling_goods[j].sku_id == this.skuId) {
- this.bundling[i].bundling_goods.splice(j, 1);
- }
- }
- }
- }
- },
- // 打开组合套餐弹出层
- openBundlingPopup() {
- this.$refs.bundlingPopup.open();
- },
- // 关闭组合套餐弹出层
- closeBundlingPopup() {
- this.$refs.bundlingPopup.close();
- },
- imageError() {
- this.goodsSkuDetail.sku_image = this.$util.getDefaultImage().goods;
- this.$forceUpdate();
- },
- bundlingImageError(index, goods_index) {
- this.bundling[index].bundling_goods[goods_index].sku_image = this.$util.getDefaultImage().goods;
- this.$forceUpdate();
- },
- fenxiao() {
- this.$refs.fenxiaoPopup.show()
- },
- toGoodsDetail(item) {
- this.$util.redirectTo(this.goodsRoute, {
- sku_id: item
- });
- },
- toComoDetail(id) {
- this.$util.redirectTo('/pages_promotion/bundling/detail', {
- bl_id: id
- });
- },
- /**
- * 获取分享图
- */
- getShareImg() {
- let posterParams = {
- goods_id: this.goodsId
- };
- this.$api.sendRequest({
- url: '/api/goods/shareimg',
- data: {
- qrcode_param: JSON.stringify(posterParams)
- },
- success: res => {
- if (res.code == 0) this.shareImg = res.data.path + '?no=' + parseInt((new Date()).getTime() / 1000);
- }
- })
- },
- /**
- * 金额格式化输出
- * @param {Object} money
- */
- decimalPointFormat(money) {
- if (isNaN(parseFloat(money))) return money;
- let arr = money.toString().split(".");
- let arr1 = arr[1].split("").reverse();
- let arr2 = [];
- arr1.forEach((item, index) => {
- if (item > 1) {
- arr2 = arr1.splice(index);
- }
- });
- let str = arr2.length ? (arr[0] + "." + arr2.reverse().join("")) : arr[0];
- return str;
- }
- }
+export default {
+ data() {
+ return {
+ goodsRoute: '/pages_goods/detail',
+ couponList: [], //优惠券列表
+ couponBtnSwitch: false, //获取优惠券防止重复提交
+
+ posterApi: '/api/goods/poster',
+
+ //满减活动
+ manjian: {
+ type: 0,
+ manjian_name: "",
+ rule_json: null
+ },
+ //组合套餐
+ bundlingType: false,
+ bundling: [{
+ bundling_goods: {
+ bl_name: '',
+ sku_image: ''
+ }
+ }],
+
+ membercard: null, // 会员卡信息
+ hackReset: true,
+ cardOff: false,
+ informationform:[]//留言表单
+
+ }
+ },
+ computed: {
+ showDiscount() {
+ var flag = false;
+ if (
+ this.preview == 0 &&
+ this.addonIsExist.discount &&
+ this.goodsSkuDetail.promotion_type == 1 &&
+ this.goodsSkuDetail.discountTimeMachine &&
+ (!this.goodsSkuDetail.member_price || (this.goodsSkuDetail.member_price > 0 && Number(this.goodsSkuDetail.member_price) > Number(this.goodsSkuDetail.discount_price))
+ )
+ ) {
+ flag = true;
+ }
+ return flag;
+ },
+ memberCardDiscount() {
+ let discount = 0,
+ showPrice = this.goodsSkuDetail.member_price > 0 && Number(this.goodsSkuDetail.member_price) < Number(this.goodsSkuDetail.discount_price) ? this.goodsSkuDetail.member_price : this.goodsSkuDetail.discount_price;
+ if (this.membercard && this.membercard.member_price > 0 && (parseFloat(showPrice) > parseFloat(this.membercard.member_price))) {
+ discount = parseFloat(showPrice) - parseFloat(this.membercard.member_price);
+ }
+ return discount.toFixed(2);
+ },
+ //表单高度
+ FormHeight(){
+ let height = 48;
+ if (this.goodsForm && this.goodsForm.length) {
+ height += this.goodsForm.length * 5;
+ }
+ height += 'vh';
+ return height;
+ }
+ },
+ onLoad(data) {
+
+ // #ifdef MP-ALIPAY
+ let options = my.getLaunchOptionsSync();
+ options.query && Object.assign(data, options.query)
+ // #endif
+
+ this.skuId = data.sku_id || 0;
+ this.goodsId = data.goods_id || 0;
+
+ // 小程序扫码进入
+ if (data.scene) {
+ var sceneParams = decodeURIComponent(data.scene);
+ sceneParams = sceneParams.split('&');
+ if (sceneParams.length) {
+ sceneParams.forEach(item => {
+ if (item.indexOf('goods_id') != -1) this.goodsId = item.split('-')[1];
+ });
+ }
+ }
+
+ // #ifdef MP-WEIXIN
+ this.getShareImg();
+ // #endif
+ },
+ async onShow() {
+ //同步获取商品详情
+ await this.getGoodsSkuDetail();
+ },
+ onHide() {
+ this.couponBtnSwitch = false;
+ },
+ methods: {
+ //拨打电话
+ phoneClick(mobile){
+ uni.makePhoneCall({
+ phoneNumber: mobile+'',
+ success(){},
+ fail(){}
+ })
+ },
+ setSkuId(val) {
+ if (val) {
+ this.skuId = val;
+ this.getBundling();
+ }
+ },
+ // 获取商品详情
+ async getGoodsSkuDetail() {
+ let res = await this.$api.sendRequest({
+ url: '/api/goodssku/detail',
+ async: false,
+ data: {
+ sku_id: this.skuId,
+ goods_id: this.goodsId,
+ }
+ });
+ let data = res.data;
+ if (data.goods_sku_detail != null) {
+ if (data.goods_sku_detail.promotion_type == 'presale' && data.goods_sku_detail.presale_id) {
+ this.$util.redirectTo('/pages_promotion/presale/detail', {
+ id: data.goods_sku_detail.presale_id,
+ sku_id: this.skuId
+ }, 'reLaunch');
+ return;
+ }
+ if(uni.getStorageSync('lang') == 'en-us') data.goods_sku_detail.goods_name = data.goods_sku_detail.en_goods_name
+
+ this.goodsSkuDetail = data.goods_sku_detail;
+ if (!this.skuId) this.skuId = this.goodsSkuDetail.sku_id;
+ if (!this.goodsId) this.goodsId = this.goodsSkuDetail.goods_id;
+ // 分享参数、链接
+ this.shareQuery = 'goods_id=' + this.goodsSkuDetail.goods_id;
+ this.shareUrl = this.goodsRoute + '?' + this.shareQuery;
+
+ // 在线客服聊天参数
+ this.chatRoomParams = {
+ sku_id: this.goodsSkuDetail.sku_id
+ };
+ let typeId = this.goodsSkuDetail.goods_promotion[0];
+ if (typeId) {
+ // 限时折扣
+ if (typeId.discount_id) {
+ this.chatRoomParams.type = 'discount'
+ this.chatRoomParams.type_id = typeId.discount_id
+ }
+ }
+
+ // 海报参数
+ this.posterParams = {
+ goods_id: this.goodsId
+ };
+
+ // 处理商品数据
+ this.handleGoodsSkuData();
+
+ // 限时折扣
+ if (this.goodsSkuDetail.promotion_type == 1 && this.addonIsExist.discount) {
+ //检测倒计时
+ if ((this.goodsSkuDetail.end_time - res.timestamp) > 0) {
+ this.goodsSkuDetail.discountTimeMachine = this.$util.countDown(this.goodsSkuDetail.end_time - res.timestamp);
+ } else {
+ this.goodsSkuDetail.promotion_type = 0;
+ }
+ }
+ if (this.goodsSkuDetail.promotion_type == 1 && this.goodsSkuDetail.discountTimeMachine) {
+ if (this.goodsSkuDetail.member_price > 0 && Number(this.goodsSkuDetail.member_price) <= Number(this.goodsSkuDetail.discount_price)) {
+ this.goodsSkuDetail.show_price = this.goodsSkuDetail.member_price;
+ } else {
+ this.goodsSkuDetail.show_price = this.goodsSkuDetail.discount_price;
+ }
+ } else {
+ if (this.goodsSkuDetail.member_price > 0) {
+ this.goodsSkuDetail.show_price = this.goodsSkuDetail.member_price;
+ } else {
+ this.goodsSkuDetail.show_price = this.goodsSkuDetail.price;
+ }
+ }
+
+ // 满减
+ if (this.goodsSkuDetail.manjian) {
+ this.getManjian(this.goodsSkuDetail.manjian);
+ }
+
+ // 会员卡
+ if (this.goodsSkuDetail.membercard) {
+ this.membercard = this.goodsSkuDetail.membercard;
+ }
+
+ // 优惠券
+ if (this.goodsSkuDetail.coupon_list) {
+ this.couponList = this.goodsSkuDetail.coupon_list;
+ this.couponList.forEach(v => {
+ if (v.count == v.lead_count) v.useState = 2;
+ else if (v.max_fetch != 0 && v.member_coupon_num && v.member_coupon_num >= v.max_fetch) v.useState = 1;
+ else v.useState = 0;
+ });
+ this.couponList = this.couponList.sort(this.sortBy('useState'))
+ }
+
+ // 组合套餐
+ // if (this.goodsSkuDetail.bundling_list) {
+ // this.handleBundlingData(this.goodsSkuDetail.bundling_list);
+ // }
+
+ if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
+
+ } else {
+ this.$util.redirectTo('/pages_tool/goods/not_exist', {}, 'redirectTo');
+ }
+ },
+ choiceSku() {
+ this.$refs.goodsSku.show("buy_now", () => {
+ this.$store.dispatch('getCartNumber');
+ });
+ },
+
+ //商品留言打开
+ showinformation(){
+ this.informationform = this.goodsSkuDetail.goods_form
+ this.$refs.informationPopup.open();
+ },
+ //商品留言关闭
+ closeinformationPopup(){
+ this.$refs.informationPopup.close();
+ },
+ //保存商品留言
+ saveubfirnation(){
+ //缺少
+ if (!this.$refs.form.verify()) return;
+
+ // uni.setStorageSync('goodFormData', {
+ // goods_id: this.goodsSkuDetail.goods_id,
+ // form_data: this.$refs.form.formData
+ // });
+ this.$api.sendRequest({
+ url: '/api/goods/information',
+ data: {
+ goods_id: this.goodsSkuDetail.goods_id,
+ form_data: JSON.stringify(this.$refs.form.formData)
+ },
+ success: res => {
+ var data = res.data;
+ if (res.code == 0) {
+
+ }else{
+ this.$util.showToast({
+ title: res.msg
+ });
+ }
+
+
+ },
+ });
+ },
+ // 加入购物车
+ joinCart() {
+ if (!this.storeToken && this.preview == 0) {
+ this.$refs.login.open(this.shareUrl);
+ return;
+ }
+ if (this.goodsSkuDetail.is_virtual == 1) {
+ this.$refs.goodsSku.show("buy_now", () => {
+ this.$store.dispatch('getCartNumber');
+ });
+ } else {
+ this.$refs.goodsSku.show("join_cart", () => {
+ this.$store.dispatch('getCartNumber');
+ });
+ }
+ },
+ // 立即购买
+ buyNow() {
+ if (!this.storeToken && this.preview == 0) {
+ this.$refs.login.open(this.shareUrl);
+ return;
+ }
+ this.$refs.goodsSku.show("buy_now", () => {
+ });
+ },
+
+ sortBy(field) {
+ //根据传过来的字段进行排序,y-x 得分从高到低,x-y 从低到高
+ return (y, x) => {
+ return y[field] - x[field]
+ }
+ },
+
+ // 打开优惠券弹出层
+ openCouponPopup() {
+ this.$refs.couponPopup.open();
+ },
+ // 关闭优惠券弹出层
+ closeCouponPopup() {
+ this.$refs.couponPopup.close();
+ },
+ // 领取优惠券
+ receiveCoupon(item) {
+ let that = this;
+ if (this.preview) return; // 开启预览,禁止任何操作和跳转
+ if (this.couponBtnSwitch) return;
+ this.couponBtnSwitch = true;
+ if (this.storeToken) {
+ this.$api.sendRequest({
+ url: '/coupon/api/coupon/receive',
+ data: {
+ coupon_type_id: item.coupon_type_id,
+ get_type: 2 //获取方式:1订单2.直接领取3.活动领取
+ },
+ success: res => {
+ var data = res.data;
+
+ let msg = '';
+
+ let list = this.couponList;
+ if (res.data.is_exist == 1 && res.code < 0) {
+ msg = $lang('goods.public.js.detail.l321');
+ } else if (res.code == 0) {
+ msg = $lang('goods.public.js.detail.l323');
+ } else {
+ msg = res.message;
+ }
+ if (res.data.is_exist == 1) {
+ for (let i = 0; i < list.length; i++) {
+ if (list[i].coupon_type_id == item.coupon_type_id) {
+ that.$set(that.couponList[i], 'useState', 1);
+ }
+ }
+ } else {
+ for (let i = 0; i < list.length; i++) {
+ if (list[i].coupon_type_id == item.coupon_type_id) {
+ that.$set(that.couponList[i], 'useState', 2);
+
+ }
+
+ }
+ }
+ this.$util.showToast({
+ title: msg
+ });
+ that.$forceUpdate()
+ this.hackReset = false;
+ this.$nextTick(() => {
+ this.hackReset = true;
+ })
+
+ this.couponBtnSwitch = false;
+ },
+ });
+ } else {
+ this.$refs.login.open(this.shareUrl);
+ this.couponBtnSwitch = false;
+ }
+ },
+
+ //-------------------------------------满减-------------------------------------
+
+ //获取满减信息
+ getManjian(data) {
+ this.manjian = data;
+ let limit = data.type == 0 ? '元' : $lang('common.ns-goods-sku.ns-goods-sku-index.l150.t0');
+ Object.keys(data.rule_json).forEach((key) => {
+ var item = data.rule_json[key];
+ if (item.coupon_data) {
+ for (var i = 0; i < item.coupon_data.length; i++) {
+ item.coupon_data[i].coupon_num = item.coupon_num[i]
+ }
+ }
+ item.limit = data.type == 0 ? parseFloat(item.limit).toFixed(2) : parseInt(item.limit);
+ // 满减
+ if (item.discount_money != undefined) {
+ if (this.manjian.manjian == undefined) {
+ this.manjian.manjian = $lang('diy.diy-coupon.l32.t0') + item.limit + limit + $lang('common.register-reward.l60.t2') + item.discount_money + $lang('common.register-reward.l45.t0');
+ } else {
+ this.manjian.manjian += $lang('goods.public.js.detail.l379') + item.limit + limit + $lang('common.register-reward.l60.t2') + item.discount_money + $lang('common.register-reward.l45.t0');
+ }
+ }
+ // 满送
+ if (item.point != undefined || item.coupon != undefined) {
+ let text = '';
+ if (item.point != undefined) {
+ text = $lang('goods.public.js.detail.l386') + item.point + $lang('common.register-reward.l19.t0');
+ }
+ if (item.coupon != undefined && item.coupon_data != undefined) {
+ item.coupon_data.forEach((couponItem, couponIndex) => {
+ if (couponItem.type == 'discount') {
+ if (text == '') text = '送' + item.coupon_num[couponIndex] + '张' + parseFloat(couponItem.discount) + '折优惠券';
+ else text += $lang('goods.public.js.detail.l392') + item.coupon_num[couponIndex] + $lang('goods.public.js.detail.l392') + parseFloat(couponItem.discount) + $lang('goods.public.js.detail.l392');
+ } else {
+ if (text == '') text = '送' + item.coupon_num[couponIndex] + '张' + parseFloat(couponItem.money) + '元优惠券';
+ else text += $lang('goods.public.js.detail.l392') + item.coupon_num[couponIndex] + $lang('goods.public.js.detail.l392') + parseFloat(couponItem.money) + $lang('goods.public.js.detail.l395');
+ }
+ })
+ }
+ if (this.manjian.mansong == undefined) {
+ this.manjian.mansong = $lang('diy.diy-coupon.l32.t0') + item.limit + limit + text;
+ } else {
+ this.manjian.mansong += ';' + $lang('diy.diy-coupon.l32.t0') + item.limit + limit + text;
+ }
+ }
+ // 包邮
+ if (item.free_shipping != undefined) {
+ if (this.manjian.free_shipping == undefined) {
+ this.manjian.free_shipping = $lang('diy.diy-coupon.l32.t0') + item.limit + limit + $lang('goods.detail.l383');
+ } else {
+ this.manjian.free_shipping += $lang('goods.public.js.detail.l379') + item.limit + limit + $lang('goods.detail.l383');
+ }
+ }
+ });
+ },
+ openManjianPopup() {
+ this.$refs.manjianPopup.open();
+ },
+ closeManjianPopup() {
+ this.$refs.manjianPopup.close();
+ },
+
+ //-------------------------------------组合套餐-------------------------------------
+
+ //获取当前商品关联的组合套餐
+ getBundling() {
+ // 连锁门店没有营销活动
+ if (this.globalStoreConfig && this.globalStoreConfig.store_business == 'store') return;
+
+ this.$api.sendRequest({
+ url: "/bundling/api/bundling/lists",
+ data: {
+ sku_id: this.skuId
+ },
+ success: res => {
+ // this.handleBundlingData(res.data);
+ }
+ });
+ },
+ handleBundlingData(data) {
+ this.bundling = data;
+ if (this.bundling.length) {
+
+ for (var i = 0; i < this.bundling[0].bundling_goods.length; i++) {
+ if (this.bundling[0].bundling_goods[i].sku_id == this.skuId) {
+ this.bundlingType = true;
+ break;
+ } else {
+ this.bundlingType = false;
+ }
+ }
+
+ for (var i = 0; i < this.bundling.length; i++) {
+ for (var j = 0; j < this.bundling[i].bundling_goods.length; j++) {
+ if (this.bundling[i].bundling_goods[j].sku_id == this.skuId) {
+ this.bundling[i].bundling_goods.splice(j, 1);
+ }
+ }
+ }
+ }
+ },
+ // 打开组合套餐弹出层
+ openBundlingPopup() {
+ this.$refs.bundlingPopup.open();
+ },
+ // 关闭组合套餐弹出层
+ closeBundlingPopup() {
+ this.$refs.bundlingPopup.close();
+ },
+ imageError() {
+ this.goodsSkuDetail.sku_image = this.$util.getDefaultImage().goods;
+ this.$forceUpdate();
+ },
+ bundlingImageError(index, goods_index) {
+ this.bundling[index].bundling_goods[goods_index].sku_image = this.$util.getDefaultImage().goods;
+ this.$forceUpdate();
+ },
+ fenxiao() {
+ this.$refs.fenxiaoPopup.show()
+ },
+ toGoodsDetail(item) {
+ this.$util.redirectTo(this.goodsRoute, {
+ sku_id: item
+ });
+ },
+ toComoDetail(id) {
+ this.$util.redirectTo('/pages_promotion/bundling/detail', {
+ bl_id: id
+ });
+ },
+ /**
+ * 获取分享图
+ */
+ getShareImg() {
+ let posterParams = {
+ goods_id: this.goodsId
+ };
+ this.$api.sendRequest({
+ url: '/api/goods/shareimg',
+ data: {
+ qrcode_param: JSON.stringify(posterParams)
+ },
+ success: res => {
+ if (res.code == 0) this.shareImg = res.data.path + '?no=' + parseInt((new Date()).getTime() / 1000);
+ }
+ })
+ },
+ /**
+ * 金额格式化输出
+ * @param {Object} money
+ */
+ decimalPointFormat(money) {
+ if (isNaN(parseFloat(money))) return money;
+ let arr = money.toString().split(".");
+ let arr1 = arr[1].split("").reverse();
+ let arr2 = [];
+ arr1.forEach((item, index) => {
+ if (item > 1) {
+ arr2 = arr1.splice(index);
+ }
+ });
+ let str = arr2.length ? (arr[0] + "." + arr2.reverse().join("")) : arr[0];
+ return str;
+ }
+ }
}
\ No newline at end of file
diff --git a/pages_goods/public/js/list.js b/pages_goods/public/js/list.js
index 137c5fd..3762f02 100644
--- a/pages_goods/public/js/list.js
+++ b/pages_goods/public/js/list.js
@@ -1,502 +1,502 @@
-export default {
- data() {
- return {
- listStyle: '',
- loadingType: 'loading', //加载更多状态
- orderType: '',
- priceOrder: 'desc', //1 价格从低到高 2价格从高到低
- categoryList: [], //排序类型
- goodsList: [],
- order: '',
- sort: 'desc',
- showScreen: false,
- keyword: '',
- categoryId: 0,
- minPrice: '',
- maxPrice: '',
- isFreeShipping: false, //是否免邮
- isIphoneX: false,
- coupon: 0,
- emptyShow: false,
- isList: true, //列表样式
- //分享所需标题
- share_title: '',
- //搜索到多少件商品
- count: 0,
- //当前分类名称
- category_title: '',
- //优惠券数据
- coupon_name: '',
- //列表瀑布流数据
- listHeight: [],
- listPosition: [],
- debounce: null,
- brandId: 0,
- brandList: [], //品牌筛选项
- config: {
- fontWeight: false,
- padding: 0,
- cartEvent: "detail",
- text: "购买",
- textColor: "#FFFFFF",
- theme: "default",
- aroundRadius: 25,
- control: true,
- bgColor: "#FF6A00",
- style: "button",
- iconDiy: {
- iconType: "icon",
- icon: "",
- style: {
- fontSize: "60",
- iconBgColor: [],
- iconBgColorDeg: 0,
- iconBgImg: "",
- bgRadius: 0,
- iconColor: [
- "#000000"
- ],
- iconColorDeg: 0
- }
- }
- },
-
- langstatus:0,
- lang:uni.getStorageSync('lang')
- }
- },
-
- onLoad(options) {
- this.$api.sendRequest({
- url: '/api/lucky/status',
- data: {},
- success: res => {
- this.langstatus = res.status
- if(this.langstatus == 1){
- // this.$langConfig.refresh();
- uni.setNavigationBarTitle({
- title:uni.getStorageSync('lang') == 'en-us'?'Goods List':'商品列表'
- })
- }
- }
- });
-
- this.categoryId = options.category_id || 0;
- this.keyword = options.keyword || '';
- this.coupon = options.coupon || 0;
- this.goods_id_arr = options.goods_id_arr || 0;
- this.brandId = options.brand_id || 0;
-
- this.loadCategoryList(this.categoryId);
- this.getBrandList();
- this.isIphoneX = this.$util.uniappIsIPhoneX();
-
- //小程序分享接收source_member
- if (options.source_member) {
- uni.setStorageSync('source_member', options.source_member);
- }
- // 小程序扫码进入,接收source_member
- if (options.scene) {
- var sceneParams = decodeURIComponent(options.scene);
- sceneParams = sceneParams.split('&');
- if (sceneParams.length) {
- sceneParams.forEach(item => {
- if (item.indexOf('sku_id') != -1) this.skuId = item.split('-')[1];
- if (item.indexOf('m') != -1) uni.setStorageSync('source_member', item.split('-')[1]);
- if (item.indexOf('is_test') != -1) uni.setStorageSync('is_test', 1);
- });
- }
- }
-
- uni.onWindowResize(res => {
- if (this.debounce) clearTimeout(this.debounce);
- this.waterfallflow(0);
- })
- },
- onShow() {
- //记录分享关系
- if (this.storeToken && uni.getStorageSync('source_member')) {
- this.$util.onSourceMember(uni.getStorageSync('source_member'));
- }
- },
- /**
- * 转发分享
- */
- onShareAppMessage(res) {
- var title = '搜索到' + this.count + '件“' + this.keyword + this.category_title + this.coupon_name + '”相关的优质商品';
- let route = this.$util.getCurrentShareRoute(this.memberInfo ? this.memberInfo.member_id : 0);
- var path = route.path;
- return {
- title: title,
- path: path,
- success: res => {
- },
- fail: res => {
- }
- };
- },
- // 分享到微信朋友圈
- onShareTimeline() {
- var title = '搜索到' + this.count + '件“' + this.keyword + this.category_title + this.coupon_name + '”相关的优质商品';
- let route = this.$util.getCurrentShareRoute(this.memberInfo ? this.memberInfo.member_id : 0);
- var query = route.query;
- return {
- title: title,
- query: query,
- imageUrl: ''
- };
- },
- methods: {
- /**
- * 获取优惠券数据
- */
- couponInfo(id) {
- return new Promise(resolve => {
- this.$api.sendRequest({
- url: '/coupon/api/coupon/typeinfo',
- data: {
- coupon_type_id: id
- },
- success: res => {
- if (res.code >= 0) {
- resolve(res.data.coupon_name);
- }
- }
- });
- })
- },
- /**
- * 获取分类名称
- */
- share_select(data, id) {
- return new Promise((resolve) => {
- data.forEach((item) => {
- if (item.category_id == id) {
- resolve(item.category_name)
- }
- if (item.child_list && item.child_list.length > 0) {
- item.child_list.forEach((v) => {
- if (v.category_id == id) {
- resolve(v.category_name)
- }
- if (v.child_list && v.child_list.length > 0) {
- v.forEach((m) => {
- if (m.category_id == id) {
- resolve(m.category_name)
- }
- })
-
- }
- })
- }
- })
- })
- },
- //加载分类
- loadCategoryList(fid, sid) {
- this.$api.sendRequest({
- url: '/api/goodscategory/tree',
- data: {},
- success: res => {
- if (res.data != null) {
- this.categoryList = res.data
- }
- }
- });
- },
- getGoodsList(mescroll) {
- // #ifdef MP-HARMONY
- // 鸿蒙元服务API响应极快,可能抢在scroll-view首次渲染完成之前返回数据
- // 导致mescroll测得内容高度为0,列表不可见。首次加载延迟300ms确保DOM就绪。
- if (!this._harmonyFirstLoadDone) {
- this._harmonyFirstLoadDone = true;
- setTimeout(() => {
- this._doGetGoodsList(mescroll);
- }, 300);
- return;
- }
- // #endif
- this._doGetGoodsList(mescroll);
- },
- _doGetGoodsList(mescroll) {
- this.$api.sendRequest({
- url: '/api/goodssku/page',
- data: {
- page: mescroll.num,
- page_size: mescroll.size,
- keyword: this.keyword,
- category_id: this.categoryId,
- brand_id: this.brandId,
- min_price: this.minPrice,
- max_price: this.maxPrice,
- is_free_shipping: (this.isFreeShipping ? 1 : 0),
- order: this.order,
- sort: this.sort,
- coupon: this.coupon,
- goods_id_arr: this.goods_id_arr
- },
- success: res => {
- let newArr = []
- let msg = res.message;
- if (res.code == 0 && res.data) {
- this.count = res.data.count;
- if (res.data.page_count == 0) {
- this.emptyShow = true
- }
- newArr = res.data.list;
- newArr = newArr.map(item => {
- item.id = this.genNonDuplicate();
- return item;
- });
- } else {
- this.$util.showToast({
- title: msg
- })
- }
- this.category_title = '';
- this.coupon_name = '';
- if (res.data.config) this.config = res.data.config;
- if (this.categoryId) {
- this.share_select(this.categoryList, this.categoryId).then(resolve => {
- this.category_title = resolve
- });
- }
- if (this.coupon) {
- this.couponInfo(this.coupon).then(resolve => {
- this.coupon_name = resolve
- });
- }
- mescroll.endSuccess(newArr.length);
- //设置列表数据
- if (mescroll.num == 1) this.goodsList = []; //如果是第一页需手动制空列表
- this.goodsList = this.goodsList.concat(newArr); //追加新数据
- if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
-
- // #ifdef MP-HARMONY
- // 鸿蒙下 mescroll 初始化时 setClientHeight 在 slot 内容渲染前执行,测得高度为 0
- // 数据加载后必须主动重新测量容器高度,否则 mescroll 认为容器高度为 0,列表不可见
- // 注:scrollTo(0,0) 只能重置滚动位置,scrollTop 已是 0 时不会触发 scroll 事件,不会重测
- // mounted 阶段的重试可能已经耗尽 5 次,这里主动重置 clientNum 让测量重新有机会
- this.$nextTick(() => {
- const mescrollUni = this.$refs.mescroll && (this.$refs.mescroll.mescroll || this.$refs.mescroll);
- if (mescrollUni && typeof mescrollUni.setClientHeight === 'function') {
- mescrollUni.clientNum = null;
- mescrollUni.isExec = false;
- mescrollUni.setClientHeight();
- }
- });
- // #endif
-
- this.waterfallflow((mescroll.num - 1) * 10);
- },
- fail: res => {
- //联网失败的回调
- mescroll.endErr();
- if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
- }
- });
- },
- changeListStyle() {
- this.isList = !this.isList;
- // 鸿蒙下 isList 切换导致 :key 变化、DOM 重建,重建出来的 .goods-item @click 事件绑定会丢失
- // 主动触发 slot 重建,把事件绑定带回来
- // #ifdef MP-HARMONY
- const mescroll = this.$refs.mescroll;
- if (mescroll && typeof mescroll.forceSlotRebuild === 'function') {
- mescroll.forceSlotRebuild();
- }
- // #endif
- this.waterfallflow(0);
- },
- //筛选点击
- sortTabClick(tag) {
- if (tag == 'sale_num') {
- this.order = 'sale_num';
- this.sort = 'desc';
- } else if (tag == 'discount_price') {
- this.order = 'discount_price';
- this.sort = 'desc';
- } else if (tag == 'screen') {
- //筛选
- this.showScreen = true;
- return;
- } else {
- this.order = '';
- this.sort = '';
- }
-
- if (this.orderType === tag && tag !== 'discount_price') return;
-
- this.orderType = tag;
- if (tag === 'discount_price') {
- this.priceOrder = this.priceOrder === 'asc' ? 'desc' : 'asc';
- this.sort = this.priceOrder;
- } else {
- this.priceOrder = '';
- }
- this.emptyShow = false;
- this.goodsList = [];
- this.$refs.mescroll.refresh();
- },
- //商品详情
- toDetail(item) {
- this.$util.redirectTo('/pages_goods/detail', {
- goods_id: item.goods_id
- });
- },
- search() {
- this.emptyShow = false;
- this.goodsList = [];
- this.$refs.mescroll.refresh();
- },
- selectedCategory(categoryId) {
- this.categoryId = categoryId;
- },
- screenData() {
- if (this.minPrice != '' || this.maxPrice != '') {
- // if (!Number(this.minPrice) && this.minPrice) {
- // this.$util.showToast({
- // title: '请输入最低价'
- // });
- // return;
- // }
- if (!Number(this.maxPrice) && this.maxPrice) {
- this.$util.showToast({
- title: '请输入最高价'
- });
- return;
- }
- if (Number(this.minPrice) < 0 || Number(this.maxPrice) < 0) {
- this.$util.showToast({
- title: '筛选价格不能小于0'
- });
- return;
- }
- if (this.minPrice != '' && Number(this.minPrice) > Number(this.maxPrice) && this.maxPrice) {
-
- this.$util.showToast({
- title: '最低价不能大于最高价'
- });
- return;
- }
- if (this.maxPrice != '' && Number(this.maxPrice) < Number(this.minPrice)) {
- this.$util.showToast({
- title: '最高价不能小于最低价'
- });
- return;
- }
- }
- this.emptyShow = false;
- this.goodsList = [];
- this.$refs.mescroll.refresh();
- this.showScreen = false;
- },
- //重置数据
- resetData() {
- this.categoryId = 0
- this.minPrice = ''
- this.maxPrice = ''
- this.isFreeShipping = false
- },
- goodsImg(imgStr) {
- let imgs = imgStr.split(',');
- return imgs[0] ? this.$util.img(imgs[0], {
- size: 'mid'
- }) : this.$util.getDefaultImage().goods;
- },
- imgError(index) {
- this.goodsList[index].goods_image = this.$util.getDefaultImage().goods;
- },
- showPrice(data) {
- let price = data.discount_price;
- if (data.member_price && parseFloat(data.member_price) < parseFloat(price)) price = data.member_price;
- return price;
- },
- showMarketPrice(item) {
- if (item.market_price_show) {
- let price = this.showPrice(item);
- if (item.market_price > 0) {
- return item.market_price;
- } else if (parseFloat(item.price) > parseFloat(price)) {
- return item.price;
- }
- }
- return '';
- },
- goodsTag(data) {
- return data.label_name || '';
- },
- /**
- * 瀑布流
- */
- waterfallflow(start = 0) {
- if (!this.isList) {
- //页面渲染完成后的事件
- this.$nextTick(() => {
- setTimeout(() => {
- let listHeight = [];
- let listPosition = [];
- if (start != 0) {
- listHeight = this.listHeight;
- listPosition = this.listPosition;
- }
- let column = 2;
- const query = uni.createSelectorQuery().in(this);
- query.selectAll('.double-column .goods-item').boundingClientRect(data => {
- for (let i = start; i < data.length; i++) {
- if (i < column) {
- let position = {};
- position.top = uni.upx2px(20) + 'px';
- if (i % column == 0) {
- position.left = data[i].width * i + "px";
- } else {
- position.left = data[i].width * i + (i % column * uni
- .upx2px(30)) + "px";
- }
- listPosition[i] = position;
- listHeight[i] = data[i].height + uni.upx2px(20);
- } else {
- let minHeight = Math.min(...listHeight); // 找到第一列的最小高度
- let minIndex = listHeight.findIndex(item => item === minHeight) // 找到最小高度的索引
- //设置当前子元素项的位置
- let position = {};
- position.top = minHeight + uni.upx2px(20) + "px";
- position.left = listPosition[minIndex].left;
- listPosition[i] = position;
- //重新定义数组最小项的高度 进行累加
- listHeight[minIndex] += data[i].height + uni.upx2px(20);
- }
- }
- this.listHeight = listHeight;
- this.listPosition = listPosition;
- }).exec();
- }, 50)
- })
- }
- },
- getBrandList() {
- var data = {
- page: 1,
- page_size: 0
- };
- this.$api.sendRequest({
- url: '/api/goodsbrand/page',
- data: data,
- success: res => {
- if (res.code == 0 && res.data) {
- let data = res.data;
- this.brandList = data.list;
- }
- }
- });
- },
- /**
- * 添加购物车回调
- */
- addCart(id) {
- },
- genNonDuplicate(len = 6) {
- return Number(Math.random().toString().substr(3, len) + Date.now()).toString(36);
- }
- }
+export default {
+ data() {
+ return {
+ listStyle: '',
+ loadingType: 'loading', //加载更多状态
+ orderType: '',
+ priceOrder: 'desc', //1 价格从低到高 2价格从高到低
+ categoryList: [], //排序类型
+ goodsList: [],
+ order: '',
+ sort: 'desc',
+ showScreen: false,
+ keyword: '',
+ categoryId: 0,
+ minPrice: '',
+ maxPrice: '',
+ isFreeShipping: false, //是否免邮
+ isIphoneX: false,
+ coupon: 0,
+ emptyShow: false,
+ isList: true, //列表样式
+ //分享所需标题
+ share_title: '',
+ //搜索到多少件商品
+ count: 0,
+ //当前分类名称
+ category_title: '',
+ //优惠券数据
+ coupon_name: '',
+ //列表瀑布流数据
+ listHeight: [],
+ listPosition: [],
+ debounce: null,
+ brandId: 0,
+ brandList: [], //品牌筛选项
+ config: {
+ fontWeight: false,
+ padding: 0,
+ cartEvent: "detail",
+ text: $lang("common.ns-goods-recommend.l20.t0"),
+ textColor: "#FFFFFF",
+ theme: "default",
+ aroundRadius: 25,
+ control: true,
+ bgColor: "#FF6A00",
+ style: "button",
+ iconDiy: {
+ iconType: "icon",
+ icon: "",
+ style: {
+ fontSize: "60",
+ iconBgColor: [],
+ iconBgColorDeg: 0,
+ iconBgImg: "",
+ bgRadius: 0,
+ iconColor: [
+ "#000000"
+ ],
+ iconColorDeg: 0
+ }
+ }
+ },
+
+ langstatus:0,
+ lang:uni.getStorageSync('lang')
+ }
+ },
+
+ onLoad(options) {
+ this.$api.sendRequest({
+ url: '/api/lucky/status',
+ data: {},
+ success: res => {
+ this.langstatus = res.status
+ if(this.langstatus == 1){
+ // this.$langConfig.refresh();
+ uni.setNavigationBarTitle({
+ title:uni.getStorageSync('lang') == 'en-us'?'Goods List':$lang('goods.public.js.list.l78')
+ })
+ }
+ }
+ });
+
+ this.categoryId = options.category_id || 0;
+ this.keyword = options.keyword || '';
+ this.coupon = options.coupon || 0;
+ this.goods_id_arr = options.goods_id_arr || 0;
+ this.brandId = options.brand_id || 0;
+
+ this.loadCategoryList(this.categoryId);
+ this.getBrandList();
+ this.isIphoneX = this.$util.uniappIsIPhoneX();
+
+ //小程序分享接收source_member
+ if (options.source_member) {
+ uni.setStorageSync('source_member', options.source_member);
+ }
+ // 小程序扫码进入,接收source_member
+ if (options.scene) {
+ var sceneParams = decodeURIComponent(options.scene);
+ sceneParams = sceneParams.split('&');
+ if (sceneParams.length) {
+ sceneParams.forEach(item => {
+ if (item.indexOf('sku_id') != -1) this.skuId = item.split('-')[1];
+ if (item.indexOf('m') != -1) uni.setStorageSync('source_member', item.split('-')[1]);
+ if (item.indexOf('is_test') != -1) uni.setStorageSync('is_test', 1);
+ });
+ }
+ }
+
+ uni.onWindowResize(res => {
+ if (this.debounce) clearTimeout(this.debounce);
+ this.waterfallflow(0);
+ })
+ },
+ onShow() {
+ //记录分享关系
+ if (this.storeToken && uni.getStorageSync('source_member')) {
+ this.$util.onSourceMember(uni.getStorageSync('source_member'));
+ }
+ },
+ /**
+ * 转发分享
+ */
+ onShareAppMessage(res) {
+ var title = $lang('goods.public.js.list.l126') + this.count + $lang('goods.public.js.list.l126') + this.keyword + this.category_title + this.coupon_name + $lang('goods.public.js.list.l126');
+ let route = this.$util.getCurrentShareRoute(this.memberInfo ? this.memberInfo.member_id : 0);
+ var path = route.path;
+ return {
+ title: title,
+ path: path,
+ success: res => {
+ },
+ fail: res => {
+ }
+ };
+ },
+ // 分享到微信朋友圈
+ onShareTimeline() {
+ var title = $lang('goods.public.js.list.l126') + this.count + $lang('goods.public.js.list.l126') + this.keyword + this.category_title + this.coupon_name + $lang('goods.public.js.list.l126');
+ let route = this.$util.getCurrentShareRoute(this.memberInfo ? this.memberInfo.member_id : 0);
+ var query = route.query;
+ return {
+ title: title,
+ query: query,
+ imageUrl: ''
+ };
+ },
+ methods: {
+ /**
+ * 获取优惠券数据
+ */
+ couponInfo(id) {
+ return new Promise(resolve => {
+ this.$api.sendRequest({
+ url: '/coupon/api/coupon/typeinfo',
+ data: {
+ coupon_type_id: id
+ },
+ success: res => {
+ if (res.code >= 0) {
+ resolve(res.data.coupon_name);
+ }
+ }
+ });
+ })
+ },
+ /**
+ * 获取分类名称
+ */
+ share_select(data, id) {
+ return new Promise((resolve) => {
+ data.forEach((item) => {
+ if (item.category_id == id) {
+ resolve(item.category_name)
+ }
+ if (item.child_list && item.child_list.length > 0) {
+ item.child_list.forEach((v) => {
+ if (v.category_id == id) {
+ resolve(v.category_name)
+ }
+ if (v.child_list && v.child_list.length > 0) {
+ v.forEach((m) => {
+ if (m.category_id == id) {
+ resolve(m.category_name)
+ }
+ })
+
+ }
+ })
+ }
+ })
+ })
+ },
+ //加载分类
+ loadCategoryList(fid, sid) {
+ this.$api.sendRequest({
+ url: '/api/goodscategory/tree',
+ data: {},
+ success: res => {
+ if (res.data != null) {
+ this.categoryList = res.data
+ }
+ }
+ });
+ },
+ getGoodsList(mescroll) {
+ // #ifdef MP-HARMONY
+ // 鸿蒙元服务API响应极快,可能抢在scroll-view首次渲染完成之前返回数据
+ // 导致mescroll测得内容高度为0,列表不可见。首次加载延迟300ms确保DOM就绪。
+ if (!this._harmonyFirstLoadDone) {
+ this._harmonyFirstLoadDone = true;
+ setTimeout(() => {
+ this._doGetGoodsList(mescroll);
+ }, 300);
+ return;
+ }
+ // #endif
+ this._doGetGoodsList(mescroll);
+ },
+ _doGetGoodsList(mescroll) {
+ this.$api.sendRequest({
+ url: '/api/goodssku/page',
+ data: {
+ page: mescroll.num,
+ page_size: mescroll.size,
+ keyword: this.keyword,
+ category_id: this.categoryId,
+ brand_id: this.brandId,
+ min_price: this.minPrice,
+ max_price: this.maxPrice,
+ is_free_shipping: (this.isFreeShipping ? 1 : 0),
+ order: this.order,
+ sort: this.sort,
+ coupon: this.coupon,
+ goods_id_arr: this.goods_id_arr
+ },
+ success: res => {
+ let newArr = []
+ let msg = res.message;
+ if (res.code == 0 && res.data) {
+ this.count = res.data.count;
+ if (res.data.page_count == 0) {
+ this.emptyShow = true
+ }
+ newArr = res.data.list;
+ newArr = newArr.map(item => {
+ item.id = this.genNonDuplicate();
+ return item;
+ });
+ } else {
+ this.$util.showToast({
+ title: msg
+ })
+ }
+ this.category_title = '';
+ this.coupon_name = '';
+ if (res.data.config) this.config = res.data.config;
+ if (this.categoryId) {
+ this.share_select(this.categoryList, this.categoryId).then(resolve => {
+ this.category_title = resolve
+ });
+ }
+ if (this.coupon) {
+ this.couponInfo(this.coupon).then(resolve => {
+ this.coupon_name = resolve
+ });
+ }
+ mescroll.endSuccess(newArr.length);
+ //设置列表数据
+ if (mescroll.num == 1) this.goodsList = []; //如果是第一页需手动制空列表
+ this.goodsList = this.goodsList.concat(newArr); //追加新数据
+ if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
+
+ // #ifdef MP-HARMONY
+ // 鸿蒙下 mescroll 初始化时 setClientHeight 在 slot 内容渲染前执行,测得高度为 0
+ // 数据加载后必须主动重新测量容器高度,否则 mescroll 认为容器高度为 0,列表不可见
+ // 注:scrollTo(0,0) 只能重置滚动位置,scrollTop 已是 0 时不会触发 scroll 事件,不会重测
+ // mounted 阶段的重试可能已经耗尽 5 次,这里主动重置 clientNum 让测量重新有机会
+ this.$nextTick(() => {
+ const mescrollUni = this.$refs.mescroll && (this.$refs.mescroll.mescroll || this.$refs.mescroll);
+ if (mescrollUni && typeof mescrollUni.setClientHeight === 'function') {
+ mescrollUni.clientNum = null;
+ mescrollUni.isExec = false;
+ mescrollUni.setClientHeight();
+ }
+ });
+ // #endif
+
+ this.waterfallflow((mescroll.num - 1) * 10);
+ },
+ fail: res => {
+ //联网失败的回调
+ mescroll.endErr();
+ if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
+ }
+ });
+ },
+ changeListStyle() {
+ this.isList = !this.isList;
+ // 鸿蒙下 isList 切换导致 :key 变化、DOM 重建,重建出来的 .goods-item @click 事件绑定会丢失
+ // 主动触发 slot 重建,把事件绑定带回来
+ // #ifdef MP-HARMONY
+ const mescroll = this.$refs.mescroll;
+ if (mescroll && typeof mescroll.forceSlotRebuild === 'function') {
+ mescroll.forceSlotRebuild();
+ }
+ // #endif
+ this.waterfallflow(0);
+ },
+ //筛选点击
+ sortTabClick(tag) {
+ if (tag == 'sale_num') {
+ this.order = 'sale_num';
+ this.sort = 'desc';
+ } else if (tag == 'discount_price') {
+ this.order = 'discount_price';
+ this.sort = 'desc';
+ } else if (tag == 'screen') {
+ //筛选
+ this.showScreen = true;
+ return;
+ } else {
+ this.order = '';
+ this.sort = '';
+ }
+
+ if (this.orderType === tag && tag !== 'discount_price') return;
+
+ this.orderType = tag;
+ if (tag === 'discount_price') {
+ this.priceOrder = this.priceOrder === 'asc' ? 'desc' : 'asc';
+ this.sort = this.priceOrder;
+ } else {
+ this.priceOrder = '';
+ }
+ this.emptyShow = false;
+ this.goodsList = [];
+ this.$refs.mescroll.refresh();
+ },
+ //商品详情
+ toDetail(item) {
+ this.$util.redirectTo('/pages_goods/detail', {
+ goods_id: item.goods_id
+ });
+ },
+ search() {
+ this.emptyShow = false;
+ this.goodsList = [];
+ this.$refs.mescroll.refresh();
+ },
+ selectedCategory(categoryId) {
+ this.categoryId = categoryId;
+ },
+ screenData() {
+ if (this.minPrice != '' || this.maxPrice != '') {
+ // if (!Number(this.minPrice) && this.minPrice) {
+ // this.$util.showToast({
+ // title: '请输入最低价'
+ // });
+ // return;
+ // }
+ if (!Number(this.maxPrice) && this.maxPrice) {
+ this.$util.showToast({
+ title: $lang('goods.public.js.list.l365')
+ });
+ return;
+ }
+ if (Number(this.minPrice) < 0 || Number(this.maxPrice) < 0) {
+ this.$util.showToast({
+ title: $lang('goods.public.js.list.l371')
+ });
+ return;
+ }
+ if (this.minPrice != '' && Number(this.minPrice) > Number(this.maxPrice) && this.maxPrice) {
+
+ this.$util.showToast({
+ title: $lang('goods.public.js.list.l378')
+ });
+ return;
+ }
+ if (this.maxPrice != '' && Number(this.maxPrice) < Number(this.minPrice)) {
+ this.$util.showToast({
+ title: $lang('goods.public.js.list.l384')
+ });
+ return;
+ }
+ }
+ this.emptyShow = false;
+ this.goodsList = [];
+ this.$refs.mescroll.refresh();
+ this.showScreen = false;
+ },
+ //重置数据
+ resetData() {
+ this.categoryId = 0
+ this.minPrice = ''
+ this.maxPrice = ''
+ this.isFreeShipping = false
+ },
+ goodsImg(imgStr) {
+ let imgs = imgStr.split(',');
+ return imgs[0] ? this.$util.img(imgs[0], {
+ size: 'mid'
+ }) : this.$util.getDefaultImage().goods;
+ },
+ imgError(index) {
+ this.goodsList[index].goods_image = this.$util.getDefaultImage().goods;
+ },
+ showPrice(data) {
+ let price = data.discount_price;
+ if (data.member_price && parseFloat(data.member_price) < parseFloat(price)) price = data.member_price;
+ return price;
+ },
+ showMarketPrice(item) {
+ if (item.market_price_show) {
+ let price = this.showPrice(item);
+ if (item.market_price > 0) {
+ return item.market_price;
+ } else if (parseFloat(item.price) > parseFloat(price)) {
+ return item.price;
+ }
+ }
+ return '';
+ },
+ goodsTag(data) {
+ return data.label_name || '';
+ },
+ /**
+ * 瀑布流
+ */
+ waterfallflow(start = 0) {
+ if (!this.isList) {
+ //页面渲染完成后的事件
+ this.$nextTick(() => {
+ setTimeout(() => {
+ let listHeight = [];
+ let listPosition = [];
+ if (start != 0) {
+ listHeight = this.listHeight;
+ listPosition = this.listPosition;
+ }
+ let column = 2;
+ const query = uni.createSelectorQuery().in(this);
+ query.selectAll('.double-column .goods-item').boundingClientRect(data => {
+ for (let i = start; i < data.length; i++) {
+ if (i < column) {
+ let position = {};
+ position.top = uni.upx2px(20) + 'px';
+ if (i % column == 0) {
+ position.left = data[i].width * i + "px";
+ } else {
+ position.left = data[i].width * i + (i % column * uni
+ .upx2px(30)) + "px";
+ }
+ listPosition[i] = position;
+ listHeight[i] = data[i].height + uni.upx2px(20);
+ } else {
+ let minHeight = Math.min(...listHeight); // 找到第一列的最小高度
+ let minIndex = listHeight.findIndex(item => item === minHeight) // 找到最小高度的索引
+ //设置当前子元素项的位置
+ let position = {};
+ position.top = minHeight + uni.upx2px(20) + "px";
+ position.left = listPosition[minIndex].left;
+ listPosition[i] = position;
+ //重新定义数组最小项的高度 进行累加
+ listHeight[minIndex] += data[i].height + uni.upx2px(20);
+ }
+ }
+ this.listHeight = listHeight;
+ this.listPosition = listPosition;
+ }).exec();
+ }, 50)
+ })
+ }
+ },
+ getBrandList() {
+ var data = {
+ page: 1,
+ page_size: 0
+ };
+ this.$api.sendRequest({
+ url: '/api/goodsbrand/page',
+ data: data,
+ success: res => {
+ if (res.code == 0 && res.data) {
+ let data = res.data;
+ this.brandList = data.list;
+ }
+ }
+ });
+ },
+ /**
+ * 添加购物车回调
+ */
+ addCart(id) {
+ },
+ genNonDuplicate(len = 6) {
+ return Number(Math.random().toString().substr(3, len) + Date.now()).toString(36);
+ }
+ }
}
\ No newline at end of file
diff --git a/pages_order/_components/common-payment/common-payment.vue b/pages_order/_components/common-payment/common-payment.vue
index d1eeffd..64c0705 100644
--- a/pages_order/_components/common-payment/common-payment.vue
+++ b/pages_order/_components/common-payment/common-payment.vue
@@ -1,657 +1,657 @@
-
-
-
-
-
-
- 确认订单
-
-
-
-
-
-
-
-
-
-
-
-
-
- 购买虚拟类商品需填写手机号,方便商家与您联系
-
-
-
-
-
- 手机号码
-
-
-
-
-
-
-
-
-
- {{ item.title }}
-
-
-
-
-
-
-
-
-
- {{ memberAddress.name ? memberAddress.name : '' }}
- {{ memberAddress.mobile ? memberAddress.mobile : '' }}
-
- {{ memberAddress.full_address ? memberAddress.full_address : '' }}
- {{ memberAddress.address ? memberAddress.address : '' }}
-
-
-
-
-
- 请设置收货地址
-
-
-
-
-
-
-
-
-
-
-
-
- 由
- {{ storeInfo.store_name }}
- 提供配送
-
-
- 点击切换
-
-
-
-
-
- 您的附近没有可配送的门店,请选择其他配送方式
-
-
-
-
-
- {{ localMemberAddress.name ? localMemberAddress.name : '' }}
-
- {{ localMemberAddress.mobile ? localMemberAddress.mobile : '' }}
-
-
- {{ localMemberAddress.full_address ? localMemberAddress.full_address : '' }}
- {{ localMemberAddress.address ? localMemberAddress.address : '' }}
-
-
-
-
-
-
- 送达时间
-
- {{ deliveryTime ? deliveryTime : '请选择送达时间' }}
-
-
-
-
-
-
- 请设置收货地址
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ storeInfo.store_name }}
-
-
- 营业时间:{{ storeInfo.open_date }}
- {{ storeInfo.full_address }} {{ storeInfo.address }}
-
-
-
-
-
-
-
-
- 姓名
-
-
-
-
-
- 预留手机
-
-
-
-
- 提货时间
-
- {{ deliveryTime }}
-
-
-
-
- 当前无自提门店,请选择其它配送方式
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ goodsItem.sku_name }}
-
-
-
- {{ x.spec_value_name }}
-
-
-
-
-
-
- 该商品不支持{{ orderCreateData.delivery.delivery_type_name }}
-
-
-
-
- {{ goodsItem.error.message }}
-
-
-
-
- {{ $lang('common.currencySymbol') }}
- {{ parseFloat(goodsItem.price).toFixed(2).split('.')[0] }}
- .{{ parseFloat(goodsItem.price).toFixed(2).split('.')[1] }}
-
-
- x
- {{ goodsItem.num }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 买家留言
-
- {{ orderCreateData.buyer_message[calculateGoodsData.merch_id] }}
- 无留言
-
-
-
-
- 优惠券
-
-
- 已选择1张优惠券
-
-
- 不使用优惠券
-
-
-
-
-
-
-
- 共{{ calculateGoodsData.goods_num }}件
- 小计:
- {{ $lang('common.currencySymbol') }}
- {{ calculateGoodsData.goods_money | moneyFormat }}
-
-
-
-
-
-
-
-
-
-
-
- {{ paymentData.system_form.form_name }}
-
-
-
-
-
-
-
-
-
-
- 开通{{ paymentData.recommend_member_card.level_name }}
- 本单预计可省
- {{ paymentData.recommend_member_card.discount_money | moneyFormat }}
- 元
-
-
-
-
-
- {{ item.title }}
- {{ $lang('common.currencySymbol') }}{{ parseFloat(item.value) }}/{{ item.unit }}
-
-
-
-
-
-
-
-
-
- 商品金额
-
- {{ $lang('common.currencySymbol') }}
- {{ calculateData.goods_money | moneyFormat }}
-
-
-
- 运费
-
- +
- {{ $lang('common.currencySymbol') }}
- {{ calculateData.delivery_money | moneyFormat }}
-
-
-
-
-
- 优惠
-
- -
- {{ $lang('common.currencySymbol') }}
- {{ calculateData.promotion_money | moneyFormat }}
-
-
-
- 优惠券
-
- -
- {{ $lang('common.currencySymbol') }}
- {{ calculateData.coupon_money | moneyFormat }}
-
-
-
- 积分抵扣
-
- -
- {{ $lang('common.currencySymbol') }}
- {{ calculateData.point_money | moneyFormat }}
-
-
-
-
-
- 购买前请先阅读《{{ transactionAgreement.title }}》,下单即代表同意该协议
-
-
-
- 共{{ calculateData.goods_num }}件
- 合计:
- {{ $lang('common.currencySymbol') }}
- {{ parseFloat(calculateData.pay_money).toFixed(2).split('.')[0] }}
- .{{ parseFloat(calculateData.pay_money).toFixed(2).split('.')[1] }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ transactionAgreement.title }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages_order/_components/common-payment/payment.js b/pages_order/_components/common-payment/payment.js
index a6501ab..311e7c4 100644
--- a/pages_order/_components/common-payment/payment.js
+++ b/pages_order/_components/common-payment/payment.js
@@ -1,1075 +1,1075 @@
-import htmlParser from '@/common/js/html-parser';
-
-export default {
- options: {
- styleIsolation: 'shared'
- },
- data() {
- return {
- outTradeNo: '',
- isIphoneX: false,
- orderCreateData: {
- is_balance: 0,
- is_point: 1,
- is_invoice: 0, // 是否需要发票 0 无发票 1 有发票
- invoice_type: 0, // 发票类型 1 纸质 2 电子
- invoice_title_type: 1, // 抬头类型 1 个人 2 企业
- is_tax_invoice: 0, // 是否需要增值税专用发票 0 不需要 1 需要
- /*coupon: {
- coupon_id: 0
- },*/
- coupon: [],
- delivery: {},
- member_goods_card: {}, // 会员次卡
- order_key: '',
- buyer_message: ''
- },
- paymentData: null,
- calculateData: null,
- tempData: null,
- storeId: 0,
- deliveryTime: '', // 提货时间
- memberAddress: null, // 会员收货地址
- localMemberAddress: null, // 会员本地配送收货地址
- isRepeat: false,
- promotionInfo: null,
- transactionAgreement: {}, // 购买须知
- tempFormData: null,
- menuButtonBounding: {}, // 小程序胶囊属性
- storeConfig: null,
- localConfig: null,
- selectGoodsCard: {
- skuId: 0,
- itemId: 0,
- cardList: {}
- }, // 当前选择的次卡
- storeData: [],
- latitude: '',
- longitude: '',
- coupon_list: [],
- modules: [],
-
- //商户
- shop_goods_list:[],
- merchCoupon: {
- merch_id: 0,
- data: []
- },
- selectCouponId:0
- }
- },
- inject: ['promotion'],
- created() {
- // #ifdef MP
- this.menuButtonBounding = uni.getMenuButtonBoundingClientRect();
- // #endif
- this.isIphoneX = this.$util.uniappIsIPhoneX()
- if (this.storeToken) {
- Object.assign(this.orderCreateData, uni.getStorageSync(this.createDataKey))
- if (this.location) {
- this.orderCreateData.latitude = this.location.latitude;
- this.orderCreateData.longitude = this.location.longitude;
- this.latitude = this.location.latitude;
- this.longitude = this.location.longitude;
- }
- this.payment();
- } else {
- this.$nextTick(() => {
- this.$refs.loadingCover.hide();
- this.$refs.login.open(this.$util.getCurrentRoute().path)
- })
- }
- this.getTransactionAgreement();
- },
- computed: {
- goodsData() {
- if (this.paymentData) {
- this.paymentData.goods_list.forEach(item => {
- if (item.sku_spec_format) item.sku_spec_format = JSON.parse(item.sku_spec_format);
- })
- return this.paymentData;
- }
- },
- calculateGoodsData() {
- if (this.calculateData) {
- this.calculateData.goods_list.forEach(item => {
- if (item.sku_spec_format) item.sku_spec_format = JSON.parse(item.sku_spec_format);
- })
- return this.calculateData;
- }
- },
- // 余额可抵扣金额
- balanceDeduct() {
- if (this.calculateData) {
- if (this.calculateData.member_account && this.calculateData.member_account.balance_total <= parseFloat(this.calculateData.order_money).toFixed(2)) {
- return parseFloat(this.calculateData.member_account.balance_total).toFixed(2);
- } else {
- return parseFloat(this.calculateData.order_money).toFixed(2);
- }
- }
- },
- // 门店列表
- storeList() {
- return this.getStoreList();
- },
- // 门店信息
- storeInfo() {
- let storeList = this.getStoreList();
- if (storeList && this.orderCreateData.delivery && this.orderCreateData.delivery.delivery_type != 'express' && this.storeId) {
- return storeList[this.orderCreateData.delivery.store_id];
- }
- return null;
- },
- // 会员卡购买周期
- cardChargeType() {
- if (this.paymentData && this.paymentData.recommend_member_card && Object.keys(this.paymentData.recommend_member_card).length > 0) {
- let charge_rule_arr = [];
- let charge_rule = this.paymentData.recommend_member_card.charge_rule;
- Object.keys(charge_rule).forEach((key, index) => {
- switch (key) {
- case 'week':
- charge_rule_arr.push({
- 'key': key,
- 'value': charge_rule[key],
- 'title': '周卡',
- unit: '周'
- });
- break;
- case 'month':
- charge_rule_arr.push({
- 'key': key,
- 'value': charge_rule[key],
- 'title': '月卡',
- unit: '月'
- });
- break;
- case 'quarter':
- charge_rule_arr.push({
- 'key': key,
- 'value': charge_rule[key],
- 'title': '季卡',
- unit: '季'
- });
- break;
- case 'year':
- charge_rule_arr.push({
- 'key': key,
- 'value': charge_rule[key],
- 'title': '年卡',
- unit: '年'
- });
- break;
- }
- })
- return charge_rule_arr;
- }
- }
- },
- watch: {
- storeToken: function (nVal, oVal) {
- this.payment();
- },
- deliveryTime: function (nVal) {
- if (!nVal) this.$refs.timePopup.refresh();
- },
- location: function (nVal) {
- if (nVal) {
- this.orderCreateData.latitude = nVal.latitude;
- this.orderCreateData.longitude = nVal.longitude;
- this.latitude = nVal.latitude;
- this.longitude = nVal.longitude;
- this.payment();
- }
- },
- calculateGoodsData(nVal) {
- if (nVal && nVal.local_config && nVal.local_config.info.time_is_open && !this.deliveryTime) this.localtime('no');
- }
- },
- methods: {
- //多商户商品分类
- goodsSpecFormat(goods_list){
- goods_list.forEach(item => {
- if (item.sku_spec_format) item.sku_spec_format = JSON.parse(item.sku_spec_format);
- })
- return goods_list
- },
- /**
- * 父级页面onShow调用
- */
- pageShow() {
- if (uni.getStorageSync('addressBack')) {
- uni.removeStorageSync('addressBack');
- this.payment();
- }
- },
- /**
- * 获取订单结算数据
- */
- payment() {
- this.$api.sendRequest({
- url: this.api.payment,
- data: this.handleCreateData(),
- success: res => {
- if (res.code == 0 && res.data) {
- let data = res.data;
-
- // #ifdef MP-WEIXIN
- var scene = uni.getStorageSync('is_test') ? 1175 : wx.getLaunchOptionsSync().scene;
- if ([1175, 1176, 1177, 1191, 1195].indexOf(scene) != -1 && data.delivery.express_type) {
- data.delivery.express_type = data.delivery.express_type.filter(item => item.name == 'express');
- }
- // #endif
-
- if (data) {
- // 配送方式
- if (data.delivery.express_type && data.delivery.express_type.length) {
- let deliveryStorage = uni.getStorageSync('delivery');
- let delivery = data.delivery.express_type[0];
- data.delivery.express_type.forEach(item => {
- if (deliveryStorage && item.name == deliveryStorage.delivery_type) {
- delivery = item;
- }
- if (item.name == 'local') this.localConfig = item;
- if (item.name == 'store') this.storeConfig = item;
- })
- this.selectDeliveryType(delivery, false, data.member_account);
- }
- }
-
- // 地址、手机号
- if (data.is_virtual) {
- this.orderCreateData.member_address = {
- mobile: data.member_account.mobile ? data.member_account.mobile : ''
- }
- }
-
- //记录订单key
- this.orderCreateData.order_key = data.order_key;
-
- this.modules = data.modules;
-
- //记录多商户优惠券
- this.orderCreateData.coupon = data.coupon
-
- //查询优惠券
- this.getCouponList();
-
- // 处理表单数据
- data = this.handleGoodsFormData(data);
-
- // 该方法在父级组件中
- this.promotionInfo = this.promotion(data);
-
- this.paymentData = data;
-
- this.$forceUpdate();
- this.calculate();
- } else {
- this.$util.showToast({
- title: res.message
- });
-
- setTimeout(() => {
- this.$util.redirectTo(this.$util.INDEX_PAGE_URL);
- }, 1000)
- }
- }
- })
- },
- //查询优惠券
- getCouponList() {
- //查询优惠券
- if (this.modules.indexOf('coupon') != -1) {
- this.$api.sendRequest({
- url: '/api/ordercreate/getcouponlist',
- data: this.orderCreateData,
- success: res => {
- if (res.code == 0 && res.data) {
- let data = res.data;
- this.coupon_list = data;
- this.$forceUpdate();
- } else {
- this.$util.showToast({
- title: res.message
- });
- }
- }
- });
-
- // this.orderCreateData.coupon.coupon_id = 0;
- }
-
- },
- /**
- * 处理商品表单数据
- * @param {Object} data
- */
- handleGoodsFormData(data) {
- let goodsFormData = uni.getStorageSync('goodFormData');
- data.goods_list.forEach(item => {
- if (item.goods_form) {
- let formData = {};
- if (item.form_data) {
- item.form_data.map(formIem => {
- formData[formIem.id] = formIem;
- })
- } else if (goodsFormData && goodsFormData.goods_id == item.goods_id) {
- goodsFormData.form_data.map(formIem => {
- formData[formIem.id] = formIem;
- })
- }
- if (Object.keys(formData).length) {
- item.goods_form.json_data.forEach(formIem => {
- if (formData[formIem.id]) {
- formIem.val = formData[formIem.id].val;
- }
- })
- }
- }
- });
- return data;
- },
- /**
- * 订单创建
- */
- calculate() {
- this.$api.sendRequest({
- url: this.api.calculate,
- data: this.handleCreateData(),
- success: res => {
- if (this.$refs.loadingCover && this.$refs.loadingCover.isShow) this.$refs.loadingCover.hide();
- if (res.code == 0 && res.data) {
-
- // 处理表单数据
- this.calculateData = this.handleGoodsFormData(res.data);
-
- //多商户商品
- this.shop_goods_list = res.data.shop_goods_list
- //---------
- this.calculateData.coupon_list = this.coupon_list;
- if (res.data.delivery) {
- if (res.data.delivery.delivery_type == 'express') this.memberAddress = res.data.delivery.member_address;
- if (res.data.delivery.delivery_type == 'local') {
- this.localMemberAddress = res.data.delivery.member_address;
- }
- }
- // 次卡
- res.data.goods_list.forEach(item => {
- if (item.member_card_list) {
- if (this.orderCreateData.member_goods_card[item.sku_id]) {
- let itemId = this.orderCreateData.member_goods_card[item.sku_id];
- if (!item.member_card_list[itemId]) delete this.orderCreateData.member_goods_card[item.sku_id];
- }
- } else if (this.orderCreateData.member_goods_card[item.sku_id]) {
- delete this.orderCreateData.member_goods_card[item.sku_id];
- }
- });
- //多商户
- this.orderCreateData.coupon = res.data.coupon
- // if (!res.data.coupon_id) this.orderCreateData.coupon.coupon_id = 0;
- // else this.orderCreateData.coupon.coupon_id = res.data.coupon_id;
-
- this.$forceUpdate();
- } else {
- this.$util.showToast({
- title: res.message
- });
- }
- }
- })
- },
- /**
- * 提交订单
- */
- create() {
- if (!this.verify() || this.isRepeat) return;
- this.isRepeat = true;
- uni.showLoading({
- title: ''
- });
- this.$api.sendRequest({
- url: this.api.create,
- data: this.handleCreateData(),
- success: res => {
- uni.hideLoading();
- if (res.code == 0) {
- this.outTradeNo = res.data;
- uni.removeStorageSync('deliveryTime');
- uni.removeStorageSync('goodFormData');
- uni.setStorageSync('paySource', '');
- if (this.calculateData.pay_money == 0) {
- // #ifdef MP
- if (this.paymentData.is_virtual || this.orderCreateData.delivery.delivery_type == 'store') {
- this.$util.subscribeMessage('ORDER_VERIFY_OUT_TIME,VERIFY_CODE_EXPIRE,VERIFY');
- }
- // #endif
- this.$util.redirectTo('/pages_tool/pay/result', {
- code: res.data
- }, 'redirectTo');
- } else {
- this.openChoosePayment();
- }
- // 更新购物车数量
- this.$store.dispatch('getCartNumber');
- } else {
- this.$util.showToast({
- title: res.message
- });
- this.isRepeat = false;
- }
- }
- })
- },
- /**
- * 处理订单计算、创建传参
- */
- handleCreateData() {
- let data = this.$util.deepClone(this.orderCreateData);
- // 订单表单
- if (this.$refs.form) {
- data.form_data = {
- form_id: this.paymentData.system_form.id,
- form_data: this.$util.deepClone(this.$refs.form.formData)
- };
- }
- // 商品表单
- if (this.$refs.goodsForm) {
- if (!data.form_data) data.form_data = {};
- data.form_data.goods_form = {};
- this.$refs.goodsForm.forEach(item => {
- data.form_data.goods_form[item._props.customAttr.sku_id] = {
- form_id: item._props.customAttr.form_id,
- form_data: this.$util.deepClone(item.formData)
- }
- })
- }
- Object.keys(data).forEach((key) => {
- let item = data[key];
- if (typeof item == 'object') data[key] = JSON.stringify(item);
- })
-
- if (this.paymentData && this.orderCreateData.is_virtual == 0) {
- if (data.member_address && this.orderCreateData.delivery && this.orderCreateData.delivery.delivery_type != 'store') {
- delete data.member_address;
- }
- }
-
- return data;
- },
- /**
- * 打开支付弹窗
- */
- openChoosePayment() {
- // #ifdef MP
- if (this.paymentData.is_virtual) {
- this.$util.subscribeMessage('ORDER_URGE_PAYMENT,ORDER_PAY');
- } else {
- switch (this.orderCreateData.delivery.delivery_type) {
- case 'express': //物流配送
- this.$util.subscribeMessage('ORDER_URGE_PAYMENT,ORDER_PAY,ORDER_DELIVERY');
- break;
- case 'store': //门店自提
- this.$util.subscribeMessage('ORDER_URGE_PAYMENT,ORDER_PAY');
- break;
- case 'local': //同城配送
- this.$util.subscribeMessage('ORDER_URGE_PAYMENT,ORDER_PAY,ORDER_DELIVERY');
- break;
- }
- }
- // #endif
-
- this.$refs.choosePaymentPopup.getPayInfo(this.outTradeNo);
- },
- verify() {
- if (this.paymentData.is_virtual == 1) {
- if (!this.orderCreateData.member_address.mobile) {
- this.$util.showToast({
- title: '请输入预留手机'
- });
- return false;
- }
- if (!this.$util.verifyMobile(this.orderCreateData.member_address.mobile)) {
- this.$util.showToast({
- title: '请输入正确的手机号'
- });
- return false;
- }
- } else {
- if (!this.orderCreateData.delivery || !this.orderCreateData.delivery.delivery_type) {
- this.$util.showToast({
- title: '商家未设置配送方式'
- });
- return false;
- }
- if (
- (this.orderCreateData.delivery.delivery_type == 'express' && !this.memberAddress) ||
- (this.orderCreateData.delivery.delivery_type == 'local' && !this.localMemberAddress)
- ) {
- this.$util.showToast({
- title: '请先选择您的收货地址'
- });
- return false;
- }
-
- if (this.orderCreateData.delivery.delivery_type == 'store') {
- if (!this.orderCreateData.delivery.store_id) {
- this.$util.showToast({
- title: '没有可提货的门店,请选择其他配送方式'
- });
- return false;
- }
- if (!this.orderCreateData.member_address.mobile) {
- this.$util.showToast({
- title: '请输入预留手机'
- });
- return false;
- }
- if (!this.$util.verifyMobile(this.orderCreateData.member_address.mobile)) {
- this.$util.showToast({
- title: '请输入正确的手机号'
- });
- return false;
- }
- if (!this.deliveryTime) {
- this.$util.showToast({
- title: '请选择提货时间'
- });
- return false;
- }
- }
-
- if (this.orderCreateData.delivery.delivery_type == 'local') {
- if (!this.orderCreateData.delivery.store_id) {
- this.$util.showToast({
- title: '没有可配送的门店,请选择其他配送方式'
- });
- return false;
- }
- if (this.calculateGoodsData.config.local.is_use && this.calculateGoodsData.delivery.local.info.time_is_open == 1 && !this.deliveryTime) {
- this.$util.showToast({
- title: '请选择送达时间'
- });
- return false;
- }
- }
- }
-
- if (this.$refs.goodsForm) {
- let formVerify = true;
- for (let i = 0; i < this.$refs.goodsForm.length; i++) {
- let item = this.$refs.goodsForm[i];
- formVerify = item.verify();
- if (!formVerify) {
- break;
- }
- }
- if (!formVerify) return false;
- }
- if (this.paymentData.system_form) {
- let formVerify = this.$refs.form.verify();
- if (!formVerify) return false;
- }
- return true;
- },
- /**
- * 选择收货地址
- */
- selectAddress() {
- var params = {
- back: this.$util.getCurrentRoute().path,
- local: 0,
- type: 1
- }
- // 外卖配送需要定位地址
- if (this.orderCreateData.delivery.delivery_type == 'local') {
- params.local = 1;
- params.type = 2;
- }
- this.$util.redirectTo('/pages_tool/member/address', params);
- },
- /**
- * 选择配送方式
- * @param data
- * @param calculate
- * @param member_account
- */
- selectDeliveryType(data, calculate = true, member_account = null) {
- if (this.orderCreateData.delivery && this.orderCreateData.delivery.delivery_type == data.name) return;
-
- this.orderCreateData.delivery.buyer_ask_delivery_time = {
- start_date: '',
- end_date: ''
- };
- this.deliveryTime = '';
-
- let delivery = {
- delivery_type: data.name,
- delivery_type_name: data.title
- }
- // 如果是门店配送
- if (data.name == 'store' || data.name == 'local') {
- if (data.store_list[0]) {
- delivery.store_id = data.store_list[0].store_id;
- }
- this.storeId = delivery.store_id ? delivery.store_id : 0;
-
- if (!this.orderCreateData.member_address) {
- if (this.paymentData) {
- this.orderCreateData.member_address = {
- name: this.paymentData.member_account.nickname,
- mobile: this.paymentData.member_account.mobile
- };
- } else if (member_account) {
- this.orderCreateData.member_address = {
- name: member_account.nickname,
- mobile: member_account.mobile
- };
-
- }
- }
- }
-
- this.$set(this.orderCreateData, 'delivery', delivery);
- uni.setStorageSync('delivery', delivery);
-
- // 配送方式不为门店配送时
- if (this.orderCreateData.delivery.delivery_type != 'express' && !this.location) this.$util.getLocation();
- if (calculate) this.payment();
-
- if (data.name == 'store') this.storetime('no');
- if (data.name == 'local') this.localtime('no');
- },
- /**
- * 图片错误
- * @param {Object} index
- */
- imageError(index) {
- this.paymentData.goods_list[index].sku_image = this.$util.getDefaultImage().goods;
- this.calculateData.goods_list[index].sku_image = this.$util.getDefaultImage().goods;
- this.$forceUpdate();
- },
- /**
- * 选择门店
- * @param {Object} data
- */
- selectPickupPoint(data) {
- if (data.store_id != this.storeId) {
- this.storeId = data.store_id;
- this.orderCreateData.delivery.store_id = data.store_id;
- this.payment();
- this.resetDeliveryTime();
- // 存储所选门店
- let delivery = uni.getStorageSync('delivery');
- delivery.store_id = data.store_id;
- uni.setStorageSync('delivery', delivery)
- }
- this.$refs.deliveryPopup.close();
- },
- /**
- * 重置提货时间
- */
- resetDeliveryTime() {
- this.orderCreateData.delivery.buyer_ask_delivery_time = {
- start_date: '',
- end_date: ''
- };
- this.deliveryTime = '';
- uni.removeStorageSync('deliveryTime');
- },
- /**
- * 门店
- */
- storetime(type = '') {
- if (this.storeInfo) {
- let data = this.$util.deepClone(this.storeInfo);
- data.delivery_time = typeof data.delivery_time == 'string' && data.delivery_time ? JSON.parse(data.delivery_time) : data.delivery_time;
- if (!data.delivery_time || data.delivery_time.length == undefined && !data.delivery_time.length) {
- data.delivery_time = [{
- start_time: data.start_time,
- end_time: data.end_time
- }]
- }
- let obj = {
- delivery: this.orderCreateData.delivery,
- dataTime: data
- }
- this.$refs.timePopup.open(obj, type);
- this.$forceUpdate();
- }
- },
- /**
- * 选择自提时间
- * @param {Object} data
- */
- selectPickupTime(data) {
- this.deliveryTime = data.data.month + '(' + data.data.time + ')';
-
- this.orderCreateData.delivery.buyer_ask_delivery_time = {
- start_date:data.data.start_date,
- end_date:data.data.end_date
- };
-
- //将时间缓存,避免切换地址时重置
- uni.setStorageSync('deliveryTime', {
- 'deliveryTime': this.deliveryTime,
- 'buyer_ask_delivery_time': this.orderCreateData.delivery.buyer_ask_delivery_time,
- 'delivery_type': this.orderCreateData.delivery.delivery_type
- });
-
- },
- storeImgError() {
- this.storeInfo.store_image = this.$util.getDefaultImage().store;
- },
- openPopup(ref) {
- if (ref == 'deliveryPopup' && (!this.storeList || Object.keys(this.storeList).length <= 1)) return;
- this.tempData = this.$util.deepClone(this.orderCreateData);
- this.$refs[ref].open();
- },
- closePopup(ref) {
- this.orderCreateData = this.$util.deepClone(this.tempData);
- this.$refs[ref].close();
- this.tempData = null;
- },
- //优惠券单独多商户
- /**
- * 显示店铺优惠券信息
- * @param {Object} siteId
- * @param {Object} couponData
- */
- openSiteCoupon(merch_id) {
-
- this.tempData = this.$util.deepClone(this.orderCreateData);
- this.merchCoupon.merch_id = merch_id;
- this.selectCouponId = this.orderCreateData.coupon[merch_id].coupon_id;
- // this.selectCouponMoney = this.orderCreateData.coupon[siteId].coupon_money;
-
- this.merchCoupon.data = this.coupon_list[merch_id];
- this.$refs.couponPopup.open();
- this.$forceUpdate();
- },
- /**商户选择券*/
- selectCoupon(data,merch_id) {
-
- // if (this.orderCreateData.coupon[merch_id].coupon_id == data.coupon_id){
- // this.orderCreateData.coupon[merch_id].coupon_id = 0
- // }else{
- // this.orderCreateData.coupon[merch_id].coupon_id = data.coupon_id
- // };
- if (this.selectCouponId != data.coupon_id) {
- this.selectCouponId = data.coupon_id;
- } else {
- this.selectCouponId = 0;
- }
- this.$forceUpdate();
- // this.orderCreateData.coupon[merch_id].coupon_id = data.coupon_id
- },
- //确定使用优惠券
- useCpopon() {
- this.orderCreateData.coupon[this.merchCoupon.merch_id].coupon_id = this.selectCouponId;
- this.$refs.couponPopup.close();
- this.calculate();
- },
-
- //-------------------
- /**
- * 选择优惠券
- * @param {Object} data
- */
- /*selectCoupon(data) {
- if (this.orderCreateData.coupon.coupon_id == data.coupon_id) this.orderCreateData.coupon = {
- coupon_id: 0
- };
- else this.orderCreateData.coupon = {
- coupon_id: data.coupon_id
- };
- },*/
- /**
- * 使用优惠券
- */
- // useCpopon() {
- // this.$refs.couponPopup.close();
- // this.calculate();
- // },
- /**
- * 切换发票开关
- */
- changeIsInvoice() {
- if (this.orderCreateData.is_invoice == 0) {
- this.orderCreateData.is_invoice = 1;
- if (!this.orderCreateData.invoice_type) this.orderCreateData.invoice_type = this.goodsData.invoice.invoice_type.split(',')[0];
- } else {
- this.orderCreateData.is_invoice = 0;
- }
- },
- /**
- * 切换发票类型
- * @param {Object} invoice_type
- */
- changeInvoiceType(invoice_type) {
- this.orderCreateData.invoice_type = invoice_type;
- },
- /**
- * 切换发票个人还是企业
- * @param {Object} invoice_title_type
- */
- changeInvoiceTitleType(invoice_title_type) {
- this.orderCreateData.invoice_title_type = invoice_title_type;
- },
- /**
- * 切换增值税专用发票开关
- */
- changeIsTaxInvoice() {
- if (this.orderCreateData.is_tax_invoice == 0) this.orderCreateData.is_tax_invoice = 1;
- else this.orderCreateData.is_tax_invoice = 0;
- this.$forceUpdate();
- },
- /**
- * 选择发票内容
- * @param {Object} invoice_content
- */
- changeInvoiceContent(invoice_content) {
- this.orderCreateData.invoice_content = invoice_content;
- this.$forceUpdate();
- },
- /**
- * 验证发票内容
- */
- invoiceVerify() {
- if (!this.orderCreateData.invoice_title) {
- this.$util.showToast({
- title: '请填写发票抬头'
- });
- return false;
- }
- if (!this.orderCreateData.taxpayer_number && this.orderCreateData.invoice_title_type == 2) {
- this.$util.showToast({
- title: '请填写纳税人识别号'
- });
- return false;
- }
- if (this.orderCreateData.invoice_type == 1 && !this.orderCreateData.invoice_full_address && this.paymentData.is_virtual == 1) {
- this.$util.showToast({
- title: '请填写发票邮寄地址'
- });
- return false;
- }
- if (this.orderCreateData.invoice_type == 2 && !this.orderCreateData.invoice_email) {
- this.$util.showToast({
- title: '请填写邮箱'
- });
- return false;
- }
- if (this.orderCreateData.invoice_type == 2) {
- var reg = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/;
- if (!reg.test(this.orderCreateData.invoice_email)) {
- this.$util.showToast({
- title: '请填写正确的邮箱'
- });
- return false;
- }
- }
- if (!this.orderCreateData.invoice_content) {
- this.$util.showToast({
- title: '请选择发票内容'
- });
- return false;
- }
- return true;
- },
- /**
- * 保存发票设置
- */
- saveInvoice() {
- if (this.orderCreateData.is_invoice == 1 && !this.invoiceVerify()) return;
- this.calculate();
- this.$refs.invoicePopup.close();
- },
- /**
- * 保存留言
- */
- saveBuyerMessage() {
- this.$refs.buyerMessagePopup.close();
- },
- /**
- * 选择会员卡
- */
- selectMemberCard() {
- this.orderCreateData.is_open_card = this.orderCreateData.is_open_card ? 0 : 1;
- if (!this.orderCreateData.member_card_unit) this.orderCreateData.member_card_unit = this.cardChargeType[0].key;
- this.payment();
- },
- /**
- * 选择会员卡充值类型
- * @param {Object} key
- */
- selectMembercardUnit(key) {
- this.orderCreateData.member_card_unit = key;
- this.calculate();
- },
- /**
- * 使用积分抵扣
- */
- usePoint() {
- this.orderCreateData.is_point = this.orderCreateData.is_point ? 0 : 1;
- this.calculate();
- },
- /**
- * 支付弹窗关闭
- */
- payClose() {
- // 更新购物车数量
- this.$store.dispatch('getCartNumber');
- this.$util.redirectTo('/pages_order/detail', {
- order_id: this.$refs.choosePaymentPopup.payInfo.order_id
- }, 'redirectTo');
- },
-
- /**
- * 同城配送送达时间
- */
- localtime(type = '') {
- if (this.calculateGoodsData && this.calculateGoodsData.config.local) {
- let data = this.$util.deepClone(this.calculateGoodsData.delivery.local.info);
- if (Object.keys(data).length) {
- if (data.delivery_time) {
- data.end_time = data.delivery_time[(data.delivery_time.length - 1)].end_time;
- }
-
- let obj = {
- delivery: this.orderCreateData.delivery,
- dataTime: data
- }
-
- this.$refs.timePopup.open(obj, type);
- }
-
- }
- },
- /**
- * 剩余起送价
- */
- surplusStartMoney() {
- let money = 0;
- if (this.calculateData && this.calculateData.delivery && this.calculateData.delivery.delivery_type == 'local') {
- let startDeliveryMoney = this.calculateGoodsData.delivery.start_money ?? 0;
- money = parseFloat(startDeliveryMoney) - parseFloat(this.calculateData.goods_money);
- money = money < 0 ? 0 : money;
- }
- return money;
- },
- /**
- * 交易协议
- */
- getTransactionAgreement() {
- this.$api.sendRequest({
- url: '/api/order/transactionagreement',
- success: res => {
- if (res.data) {
- this.transactionAgreement = res.data;
- if (this.transactionAgreement.content) this.transactionAgreement.content = htmlParser(this.transactionAgreement.content);
- }
- }
- })
- },
- editForm(index) {
- this.tempFormData = {
- index: index,
- json_data: this.$util.deepClone(this.goodsData.goods_list[index].goods_form.json_data)
- };
- this.$refs.editFormPopup.open();
- },
- saveForm() {
- if (this.$refs.tempForm.verify()) {
- this.$set(this.paymentData.goods_list[this.tempFormData.index].goods_form, 'json_data', this.$refs.tempForm.formData);
- this.$refs.editFormPopup.close();
- }
- },
- /**
- * 切换次卡
- * @param {Object} index
- */
- selectMemberGoodsCard(index) {
- let sku_id = this.goodsData.goods_list[index].sku_id;
- this.selectGoodsCard = {
- skuId: sku_id,
- itemId: this.orderCreateData.member_goods_card[sku_id] ? this.orderCreateData.member_goods_card[sku_id] : 0,
- cardList: this.$util.deepClone(this.calculateGoodsData.goods_list[index].member_card_list),
- click: (item_id) => {
- this.selectGoodsCard.itemId = this.selectGoodsCard.itemId == item_id ? 0 : item_id;
- }
- }
- this.$refs.memberGoodsCardPopup.open();
- },
- /**
- * 选择次卡
- */
- saveMemberGoodsCard() {
- this.orderCreateData.member_goods_card[this.selectGoodsCard.skuId] = this.selectGoodsCard.itemId || 0;
- this.$refs.memberGoodsCardPopup.close();
- this.payment();
- },
- back() {
- uni.navigateBack({
- delta: 1
- });
- },
- getStoreList() {
- let storeList = null;
- if (this.orderCreateData.delivery) {
- if (this.orderCreateData.delivery.delivery_type == 'local' && this.localConfig) {
- storeList = this.localConfig.store_list;
- storeList = storeList.reduce((res, item) => {
- return {
- ...res,
- [item.store_id]: item
- };
- }, {});
-
- }
- if (this.orderCreateData.delivery.delivery_type == 'store' && this.storeConfig) {
- storeList = this.storeConfig.store_list;
- storeList = storeList.reduce((res, item) => {
- return {
- ...res,
- [item.store_id]: item
- };
- }, {});
- }
- }
- return storeList;
- },
- getStore(mescroll) {
- this.$api.sendRequest({
- url: '/api/store/getStorePage',
- data: {
- page_size: mescroll.size,
- page: mescroll.num,
- latitude: this.latitude ?? '',
- longitude: this.longitude ?? '',
- type: this.orderCreateData.delivery.delivery_type
- },
- success: res => {
- let newArr = [];
- let msg = res.message;
- if (res.code == 0 && res.data) {
- newArr = res.data.list;
- }
- mescroll.endSuccess(newArr.length);
- //设置列表数据
-
- if (mescroll.num == 1) this.storeData = []; //如果是第一页需手动制空列表
- this.storeData = this.storeData.concat(newArr); //追加新数据
- },
- fail: res => {
- mescroll.endErr();
- }
- });
- }
- },
- filters: {
- // 金额格式化输出
- moneyFormat(money) {
- return parseFloat(money).toFixed(2);
- }
- }
+import htmlParser from '@/common/js/html-parser';
+
+export default {
+ options: {
+ styleIsolation: 'shared'
+ },
+ data() {
+ return {
+ outTradeNo: '',
+ isIphoneX: false,
+ orderCreateData: {
+ is_balance: 0,
+ is_point: 1,
+ is_invoice: 0, // 是否需要发票 0 无发票 1 有发票
+ invoice_type: 0, // 发票类型 1 纸质 2 电子
+ invoice_title_type: 1, // 抬头类型 1 个人 2 企业
+ is_tax_invoice: 0, // 是否需要增值税专用发票 0 不需要 1 需要
+ /*coupon: {
+ coupon_id: 0
+ },*/
+ coupon: [],
+ delivery: {},
+ member_goods_card: {}, // 会员次卡
+ order_key: '',
+ buyer_message: ''
+ },
+ paymentData: null,
+ calculateData: null,
+ tempData: null,
+ storeId: 0,
+ deliveryTime: '', // 提货时间
+ memberAddress: null, // 会员收货地址
+ localMemberAddress: null, // 会员本地配送收货地址
+ isRepeat: false,
+ promotionInfo: null,
+ transactionAgreement: {}, // 购买须知
+ tempFormData: null,
+ menuButtonBounding: {}, // 小程序胶囊属性
+ storeConfig: null,
+ localConfig: null,
+ selectGoodsCard: {
+ skuId: 0,
+ itemId: 0,
+ cardList: {}
+ }, // 当前选择的次卡
+ storeData: [],
+ latitude: '',
+ longitude: '',
+ coupon_list: [],
+ modules: [],
+
+ //商户
+ shop_goods_list:[],
+ merchCoupon: {
+ merch_id: 0,
+ data: []
+ },
+ selectCouponId:0
+ }
+ },
+ inject: ['promotion'],
+ created() {
+ // #ifdef MP
+ this.menuButtonBounding = uni.getMenuButtonBoundingClientRect();
+ // #endif
+ this.isIphoneX = this.$util.uniappIsIPhoneX()
+ if (this.storeToken) {
+ Object.assign(this.orderCreateData, uni.getStorageSync(this.createDataKey))
+ if (this.location) {
+ this.orderCreateData.latitude = this.location.latitude;
+ this.orderCreateData.longitude = this.location.longitude;
+ this.latitude = this.location.latitude;
+ this.longitude = this.location.longitude;
+ }
+ this.payment();
+ } else {
+ this.$nextTick(() => {
+ this.$refs.loadingCover.hide();
+ this.$refs.login.open(this.$util.getCurrentRoute().path)
+ })
+ }
+ this.getTransactionAgreement();
+ },
+ computed: {
+ goodsData() {
+ if (this.paymentData) {
+ this.paymentData.goods_list.forEach(item => {
+ if (item.sku_spec_format) item.sku_spec_format = JSON.parse(item.sku_spec_format);
+ })
+ return this.paymentData;
+ }
+ },
+ calculateGoodsData() {
+ if (this.calculateData) {
+ this.calculateData.goods_list.forEach(item => {
+ if (item.sku_spec_format) item.sku_spec_format = JSON.parse(item.sku_spec_format);
+ })
+ return this.calculateData;
+ }
+ },
+ // 余额可抵扣金额
+ balanceDeduct() {
+ if (this.calculateData) {
+ if (this.calculateData.member_account && this.calculateData.member_account.balance_total <= parseFloat(this.calculateData.order_money).toFixed(2)) {
+ return parseFloat(this.calculateData.member_account.balance_total).toFixed(2);
+ } else {
+ return parseFloat(this.calculateData.order_money).toFixed(2);
+ }
+ }
+ },
+ // 门店列表
+ storeList() {
+ return this.getStoreList();
+ },
+ // 门店信息
+ storeInfo() {
+ let storeList = this.getStoreList();
+ if (storeList && this.orderCreateData.delivery && this.orderCreateData.delivery.delivery_type != 'express' && this.storeId) {
+ return storeList[this.orderCreateData.delivery.store_id];
+ }
+ return null;
+ },
+ // 会员卡购买周期
+ cardChargeType() {
+ if (this.paymentData && this.paymentData.recommend_member_card && Object.keys(this.paymentData.recommend_member_card).length > 0) {
+ let charge_rule_arr = [];
+ let charge_rule = this.paymentData.recommend_member_card.charge_rule;
+ Object.keys(charge_rule).forEach((key, index) => {
+ switch (key) {
+ case 'week':
+ charge_rule_arr.push({
+ 'key': key,
+ 'value': charge_rule[key],
+ 'title': $lang('order._components.common-payment.payment.l134.t0'),
+ unit: $lang('order._components.common-payment.payment.l135.t0')
+ });
+ break;
+ case 'month':
+ charge_rule_arr.push({
+ 'key': key,
+ 'value': charge_rule[key],
+ 'title': $lang('order._components.common-payment.payment.l142.t0'),
+ unit: $lang('common.ns-select-time.l96.t0')
+ });
+ break;
+ case 'quarter':
+ charge_rule_arr.push({
+ 'key': key,
+ 'value': charge_rule[key],
+ 'title': $lang('order._components.common-payment.payment.l150.t0'),
+ unit: $lang('order._components.common-payment.payment.l151.t0')
+ });
+ break;
+ case 'year':
+ charge_rule_arr.push({
+ 'key': key,
+ 'value': charge_rule[key],
+ 'title': $lang('order._components.common-payment.payment.l158.t0'),
+ unit: $lang('order._components.common-payment.payment.l159.t0')
+ });
+ break;
+ }
+ })
+ return charge_rule_arr;
+ }
+ }
+ },
+ watch: {
+ storeToken: function (nVal, oVal) {
+ this.payment();
+ },
+ deliveryTime: function (nVal) {
+ if (!nVal) this.$refs.timePopup.refresh();
+ },
+ location: function (nVal) {
+ if (nVal) {
+ this.orderCreateData.latitude = nVal.latitude;
+ this.orderCreateData.longitude = nVal.longitude;
+ this.latitude = nVal.latitude;
+ this.longitude = nVal.longitude;
+ this.payment();
+ }
+ },
+ calculateGoodsData(nVal) {
+ if (nVal && nVal.local_config && nVal.local_config.info.time_is_open && !this.deliveryTime) this.localtime('no');
+ }
+ },
+ methods: {
+ //多商户商品分类
+ goodsSpecFormat(goods_list){
+ goods_list.forEach(item => {
+ if (item.sku_spec_format) item.sku_spec_format = JSON.parse(item.sku_spec_format);
+ })
+ return goods_list
+ },
+ /**
+ * 父级页面onShow调用
+ */
+ pageShow() {
+ if (uni.getStorageSync('addressBack')) {
+ uni.removeStorageSync('addressBack');
+ this.payment();
+ }
+ },
+ /**
+ * 获取订单结算数据
+ */
+ payment() {
+ this.$api.sendRequest({
+ url: this.api.payment,
+ data: this.handleCreateData(),
+ success: res => {
+ if (res.code == 0 && res.data) {
+ let data = res.data;
+
+ // #ifdef MP-WEIXIN
+ var scene = uni.getStorageSync('is_test') ? 1175 : wx.getLaunchOptionsSync().scene;
+ if ([1175, 1176, 1177, 1191, 1195].indexOf(scene) != -1 && data.delivery.express_type) {
+ data.delivery.express_type = data.delivery.express_type.filter(item => item.name == 'express');
+ }
+ // #endif
+
+ if (data) {
+ // 配送方式
+ if (data.delivery.express_type && data.delivery.express_type.length) {
+ let deliveryStorage = uni.getStorageSync('delivery');
+ let delivery = data.delivery.express_type[0];
+ data.delivery.express_type.forEach(item => {
+ if (deliveryStorage && item.name == deliveryStorage.delivery_type) {
+ delivery = item;
+ }
+ if (item.name == 'local') this.localConfig = item;
+ if (item.name == 'store') this.storeConfig = item;
+ })
+ this.selectDeliveryType(delivery, false, data.member_account);
+ }
+ }
+
+ // 地址、手机号
+ if (data.is_virtual) {
+ this.orderCreateData.member_address = {
+ mobile: data.member_account.mobile ? data.member_account.mobile : ''
+ }
+ }
+
+ //记录订单key
+ this.orderCreateData.order_key = data.order_key;
+
+ this.modules = data.modules;
+
+ //记录多商户优惠券
+ this.orderCreateData.coupon = data.coupon
+
+ //查询优惠券
+ this.getCouponList();
+
+ // 处理表单数据
+ data = this.handleGoodsFormData(data);
+
+ // 该方法在父级组件中
+ this.promotionInfo = this.promotion(data);
+
+ this.paymentData = data;
+
+ this.$forceUpdate();
+ this.calculate();
+ } else {
+ this.$util.showToast({
+ title: res.message
+ });
+
+ setTimeout(() => {
+ this.$util.redirectTo(this.$util.INDEX_PAGE_URL);
+ }, 1000)
+ }
+ }
+ })
+ },
+ //查询优惠券
+ getCouponList() {
+ //查询优惠券
+ if (this.modules.indexOf('coupon') != -1) {
+ this.$api.sendRequest({
+ url: '/api/ordercreate/getcouponlist',
+ data: this.orderCreateData,
+ success: res => {
+ if (res.code == 0 && res.data) {
+ let data = res.data;
+ this.coupon_list = data;
+ this.$forceUpdate();
+ } else {
+ this.$util.showToast({
+ title: res.message
+ });
+ }
+ }
+ });
+
+ // this.orderCreateData.coupon.coupon_id = 0;
+ }
+
+ },
+ /**
+ * 处理商品表单数据
+ * @param {Object} data
+ */
+ handleGoodsFormData(data) {
+ let goodsFormData = uni.getStorageSync('goodFormData');
+ data.goods_list.forEach(item => {
+ if (item.goods_form) {
+ let formData = {};
+ if (item.form_data) {
+ item.form_data.map(formIem => {
+ formData[formIem.id] = formIem;
+ })
+ } else if (goodsFormData && goodsFormData.goods_id == item.goods_id) {
+ goodsFormData.form_data.map(formIem => {
+ formData[formIem.id] = formIem;
+ })
+ }
+ if (Object.keys(formData).length) {
+ item.goods_form.json_data.forEach(formIem => {
+ if (formData[formIem.id]) {
+ formIem.val = formData[formIem.id].val;
+ }
+ })
+ }
+ }
+ });
+ return data;
+ },
+ /**
+ * 订单创建
+ */
+ calculate() {
+ this.$api.sendRequest({
+ url: this.api.calculate,
+ data: this.handleCreateData(),
+ success: res => {
+ if (this.$refs.loadingCover && this.$refs.loadingCover.isShow) this.$refs.loadingCover.hide();
+ if (res.code == 0 && res.data) {
+
+ // 处理表单数据
+ this.calculateData = this.handleGoodsFormData(res.data);
+
+ //多商户商品
+ this.shop_goods_list = res.data.shop_goods_list
+ //---------
+ this.calculateData.coupon_list = this.coupon_list;
+ if (res.data.delivery) {
+ if (res.data.delivery.delivery_type == 'express') this.memberAddress = res.data.delivery.member_address;
+ if (res.data.delivery.delivery_type == 'local') {
+ this.localMemberAddress = res.data.delivery.member_address;
+ }
+ }
+ // 次卡
+ res.data.goods_list.forEach(item => {
+ if (item.member_card_list) {
+ if (this.orderCreateData.member_goods_card[item.sku_id]) {
+ let itemId = this.orderCreateData.member_goods_card[item.sku_id];
+ if (!item.member_card_list[itemId]) delete this.orderCreateData.member_goods_card[item.sku_id];
+ }
+ } else if (this.orderCreateData.member_goods_card[item.sku_id]) {
+ delete this.orderCreateData.member_goods_card[item.sku_id];
+ }
+ });
+ //多商户
+ this.orderCreateData.coupon = res.data.coupon
+ // if (!res.data.coupon_id) this.orderCreateData.coupon.coupon_id = 0;
+ // else this.orderCreateData.coupon.coupon_id = res.data.coupon_id;
+
+ this.$forceUpdate();
+ } else {
+ this.$util.showToast({
+ title: res.message
+ });
+ }
+ }
+ })
+ },
+ /**
+ * 提交订单
+ */
+ create() {
+ if (!this.verify() || this.isRepeat) return;
+ this.isRepeat = true;
+ uni.showLoading({
+ title: ''
+ });
+ this.$api.sendRequest({
+ url: this.api.create,
+ data: this.handleCreateData(),
+ success: res => {
+ uni.hideLoading();
+ if (res.code == 0) {
+ this.outTradeNo = res.data;
+ uni.removeStorageSync('deliveryTime');
+ uni.removeStorageSync('goodFormData');
+ uni.setStorageSync('paySource', '');
+ if (this.calculateData.pay_money == 0) {
+ // #ifdef MP
+ if (this.paymentData.is_virtual || this.orderCreateData.delivery.delivery_type == 'store') {
+ this.$util.subscribeMessage('ORDER_VERIFY_OUT_TIME,VERIFY_CODE_EXPIRE,VERIFY');
+ }
+ // #endif
+ this.$util.redirectTo('/pages_tool/pay/result', {
+ code: res.data
+ }, 'redirectTo');
+ } else {
+ this.openChoosePayment();
+ }
+ // 更新购物车数量
+ this.$store.dispatch('getCartNumber');
+ } else {
+ this.$util.showToast({
+ title: res.message
+ });
+ this.isRepeat = false;
+ }
+ }
+ })
+ },
+ /**
+ * 处理订单计算、创建传参
+ */
+ handleCreateData() {
+ let data = this.$util.deepClone(this.orderCreateData);
+ // 订单表单
+ if (this.$refs.form) {
+ data.form_data = {
+ form_id: this.paymentData.system_form.id,
+ form_data: this.$util.deepClone(this.$refs.form.formData)
+ };
+ }
+ // 商品表单
+ if (this.$refs.goodsForm) {
+ if (!data.form_data) data.form_data = {};
+ data.form_data.goods_form = {};
+ this.$refs.goodsForm.forEach(item => {
+ data.form_data.goods_form[item._props.customAttr.sku_id] = {
+ form_id: item._props.customAttr.form_id,
+ form_data: this.$util.deepClone(item.formData)
+ }
+ })
+ }
+ Object.keys(data).forEach((key) => {
+ let item = data[key];
+ if (typeof item == 'object') data[key] = JSON.stringify(item);
+ })
+
+ if (this.paymentData && this.orderCreateData.is_virtual == 0) {
+ if (data.member_address && this.orderCreateData.delivery && this.orderCreateData.delivery.delivery_type != 'store') {
+ delete data.member_address;
+ }
+ }
+
+ return data;
+ },
+ /**
+ * 打开支付弹窗
+ */
+ openChoosePayment() {
+ // #ifdef MP
+ if (this.paymentData.is_virtual) {
+ this.$util.subscribeMessage('ORDER_URGE_PAYMENT,ORDER_PAY');
+ } else {
+ switch (this.orderCreateData.delivery.delivery_type) {
+ case 'express': //物流配送
+ this.$util.subscribeMessage('ORDER_URGE_PAYMENT,ORDER_PAY,ORDER_DELIVERY');
+ break;
+ case 'store': //门店自提
+ this.$util.subscribeMessage('ORDER_URGE_PAYMENT,ORDER_PAY');
+ break;
+ case 'local': //同城配送
+ this.$util.subscribeMessage('ORDER_URGE_PAYMENT,ORDER_PAY,ORDER_DELIVERY');
+ break;
+ }
+ }
+ // #endif
+
+ this.$refs.choosePaymentPopup.getPayInfo(this.outTradeNo);
+ },
+ verify() {
+ if (this.paymentData.is_virtual == 1) {
+ if (!this.orderCreateData.member_address.mobile) {
+ this.$util.showToast({
+ title: $lang('order._components.common-payment.payment.l487.t0')
+ });
+ return false;
+ }
+ if (!this.$util.verifyMobile(this.orderCreateData.member_address.mobile)) {
+ this.$util.showToast({
+ title: $lang('common.ns-login.l393.t0')
+ });
+ return false;
+ }
+ } else {
+ if (!this.orderCreateData.delivery || !this.orderCreateData.delivery.delivery_type) {
+ this.$util.showToast({
+ title: $lang('order._components.common-payment.payment.l500.t0')
+ });
+ return false;
+ }
+ if (
+ (this.orderCreateData.delivery.delivery_type == 'express' && !this.memberAddress) ||
+ (this.orderCreateData.delivery.delivery_type == 'local' && !this.localMemberAddress)
+ ) {
+ this.$util.showToast({
+ title: $lang('order._components.common-payment.payment.l509.t0')
+ });
+ return false;
+ }
+
+ if (this.orderCreateData.delivery.delivery_type == 'store') {
+ if (!this.orderCreateData.delivery.store_id) {
+ this.$util.showToast({
+ title: $lang('order._components.common-payment.payment.l517.t0')
+ });
+ return false;
+ }
+ if (!this.orderCreateData.member_address.mobile) {
+ this.$util.showToast({
+ title: $lang('order._components.common-payment.payment.l487.t0')
+ });
+ return false;
+ }
+ if (!this.$util.verifyMobile(this.orderCreateData.member_address.mobile)) {
+ this.$util.showToast({
+ title: $lang('common.ns-login.l393.t0')
+ });
+ return false;
+ }
+ if (!this.deliveryTime) {
+ this.$util.showToast({
+ title: $lang('order._components.common-payment.payment.l535.t0')
+ });
+ return false;
+ }
+ }
+
+ if (this.orderCreateData.delivery.delivery_type == 'local') {
+ if (!this.orderCreateData.delivery.store_id) {
+ this.$util.showToast({
+ title: $lang('order._components.common-payment.payment.l544.t0')
+ });
+ return false;
+ }
+ if (this.calculateGoodsData.config.local.is_use && this.calculateGoodsData.delivery.local.info.time_is_open == 1 && !this.deliveryTime) {
+ this.$util.showToast({
+ title: $lang('order._components.common-payment.l102.t0')
+ });
+ return false;
+ }
+ }
+ }
+
+ if (this.$refs.goodsForm) {
+ let formVerify = true;
+ for (let i = 0; i < this.$refs.goodsForm.length; i++) {
+ let item = this.$refs.goodsForm[i];
+ formVerify = item.verify();
+ if (!formVerify) {
+ break;
+ }
+ }
+ if (!formVerify) return false;
+ }
+ if (this.paymentData.system_form) {
+ let formVerify = this.$refs.form.verify();
+ if (!formVerify) return false;
+ }
+ return true;
+ },
+ /**
+ * 选择收货地址
+ */
+ selectAddress() {
+ var params = {
+ back: this.$util.getCurrentRoute().path,
+ local: 0,
+ type: 1
+ }
+ // 外卖配送需要定位地址
+ if (this.orderCreateData.delivery.delivery_type == 'local') {
+ params.local = 1;
+ params.type = 2;
+ }
+ this.$util.redirectTo('/pages_tool/member/address', params);
+ },
+ /**
+ * 选择配送方式
+ * @param data
+ * @param calculate
+ * @param member_account
+ */
+ selectDeliveryType(data, calculate = true, member_account = null) {
+ if (this.orderCreateData.delivery && this.orderCreateData.delivery.delivery_type == data.name) return;
+
+ this.orderCreateData.delivery.buyer_ask_delivery_time = {
+ start_date: '',
+ end_date: ''
+ };
+ this.deliveryTime = '';
+
+ let delivery = {
+ delivery_type: data.name,
+ delivery_type_name: data.title
+ }
+ // 如果是门店配送
+ if (data.name == 'store' || data.name == 'local') {
+ if (data.store_list[0]) {
+ delivery.store_id = data.store_list[0].store_id;
+ }
+ this.storeId = delivery.store_id ? delivery.store_id : 0;
+
+ if (!this.orderCreateData.member_address) {
+ if (this.paymentData) {
+ this.orderCreateData.member_address = {
+ name: this.paymentData.member_account.nickname,
+ mobile: this.paymentData.member_account.mobile
+ };
+ } else if (member_account) {
+ this.orderCreateData.member_address = {
+ name: member_account.nickname,
+ mobile: member_account.mobile
+ };
+
+ }
+ }
+ }
+
+ this.$set(this.orderCreateData, 'delivery', delivery);
+ uni.setStorageSync('delivery', delivery);
+
+ // 配送方式不为门店配送时
+ if (this.orderCreateData.delivery.delivery_type != 'express' && !this.location) this.$util.getLocation();
+ if (calculate) this.payment();
+
+ if (data.name == 'store') this.storetime('no');
+ if (data.name == 'local') this.localtime('no');
+ },
+ /**
+ * 图片错误
+ * @param {Object} index
+ */
+ imageError(index) {
+ this.paymentData.goods_list[index].sku_image = this.$util.getDefaultImage().goods;
+ this.calculateData.goods_list[index].sku_image = this.$util.getDefaultImage().goods;
+ this.$forceUpdate();
+ },
+ /**
+ * 选择门店
+ * @param {Object} data
+ */
+ selectPickupPoint(data) {
+ if (data.store_id != this.storeId) {
+ this.storeId = data.store_id;
+ this.orderCreateData.delivery.store_id = data.store_id;
+ this.payment();
+ this.resetDeliveryTime();
+ // 存储所选门店
+ let delivery = uni.getStorageSync('delivery');
+ delivery.store_id = data.store_id;
+ uni.setStorageSync('delivery', delivery)
+ }
+ this.$refs.deliveryPopup.close();
+ },
+ /**
+ * 重置提货时间
+ */
+ resetDeliveryTime() {
+ this.orderCreateData.delivery.buyer_ask_delivery_time = {
+ start_date: '',
+ end_date: ''
+ };
+ this.deliveryTime = '';
+ uni.removeStorageSync('deliveryTime');
+ },
+ /**
+ * 门店
+ */
+ storetime(type = '') {
+ if (this.storeInfo) {
+ let data = this.$util.deepClone(this.storeInfo);
+ data.delivery_time = typeof data.delivery_time == 'string' && data.delivery_time ? JSON.parse(data.delivery_time) : data.delivery_time;
+ if (!data.delivery_time || data.delivery_time.length == undefined && !data.delivery_time.length) {
+ data.delivery_time = [{
+ start_time: data.start_time,
+ end_time: data.end_time
+ }]
+ }
+ let obj = {
+ delivery: this.orderCreateData.delivery,
+ dataTime: data
+ }
+ this.$refs.timePopup.open(obj, type);
+ this.$forceUpdate();
+ }
+ },
+ /**
+ * 选择自提时间
+ * @param {Object} data
+ */
+ selectPickupTime(data) {
+ this.deliveryTime = data.data.month + '(' + data.data.time + ')';
+
+ this.orderCreateData.delivery.buyer_ask_delivery_time = {
+ start_date:data.data.start_date,
+ end_date:data.data.end_date
+ };
+
+ //将时间缓存,避免切换地址时重置
+ uni.setStorageSync('deliveryTime', {
+ 'deliveryTime': this.deliveryTime,
+ 'buyer_ask_delivery_time': this.orderCreateData.delivery.buyer_ask_delivery_time,
+ 'delivery_type': this.orderCreateData.delivery.delivery_type
+ });
+
+ },
+ storeImgError() {
+ this.storeInfo.store_image = this.$util.getDefaultImage().store;
+ },
+ openPopup(ref) {
+ if (ref == 'deliveryPopup' && (!this.storeList || Object.keys(this.storeList).length <= 1)) return;
+ this.tempData = this.$util.deepClone(this.orderCreateData);
+ this.$refs[ref].open();
+ },
+ closePopup(ref) {
+ this.orderCreateData = this.$util.deepClone(this.tempData);
+ this.$refs[ref].close();
+ this.tempData = null;
+ },
+ //优惠券单独多商户
+ /**
+ * 显示店铺优惠券信息
+ * @param {Object} siteId
+ * @param {Object} couponData
+ */
+ openSiteCoupon(merch_id) {
+
+ this.tempData = this.$util.deepClone(this.orderCreateData);
+ this.merchCoupon.merch_id = merch_id;
+ this.selectCouponId = this.orderCreateData.coupon[merch_id].coupon_id;
+ // this.selectCouponMoney = this.orderCreateData.coupon[siteId].coupon_money;
+
+ this.merchCoupon.data = this.coupon_list[merch_id];
+ this.$refs.couponPopup.open();
+ this.$forceUpdate();
+ },
+ /**商户选择券*/
+ selectCoupon(data,merch_id) {
+
+ // if (this.orderCreateData.coupon[merch_id].coupon_id == data.coupon_id){
+ // this.orderCreateData.coupon[merch_id].coupon_id = 0
+ // }else{
+ // this.orderCreateData.coupon[merch_id].coupon_id = data.coupon_id
+ // };
+ if (this.selectCouponId != data.coupon_id) {
+ this.selectCouponId = data.coupon_id;
+ } else {
+ this.selectCouponId = 0;
+ }
+ this.$forceUpdate();
+ // this.orderCreateData.coupon[merch_id].coupon_id = data.coupon_id
+ },
+ //确定使用优惠券
+ useCpopon() {
+ this.orderCreateData.coupon[this.merchCoupon.merch_id].coupon_id = this.selectCouponId;
+ this.$refs.couponPopup.close();
+ this.calculate();
+ },
+
+ //-------------------
+ /**
+ * 选择优惠券
+ * @param {Object} data
+ */
+ /*selectCoupon(data) {
+ if (this.orderCreateData.coupon.coupon_id == data.coupon_id) this.orderCreateData.coupon = {
+ coupon_id: 0
+ };
+ else this.orderCreateData.coupon = {
+ coupon_id: data.coupon_id
+ };
+ },*/
+ /**
+ * 使用优惠券
+ */
+ // useCpopon() {
+ // this.$refs.couponPopup.close();
+ // this.calculate();
+ // },
+ /**
+ * 切换发票开关
+ */
+ changeIsInvoice() {
+ if (this.orderCreateData.is_invoice == 0) {
+ this.orderCreateData.is_invoice = 1;
+ if (!this.orderCreateData.invoice_type) this.orderCreateData.invoice_type = this.goodsData.invoice.invoice_type.split(',')[0];
+ } else {
+ this.orderCreateData.is_invoice = 0;
+ }
+ },
+ /**
+ * 切换发票类型
+ * @param {Object} invoice_type
+ */
+ changeInvoiceType(invoice_type) {
+ this.orderCreateData.invoice_type = invoice_type;
+ },
+ /**
+ * 切换发票个人还是企业
+ * @param {Object} invoice_title_type
+ */
+ changeInvoiceTitleType(invoice_title_type) {
+ this.orderCreateData.invoice_title_type = invoice_title_type;
+ },
+ /**
+ * 切换增值税专用发票开关
+ */
+ changeIsTaxInvoice() {
+ if (this.orderCreateData.is_tax_invoice == 0) this.orderCreateData.is_tax_invoice = 1;
+ else this.orderCreateData.is_tax_invoice = 0;
+ this.$forceUpdate();
+ },
+ /**
+ * 选择发票内容
+ * @param {Object} invoice_content
+ */
+ changeInvoiceContent(invoice_content) {
+ this.orderCreateData.invoice_content = invoice_content;
+ this.$forceUpdate();
+ },
+ /**
+ * 验证发票内容
+ */
+ invoiceVerify() {
+ if (!this.orderCreateData.invoice_title) {
+ this.$util.showToast({
+ title: $lang('order._components.common-payment.payment.l840.t0')
+ });
+ return false;
+ }
+ if (!this.orderCreateData.taxpayer_number && this.orderCreateData.invoice_title_type == 2) {
+ this.$util.showToast({
+ title: $lang('order._components.common-payment.payment.l846.t0')
+ });
+ return false;
+ }
+ if (this.orderCreateData.invoice_type == 1 && !this.orderCreateData.invoice_full_address && this.paymentData.is_virtual == 1) {
+ this.$util.showToast({
+ title: $lang('order._components.common-payment.payment.l852.t0')
+ });
+ return false;
+ }
+ if (this.orderCreateData.invoice_type == 2 && !this.orderCreateData.invoice_email) {
+ this.$util.showToast({
+ title: $lang('order._components.common-payment.payment.l858.t0')
+ });
+ return false;
+ }
+ if (this.orderCreateData.invoice_type == 2) {
+ var reg = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/;
+ if (!reg.test(this.orderCreateData.invoice_email)) {
+ this.$util.showToast({
+ title: $lang('order._components.common-payment.payment.l866.t0')
+ });
+ return false;
+ }
+ }
+ if (!this.orderCreateData.invoice_content) {
+ this.$util.showToast({
+ title: $lang('order._components.common-payment.payment.l873.t0')
+ });
+ return false;
+ }
+ return true;
+ },
+ /**
+ * 保存发票设置
+ */
+ saveInvoice() {
+ if (this.orderCreateData.is_invoice == 1 && !this.invoiceVerify()) return;
+ this.calculate();
+ this.$refs.invoicePopup.close();
+ },
+ /**
+ * 保存留言
+ */
+ saveBuyerMessage() {
+ this.$refs.buyerMessagePopup.close();
+ },
+ /**
+ * 选择会员卡
+ */
+ selectMemberCard() {
+ this.orderCreateData.is_open_card = this.orderCreateData.is_open_card ? 0 : 1;
+ if (!this.orderCreateData.member_card_unit) this.orderCreateData.member_card_unit = this.cardChargeType[0].key;
+ this.payment();
+ },
+ /**
+ * 选择会员卡充值类型
+ * @param {Object} key
+ */
+ selectMembercardUnit(key) {
+ this.orderCreateData.member_card_unit = key;
+ this.calculate();
+ },
+ /**
+ * 使用积分抵扣
+ */
+ usePoint() {
+ this.orderCreateData.is_point = this.orderCreateData.is_point ? 0 : 1;
+ this.calculate();
+ },
+ /**
+ * 支付弹窗关闭
+ */
+ payClose() {
+ // 更新购物车数量
+ this.$store.dispatch('getCartNumber');
+ this.$util.redirectTo('/pages_order/detail', {
+ order_id: this.$refs.choosePaymentPopup.payInfo.order_id
+ }, 'redirectTo');
+ },
+
+ /**
+ * 同城配送送达时间
+ */
+ localtime(type = '') {
+ if (this.calculateGoodsData && this.calculateGoodsData.config.local) {
+ let data = this.$util.deepClone(this.calculateGoodsData.delivery.local.info);
+ if (Object.keys(data).length) {
+ if (data.delivery_time) {
+ data.end_time = data.delivery_time[(data.delivery_time.length - 1)].end_time;
+ }
+
+ let obj = {
+ delivery: this.orderCreateData.delivery,
+ dataTime: data
+ }
+
+ this.$refs.timePopup.open(obj, type);
+ }
+
+ }
+ },
+ /**
+ * 剩余起送价
+ */
+ surplusStartMoney() {
+ let money = 0;
+ if (this.calculateData && this.calculateData.delivery && this.calculateData.delivery.delivery_type == 'local') {
+ let startDeliveryMoney = this.calculateGoodsData.delivery.start_money ?? 0;
+ money = parseFloat(startDeliveryMoney) - parseFloat(this.calculateData.goods_money);
+ money = money < 0 ? 0 : money;
+ }
+ return money;
+ },
+ /**
+ * 交易协议
+ */
+ getTransactionAgreement() {
+ this.$api.sendRequest({
+ url: '/api/order/transactionagreement',
+ success: res => {
+ if (res.data) {
+ this.transactionAgreement = res.data;
+ if (this.transactionAgreement.content) this.transactionAgreement.content = htmlParser(this.transactionAgreement.content);
+ }
+ }
+ })
+ },
+ editForm(index) {
+ this.tempFormData = {
+ index: index,
+ json_data: this.$util.deepClone(this.goodsData.goods_list[index].goods_form.json_data)
+ };
+ this.$refs.editFormPopup.open();
+ },
+ saveForm() {
+ if (this.$refs.tempForm.verify()) {
+ this.$set(this.paymentData.goods_list[this.tempFormData.index].goods_form, 'json_data', this.$refs.tempForm.formData);
+ this.$refs.editFormPopup.close();
+ }
+ },
+ /**
+ * 切换次卡
+ * @param {Object} index
+ */
+ selectMemberGoodsCard(index) {
+ let sku_id = this.goodsData.goods_list[index].sku_id;
+ this.selectGoodsCard = {
+ skuId: sku_id,
+ itemId: this.orderCreateData.member_goods_card[sku_id] ? this.orderCreateData.member_goods_card[sku_id] : 0,
+ cardList: this.$util.deepClone(this.calculateGoodsData.goods_list[index].member_card_list),
+ click: (item_id) => {
+ this.selectGoodsCard.itemId = this.selectGoodsCard.itemId == item_id ? 0 : item_id;
+ }
+ }
+ this.$refs.memberGoodsCardPopup.open();
+ },
+ /**
+ * 选择次卡
+ */
+ saveMemberGoodsCard() {
+ this.orderCreateData.member_goods_card[this.selectGoodsCard.skuId] = this.selectGoodsCard.itemId || 0;
+ this.$refs.memberGoodsCardPopup.close();
+ this.payment();
+ },
+ back() {
+ uni.navigateBack({
+ delta: 1
+ });
+ },
+ getStoreList() {
+ let storeList = null;
+ if (this.orderCreateData.delivery) {
+ if (this.orderCreateData.delivery.delivery_type == 'local' && this.localConfig) {
+ storeList = this.localConfig.store_list;
+ storeList = storeList.reduce((res, item) => {
+ return {
+ ...res,
+ [item.store_id]: item
+ };
+ }, {});
+
+ }
+ if (this.orderCreateData.delivery.delivery_type == 'store' && this.storeConfig) {
+ storeList = this.storeConfig.store_list;
+ storeList = storeList.reduce((res, item) => {
+ return {
+ ...res,
+ [item.store_id]: item
+ };
+ }, {});
+ }
+ }
+ return storeList;
+ },
+ getStore(mescroll) {
+ this.$api.sendRequest({
+ url: '/api/store/getStorePage',
+ data: {
+ page_size: mescroll.size,
+ page: mescroll.num,
+ latitude: this.latitude ?? '',
+ longitude: this.longitude ?? '',
+ type: this.orderCreateData.delivery.delivery_type
+ },
+ success: res => {
+ let newArr = [];
+ let msg = res.message;
+ if (res.code == 0 && res.data) {
+ newArr = res.data.list;
+ }
+ mescroll.endSuccess(newArr.length);
+ //设置列表数据
+
+ if (mescroll.num == 1) this.storeData = []; //如果是第一页需手动制空列表
+ this.storeData = this.storeData.concat(newArr); //追加新数据
+ },
+ fail: res => {
+ mescroll.endErr();
+ }
+ });
+ }
+ },
+ filters: {
+ // 金额格式化输出
+ moneyFormat(money) {
+ return parseFloat(money).toFixed(2);
+ }
+ }
}
\ No newline at end of file
diff --git a/pages_order/detail.vue b/pages_order/detail.vue
index 0b578a0..0a2983b 100644
--- a/pages_order/detail.vue
+++ b/pages_order/detail.vue
@@ -1,841 +1,841 @@
-
-
-
-
-
-
-
-
- {{ orderData.order_status_name }}
- ({{ orderData.promotion_status_name }})
-
-
- 预计{{ $util.timeStampTurnTime(orderData.predict_delivery_time, true) }}日后发货
-
- 订单关闭原因:{{ orderData.close_cause }}
-
-
-
- 剩余时间:
-
-
-
-
-
-
-
-
-
-
-
- {{ orderData.name }} {{ orderData.mobile }}
-
-
- 收货地址:{{ orderData.full_address }} {{ orderData.address }}
-
-
-
-
- 送达时间:
- {{ orderData.buyer_ask_delivery_time }}
-
-
-
- 配送员:
- {{ orderData.package_list.deliverer }}
-
-
- 外卖电话:
- {{ orderData.package_list.deliverer_mobile }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ orderData.delivery_store_name }}
-
-
-
-
- 营业时间:{{ orderData.delivery_store_info.open_date }}
- 地址:{{ orderData.delivery_store_info.full_address }}
-
-
-
-
-
- 当前无自提门店
-
-
-
-
- 姓名
-
-
-
- 预留手机
-
-
-
- 提货时间
-
-
-
-
-
-
-
-
- 提货码:
- {{ orderData.delivery_code }}
-
- 复制
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ goodsItem.sku_name }}
-
-
-
- {{ x.spec_value_name }}
- {{ i < goodsItem.sku_spec_format.length - 1 ? '; ' : '' }}
-
-
-
-
-
- {{ $lang('common.currencySymbol') }}
- {{
- parseFloat(goodsItem.price).toFixed(2).split('.')[0]
- }}
- .{{
- parseFloat(goodsItem.price).toFixed(2).split('.')[1] }}
-
-
-
-
-
- {{ goodsItem.num }}
-
-
-
-
- 次卡抵扣
-
- -{{ $lang('common.currencySymbol') }}
- {{
- parseFloat(goodsItem.card_promotion_money).toFixed(2).split('.')[0] }}
- .{{
- parseFloat(goodsItem.card_promotion_money).toFixed(2).split('.')[1] }}
-
-
-
-
-
-
-
- {{ item.value.title }}:
-
-
-
-
-
-
- {{ item.val }}
- 复制
-
-
-
-
-
-
-
-
- {{ orderData.order_status == 10 ? '申请售后' : '申请退款' }}
-
-
-
-
- {{ orderData.order_status == 10 ? '查看售后' : '查看退款' }}
-
-
-
-
-
-
-
-
-
- 订单类型:
-
- {{ orderData.order_type_name }}
-
-
-
- 订单编号:
-
- {{ orderData.order_no }}
- 复制
-
-
-
- 订单交易号:
-
- {{ orderData.out_trade_no }}
-
-
-
- 创建时间:
-
- {{ $util.timeStampTurnTime(orderData.create_time) }}
-
-
-
- 关闭时间:
-
- {{ $util.timeStampTurnTime(orderData.close_time) }}
-
-
-
-
-
- 支付方式:
-
- {{ orderData.pay_type_name }}
-
-
-
- 支付时间:
-
- {{ $util.timeStampTurnTime(orderData.pay_time) }}
-
-
-
-
- 配送方式:
-
- {{ orderData.delivery_type_name }}
-
-
-
- 买家留言:
-
- {{ orderData.buyer_message }}
-
-
-
- 活动优惠:
-
- {{ orderData.promotion_type_name }}
-
-
-
-
-
- 发票类型:
-
- {{ orderData.invoice_type == 1 ? '纸质发票' : '电子发票' }}
-
-
-
- 发票抬头类型:
-
- {{ orderData.invoice_title_type == 1 ? '个人' : '企业' }}
-
-
-
- 发票抬头:
-
- {{ orderData.invoice_title }}
-
-
-
-
- 发票内容:
-
- {{ orderData.invoice_content }}
-
-
-
- 发票邮寄地址:
-
- {{ orderData.invoice_full_address }}
-
-
-
- 发票接收邮件:
-
- {{ orderData.invoice_email }}
-
-
-
-
-
-
- {{ item.value.title }}:
-
-
-
-
-
-
- {{ item.val }}
- 复制
-
-
-
-
-
-
- 我的卡包:
- 查看
-
-
-
-
-
-
-
-
-
-
-
- 请将条形码或二维码出示给核销员
-
-
-
- {{ orderData.virtual_code }}
- 复制
-
-
-
-
- 核销信息
-
- 核销次数
-
-
- 剩余{{ orderData.virtual_goods.verify_total_count - orderData.virtual_goods.verify_use_num
- }}次/共{{
- orderData.virtual_goods.verify_total_count }}次
-
-
-
-
- 有效期
-
- {{
- $util.timeStampTurnTime(orderData.virtual_goods.expire_time) }}
- 永久有效
-
-
-
-
-
- 核销记录
-
-
-
- 核销人
-
- {{ item.verifier_name }}
-
-
-
- 核销时间
-
- {{ $util.timeStampTurnTime(item.verify_time) }}
-
-
-
-
- 暂无核销记录
-
-
-
-
-
- 卡密信息
-
-
- 卡号:
-
- {{ item.card_info.cardno }}
- 复制
-
-
-
- 密码:
-
- {{ item.card_info.password }}
- 复制
-
-
-
-
-
-
-
-
-
-
-
- 请将条形码或二维码出示给核销员
-
-
-
- {{ orderData.virtual_code }}
- 复制
-
-
-
-
- 核销信息
-
- 核销次数
-
-
- 剩余{{ orderData.virtual_goods.verify_total_count - orderData.virtual_goods.verify_use_num
- }}次/共{{
- orderData.virtual_goods.verify_total_count }}次
-
-
-
-
- 有效期
-
- {{
- $util.timeStampTurnTime(orderData.virtual_goods.expire_time) }}
- 永久有效
-
-
-
-
-
- 核销记录
-
-
-
- 核销人
-
- {{ item.verifier_name }}
-
-
-
- 核销时间
-
- {{ $util.timeStampTurnTime(item.verify_time) }}
-
-
-
-
- 暂无核销记录
-
-
-
-
-
- 商品金额
-
-
- {{ $lang('common.currencySymbol') }}
- {{ orderData.goods_money }}
-
-
-
-
- 运费
-
-
- {{ $lang('common.currencySymbol') }}
- {{ orderData.delivery_money }}
-
-
-
-
- 会员卡
-
-
- {{ $lang('common.currencySymbol') }}
- {{ orderData.member_card_money }}
-
-
-
-
-
- 税费
- ({{ orderData.invoice_rate }}%)
-
-
-
- +
- {{ $lang('common.currencySymbol') }}
- {{ orderData.invoice_money }}
-
-
-
-
- 发票邮寄费
-
-
- +
- {{ $lang('common.currencySymbol') }}
- {{ orderData.invoice_delivery_money }}
-
-
-
-
- 订单调整
-
-
- -
- +
- {{ $lang('common.currencySymbol') }}
- {{ orderData.adjust_money | abs }}
-
-
-
-
- 优惠
-
-
- -
- {{ $lang('common.currencySymbol') }}
- {{ orderData.promotion_money }}
-
-
-
-
- 优惠券
-
-
- -
- {{ $lang('common.currencySymbol') }}
- {{ orderData.coupon_money }}
-
-
-
-
- 使用余额
-
-
- -
- {{ $lang('common.currencySymbol') }}
- {{ orderData.balance_money }}
-
-
-
-
- 积分抵扣
-
-
- -
- {{ $lang('common.currencySymbol') }}
- {{ orderData.point_money }}
-
-
-
-
-
- 实付金额:
-
- {{ $lang('common.currencySymbol') }}
- {{ orderData.order_money }}
-
-
-
-
-
-
- 评价
- 追评
-
-
-
- {{ operationItem.title }}
-
-
-
-
-
-
- 评价
- 追评
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/pages_order/detail_point.vue b/pages_order/detail_point.vue
index 2b816c4..df9fab9 100644
--- a/pages_order/detail_point.vue
+++ b/pages_order/detail_point.vue
@@ -1,302 +1,302 @@
-
-
-
-
-
-
-
-
-
-
- {{ orderData.order_status == 0 ? '待支付' : orderData.order_status == 1 ? '已完成' :
- orderData.order_status == -1 ? '已关闭' : '' }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ orderData.exchange_name }}
-
-
-
-
- {{ orderData.point }}积分
-
- +
- {{ $lang('common.currencySymbol') }}
- {{ orderData.price }}
-
-
-
-
-
-
-
- {{ orderData.num }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- 订单编号:
-
- {{ orderData.order_no }}
- 复制
-
-
-
- 订单交易号:
-
- {{ orderData.out_trade_no }}
-
-
-
- 创建时间:
-
- {{ $util.timeStampTurnTime(orderData.create_time) }}
-
-
-
- 关闭时间:
-
- {{ $util.timeStampTurnTime(orderData.close_time) }}
-
-
-
-
-
-
-
-
-
- 使用积分
-
-
- {{ orderData.point }}
-
-
-
-
- 运费
-
-
- {{ $lang('common.currencySymbol') }}
- {{ orderData.delivery_price }}
-
-
-
-
-
- 实付金额:
-
- {{ $lang('common.currencySymbol') }}
- {{ orderData.order_money }}
-
-
-
-
-
- 关闭
- 支付
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/pages_order/list.vue b/pages_order/list.vue
index 6662903..69d3db6 100644
--- a/pages_order/list.vue
+++ b/pages_order/list.vue
@@ -1,475 +1,475 @@
-
-
-
-
-
-
-
-
-
-
-
- {{ statusItem.name }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{
- goodsItem.goods_name }}
- {{ goodsItem.sku_name }}
-
-
-
- {{ x.spec_value_name }}
- {{ i < goodsItem.sku_spec_format.length - 1 ? '; ' : '' }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/pages_order/payment.vue b/pages_order/payment.vue
index d45e73e..e6a42bb 100644
--- a/pages_order/payment.vue
+++ b/pages_order/payment.vue
@@ -1,109 +1,109 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/pages_order/public/js/orderMethod.js b/pages_order/public/js/orderMethod.js
index 8700e8c..bbb30ff 100644
--- a/pages_order/public/js/orderMethod.js
+++ b/pages_order/public/js/orderMethod.js
@@ -1,261 +1,261 @@
-export default {
- methods: {
- /**
- * 订单支付
- * @param {Object} orderData
- */
- orderPay(orderData) {
- if (orderData.adjust_money == 0) {
- this.pay();
- } else {
- uni.showModal({
- title: '提示',
- content: '商家已将支付金额调整为' + orderData.pay_money + '元,是否继续支付?',
- success: res => {
- if (res.confirm) {
- this.pay();
- }
- }
- })
- }
- },
- pay() {
- this.$api.sendRequest({
- url: '/api/order/pay',
- data: {
- order_ids: this.orderData.order_id
- },
- success: res => {
- if (res.code >= 0) {
- this.$refs.choosePaymentPopup.getPayInfo(res.data);
- } else {
- this.$util.showToast({
- title: res.message
- });
- }
- }
- })
- },
- /**
- * 关闭订单
- * @param order_id
- * @param callback
- */
- orderClose(order_id, callback) {
- uni.showModal({
- title: '提示',
- content: '您确定要关闭该订单吗?',
- success: res => {
- if (res.confirm) {
- this.$api.sendRequest({
- url: '/api/order/close',
- data: {
- order_id
- },
- success: res => {
- if (res.code >= 0) {
- typeof callback == 'function' && callback();
- } else {
- this.$util.showToast({
- title: '当前订单可能存在拼团,维权等操作,' + res.message +
- '不可以关闭哦!',
- duration: 2000
- })
- }
- }
- })
- }
- }
- })
- },
- /**
- * 订单收货
- * @param orderData
- * @param callback
- */
- orderDelivery(orderData, callback) {
- // 如果不在微信小程序中
- // #ifndef MP-WEIXIN
- uni.showModal({
- title: '提示',
- content: '您确定已经收到货物了吗?',
- success: res => {
- if (res.confirm) {
- this.$api.sendRequest({
- url: '/api/order/takedelivery',
- data: {
- order_id: orderData.order_id
- },
- success: res => {
- this.$util.showToast({
- title: res.message
- })
- typeof callback == 'function' && callback();
- }
- })
- }
- }
- })
- // #endif
-
- // #ifdef MP-WEIXIN
- // 检测微信小程序是否已开通发货信息管理服务
- if (orderData.pay_type == 'wechatpay' && wx.openBusinessView && orderData.is_trade_managed) {
- wx.openBusinessView({
- businessType: 'weappOrderConfirm',
- extraData: {
- merchant_id: orderData.pay_config.mch_id,
- merchant_trade_no: orderData.out_trade_no
- },
- success: res => {
- if (res.extraData.status == 'success') {
- this.$api.sendRequest({
- url: '/api/order/takedelivery',
- data: {
- order_id: orderData.order_id
- },
- success: res => {
- this.$util.showToast({
- title: res.message
- })
- typeof callback == 'function' && callback();
- }
- })
- } else {
- this.$api.sendRequest({
- url: '/api/order/takedelivery',
- data: {
- order_id: orderData.order_id
- },
- success: res => {
- this.$util.showToast({
- title: res.message
- })
- typeof callback == 'function' && callback();
- }
- })
- }
- },
- fail: function(res) {
- }
- })
- } else {
- uni.showModal({
- title: '提示',
- content: '您确定已经收到货物了吗?',
- success: res => {
- if (res.confirm) {
- this.$api.sendRequest({
- url: '/api/order/takedelivery',
- data: {
- order_id: orderData.order_id
- },
- success: res => {
- this.$util.showToast({
- title: res.message
- })
- typeof callback == 'function' && callback();
- }
- })
- }
- }
- })
- }
- // #endif
- },
- /**
- * 订单虚拟商品收货
- * @param orderData
- * @param callback
- */
- orderVirtualDelivery(orderData, callback) {
- // 如果不在微信小程序中
- // #ifndef MP-WEIXIN
- uni.showModal({
- title: '提示',
- content: '您确定要进行收货吗?',
- success: res => {
- if (res.confirm) {
- this.$api.sendRequest({
- url: '/api/order/membervirtualtakedelivery',
- data: {
- order_id: orderData.order_id
- },
- success: res => {
- this.$util.showToast({
- title: res.message
- })
- typeof callback == 'function' && callback();
- }
- })
- }
- },
- })
- // #endif
-
- // #ifdef MP-WEIXIN
- // 检测微信小程序是否已开通发货信息管理服务
- if (orderData.pay_type == 'wechatpay' && wx.openBusinessView && orderData.is_trade_managed) {
- wx.openBusinessView({
- businessType: 'weappOrderConfirm',
- extraData: {
- merchant_id: orderData.pay_config.mch_id,
- merchant_trade_no: orderData.out_trade_no
- },
- success: res => {
- if (res.extraData.status == 'success') {
- this.$api.sendRequest({
- url: '/api/order/membervirtualtakedelivery',
- data: {
- order_id: orderData.order_id
- },
- success: res => {
- this.$util.showToast({
- title: res.message
- })
- typeof callback == 'function' && callback();
- }
- })
- } else {
- this.$api.sendRequest({
- url: '/api/order/membervirtualtakedelivery',
- data: {
- order_id: orderData.order_id
- },
- success: res => {
- this.$util.showToast({
- title: res.message
- })
- typeof callback == 'function' && callback();
- }
- })
- }
- },
- fail: function(res) {}
- })
- } else {
- uni.showModal({
- title: '提示',
- content: '您确定要进行收货吗?',
- success: res => {
- if (res.confirm) {
- this.$api.sendRequest({
- url: '/api/order/membervirtualtakedelivery',
- data: {
- order_id: orderData.order_id
- },
- success: res => {
- this.$util.showToast({
- title: res.message
- })
- typeof callback == 'function' && callback();
- }
- })
- }
- },
- })
- }
- // #endif
- },
- }
+export default {
+ methods: {
+ /**
+ * 订单支付
+ * @param {Object} orderData
+ */
+ orderPay(orderData) {
+ if (orderData.adjust_money == 0) {
+ this.pay();
+ } else {
+ uni.showModal({
+ title: $lang('common.wxwork-contact.l202.t0'),
+ content: $lang('order.public.js.order_method.l13') + orderData.pay_money + $lang('order.public.js.order_method.l13'),
+ success: res => {
+ if (res.confirm) {
+ this.pay();
+ }
+ }
+ })
+ }
+ },
+ pay() {
+ this.$api.sendRequest({
+ url: '/api/order/pay',
+ data: {
+ order_ids: this.orderData.order_id
+ },
+ success: res => {
+ if (res.code >= 0) {
+ this.$refs.choosePaymentPopup.getPayInfo(res.data);
+ } else {
+ this.$util.showToast({
+ title: res.message
+ });
+ }
+ }
+ })
+ },
+ /**
+ * 关闭订单
+ * @param order_id
+ * @param callback
+ */
+ orderClose(order_id, callback) {
+ uni.showModal({
+ title: $lang('common.wxwork-contact.l202.t0'),
+ content: $lang('order.public.js.order_method.l47'),
+ success: res => {
+ if (res.confirm) {
+ this.$api.sendRequest({
+ url: '/api/order/close',
+ data: {
+ order_id
+ },
+ success: res => {
+ if (res.code >= 0) {
+ typeof callback == 'function' && callback();
+ } else {
+ this.$util.showToast({
+ title: $lang('order.public.js.order_method.l60') + res.message +
+ $lang('order.public.js.order_method.l61'),
+ duration: 2000
+ })
+ }
+ }
+ })
+ }
+ }
+ })
+ },
+ /**
+ * 订单收货
+ * @param orderData
+ * @param callback
+ */
+ orderDelivery(orderData, callback) {
+ // 如果不在微信小程序中
+ // #ifndef MP-WEIXIN
+ uni.showModal({
+ title: $lang('common.wxwork-contact.l202.t0'),
+ content: $lang('order.public.js.order_method.l81'),
+ success: res => {
+ if (res.confirm) {
+ this.$api.sendRequest({
+ url: '/api/order/takedelivery',
+ data: {
+ order_id: orderData.order_id
+ },
+ success: res => {
+ this.$util.showToast({
+ title: res.message
+ })
+ typeof callback == 'function' && callback();
+ }
+ })
+ }
+ }
+ })
+ // #endif
+
+ // #ifdef MP-WEIXIN
+ // 检测微信小程序是否已开通发货信息管理服务
+ if (orderData.pay_type == 'wechatpay' && wx.openBusinessView && orderData.is_trade_managed) {
+ wx.openBusinessView({
+ businessType: 'weappOrderConfirm',
+ extraData: {
+ merchant_id: orderData.pay_config.mch_id,
+ merchant_trade_no: orderData.out_trade_no
+ },
+ success: res => {
+ if (res.extraData.status == 'success') {
+ this.$api.sendRequest({
+ url: '/api/order/takedelivery',
+ data: {
+ order_id: orderData.order_id
+ },
+ success: res => {
+ this.$util.showToast({
+ title: res.message
+ })
+ typeof callback == 'function' && callback();
+ }
+ })
+ } else {
+ this.$api.sendRequest({
+ url: '/api/order/takedelivery',
+ data: {
+ order_id: orderData.order_id
+ },
+ success: res => {
+ this.$util.showToast({
+ title: res.message
+ })
+ typeof callback == 'function' && callback();
+ }
+ })
+ }
+ },
+ fail: function(res) {
+ }
+ })
+ } else {
+ uni.showModal({
+ title: $lang('common.wxwork-contact.l202.t0'),
+ content: $lang('order.public.js.order_method.l81'),
+ success: res => {
+ if (res.confirm) {
+ this.$api.sendRequest({
+ url: '/api/order/takedelivery',
+ data: {
+ order_id: orderData.order_id
+ },
+ success: res => {
+ this.$util.showToast({
+ title: res.message
+ })
+ typeof callback == 'function' && callback();
+ }
+ })
+ }
+ }
+ })
+ }
+ // #endif
+ },
+ /**
+ * 订单虚拟商品收货
+ * @param orderData
+ * @param callback
+ */
+ orderVirtualDelivery(orderData, callback) {
+ // 如果不在微信小程序中
+ // #ifndef MP-WEIXIN
+ uni.showModal({
+ title: $lang('common.wxwork-contact.l202.t0'),
+ content: $lang('order.public.js.order_method.l176'),
+ success: res => {
+ if (res.confirm) {
+ this.$api.sendRequest({
+ url: '/api/order/membervirtualtakedelivery',
+ data: {
+ order_id: orderData.order_id
+ },
+ success: res => {
+ this.$util.showToast({
+ title: res.message
+ })
+ typeof callback == 'function' && callback();
+ }
+ })
+ }
+ },
+ })
+ // #endif
+
+ // #ifdef MP-WEIXIN
+ // 检测微信小程序是否已开通发货信息管理服务
+ if (orderData.pay_type == 'wechatpay' && wx.openBusinessView && orderData.is_trade_managed) {
+ wx.openBusinessView({
+ businessType: 'weappOrderConfirm',
+ extraData: {
+ merchant_id: orderData.pay_config.mch_id,
+ merchant_trade_no: orderData.out_trade_no
+ },
+ success: res => {
+ if (res.extraData.status == 'success') {
+ this.$api.sendRequest({
+ url: '/api/order/membervirtualtakedelivery',
+ data: {
+ order_id: orderData.order_id
+ },
+ success: res => {
+ this.$util.showToast({
+ title: res.message
+ })
+ typeof callback == 'function' && callback();
+ }
+ })
+ } else {
+ this.$api.sendRequest({
+ url: '/api/order/membervirtualtakedelivery',
+ data: {
+ order_id: orderData.order_id
+ },
+ success: res => {
+ this.$util.showToast({
+ title: res.message
+ })
+ typeof callback == 'function' && callback();
+ }
+ })
+ }
+ },
+ fail: function(res) {}
+ })
+ } else {
+ uni.showModal({
+ title: $lang('common.wxwork-contact.l202.t0'),
+ content: $lang('order.public.js.order_method.l176'),
+ success: res => {
+ if (res.confirm) {
+ this.$api.sendRequest({
+ url: '/api/order/membervirtualtakedelivery',
+ data: {
+ order_id: orderData.order_id
+ },
+ success: res => {
+ this.$util.showToast({
+ title: res.message
+ })
+ typeof callback == 'function' && callback();
+ }
+ })
+ }
+ },
+ })
+ }
+ // #endif
+ },
+ }
}
\ No newline at end of file
diff --git a/pages_order/public/js/refundMethod.js b/pages_order/public/js/refundMethod.js
index 2feb464..f11d84d 100644
--- a/pages_order/public/js/refundMethod.js
+++ b/pages_order/public/js/refundMethod.js
@@ -1,30 +1,30 @@
-export default {
- methods: {
- /**
- * 撤销退款申请
- * @param {Object} order_goods_id
- * @param {Object} callback
- */
- cancleRefund(order_goods_id, callback) {
- uni.showModal({
- content: '撤销之后本次申请将会关闭,如后续仍有问题可再次发起申请。',
- cancelText: '暂不撤销',
- cancelColor: '#898989',
- success: res => {
- if (res.confirm) {
- this.$api.sendRequest({
- url: '/api/orderrefund/cancel',
- data: {
- order_goods_id
- },
- success: res => {
- typeof callback == 'function' && callback(res);
- }
- })
- }
- }
- })
- },
-
- }
-}
+export default {
+ methods: {
+ /**
+ * 撤销退款申请
+ * @param {Object} order_goods_id
+ * @param {Object} callback
+ */
+ cancleRefund(order_goods_id, callback) {
+ uni.showModal({
+ content: $lang('order.public.js.refund_method.l10'),
+ cancelText: $lang('order.public.js.refund_method.l11'),
+ cancelColor: '#898989',
+ success: res => {
+ if (res.confirm) {
+ this.$api.sendRequest({
+ url: '/api/orderrefund/cancel',
+ data: {
+ order_goods_id
+ },
+ success: res => {
+ typeof callback == 'function' && callback(res);
+ }
+ })
+ }
+ }
+ })
+ },
+
+ }
+}
diff --git a/pages_promotion/fenxiao/apply.vue b/pages_promotion/fenxiao/apply.vue
index 9ce3892..ec50ceb 100644
--- a/pages_promotion/fenxiao/apply.vue
+++ b/pages_promotion/fenxiao/apply.vue
@@ -13,7 +13,7 @@
- 请填写申请信息
+ {{ $lang("fenxiao.apply.l16") }}
@@ -24,16 +24,16 @@
- 邀请人
+ {{ $lang("fenxiao.apply.l27") }}
{{ sourceMemberInfo.fenxiao_name }}
{{ fenxiaoWords.fenxiao_name }}名称
-
+
- 手机号
-
+ {{ $lang("common.ns-login.l15.t0") }}
+
@@ -42,14 +42,14 @@
【{{ fenxiaoWords.fenxiao_name }}申请协议】
-
+
- 分销商申请条件
+ {{ $lang("fenxiao.apply.l52") }}
申请成为{{ fenxiaoWords.fenxiao_name }},需要您的消费次数需要达到{{ fenxiaoConfig.consume_count }}次
@@ -60,8 +60,8 @@
- 分销商申请条件
- 申请成为{{ fenxiaoWords.fenxiao_name }},需要购买以下指定商品(任选其一)
+ {{ $lang("fenxiao.apply.l52") }}
+ { $lang("fenxiao.apply.l45") } fenxiaoWords.fenxiao_name }},需要购买以下指定商品(任选其一)
@@ -72,14 +72,14 @@
{{ isEnEnv ? item.en_goods_name : item.goods_name }}
- {{ $lang('common.currencySymbol') }}
+ {{ $lang('common.currency_symbol') }}
{{ item.market_price > 0 ? item.market_price : item.price }}
- {{ isOpen ? '展开更多' : '收起' }}
+ {{ isOpen ? '展开更多' : $lang('goods.detail.l152') }}
@@ -89,7 +89,7 @@
- 申请成为{{ fenxiaoWords.fenxiao_name }},需要您的消费次数需要达到{{ fenxiaoConfig.consume_count }}次
+ { $lang("fenxiao.apply.l45") } fenxiaoWords.fenxiao_name }},需要您的消费次数需要达到{{ fenxiaoConfig.consume_count }}次
申请成为{{ fenxiaoWords.fenxiao_name }},需要您的消费金额需要达到{{ fenxiaoConfig.consume_money | moneyFormat }}元
@@ -97,8 +97,8 @@
- 成为分销商的条件
- 成为{{ fenxiaoWords.fenxiao_name }},需要购买以下指定商品(任选其一)
+ {{ $lang("fenxiao.apply.l100") }}
+ { $lang("fenxiao.apply.l101") } fenxiaoWords.fenxiao_name }},需要购买以下指定商品(任选其一)
@@ -108,13 +108,13 @@
{{ isEnEnv ? item.en_goods_name : item.goods_name }}
- {{ $lang('common.currencySymbol') }}
+ {{ $lang('common.currency_symbol') }}
{{ item.market_price > 0 ? item.market_price : item.price }}
- {{ isOpen ? '展开更多' : '收起' }}
+ {{ isOpen ? '展开更多' : $lang('goods.detail.l152') }}
@@ -123,15 +123,15 @@
- 您还不是分销商
+ {{ $lang("fenxiao.apply.l126") }}
- 您已提交{{ fenxiaoWords.fenxiao_name }}申请,等待平台审核
+ { $lang("fenxiao.apply.l131") } fenxiaoWords.fenxiao_name }}申请,等待平台审核
- 您提交的{{ fenxiaoWords.fenxiao_name }}申请,已被拒绝,请再接再厉
- 重新申请
+ { $lang("fenxiao.apply.l133") } fenxiaoWords.fenxiao_name }}申请,已被拒绝,请再接再厉
+ {{ $lang("fenxiao.apply.l134") }}
@@ -163,7 +163,7 @@
isIphoneX: false,
// 推荐人信息
sourceMemberInfo: {
- fenxiao_name: '无'
+ fenxiao_name: $lang('fenxiao.apply.l166')
},
formData: {
fenXiaoName: '',
@@ -191,7 +191,7 @@
setTimeout( () => {
if (!this.addonIsExist.fenxiao) {
this.$util.showToast({
- title: '商家未开启分销',
+ title: $lang('fenxiao.apply.l194'),
mask: true,
duration: 2000
});
@@ -207,7 +207,7 @@
async onShow() {
this.isIphoneX = this.$util.uniappIsIPhoneX();
- if (this.fenxiaoWords && this.fenxiaoWords.fenxiao_name) this.$langConfig.title(this.fenxiaoWords.fenxiao_name + '申请');
+ if (this.fenxiaoWords && this.fenxiaoWords.fenxiao_name) this.$langConfig.title(this.fenxiaoWords.fenxiao_name + $lang('fenxiao.apply.l210'));
if (this.storeToken) {
this.applyStatus();
@@ -275,7 +275,7 @@
if (!this.fenXiaoValidata()) return;
if (this.isAgreement && !this.isChecked) {
this.$util.showToast({
- title: '请仔细阅读协议,并勾选'
+ title: $lang('fenxiao.apply.l278')
});
return;
}
@@ -330,17 +330,17 @@
let rule = [{
name: 'fenXiaoName',
checkType: 'required',
- errorMsg: '请输入' + this.fenxiaoWords.fenxiao_name + '名称'
+ errorMsg: $lang('common.ns-form.l368.t0') + this.fenxiaoWords.fenxiao_name + $lang('fenxiao.apply.l32')
},
{
name: 'mobile',
checkType: 'required',
- errorMsg: '请输入手机号'
+ errorMsg: $lang('common.ns-login.l16.t0')
},
{
name: 'mobile',
checkType: 'phoneno',
- errorMsg: '请输入正确的手机号'
+ errorMsg: $lang('common.ns-login.l393.t0')
}
];
var checkRes = validate.check(this.formData, rule);
diff --git a/pages_promotion/fenxiao/bill.vue b/pages_promotion/fenxiao/bill.vue
index 511e122..1f01f84 100644
--- a/pages_promotion/fenxiao/bill.vue
+++ b/pages_promotion/fenxiao/bill.vue
@@ -35,7 +35,7 @@ export default {
setTimeout(() => {
if (!this.addonIsExist.fenxiao) {
this.$util.showToast({
- title: '商家未开启分销',
+ title: $lang('fenxiao.apply.l194'),
mask: true,
duration: 2000
});
diff --git a/pages_promotion/fenxiao/child_fenxiao.vue b/pages_promotion/fenxiao/child_fenxiao.vue
index a7acb2c..725f2dc 100644
--- a/pages_promotion/fenxiao/child_fenxiao.vue
+++ b/pages_promotion/fenxiao/child_fenxiao.vue
@@ -54,7 +54,7 @@ export default {
setTimeout(() => {
if (!this.addonIsExist.fenxiao) {
this.$util.showToast({
- title: '商家未开启分销',
+ title: $lang('fenxiao.apply.l194'),
mask: true,
duration: 2000
});
diff --git a/pages_promotion/fenxiao/goods_list.vue b/pages_promotion/fenxiao/goods_list.vue
index e21d1be..58a6adb 100644
--- a/pages_promotion/fenxiao/goods_list.vue
+++ b/pages_promotion/fenxiao/goods_list.vue
@@ -1,440 +1,440 @@
-
-
-
-
-
-
-
-
-
- 全部
-
- {{ item.category_name }}
-
-
-
-
-
-
-
-
-
-
-
- {{ item.sku_name }}
-
- {{ item.label_name }}
-
-
-
-
- ¥
- {{ item.discount_price }}
-
-
-
- 分享
- 赚{{ item.commission_money }}元
-
-
-
-
-
-
-
-
-
-
-
-
-
- |
-
- 生成海报
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 保存图片
-
-
- 长按保存图片
-
-
-
-
- {{ posterMsg }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ {{ $lang("diy.diy-category-item.l47.t0") }}
+
+ {{ item.category_name }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.sku_name }}
+
+ {{ item.label_name }}
+
+
+
+
+ ¥
+ {{ item.discount_price }}
+
+
+
+ {{ $lang("goods._components.goods-detail-view.l411.t0") }}
+ { $lang("fenxiao.goods_list.l43") } item.commission_money }}元
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+ {{ $lang("fenxiao.goods_list.l59") }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $lang("goods._components.goods-detail-view.l397.t0") }}
+
+
+ {{ $lang("fenxiao.goods_list.l118") }}
+
+
+
+
+ {{ posterMsg }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_promotion/fenxiao/index.vue b/pages_promotion/fenxiao/index.vue
index 8381b7f..79c81da 100644
--- a/pages_promotion/fenxiao/index.vue
+++ b/pages_promotion/fenxiao/index.vue
@@ -18,8 +18,8 @@
:src="$util.img('public/uniapp/fenxiao/index/commissionFission-level.png')"
alt="" class="level-icon">{{ info.level_name }}
- 上级代理商:{{ info.parent_name ? info.parent_name : '总店' }}
- 已邀请成功:{{ teamNum.num }}人{ $lang("fenxiao.index.l21") } info.parent_name ? info.parent_name : $lang('fenxiao.index.l21') }}
+ { $lang("fenxiao.index.l22") } teamNum.num }}人
- 可{{ fenxiaoWords.withdraw }}(元)
+ { $lang("fenxiao.index.l43") } fenxiaoWords.withdraw }}(元)
提现明细
@@ -52,22 +52,22 @@
- 提现中(元){{ $lang("fenxiao.index.l64") }}
{{ info.account_withdraw_apply | moneyFormat }}
- 待入账(元){{ $lang("fenxiao.index.l70") }}
{{ info.in_progress_money | moneyFormat }}
@@ -90,8 +90,8 @@
- 我的粉丝
- 邀请的用户
+ {{ $lang("fenxiao.index.l93") }}
+ {{ $lang("fenxiao.index.l94") }}
- {{ fenxiaoWords.concept + '订单' }}
- {{ fenxiaoWords.concept + '订单' }}明细
+ {{ fenxiaoWords.concept + $lang('fenxiao.index.l114') }}
+ {{ fenxiaoWords.concept + $lang('fenxiao.index.l114') }}明细
@@ -121,8 +121,8 @@
- 我的邀请码
- 邀好友赚好礼
+ {{ $lang("fenxiao.index.l124") }}
+ {{ $lang("fenxiao.index.l125") }}
@@ -190,7 +190,7 @@
- 我的粉丝
+ {{ $lang("fenxiao.index.l93") }}
{{ teamNum.num }}人
@@ -211,8 +211,8 @@
- 您还不是{{ fenxiaoWords.fenxiao_name }},请先提交申请
- 立即加入
+ { $lang("fenxiao.index.l214") } fenxiaoWords.fenxiao_name }},请先提交申请
+ {{ $lang("fenxiao.index.l215") }}
@@ -220,7 +220,7 @@
- 一级分佣比率
+ {{ $lang("fenxiao.level.l20") }}
{{ item.one_rate }}%
- 二级分佣比率
+ {{ $lang("fenxiao.level.l24") }}
{{ item.two_rate }}%
- 三级分佣比率
+ {{ $lang("fenxiao.level.l28") }}
{{ item.three_rate }}%
@@ -40,7 +40,7 @@
- 快速升级技巧
+ {{ $lang("fenxiao.index.l223") }}
{{ levelInfo.complete > levelInfo.task_num ? levelInfo.task_num : levelInfo.complete }}
/{{ levelInfo.task_num }}
@@ -54,7 +54,7 @@
- {{ item.progress == 100 ? '已完成' : '未完成' }}
+ {{ item.progress == 100 ? '已完成' : $lang('fenxiao.index.l231') }}
@@ -73,12 +73,12 @@
@@ -114,9 +114,9 @@
if (level.one_fenxiao_order_num > 0) {
let task = {
- title: '下级消费',
- desc: '下级消费单数满' + level.one_fenxiao_order_num + '单',
- tips: '分销商自己购买和自己推荐的直属会员购买的订单次数达到'+ level.one_fenxiao_order_num + '单',
+ title: $lang('fenxiao.index.l483'),
+ desc: $lang('fenxiao.index.l484') + level.one_fenxiao_order_num + $lang('fenxiao.child_fenxiao.l24'),
+ tips: $lang('fenxiao.level.l119')+ level.one_fenxiao_order_num + $lang('fenxiao.child_fenxiao.l24'),
condition: level.one_fenxiao_order_num,
value: this.fenxiaoInfo.one_fenxiao_order_num,
progress: parseFloat(this.fenxiaoInfo.one_fenxiao_order_num) > parseFloat(level.one_fenxiao_order_num) ? 100 : (parseFloat(this.fenxiaoInfo.one_fenxiao_order_num) / parseFloat(level.one_fenxiao_order_num) * 100).toFixed(2)
@@ -126,9 +126,9 @@
}
if (level.one_fenxiao_total_order > 0) {
let task = {
- title: '下级消费',
- desc: '下级消费金额满' + this.moneyFormat(level.one_fenxiao_total_order) + '元',
- tips: '分销商自己购买和推荐的直属会员购买的订单的总额达到'+ this.moneyFormat(level.one_fenxiao_total_order) + '元',
+ title: $lang('fenxiao.index.l483'),
+ desc: $lang('fenxiao.index.l498') + this.moneyFormat(level.one_fenxiao_total_order) + $lang('common.register-reward.l45.t0'),
+ tips: $lang('fenxiao.level.l131')+ this.moneyFormat(level.one_fenxiao_total_order) + $lang('common.register-reward.l45.t0'),
condition: this.moneyFormat(level.one_fenxiao_total_order),
value: this.fenxiaoInfo.one_fenxiao_total_order,
progress: parseFloat(this.fenxiaoInfo.one_fenxiao_total_order) > parseFloat(level.one_fenxiao_total_order) ? 100 : (parseFloat(this.fenxiaoInfo.one_fenxiao_total_order) / parseFloat(level.one_fenxiao_total_order) * 100)
@@ -139,9 +139,9 @@
}
if (level.one_fenxiao_order_money > 0) {
let task = {
- title: '下级消费',
- desc: '下级消费产生佣金总额满' + this.moneyFormat(level.one_fenxiao_order_money) + '元',
- tips: '分销商自己购买和自己推荐的直属会员购买的订单佣金总额达到'+ this.moneyFormat(level.one_fenxiao_order_money) + '元',
+ title: $lang('fenxiao.index.l483'),
+ desc: $lang('fenxiao.level.l143') + this.moneyFormat(level.one_fenxiao_order_money) + $lang('common.register-reward.l45.t0'),
+ tips: $lang('fenxiao.level.l144')+ this.moneyFormat(level.one_fenxiao_order_money) + $lang('common.register-reward.l45.t0'),
condition: this.moneyFormat(level.one_fenxiao_order_money),
value: this.fenxiaoInfo.one_fenxiao_order_money,
progress: parseFloat(this.fenxiaoInfo.one_fenxiao_order_money) > parseFloat(level.one_fenxiao_order_money) ? 100 : (parseFloat(this.fenxiaoInfo.one_fenxiao_order_money) / parseFloat(level.one_fenxiao_order_money) * 100)
@@ -152,9 +152,9 @@
}
if (level.order_num > 0) {
let task = {
- title: '自身消费',
- desc: '自身消费单数满' + level.order_num + '单',
- tips: '分销商自己购买的订单次数达到'+ level.order_num + '单',
+ title: $lang('fenxiao.index.l526'),
+ desc: $lang('fenxiao.index.l527') + level.order_num + $lang('fenxiao.child_fenxiao.l24'),
+ tips: $lang('fenxiao.level.l157')+ level.order_num + $lang('fenxiao.child_fenxiao.l24'),
condition: level.order_num,
value: this.fenxiaoInfo.order_num,
progress: parseFloat(this.fenxiaoInfo.order_num) > parseFloat(level.order_num) ? 100 : (parseFloat(this.fenxiaoInfo.order_num) / parseFloat(level.order_num) * 100).toFixed(2)
@@ -164,9 +164,9 @@
}
if (level.order_money > 0) {
let task = {
- title: '自身消费',
- desc: '自身消费金额满' + this.moneyFormat(level.order_money) + '元',
- tips: '分销商自己购买的订单总额满足'+ this.moneyFormat(level.order_money) + '元',
+ title: $lang('fenxiao.index.l526'),
+ desc: $lang('fenxiao.index.l539') + this.moneyFormat(level.order_money) + $lang('common.register-reward.l45.t0'),
+ tips: $lang('fenxiao.level.l169')+ this.moneyFormat(level.order_money) + $lang('common.register-reward.l45.t0'),
condition: this.moneyFormat(level.order_money),
value: this.fenxiaoInfo.order_money,
progress: parseFloat(this.fenxiaoInfo.order_money) > parseFloat(level.order_money) ? 100 : (parseFloat(this.fenxiaoInfo.order_money) / parseFloat(level.order_money) * 100).toFixed(2)
@@ -176,9 +176,9 @@
}
if (level.one_child_num > 0) {
let task = {
- title: '邀请好友',
- desc: '邀请好友人数达到' + level.one_child_num + '人',
- tips: '分销商的直属下级会员人数达到'+level.one_child_num+'人(包含已经申请成为分销商的)',
+ title: $lang('fenxiao.index.l133'),
+ desc: $lang('fenxiao.index.l553') + level.one_child_num + $lang('fenxiao.child_fenxiao.l23'),
+ tips: $lang('fenxiao.level.l181')+level.one_child_num+$lang('fenxiao.level.l181'),
condition: level.one_child_num,
value: this.fenxiaoInfo.one_child_num,
progress: parseFloat(this.fenxiaoInfo.one_child_num) > parseFloat(level.one_child_num) ? 100 : (parseFloat(this.fenxiaoInfo.one_child_num) / parseFloat(level.one_child_num) * 100).toFixed(2)
@@ -188,9 +188,9 @@
}
if (level.one_child_fenxiao_num > 0) {
let task = {
- title: '邀请好友',
- desc: '邀请好友成为分销商人数达到' + level.one_child_fenxiao_num + '人',
- tips: '分销商的直属下级分销商人数达到'+ level.one_child_fenxiao_num + '人',
+ title: $lang('fenxiao.index.l133'),
+ desc: $lang('fenxiao.index.l567') + level.one_child_fenxiao_num + $lang('fenxiao.child_fenxiao.l23'),
+ tips: $lang('fenxiao.level.l193')+ level.one_child_fenxiao_num + $lang('fenxiao.child_fenxiao.l23'),
condition: level.one_child_fenxiao_num,
value: this.fenxiaoInfo.one_child_fenxiao_num,
progress: parseFloat(this.fenxiaoInfo.one_child_fenxiao_num) > parseFloat(level.one_child_fenxiao_num) ? 100 : (parseFloat(this.fenxiaoInfo.one_child_fenxiao_num) / parseFloat(level.one_child_fenxiao_num) * 100).toFixed(2)
@@ -208,7 +208,7 @@
setTimeout( () => {
if (!this.addonIsExist.fenxiao) {
this.$util.showToast({
- title: '商家未开启分销',
+ title: $lang('fenxiao.apply.l194'),
mask: true,
duration: 2000
});
@@ -218,7 +218,7 @@
}
},1000);
- if (this.fenxiaoWords && this.fenxiaoWords.fenxiao_name) this.$langConfig.title(this.fenxiaoWords.fenxiao_name + '等级');
+ if (this.fenxiaoWords && this.fenxiaoWords.fenxiao_name) this.$langConfig.title(this.fenxiaoWords.fenxiao_name + $lang('fenxiao.level.l221'));
if (this.storeToken) {
this.getFenxiaoInfo();
diff --git a/pages_promotion/fenxiao/order.vue b/pages_promotion/fenxiao/order.vue
index 2aef62a..008172e 100644
--- a/pages_promotion/fenxiao/order.vue
+++ b/pages_promotion/fenxiao/order.vue
@@ -14,10 +14,10 @@
@click="toDetail(orderItem.fenxiao_order_id)">
@@ -30,9 +30,9 @@
{{ orderItem.sku_name }}
- 返{{ fenxiaoWords.account }}
+ { $lang("diy.diy-pinfan.l52.t0") } fenxiaoWords.account }}
{{
- $lang('common.currencySymbol') }}
+ $lang('common.currency_symbol') }}
{{
parseFloat(orderItem.commission).toFixed(2).split(".")[0] }}
.{{
@@ -41,7 +41,7 @@
- {{ $lang('common.currencySymbol')
+ {{ $lang('common.currency_symbol')
}}
{{
parseFloat(orderItem.price).toFixed(2).split(".")[0] }}
@@ -62,12 +62,12 @@
{{ $util.timeStampTurnTime(orderItem.create_time) }}
-
+
- 合计:
- {{ $lang('common.currencySymbol') }}
+ {{ $lang("order._components.common-payment.l408.t0") }}
+ {{ $lang('common.currency_symbol') }}
{{
parseFloat(orderItem.real_goods_money).toFixed(2).split(".")[0] }}
.{{
@@ -108,22 +108,22 @@ export default {
category: [
{
id: 0,
- name: '全部',
+ name: $lang('diy.diy-category-item.l47.t0'),
number: 2
},
{
id: 1,
- name: '待结算',
+ name: $lang('fenxiao.order.l20'),
number: 0
},
{
id: 2,
- name: '已结算',
+ name: $lang('fenxiao.order.l19'),
number: 0
},
{
id: 3,
- name: '已退款',
+ name: $lang('fenxiao.order.l17'),
number: 0
}
],
@@ -142,7 +142,7 @@ export default {
setTimeout(() => {
if (!this.addonIsExist.fenxiao) {
this.$util.showToast({
- title: '商家未开启分销',
+ title: $lang('fenxiao.apply.l194'),
mask: true,
duration: 2000
});
@@ -152,7 +152,7 @@ export default {
}
}, 1000);
- if (this.fenxiaoWords && this.fenxiaoWords.concept) this.$langConfig.title(this.fenxiaoWords.concept + '订单');
+ if (this.fenxiaoWords && this.fenxiaoWords.concept) this.$langConfig.title(this.fenxiaoWords.concept + $lang('fenxiao.index.l114'));
if (!this.storeToken) {
this.$nextTick(() => {
diff --git a/pages_promotion/fenxiao/order_detail.vue b/pages_promotion/fenxiao/order_detail.vue
index 7c50602..477ee74 100644
--- a/pages_promotion/fenxiao/order_detail.vue
+++ b/pages_promotion/fenxiao/order_detail.vue
@@ -4,11 +4,11 @@
@@ -37,27 +37,27 @@
- 订单编号:
+ {{ $lang("order.detail.l214") }}
{{ orderData.order_no }}
- 分佣层级:
+ {{ $lang("fenxiao.order_detail.l56") }}
{{ orderData.commission_level }}级
- 返佣金额:
+ {{ $lang("fenxiao.order_detail.l60") }}
¥
{{ parseFloat(orderData.commission).toFixed(2).split(".")[0] }}
@@ -100,7 +100,7 @@ export default {
setTimeout( () => {
if (!this.addonIsExist.fenxiao) {
this.$util.showToast({
- title: '商家未开启分销',
+ title: $lang('fenxiao.apply.l194'),
mask: true,
duration: 2000
});
@@ -133,7 +133,7 @@ export default {
this.orderData = res.data;
} else {
this.$util.showToast({
- title: '未获取到订单信息!'
+ title: $lang('order.detail.l737')
});
setTimeout(() => {
this.$util.redirectTo('/pages_promotion/fenxiao/order', {}, 'redirectTo');
diff --git a/pages_promotion/fenxiao/promote.vue b/pages_promotion/fenxiao/promote.vue
index 1b3255a..94cdff9 100644
--- a/pages_promotion/fenxiao/promote.vue
+++ b/pages_promotion/fenxiao/promote.vue
@@ -18,8 +18,8 @@
- 已邀请好友
- 已下单好友
+ {{ $lang("fenxiao.promote.l21") }}
+ {{ $lang("fenxiao.promote.l22") }}
@@ -32,7 +32,7 @@
- 暂无已邀请好友,快去邀请吧
+ {{ $lang("fenxiao.promote.l35") }}
@@ -41,9 +41,9 @@
mode="aspectFit" show-menu-by-longpress>
- 暂无活动规则
+ {{ $lang("fenxiao.promote.l44") }}
-
+
@@ -79,7 +79,7 @@ export default {
setTimeout(() => {
if (!this.addonIsExist.fenxiao) {
this.$util.showToast({
- title: '商家未开启分销',
+ title: $lang('fenxiao.apply.l194'),
mask: true,
duration: 2000
});
diff --git a/pages_promotion/fenxiao/promote_code.vue b/pages_promotion/fenxiao/promote_code.vue
index 7b032b9..cac11bd 100644
--- a/pages_promotion/fenxiao/promote_code.vue
+++ b/pages_promotion/fenxiao/promote_code.vue
@@ -11,22 +11,22 @@
- 长按识别图中二维码
+ {{ $lang("fenxiao.promote_code.l14") }}
- 保存海报
+ {{ $lang("fenxiao.promote_code.l18") }}
@@ -95,7 +95,7 @@ export default {
filePath: res.tempFilePath,
success: () => {
this.$util.showToast({
- title: '保存成功'
+ title: $lang('goods._components.goods-detail-view.detail.l351.t0')
});
},
fail: res => {
@@ -104,20 +104,20 @@ export default {
this.$refs.popupDialog.open();
} else {
this.$util.showToast({
- title: '保存失败,请稍后重试'
+ title: $lang('goods._components.goods-detail-view.detail.l356.t0')
});
}
}
});
} else {
this.$util.showToast({
- title: '下载失败'
+ title: $lang('fenxiao.promote_code.l114')
});
}
},
fail: res => {
this.$util.showToast({
- title: '下载失败'
+ title: $lang('fenxiao.promote_code.l114')
});
}
});
@@ -136,7 +136,7 @@ export default {
});
} catch {
this.$util.showToast({
- title: '海报生成失败'
+ title: $lang('fenxiao.promote_code.l139')
});
}
},
@@ -149,7 +149,7 @@ export default {
setTimeout(() => {
if (!this.addonIsExist.fenxiao) {
this.$util.showToast({
- title: '商家未开启分销',
+ title: $lang('fenxiao.apply.l194'),
mask: true,
duration: 2000
});
diff --git a/pages_promotion/fenxiao/public/js/goods_list.js b/pages_promotion/fenxiao/public/js/goods_list.js
index c2860ca..947b780 100644
--- a/pages_promotion/fenxiao/public/js/goods_list.js
+++ b/pages_promotion/fenxiao/public/js/goods_list.js
@@ -22,7 +22,7 @@ export default {
setTimeout(() => {
if (!this.addonIsExist.fenxiao) {
this.$util.showToast({
- title: '商家未开启分销',
+ title: $lang('fenxiao.apply.l194'),
mask: true,
duration: 2000
});
@@ -48,7 +48,7 @@ export default {
return;
}
- if (this.fenxiaoWords && this.fenxiaoWords.concept) this.$langConfig.title(this.fenxiaoWords.concept + '中心');
+ if (this.fenxiaoWords && this.fenxiaoWords.concept) this.$langConfig.title(this.fenxiaoWords.concept + $lang('fenxiao.index.l293'));
this.is_fenxiao = Boolean(this.memberInfo.is_fenxiao);
},
methods: {
@@ -157,7 +157,7 @@ export default {
//生成海报
getGoodsPoster() {
uni.showLoading({
- 'title': '海报生成中...'
+ 'title': $lang('goods._components.goods-detail-view.detail.l285.t0')
});
let url = "";
let data = {};
@@ -204,12 +204,12 @@ export default {
filePath: res.tempFilePath,
success: () => {
this.$util.showToast({
- title: "保存成功"
+ title: $lang("goods._components.goods-detail-view.detail.l351.t0")
});
},
fail: () => {
this.$util.showToast({
- title: "保存失败,请稍后重试"
+ title: $lang("goods._components.goods-detail-view.detail.l356.t0")
});
}
});
diff --git a/pages_promotion/fenxiao/ranking_list.vue b/pages_promotion/fenxiao/ranking_list.vue
index 8fa5d21..a0e264e 100644
--- a/pages_promotion/fenxiao/ranking_list.vue
+++ b/pages_promotion/fenxiao/ranking_list.vue
@@ -16,9 +16,9 @@
点击提现
+ v-if="type == 'profit'">{{ $lang("fenxiao.ranking_list.l19") }}
我的团队
+ v-if="type == 'invited_num'">{{ $lang("fenxiao.ranking_list.l21") }}
@@ -30,7 +30,7 @@
- 分销佣金
+ {{ $lang("fenxiao.ranking_list.l33") }}
{{ info.today_commission }}元
@@ -41,8 +41,8 @@
- 佣金排行
- 您排行第{{ ranking }}名
+ {{ $lang("fenxiao.ranking_list.l44") }}
+ { $lang("fenxiao.ranking_list.l45") } ranking }}名
@@ -54,7 +54,7 @@
- 推广人数
+ {{ $lang("fenxiao.ranking_list.l57") }}
{{ info.one_child_num }}人
@@ -65,15 +65,15 @@
- 推广排行
- 您排行第{{ ranking }}名
+ {{ $lang("fenxiao.ranking_list.l68") }}
+ { $lang("fenxiao.ranking_list.l45") } ranking }}名
- 佣金排行
- 推广排行
+ {{ $lang("fenxiao.ranking_list.l44") }}
+ {{ $lang("fenxiao.ranking_list.l68") }}
diff --git a/pages_promotion/fenxiao/relation.vue b/pages_promotion/fenxiao/relation.vue
index b2d2272..6cb108e 100644
--- a/pages_promotion/fenxiao/relation.vue
+++ b/pages_promotion/fenxiao/relation.vue
@@ -7,10 +7,10 @@
@click="toDetail(orderItem.fenxiao_order_id)">
@@ -23,16 +23,16 @@
{{ orderItem.sku_name }}
- 返{{ fenxiaoWords.account }}
+ { $lang("diy.diy-pinfan.l52.t0") } fenxiaoWords.account }}
{{
- $lang('common.currencySymbol') }}
+ $lang('common.currency_symbol') }}
{{ orderItem.commission
}}
- {{ $lang('common.currencySymbol') }}
+ {{ $lang('common.currency_symbol') }}
{{ orderItem.price }}
@@ -49,12 +49,12 @@
{{ $util.timeStampTurnTime(orderItem.create_time) }}
-
+
- 合计:
- {{ $lang('common.currencySymbol') }}
+ {{ $lang("order._components.common-payment.l408.t0") }}
+ {{ $lang('common.currency_symbol') }}
{{ orderItem.real_goods_money }}
@@ -93,7 +93,7 @@ export default {
}
},
onShow() {
- if (this.fenxiaoWords && this.fenxiaoWords.concept) this.$langConfig.title(this.fenxiaoWords.concept + '订单');
+ if (this.fenxiaoWords && this.fenxiaoWords.concept) this.$langConfig.title(this.fenxiaoWords.concept + $lang('fenxiao.index.l114'));
},
methods: {
//获得列表数据
diff --git a/pages_promotion/fenxiao/team.vue b/pages_promotion/fenxiao/team.vue
index e7999c9..08559b8 100644
--- a/pages_promotion/fenxiao/team.vue
+++ b/pages_promotion/fenxiao/team.vue
@@ -89,11 +89,11 @@ export default {
return {
levelList: [
{
- name: '一级',
+ name: $lang('fenxiao.team.l92'),
level: 1
},
{
- name: '二级',
+ name: $lang('fenxiao.team.l96'),
level: 2
}
],
@@ -108,7 +108,7 @@ export default {
setTimeout(() => {
if (!this.addonIsExist.fenxiao) {
this.$util.showToast({
- title: '商家未开启分销',
+ title: $lang('fenxiao.apply.l194'),
mask: true,
duration: 2000
});
diff --git a/pages_promotion/fenxiao/withdraw_apply.vue b/pages_promotion/fenxiao/withdraw_apply.vue
index 9301d95..31970ab 100644
--- a/pages_promotion/fenxiao/withdraw_apply.vue
+++ b/pages_promotion/fenxiao/withdraw_apply.vue
@@ -1,518 +1,518 @@
-
-
-
-
- 提现到
- 微信默认钱包
- {{ bankAccountInfo.bank_account }}
-
-
-
-
-
-
-
-
-
-
-
- 请添加提现账户
-
- 提现到
- 余额
-
-
-
-
-
-
-
-
- 提现金额:
-
- {{ $lang('common.currencySymbol') }}
-
-
-
-
-
-
-
- 可提现金额:{{ $lang('common.currencySymbol') }}{{ withdrawInfo.account | moneyFormat }}
- 全部提现
-
-
-
- 最小提现金额为{{ $lang('common.currencySymbol') }}{{ withdrawConfigInfo.withdraw | moneyFormat }},
- 最大提现金额为{{ $lang('common.currencySymbol') }}{{ (withdrawConfigInfo.max > withdrawInfo.account ? withdrawInfo.account : withdrawConfigInfo.max) | moneyFormat }},
- 手续费为{{ withdrawConfigInfo.withdraw_rate + '%' }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages_promotion/fenxiao/withdraw_list.vue b/pages_promotion/fenxiao/withdraw_list.vue
index 0e37783..2007e72 100644
--- a/pages_promotion/fenxiao/withdraw_list.vue
+++ b/pages_promotion/fenxiao/withdraw_list.vue
@@ -8,9 +8,9 @@
- {{ item.transfer_type == 'balance' && '余额' ||
- item.transfer_type == 'alipay' && '支付宝' || item.transfer_type == 'bank' && '银行卡' ||
- item.transfer_type =='wechatpay'&&'微信' }}
+ {{ item.transfer_type == 'balance' && $lang('diy.diy-member-info.l146.t0') ||
+ item.transfer_type == 'alipay' && $lang('fenxiao.withdraw_list.l12') || item.transfer_type == 'bank' && $lang('fenxiao.withdraw_list.l12') ||
+ item.transfer_type =='wechatpay'&&$lang('fenxiao.withdraw_list.l13') }}
{{ $util.timeStampTurnTime(item.create_time) }}
@@ -25,7 +25,7 @@
-
+
@@ -42,19 +42,19 @@ export default {
withdrawState: {
'3': {
color: 'color: rgb(255, 69, 68)',
- text: '已转账'
+ text: $lang('fenxiao.withdraw_list.l45')
},
'1': {
color: 'color: rgb(255, 160, 68)',
- text: '待审核'
+ text: $lang('fenxiao.withdraw_list.l49')
},
'2': {
color: 'color: rgb(17, 189, 100)',
- text: '已审核'
+ text: $lang('fenxiao.withdraw_list.l53')
},
'-1': {
color: 'color: rgb(255, 69, 68)',
- text: '已拒绝'
+ text: $lang('fenxiao.withdraw_list.l57')
}
},
withdrawList: [],
@@ -65,7 +65,7 @@ export default {
setTimeout(() => {
if (!this.addonIsExist.fenxiao) {
this.$util.showToast({
- title: '商家未开启分销',
+ title: $lang('fenxiao.apply.l194'),
mask: true,
duration: 2000
});
@@ -75,7 +75,7 @@ export default {
}
}, 1000);
- if (this.fenxiaoWords && this.fenxiaoWords.withdraw) this.$langConfig.title(this.fenxiaoWords.withdraw + '明细');
+ if (this.fenxiaoWords && this.fenxiaoWords.withdraw) this.$langConfig.title(this.fenxiaoWords.withdraw + $lang('fenxiao.withdraw_list.l78'));
if (!this.storeToken) {
this.$nextTick(() => {
diff --git a/pages_promotion/fenxiao/withdrawal_detail.vue b/pages_promotion/fenxiao/withdrawal_detail.vue
index e581f9b..f879578 100644
--- a/pages_promotion/fenxiao/withdrawal_detail.vue
+++ b/pages_promotion/fenxiao/withdrawal_detail.vue
@@ -7,43 +7,43 @@
- 当前状态
+ {{ $lang("fenxiao.withdrawal_detail.l10") }}
{{ detail.status_name }}
- 交易号
+ {{ $lang("fenxiao.withdrawal_detail.l14") }}
{{ detail.withdraw_no }}
- 手续费
+ {{ $lang("fenxiao.withdrawal_detail.l18") }}
¥{{ detail.withdraw_rate_money }}
- 申请时间
+ {{ $lang("fenxiao.withdrawal_detail.l22") }}
{{ $util.timeStampTurnTime(detail.create_time) }}
- 审核时间
+ {{ $lang("fenxiao.withdrawal_detail.l26") }}
{{ $util.timeStampTurnTime(detail.audit_time) }}
- 银行名称
+ {{ $lang("fenxiao.withdrawal_detail.l30") }}
{{ detail.bank_name }}
- 收款账号
+ {{ $lang("fenxiao.withdrawal_detail.l34") }}
{{ detail.account_number }}
- 拒绝理由
+ {{ $lang("fenxiao.withdrawal_detail.l38") }}
{{ detail.refuse_reason }}
- 转账方式名称
+ {{ $lang("fenxiao.withdrawal_detail.l42") }}
{{ detail.transfer_name }}
- 转账时间
+ {{ $lang("fenxiao.withdrawal_detail.l46") }}
{{ $util.timeStampTurnTime(detail.payment_time) }}
diff --git a/pages_promotion/merch/detail.vue b/pages_promotion/merch/detail.vue
index 444c30b..5620cb3 100644
--- a/pages_promotion/merch/detail.vue
+++ b/pages_promotion/merch/detail.vue
@@ -4,7 +4,7 @@
-
+
@@ -28,11 +28,11 @@
{{ merch.desc }}
↓
- 上滑查看更多
+ {{ $lang("merch.detail.l31") }}
- {{ isDescExpanded ? '↑ 收起' : '↓ 展开' }}
+ {{ isDescExpanded ? '↑ 收起' : $lang('merch.detail.l35') }}
@@ -42,14 +42,14 @@
- 综合
+ {{ $lang("goods.list.l19") }}
销量
- 价格
+ {{ $lang("goods.list.l28") }}
@@ -61,7 +61,7 @@
- 筛选
+ {{ $lang("goods.list.l40") }}
@@ -92,14 +92,14 @@
- {{ $lang('common.currencySymbol') }}
+ {{ $lang('common.currency_symbol') }}
{{
parseFloat(showPrice(item)).toFixed(2).split('.')[0] }}
.{{
parseFloat(showPrice(item)).toFixed(2).split('.')[1] }}
- {{ $lang('Make') ? $lang('Make') : '立即咨询'
+ {{ $lang('common.action.consult') ? $lang('common.action.consult') : $lang('merch.detail.l102')
}}
@@ -114,12 +114,12 @@
- {{ $lang('common.currencySymbol') }}
+ {{ $lang('common.currency_symbol') }}
{{ showMarketPrice(item) }}
已售{{ item.sale_num }}{{ item.unit
- ? item.unit : '件' }}
+ ? item.unit : $lang('common.ns-goods-sku.ns-goods-sku-index.l150.t0') }}
@@ -186,14 +186,14 @@
- {{ $lang('common.currencySymbol') }}
+ {{ $lang('common.currency_symbol') }}
{{
parseFloat(showPrice(item)).toFixed(2).split('.')[0] }}
.{{
parseFloat(showPrice(item)).toFixed(2).split('.')[1] }}
- {{ $lang('Make') ? $lang('Make') : '立即咨询'
+ {{ $lang('common.action.consult') ? $lang('common.action.consult') : $lang('merch.detail.l102')
}}
- {{ $lang('common.currencySymbol') }}
+ {{ $lang('common.currency_symbol') }}
{{ showMarketPrice(item) }}
已售{{ item.sale_num }}{{ item.unit
- ? item.unit : '件' }}
+ ? item.unit : $lang('common.ns-goods-sku.ns-goods-sku-index.l150.t0') }}
@@ -258,7 +258,7 @@
-
+
@@ -266,11 +266,11 @@
- 筛选
+ {{ $lang("goods.list.l40") }}
- 全部分类
+ {{ $lang("goods.list.l188") }}
- 全部
+ {{ $lang("diy.diy-category-item.l47.t0") }}
@@ -313,8 +313,8 @@
diff --git a/pages_promotion/merch/merchcategory.vue b/pages_promotion/merch/merchcategory.vue
index db0de4c..0064490 100644
--- a/pages_promotion/merch/merchcategory.vue
+++ b/pages_promotion/merch/merchcategory.vue
@@ -1,268 +1,268 @@
-
-
-
-
-
-
-
-
-
-
- {{ item.category_name }}
-
-
-
-
-
-
-
-
-
- {{ item.category_name }}
-
-
-
-
-
- {{ one.merch_name }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages_promotion/merch/public/edit.js b/pages_promotion/merch/public/edit.js
index 68198e0..e912c27 100644
--- a/pages_promotion/merch/public/edit.js
+++ b/pages_promotion/merch/public/edit.js
@@ -53,54 +53,54 @@ export default {
begin_time:'',//团购开始时间
end_time:''//团购结束时间
},
- groundingArray: ['下架', '上架'],
+ groundingArray: [$lang('merch.public.edit.l56'), $lang('merch.public.edit.l56')],
- pickuptypeArray: ['当日达', '次日达', '隔日达'],//, '自定义'
+ pickuptypeArray: [$lang('merch.public.edit.l58'), $lang('merch.public.edit.l58'), $lang('merch.public.edit.l58')],//, $lang('merch.public.edit.l58')
currCategory: 0, // 当前所设置的商品分类
virtualDeliverArray: [{
- name: '自动发货',
+ name: $lang('merch.public.edit.l63'),
value: 'auto_deliver',
},
{
- name: '手动发货',
+ name: $lang('merch.public.edit.l67'),
value: 'artificial_deliver',
},
{
- name: '到店核销',
+ name: $lang('merch.public.edit.l71'),
value: 'verify',
}
],
virtualDeliverValue: {
- 'auto_deliver': '自动发货',
- 'artificial_deliver': '手动发货',
- 'verify': '到店核销'
+ 'auto_deliver': $lang('merch.public.edit.l63'),
+ 'artificial_deliver': $lang('merch.public.edit.l67'),
+ 'verify': $lang('merch.public.edit.l71')
},
virtualReceiveArray: [{
- name: '自动收货',
+ name: $lang('merch.public.edit.l81'),
value: 'auto_receive',
},
{
- name: '买家确认收货',
+ name: $lang('merch.public.edit.l85'),
value: 'artificial_receive',
},
],
virtualReceiveValue: {
- 'auto_receive': '自动收货',
- 'artificial_receive': '买家确认收货',
+ 'auto_receive': $lang('merch.public.edit.l81'),
+ 'artificial_receive': $lang('merch.public.edit.l85'),
},
- validityTypeArray: ['永久', '购买后几日有效', '指定过期日期'],
+ validityTypeArray: [$lang('goods.detail.l133'), $lang('merch.public.edit.l93'), $lang('merch.public.edit.l93')],
virtualIndate: 0,
minDate: '',
- carmiLength: '添加卡密',
+ carmiLength: $lang('merch.public.edit.l96'),
limitLength: [ //限购
{
- name: '单次限购',
+ name: $lang('merch.public.edit.l99'),
value: '1'
},
{
- name: '长期限购',
+ name: $lang('merch.public.edit.l103'),
value: '2'
}
],
@@ -123,14 +123,14 @@ export default {
if (this.goodsData.id) {
this.isAWait = true;
uni.setNavigationBarTitle({
- title: '编辑商品'
+ title: $lang('merch.public.edit.l126')
});
await this.editGetGoodsInfo();
} else {
this.isAWait = false;
uni.setNavigationBarTitle({
- title: '添加商品'
+ title: $lang('merch.public.edit.l133')
});
}
@@ -167,7 +167,7 @@ export default {
if(res.result.detail){
this.goodsData = res.result.detail
this.$util.showToast({
- title: '商品不存在',
+ title: $lang('merch.public.edit.l170'),
});
setTimeout(() => {
this.$util.redirectTo('/pages_goods/list', {}, 'redirectTo');
@@ -265,7 +265,7 @@ export default {
this.$forceUpdate();
} else {
this.$util.showToast({
- title: '商品不存在',
+ title: $lang('merch.public.edit.l170'),
});
setTimeout(() => {
this.$util.redirectTo('/pages_goods/list', {}, 'redirectTo');
@@ -493,7 +493,7 @@ export default {
addShopCategory() {
if (this.shopCategoryNumber == 10) {
this.$util.showToast({
- title: '商品可以属于多个分类,最多10个'
+ title: $lang('merch.public.edit.l496')
});
return;
}
@@ -530,7 +530,7 @@ export default {
this.goodsData.carmichael = uni.getStorageSync('editGoodsCarmichael') ? JSON.parse(uni.getStorageSync('editGoodsCarmichael')) : [];
if (this.goodsData.carmichael.length > 0) {
- this.carmiLength = '添加卡密【' + this.goodsData.carmichael.length + '】'
+ this.carmiLength = $lang('merch.public.edit.l533') + this.goodsData.carmichael.length + '】'
}
}
@@ -568,21 +568,21 @@ export default {
if (this.goodsData.goodsname.length == 0) {
this.$util.showToast({
- title: '请输入商品名称'
+ title: $lang('common.ns-navbar.l31.t0')
});
return false;
}
if (this.goodsData.subtitle.length > 100) {
this.$util.showToast({
- title: '商品简介不能超过100个字符'
+ title: $lang('merch.public.edit.l578')
});
return false;
}
if (this.goodsData.goods_image.length == 0) {
this.$util.showToast({
- title: '请上传商品图片'
+ title: $lang('merch.public.edit.l585')
});
return false;
}
@@ -632,20 +632,20 @@ export default {
if (this.goodsData.price == 0) {
this.$util.showToast({
- title: '请输入销售价'
+ title: $lang('merch.public.edit.l635')
});
return false;
}
if (isNaN(this.goodsData.price) || !this.$util.data().regExp.digit.test(this.goodsData.price)) {
this.$util.showToast({
- title: '[销售价]格式输入错误'
+ title: $lang('merch.public.edit.l641')
});
return false;
}
if (this.goodsData.productprice.length > 0 && (isNaN(this.goodsData.productprice) || !this.$util.data().regExp.digit.test(this.goodsData.productprice))) {
this.$util.showToast({
- title: '[原价价]格式输入错误'
+ title: $lang('merch.public.edit.l648')
});
return false;
}
@@ -655,26 +655,26 @@ export default {
// 总库存
if (this.goodsData.total == 0) {
this.$util.showToast({
- title: '请输入库存'
+ title: $lang('merch.public.edit.l658')
});
return false;
}
if (isNaN(this.goodsData.total) || !this.$util.data().regExp.number.test(this.goodsData.total)) {
this.$util.showToast({
- title: '[库存]格式输入错误'
+ title: $lang('merch.public.edit.l665')
});
return false;
}
if (isNaN(this.goodsData.goods_start_count) || !this.$util.data().regExp.number.test(this.goodsData.goods_start_count)) {
this.$util.showToast({
- title: '[起售]格式输入错误'
+ title: $lang('merch.public.edit.l671')
});
return false;
}
if (this.goodsData.goods_start_count < 0) {
this.$util.showToast({
- title: '起售数量不能小于0'
+ title: $lang('merch.public.edit.l677')
});
return false;
}
@@ -905,7 +905,7 @@ export default {
getGoodsForm() {
getOrderFormList().then(res=>{
if (res.data) {
- let goodsForm = ['请选择商品表单'];
+ let goodsForm = [$lang('merch.public.edit.l908')];
res.data.forEach((item, index) => {
goodsForm.push(item.form_name);
if (this.goodsData.form_id && this.goodsData.form_id == item.id) this.goodsData.goods_form_index = index + 1;
@@ -926,7 +926,7 @@ export default {
getSupplyList() {
getSupplyList().then(res=>{
if (res.data) {
- let supplyForm = ['请选择供应商'];
+ let supplyForm = [$lang('merch.public.edit.l929')];
res.data.forEach((item, index) => {
supplyForm.push(item.title);
if (this.goodsData.supplier_id && this.goodsData.supplier_id == item.supplier_id) this.goodsData.supply_index = index + 1;
diff --git a/pages_promotion/merch/public/js/list.js b/pages_promotion/merch/public/js/list.js
index 0d2c625..f24957f 100644
--- a/pages_promotion/merch/public/js/list.js
+++ b/pages_promotion/merch/public/js/list.js
@@ -39,7 +39,7 @@ export default {
fontWeight: false,
padding: 0,
cartEvent: "detail",
- text: "购买",
+ text: $lang("common.ns-goods-recommend.l20.t0"),
textColor: "#FFFFFF",
theme: "default",
aroundRadius: 25,
@@ -76,8 +76,8 @@ export default {
this.getMerch()
}else{
uni.showModal({
- title:'提示',
- content:'商家不存在',
+ title:$lang('common.wxwork-contact.l202.t0'),
+ content:$lang('merch.public.js.list.l80'),
showCancel:false,
success(e){
uni.navigateBack({})
@@ -120,7 +120,7 @@ export default {
* 转发分享
*/
onShareAppMessage(res) {
- var title = '搜索到' + this.count + '件“' + this.keyword + this.category_title + this.coupon_name + '”相关的优质商品';
+ var title = $lang('goods.public.js.list.l126') + this.count + $lang('goods.public.js.list.l126') + this.keyword + this.category_title + this.coupon_name + $lang('goods.public.js.list.l126');
let route = this.$util.getCurrentShareRoute(this.memberInfo ? this.memberInfo.member_id : 0);
var path = route.path;
return {
@@ -134,7 +134,7 @@ export default {
},
// 分享到微信朋友圈
onShareTimeline() {
- var title = '搜索到' + this.count + '件“' + this.keyword + this.category_title + this.coupon_name + '”相关的优质商品';
+ var title = $lang('goods.public.js.list.l126') + this.count + $lang('goods.public.js.list.l126') + this.keyword + this.category_title + this.coupon_name + $lang('goods.public.js.list.l126');
let route = this.$util.getCurrentShareRoute(this.memberInfo ? this.memberInfo.member_id : 0);
var query = route.query;
return {
@@ -144,18 +144,18 @@ export default {
};
},
methods: {
- getMerch(){
- this.$api.sendRequest({
- url: '/merch/api/merch/merchinfo',
- data: {
- merch_id: this.merch_id
- },
- success: res => {
- if (res.code >= 0 && res.data) {
- this.merch = res.data;
- }
- }
- });
+ getMerch(){
+ this.$api.sendRequest({
+ url: '/merch/api/merch/merchinfo',
+ data: {
+ merch_id: this.merch_id
+ },
+ success: res => {
+ if (res.code >= 0 && res.data) {
+ this.merch = res.data;
+ }
+ }
+ });
},
/**
* 获取优惠券数据
@@ -336,26 +336,26 @@ export default {
// }
if (!Number(this.maxPrice) && this.maxPrice) {
this.$util.showToast({
- title: '请输入最高价'
+ title: $lang('goods.public.js.list.l365')
});
return;
}
if (Number(this.minPrice) < 0 || Number(this.maxPrice) < 0) {
this.$util.showToast({
- title: '筛选价格不能小于0'
+ title: $lang('goods.public.js.list.l371')
});
return;
}
if (this.minPrice != '' && Number(this.minPrice) > Number(this.maxPrice) && this.maxPrice) {
this.$util.showToast({
- title: '最低价不能大于最高价'
+ title: $lang('goods.public.js.list.l378')
});
return;
}
if (this.maxPrice != '' && Number(this.maxPrice) < Number(this.minPrice)) {
this.$util.showToast({
- title: '最高价不能小于最低价'
+ title: $lang('goods.public.js.list.l384')
});
return;
}
diff --git a/pages_promotion/point/detail.vue b/pages_promotion/point/detail.vue
index 6b8f00d..90e9780 100644
--- a/pages_promotion/point/detail.vue
+++ b/pages_promotion/point/detail.vue
@@ -37,12 +37,12 @@
{{ pointInfo.point }}积分
- +{{ $lang('common.currencySymbol') }}{{ pointInfo.exchange_price
+ +{{ $lang('common.currency_symbol') }}{{ pointInfo.exchange_price
}}
- {{ $lang('common.currencySymbol') }}
+ {{ $lang('common.currency_symbol') }}
{{ pointInfo.price }}
@@ -63,9 +63,9 @@
内含{{ pointInfo.balance
}}元
- 无门槛优惠券
+ {{ $lang("diy.diy-coupon.l32.t2") }}
{{ '满' + pointInfo.at_least +
- '减' + pointInfo.money
+ $lang('common.register-reward.l60.t2') + pointInfo.money
}}
满{{ pointInfo.at_least }}元
@@ -74,8 +74,8 @@
最多优惠{{
pointInfo.discount_limit }}元
- {{ pointInfo.validity_type == 1 ? '领取之日起' + pointInfo.fixed_term + '天内有效' :
- $util.timeStampTurnTime(pointInfo.end_time) + '到期' }}
+ {{ pointInfo.validity_type == 1 ? $lang('point.detail.l77') + pointInfo.fixed_term + '天内有效' :
+ $util.timeStampTurnTime(pointInfo.end_time) + $lang('point.detail.l78') }}
@@ -88,7 +88,7 @@
-
+
@@ -96,7 +96,7 @@
v-show="isCommunity">
@@ -161,7 +161,7 @@
+ @click="closeMerchantsServicePopup()">{{ $lang("common.ns-goods-sku.ns-goods-sku-category.l76.t0") }}
@@ -184,7 +184,7 @@
- 兑换详情
+ {{ $lang("point.detail.l187") }}
@@ -192,7 +192,7 @@
- 暂无兑换详情!
+ {{ $lang("point.detail.l195") }}
@@ -205,14 +205,14 @@
+ type="primary">{{ $lang("point.detail.l208") }}
+ disabled>{{ $lang("common.ns-goods-sku.ns-goods-sku-category.l264.t0") }}
+ disabled>{{ $lang("point.detail.l213") }}
+ type="primary" hover-class="none">{{ $lang("common.ns-goods-sku.l185.t0") }}
@@ -293,7 +293,7 @@ export default {
imageUrl = this.pointInfo.image;
break;
}
- title = '仅需' + this.pointInfo.point + '积分即可兑换' + title;
+ title = $lang('point.detail.l296') + this.pointInfo.point + $lang('point.detail.l296') + title;
imageUrl = this.$util.img(imageUrl);
var route = this.$util.getCurrentShareRoute(this.memberInfo ? this.memberInfo.member_id : 0);
var path = route.path;
@@ -322,7 +322,7 @@ export default {
imageUrl = this.pointInfo.image;
break;
}
- title = '仅需' + this.pointInfo.point + '积分即可兑换' + title;
+ title = $lang('point.detail.l296') + this.pointInfo.point + $lang('point.detail.l296') + title;
imageUrl = this.$util.img(imageUrl);
var route = this.$util.getCurrentShareRoute(this.memberInfo ? this.memberInfo.member_id : 0);
var query = route.query;
@@ -424,7 +424,7 @@ export default {
if (this.pointInfo.goods_spec_format) this.pointInfo.goods_spec_format = JSON.parse(this.pointInfo.goods_spec_format);
}
- this.pointInfo.unit = this.pointInfo.unit || '件';
+ this.pointInfo.unit = this.pointInfo.unit || $lang('common.ns-goods-sku.ns-goods-sku-index.l150.t0');
// 商品详情
if (this.pointInfo.content) this.pointInfo.content = htmlParser(this.pointInfo.content);
@@ -458,7 +458,7 @@ export default {
*/
refreshGoodsSkuDetail(pointInfo) {
Object.assign(this.pointInfo, pointInfo);
- this.pointInfo.unit = this.pointInfo.unit || '件';
+ this.pointInfo.unit = this.pointInfo.unit || $lang('common.ns-goods-sku.ns-goods-sku-index.l150.t0');
},
//服务
openMerchantsServicePopup() {
diff --git a/pages_promotion/point/goods_list.vue b/pages_promotion/point/goods_list.vue
index eb27ef9..6db08df 100644
--- a/pages_promotion/point/goods_list.vue
+++ b/pages_promotion/point/goods_list.vue
@@ -14,10 +14,10 @@
- {{ isEnEnv ? 'Comprehensive' : '综合' }}
+ {{ isEnEnv ? 'Comprehensive' : $lang('goods.list.l19') }}
- {{ isEnEnv ? 'Points' : '积分' }}
+ {{ isEnEnv ? 'Points' : $lang('common.register-reward.l19.t0') }}
@@ -26,7 +26,7 @@
- {{ isEnEnv ? 'New Arrival' : '上新时间'
+ {{ isEnEnv ? 'New Arrival' : $lang('point.goods_list.l29')
}}
- {{ isEnEnv ? 'Filter' : '筛选' }}
+ {{ isEnEnv ? 'Filter' : $lang('goods.list.l40') }}
@@ -60,10 +60,10 @@
{{ item.point }}
- {{ isEnEnv ? 'Points' : '积分' }}
+ {{ isEnEnv ? 'Points' : $lang('common.register-reward.l19.t0') }}
+
- {{ $lang('common.currencySymbol')
+ {{ $lang('common.currency_symbol')
}}
{{
parseFloat(item.price).toFixed(2).split(".")[0] }}
@@ -73,10 +73,10 @@
- {{ isEnEnv ? 'Stock ' : '库存' }}{{
+ {{ isEnEnv ? 'Stock ' : $lang('common.ns-goods-sku.l120.t0') }}{{
item.stock }}
-
+
@@ -92,11 +92,11 @@
- {{ isEnEnv ? 'Filter' : '筛选' }}
+ {{ isEnEnv ? 'Filter' : $lang('goods.list.l40') }}
- {{ isEnEnv ? 'Point Range' : '积分区间' }}
+ {{ isEnEnv ? 'Point Range' : $lang('point.goods_list.l99') }}
@@ -107,11 +107,11 @@
- {{ isEnEnv ? 'All Categories' : '全部分类' }}
+ {{ isEnEnv ? 'All Categories' : $lang('goods.list.l188') }}
{{ isEnEnv ? 'All' :
- '全部' }}
+ $lang('diy.diy-category-item.l47.t0') }}
@@ -285,26 +285,26 @@ export default {
// }
if (!Number(this.maxPoint) && this.maxPoint) {
this.$util.showToast({
- title: this.isEnEnv ? 'Please enter the maximum price' : '请输入最高价'
+ title: this.isEnEnv ? 'Please enter the maximum price' : $lang('goods.public.js.list.l365')
});
return;
}
if (Number(this.minPoint) < 0 || Number(this.maxPoint) < 0) {
this.$util.showToast({
- title: this.isEnEnv ? 'Filter price cannot be less than 0' : '筛选价格不能小于0'
+ title: this.isEnEnv ? 'Filter price cannot be less than 0' : $lang('goods.public.js.list.l371')
});
return;
}
if (this.minPoint != '' && Number(this.minPoint) > Number(this.maxPoint) && this.maxPoint) {
this.$util.showToast({
- title: this.isEnEnv ? 'Minimum price cannot be greater than maximum price' : '最低价不能大于最高价'
+ title: this.isEnEnv ? 'Minimum price cannot be greater than maximum price' : $lang('goods.public.js.list.l378')
});
return;
}
if (this.maxPoint != '' && Number(this.maxPoint) < Number(this.minPoint)) {
this.$util.showToast({
- title: this.isEnEnv ? 'Maximum price cannot be less than minimum price' : '最高价不能小于最低价'
+ title: this.isEnEnv ? 'Maximum price cannot be less than minimum price' : $lang('goods.public.js.list.l384')
});
return;
}
diff --git a/pages_promotion/point/list.vue b/pages_promotion/point/list.vue
index e27e159..751460b 100644
--- a/pages_promotion/point/list.vue
+++ b/pages_promotion/point/list.vue
@@ -1,607 +1,607 @@
-
-
-
-
-
-
-
-
-
-
- 搜索商品
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 我的积分
-
-
- {{ point }}
- 积分
-
-
-
-
-
-
-
-
-
-
-
- 储值{{ parseFloat(item.buy_price) }}元
- 可得{{ item.point }}积分
- 去储值
-
-
-
-
-
-
-
- 积分换券
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ¥
- {{ parseFloat(couponItem.money) }}
-
-
-
- {{ parseFloat(couponItem.discount) }}折
-
-
-
-
-
- {{ couponItem.at_least == 0 ? '无门槛优惠券' : '满' +
- parseFloat(couponItem.at_least).toFixed(0) + '可用' }}
-
- 全场券
-
- 指定券
-
-
-
- {{ couponItem.point }}积分
- 兑换
-
-
-
-
-
-
-
-
-
-
-
- 积分换红包
-
-
-
-
-
-
-
-
-
-
-
-
- ¥
- {{ parseFloat(hongbaoItem.balance).toFixed(0) }}
-
-
-
-
- {{ hongbaoItem.point }}积分
- 兑换
-
-
-
-
-
-
-
-
-
-
- 积分换礼品
-
-
-
-
-
-
-
-
-
-
-
- {{ item.name }}
-
-
-
-
- {{ item.point }}
- 积分
-
-
- +
-
- {{
- parseFloat(item.price).toFixed(2).split(".")[0] }}
- .{{
- parseFloat(item.price).toFixed(2).split(".")[1] }}元
-
-
-
- 兑换
-
-
-
- 库存:{{ isNaN(parseInt(item.stock)) ? 0 : parseInt(item.stock) }}
-
- 已兑:{{ isNaN(parseInt(item.sale_num)) ? 0 : parseInt(item.sale_num) }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ isEnEnv ? 'Integral Description' : '积分说明' }}
-
-
-
-
- {{ isEnEnv ? 'Integral Acquisition' : '积分的获取' }}
- 1、积分可在注册、签到、分享、消费、充值时获得。
- 2、在购买部分商品时可获得积分。
- {{ isEnEnv ? 'Integral Use' : '积分的使用' }}
- 1、积分可用于兑换积分中心的商品。
- 2、积分可在参与某些活动时使用。
- 3、积分不得转让,出售,不设有效期。
- {{ isEnEnv ? 'Integral Query' : '积分的查询' }}
- 1、积分可在会员中心中查询具体数额以及明细。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/pages_promotion/point/order_list.vue b/pages_promotion/point/order_list.vue
index 13938c5..77f6a21 100644
--- a/pages_promotion/point/order_list.vue
+++ b/pages_promotion/point/order_list.vue
@@ -16,7 +16,7 @@
@@ -82,7 +82,7 @@
+ text=$lang("point.order_list.l85")>
@@ -104,9 +104,9 @@ export default {
outTradeNo: '',
payMoney: 0,
statusList: [
- { status: 'all', id: 'all', name: '全部' },
- { status: 0, id: 'pay', name: '待支付' },
- { status: 1, id: 'complete', name: '已完成' },
+ { status: 'all', id: 'all', name: $lang('diy.diy-category-item.l47.t0') },
+ { status: 0, id: 'pay', name: $lang('order.detail_point.l14') },
+ { status: 1, id: 'complete', name: $lang('order.detail_point.l14') },
],
orderStatus: 'all',
};
@@ -115,7 +115,7 @@ export default {
setTimeout(() => {
if (!this.addonIsExist.pointexchange) {
this.$util.showToast({
- title: '商家未开启积分商城',
+ title: $lang('point.list.l305'),
mask: true,
duration: 2000
});
@@ -182,8 +182,8 @@ export default {
},
orderClose(order_id, index) {
uni.showModal({
- title: '提示',
- content: '确定关闭此次兑换?',
+ title: $lang('common.wxwork-contact.l202.t0'),
+ content: $lang('order.detail_point.l225'),
success: res => {
if (res.confirm) {
this.$api.sendRequest({
@@ -195,7 +195,7 @@ export default {
if (res.code >= 0) {
this.orderList[index].order_status = -1;
this.$util.showToast({
- title: '关闭成功'
+ title: $lang('order.detail_point.l236')
});
this.$forceUpdate();
}
diff --git a/pages_promotion/point/payment.vue b/pages_promotion/point/payment.vue
index ea0cebf..053c0ed 100644
--- a/pages_promotion/point/payment.vue
+++ b/pages_promotion/point/payment.vue
@@ -7,7 +7,7 @@
}">
- 确认订单
+ {{ $lang("order._components.common-payment.l7.t0") }}
@@ -42,13 +42,13 @@
由 {{ storeInfo.currStore.store_name }} 提供配送
- 点击切换
+ {{ $lang("order._components.common-payment.l75.t0") }}
- 您的附近没有可配送的门店,请选择其他配送方式
+ {{ $lang("order._components.common-payment.l81.t0") }}
@@ -69,7 +69,7 @@
- 请设置收货地址
+ {{ $lang("order._components.common-payment.l57.t0") }}
@@ -80,11 +80,11 @@
- 送达时间
+ {{ $lang("order._components.common-payment.l100.t0") }}
{{
orderCreateData.buyer_ask_delivery_title ?
- orderCreateData.buyer_ask_delivery_title : '请选择送达时间' }}
+ orderCreateData.buyer_ask_delivery_title : $lang('order._components.common-payment.l102.t0') }}
@@ -116,28 +116,28 @@
- 姓名
+ {{ $lang("order._components.common-payment.l138.t0") }}
- 预留手机
- {{ $lang("order._components.common-payment.l144.t0") }}
+
- 自提时间
+ {{ $lang("point.payment.l133") }}
{{ orderCreateData.buyer_ask_delivery_title }}
- 当前无自提门店,请选择其它配送方式
+ {{ $lang("order._components.common-payment.l156.t0") }}
@@ -151,8 +151,8 @@
- 手机号码
- {{ $lang("order._components.common-payment.l27.t0") }}
+
@@ -188,9 +188,9 @@
{{ orderPaymentData.exchange_info.point }}
- 积分
+ {{ $lang("common.register-reward.l19.t0") }}
- +{{ $lang('common.currencySymbol') }}
+ +{{ $lang('common.currency_symbol') }}
{{ orderPaymentData.exchange_info.price }}
@@ -204,8 +204,8 @@
diff --git a/pages_promotion/point/public/js/payment.js b/pages_promotion/point/public/js/payment.js
index c0d7cbd..1551ddb 100644
--- a/pages_promotion/point/public/js/payment.js
+++ b/pages_promotion/point/public/js/payment.js
@@ -92,7 +92,7 @@ export default {
uni.removeStorageSync("pay_flag");
} else {
this.$util.showToast({
- title: '未获取到创建订单所需数据!'
+ title: $lang('point.public.js.payment.l95')
});
setTimeout(() => {
this.$util.redirectTo(this.$util.INDEX_PAGE_URL);
@@ -119,7 +119,7 @@ export default {
if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
} else {
this.$util.showToast({
- title: '未获取到创建订单所需数据!'
+ title: $lang('point.public.js.payment.l95')
});
setTimeout(() => {
this.$util.redirectTo(this.$util.INDEX_PAGE_URL);
@@ -280,9 +280,9 @@ export default {
this.isSub = false;
if (res.data.error_code == 10 || res.data.error_code == 12) {
uni.showModal({
- title: '订单未创建',
+ title: $lang('point.public.js.payment.l283'),
content: res.message,
- confirmText: '去设置',
+ confirmText: $lang('point.public.js.payment.l285'),
success: res => {
if (res.confirm) {
this.selectAddress();
@@ -309,13 +309,13 @@ export default {
if (this.orderPaymentData.is_virtual == 1) {
if (!this.orderCreateData.member_address.mobile.length) {
this.$util.showToast({
- title: '请输入您的手机号码'
+ title: $lang('order._components.common-payment.l28.t0')
});
return false;
}
if (!this.$util.verifyMobile(this.orderCreateData.member_address.mobile)) {
this.$util.showToast({
- title: '请输入正确的手机号码'
+ title: $lang('point.public.js.payment.l318')
});
return false;
}
@@ -324,7 +324,7 @@ export default {
if (this.orderPaymentData.is_virtual == 0) {
if (!this.orderCreateData.delivery || !this.orderCreateData.delivery.delivery_type) {
this.$util.showToast({
- title: '商家未设置配送方式'
+ title: $lang('order._components.common-payment.payment.l500.t0')
});
return false;
}
@@ -332,7 +332,7 @@ export default {
if (this.orderCreateData.delivery.delivery_type != 'store') {
if (!this.orderCreateData.member_address) {
this.$util.showToast({
- title: '请先选择您的收货地址'
+ title: $lang('order._components.common-payment.payment.l509.t0')
});
return false;
}
@@ -341,26 +341,26 @@ export default {
if (this.orderCreateData.delivery.delivery_type == 'store') {
if (!this.orderCreateData.delivery.store_id) {
this.$util.showToast({
- title: '没有可提货的门店,请选择其他配送方式'
+ title: $lang('order._components.common-payment.payment.l517.t0')
});
return false;
}
if (!this.member_address.mobile) {
this.$util.showToast({
- title: '请输入预留手机'
+ title: $lang('order._components.common-payment.payment.l487.t0')
});
return false;
}
if (!this.$util.verifyMobile(this.member_address.mobile)) {
this.$util.showToast({
- title: '请输入正确的预留手机'
+ title: $lang('point.public.js.payment.l356')
});
return false;
}
if (!this.orderCreateData.delivery.buyer_ask_delivery_time.start_date || !this.orderCreateData.delivery.buyer_ask_delivery_time.end_date) {
this.$util.showToast({
- title: '请选择自提时间'
+ title: $lang('point.public.js.payment.l363')
});
return false;
}
@@ -369,13 +369,13 @@ export default {
if (this.orderCreateData.delivery.delivery_type == 'local') {
if (!this.orderCreateData.delivery.store_id) {
this.$util.showToast({
- title: '没有可配送的门店,请选择其他配送方式'
+ title: $lang('order._components.common-payment.payment.l544.t0')
});
return false;
}
if (this.orderPaymentData.config.local.is_use && this.orderPaymentData.delivery.local.info && this.orderPaymentData.delivery.local.info.time_is_open == 1 && (!this.orderCreateData.delivery.buyer_ask_delivery_time.start_date || !this.orderCreateData.delivery.buyer_ask_delivery_time.end_date)) {
this.$util.showToast({
- title: '请选择配送时间'
+ title: $lang('point.public.js.payment.l378')
});
return false;
}
@@ -526,7 +526,7 @@ export default {
start_date:data.data.start_date,
end_date:data.data.end_date
};
- if (data.data.title == '今天' || data.data.title == '明天') {
+ if (data.data.title == $lang('common.ns-select-time.l173.t0') || data.data.title == $lang('common.ns-select-time.l185.t0')) {
this.orderCreateData.buyer_ask_delivery_title = data.data.title + '(' + data.data.time + ')'
} else {
this.orderCreateData.buyer_ask_delivery_title = data.data.month + '(' + data.data.time + ')'
diff --git a/pages_promotion/point/result.vue b/pages_promotion/point/result.vue
index b98624f..f6e1408 100644
--- a/pages_promotion/point/result.vue
+++ b/pages_promotion/point/result.vue
@@ -3,10 +3,10 @@
- {{ $lang('exchangeSuccess') }}
+ {{ $lang('point.list.exchange_success') }}
- {{ $lang('see') }}
- {{ $lang('goHome') }}
+ {{ $lang('common.list.see') }}
+ {{ $lang('common.empty.goHome') }}
diff --git a/pages_tool/_components/img-cropping/img-cropping.vue b/pages_tool/_components/img-cropping/img-cropping.vue
index 0dac5d9..ca083db 100644
--- a/pages_tool/_components/img-cropping/img-cropping.vue
+++ b/pages_tool/_components/img-cropping/img-cropping.vue
@@ -1,1484 +1,1484 @@
-
-
-
-
-
-
-
-
-
- 取消
-
-
-
- 上传
-
-
-
- 上传
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ {{ $lang("common.pick-regions.l17.t0") }}
+
+
+
+ {{ $lang("tool._components.img-cropping.l23.t0") }}
+
+
+
+ {{ $lang("tool._components.img-cropping.l23.t0") }}
+
+
+
+
+
+
+
+
+
diff --git a/pages_tool/_components/ns-birthday-gift/ns-birthday-gift.vue b/pages_tool/_components/ns-birthday-gift/ns-birthday-gift.vue
index 4e21283..4e5157e 100644
--- a/pages_tool/_components/ns-birthday-gift/ns-birthday-gift.vue
+++ b/pages_tool/_components/ns-birthday-gift/ns-birthday-gift.vue
@@ -1,332 +1,332 @@
-
-
-
-
-
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/pages_tool/_components/ns-new-gift/ns-new-gift.vue b/pages_tool/_components/ns-new-gift/ns-new-gift.vue
index b5e49cd..e456b0e 100644
--- a/pages_tool/_components/ns-new-gift/ns-new-gift.vue
+++ b/pages_tool/_components/ns-new-gift/ns-new-gift.vue
@@ -1,345 +1,345 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/pages_tool/agreement/contenr.vue b/pages_tool/agreement/contenr.vue
index cbeb361..c3459cd 100644
--- a/pages_tool/agreement/contenr.vue
+++ b/pages_tool/agreement/contenr.vue
@@ -8,9 +8,9 @@
📄
- 暂无内容
- 该协议内容暂未设置
-
+ {{ $lang("tool.agreement.contenr.l11.t0") }}
+ {{ $lang("tool.agreement.contenr.l12.t0") }}
+
diff --git a/pages_tool/ai-chat/ai-chat-message.vue b/pages_tool/ai-chat/ai-chat-message.vue
index 7850336..b7e5329 100644
--- a/pages_tool/ai-chat/ai-chat-message.vue
+++ b/pages_tool/ai-chat/ai-chat-message.vue
@@ -74,7 +74,7 @@
- {{ $lang('aiNickname') }}
+ {{ $lang('ai_chat.list.ai_nickname') }}
{{ formatTime(message.timestamp) }}
- {{ message.title || $lang('audioMessage') }}
+ {{ message.title || $lang('common.list.audio_message') }}
{{ formatDuration(message.duration) }}
@@ -157,7 +157,7 @@
@pause="onVideoPause(message)">
- {{ message.title || $lang('videoMessage') }}
+ {{ message.title || $lang('common.list.video_message') }}
{{ formatDuration(message.duration) }}
@@ -187,7 +187,7 @@
- {{ message.loadingText || $lang('aiThinking') }}
+ {{ message.loadingText || $lang('ai_chat.list.ai_thinking') }}
.
.
@@ -232,7 +232,7 @@
@@ -283,7 +283,7 @@
- {{ $lang('expandEditorTitle') }}
+ {{ $lang('common.list.expand_editor_title') }}
@@ -291,15 +291,15 @@
-
-
+
+
@@ -397,7 +397,7 @@ export default {
scrollTop: 0,
scrollIntoViewId: null,
hasMoreHistory: false,
- loadingText: this.$lang('loadMoreHistory'),
+ loadingText: this.$lang('common.list.load_more_history'),
voiceInputing: false,
audioContext: null,
currentAudio: null,
@@ -417,7 +417,7 @@ export default {
localUserAvatar: '',
showAvatarSelector: false, // 头像选择弹窗控制
localUserNickname: '', // 当前用户昵称
- defaultNickname: this.$lang('defaultNickname'), // 默认昵称
+ defaultNickname: this.$lang('common.list.default_nickname'), // 默认昵称
showNicknameEditor: false, // 昵称编辑弹窗控制
// AI头像错误状态
avatarError: false,
@@ -615,19 +615,19 @@ export default {
console.log('[AI Chat] loadHistoryIfNeeded | localConvId:', localConvId, '| currentConvId:', this.currentConversationId, '| shouldReload:', shouldReload, '| messages.length:', this.messages.length, '| initialMessages.length:', this.initialMessages.length);
if (localConvId && shouldReload) {
- console.log('[AI Chat] → 分支1: ID变化,加载历史');
+ console.log($lang('ai_chat.ai-chat.ai-chat-message.l618.t0'));
this.currentConversationId = localConvId;
aiService.setConversationId(localConvId);
this.loadChatHistoryIfExist();
} else if (localConvId && !shouldReload && this.messages.length <= this.initialMessages.length) {
- console.log('[AI Chat] → 分支2: ID不变但只有初始消息,从服务端恢复');
+ console.log($lang('ai_chat.ai-chat.ai-chat-message.l623.t0'));
this.currentConversationId = localConvId;
this.loadChatHistoryIfExist();
} else if (!localConvId && !this.currentConversationId) {
- console.log('[AI Chat] → 分支3: 全新会话');
+ console.log($lang('ai_chat.ai-chat.ai-chat-message.l627.t0'));
this.historyOffset = this.messages.length;
} else {
- console.log('[AI Chat] → 分支4: 跳过加载,保留当前消息, messages.length:', this.messages.length);
+ console.log($lang('ai_chat.ai-chat.ai-chat-message.l630.t0'), this.messages.length);
}
},
@@ -635,7 +635,7 @@ export default {
async _loadWelcomeMessage() {
// 仅全新会话才需要欢迎语
if (this.currentConversationId) {
- console.log('[AI Chat] 已有会话,跳过欢迎语')
+ console.log($lang('ai_chat.ai-chat.ai-chat-message.l638.t0'))
return
}
@@ -646,7 +646,7 @@ export default {
// 1. 尝试从 API 获取远程欢迎语
try {
const config = await aiService.getServiceConfig()
- console.log('[AI Chat] API getServiceConfig 返回:', JSON.stringify(config))
+ console.log($lang('ai_chat.ai-chat.ai-chat-message.l649.t0'), JSON.stringify(config))
if (config) {
const welcomeInfo = config.welcome_info
console.log('[AI Chat] welcomeInfo:', JSON.stringify(welcomeInfo))
@@ -657,11 +657,11 @@ export default {
welcomeText = remoteText
isMarkdown = true
welcomeLoaded = true
- console.log('[AI Chat] 使用远程欢迎语:', welcomeText.substring(0, 50))
+ console.log($lang('ai_chat.ai-chat.ai-chat-message.l660.t0'), welcomeText.substring(0, 50))
}
}
} catch (e) {
- console.warn('[AI Chat] 获取服务配置失败:', e)
+ console.warn($lang('ai_chat.ai-chat.ai-chat-message.l664.t0'), e)
}
// 2. API 未返回有效欢迎语时,使用降级方案
@@ -669,9 +669,9 @@ export default {
welcomeText = this.fallbackWelcome
isMarkdown = false
if (welcomeText) {
- console.log('[AI Chat] 使用降级欢迎语')
+ console.log($lang('ai_chat.ai-chat.ai-chat-message.l672.t0'))
} else {
- console.log('[AI Chat] 无可用欢迎语')
+ console.log($lang('ai_chat.ai-chat.ai-chat-message.l674.t0'))
return
}
}
@@ -764,21 +764,21 @@ export default {
// 新增:加载历史记录
async loadChatHistoryIfExist() {
const convId = aiService.getConversationId();
- console.log('[AI Chat] loadChatHistoryIfExist 被调用, convId:', convId);
+ console.log($lang('ai_chat.ai-chat.ai-chat-message.l767.t0'), convId);
if (convId) {
try {
// 调用正确的方法,并传入会话ID
- console.log('[AI Chat] 请求历史 API...');
+ console.log($lang('ai_chat.ai-chat.ai-chat-message.l771.t0'));
const response = await aiService.getConversationHistory({
conversation_id: convId
});
- console.log('[AI Chat] 历史 API 返回:', JSON.stringify(response).substring(0, 200));
+ console.log($lang('ai_chat.ai-chat.ai-chat-message.l775.t0'), JSON.stringify(response).substring(0, 200));
if (!response.success || !Array.isArray(response.messages)) {
- console.warn('[AI Chat] 历史记录为空或格式无效, success:', response.success, 'messages:', Array.isArray(response.messages));
+ console.warn($lang('ai_chat.ai-chat.ai-chat-message.l778.t0'), response.success, 'messages:', Array.isArray(response.messages));
return;
}
- console.log('[AI Chat] 原始消息数:', response.messages.length, 'total:', response.total);
+ console.log($lang('ai_chat.ai-chat.ai-chat-message.l781.t0'), response.messages.length, 'total:', response.total);
// 需要根据实际返回的 response.data.messages 来映射
this.messages = response.messages.map(msg => {
let content = '';
@@ -798,13 +798,13 @@ async loadChatHistoryIfExist() {
actions: []
};
}).filter(msg => msg.content.trim() !== ''); // 过滤掉内容为空的消息
- console.log('[AI Chat] 过滤后消息数:', this.messages.length, '内容摘要:', this.messages.map(m => ({role: m.role, content: m.content.substring(0, 30)})));
+ console.log($lang('ai_chat.ai-chat.ai-chat-message.l801.t0'), this.messages.length, $lang('ai_chat.ai-chat.ai-chat-message.l801.t1'), this.messages.map(m => ({role: m.role, content: m.content.substring(0, 30)})));
// 根据服务端 total 判断是否还有更多历史可加载
const msgCount = this.messages.length;
this.hasMoreHistory = response.total > msgCount;
this.historyOffset = msgCount;
} catch (error) {
- console.error('[AI Chat] 加载历史记录失败:', error.message, error.stack);
+ console.error($lang('ai_chat.ai-chat.ai-chat-message.l807.t0'), error.message, error.stack);
// 只需调用服务层的清除方法,它会处理本地存储
aiService.clearConversationId();
this.currentConversationId = null;
@@ -857,7 +857,7 @@ async loadChatHistoryIfExist() {
type: 'loading',
content: '',
timestamp: Date.now(),
- loadingText: this.$lang('aiThinking'),
+ loadingText: this.$lang('ai_chat.list.ai_thinking'),
_loadingIndex: 0
}
this.shouldScrollToBottom = true
@@ -881,7 +881,7 @@ async loadChatHistoryIfExist() {
}
} catch (error) {
- console.error('AI服务调用失败:', error)
+ console.error($lang('ai_chat.ai-chat.ai-chat-message.l884.t0'), error)
// 移除加载状态
this._removeLoadingMessages()
@@ -891,10 +891,10 @@ async loadChatHistoryIfExist() {
id: ++this.messageId,
role: 'ai',
type: 'text',
- content: this.$lang('serviceUnavailable'),
+ content: this.$lang('chat.list.service_unavailable'),
timestamp: Date.now(),
actions: [
- { id: 1, text: this.$lang('retry'), type: 'retry' }
+ { id: 1, text: this.$lang('common.button.retry'), type: 'retry' }
]
}
this.shouldScrollToBottom = true
@@ -975,7 +975,7 @@ async sendStreamMessage(userMessage) {
this.isStreaming = true
const loadingMsg = this.messages[loadingIdx]
this._stopLoadingTextRotation(loadingMsg)
- loadingMsg.loadingText = this.$lang('receivingReply')
+ loadingMsg.loadingText = this.$lang('common.list.receiving_reply')
let transformed = false
@@ -1023,7 +1023,7 @@ async sendStreamMessage(userMessage) {
)
// #endif
} catch (error) {
- console.error('流式请求失败:', error)
+ console.error($lang('ai_chat.ai-chat.ai-chat-message.l1026.t0'), error)
this.isStreaming = false
if (!transformed) {
@@ -1041,9 +1041,9 @@ async sendStreamMessage(userMessage) {
id: ++this.messageId,
role: 'ai',
type: 'text',
- content: this.$lang('serviceTemporaryUnavailable'),
+ content: this.$lang('chat.list.service_temporary_unavailable'),
timestamp: Date.now(),
- actions: [{ id: 1, text: this.$lang('retry'), type: 'retry' }]
+ actions: [{ id: 1, text: this.$lang('common.button.retry'), type: 'retry' }]
}
this.messages.push(errorMsg)
this.$emit('ai-response', errorMsg)
@@ -1079,7 +1079,7 @@ _finishStream(msg, result) {
// 流式请求出错处理
_handleStreamError(msg) {
- console.error('流式请求失败')
+ console.error($lang('ai_chat.ai-chat.ai-chat-message.l1082.t0'))
this.isStreaming = false
this.messages = this.messages.filter(m => m.id !== msg.id)
@@ -1087,9 +1087,9 @@ _handleStreamError(msg) {
id: ++this.messageId,
role: 'ai',
type: 'text',
- content: this.$lang('serviceTemporaryUnavailable'),
+ content: this.$lang('chat.list.service_temporary_unavailable'),
timestamp: Date.now(),
- actions: [{ id: 1, text: this.$lang('retry'), type: 'retry' }]
+ actions: [{ id: 1, text: this.$lang('common.button.retry'), type: 'retry' }]
}
this.messages.push(errorMsg)
this.$emit('ai-response', errorMsg)
@@ -1097,10 +1097,10 @@ _handleStreamError(msg) {
// 加载状态文字轮换 - 让AI看起来在处理不同阶段
_startLoadingTextRotation(loadingMsg) {
const statusTexts = [
- 'AI正在思考',
- 'AI正在分析',
- 'AI正在检索',
- 'AI正在生成'
+ $lang('ai_chat.ai-chat.ai-chat-message.l1100.t0'),
+ $lang('ai_chat.ai-chat.ai-chat-message.l1101.t0'),
+ $lang('ai_chat.ai-chat.ai-chat-message.l1102.t0'),
+ $lang('ai_chat.ai-chat.ai-chat-message.l1103.t0')
]
loadingMsg._rotationTimer = setInterval(() => {
loadingMsg._loadingIndex = (loadingMsg._loadingIndex + 1) % statusTexts.length
@@ -1125,11 +1125,11 @@ _handleStreamError(msg) {
generateAIResponse(userMessage) {
const responses = {
- '你好': '您好!我是AI智能客服,很高兴为您服务!有什么可以帮助您的吗?',
- '价格': '我们的产品价格根据型号和配置有所不同,具体价格请查看商品详情页面。',
- '发货': '一般情况下,订单会在24小时内发货,具体时效请查看物流信息。',
- '退货': '支持7天无理由退货,请确保商品完好无损。',
- '客服': '我们的客服工作时间是9:00-18:00,有问题可以随时联系我们。'
+ '你好': $lang('ai_chat.ai-chat.ai-chat-message.l1128.t1'),
+ '价格': $lang('ai_chat.ai-chat.ai-chat-message.l1129.t0'),
+ '发货': $lang('ai_chat.ai-chat.ai-chat-message.l1130.t1'),
+ '退货': $lang('ai_chat.ai-chat.ai-chat-message.l1131.t1'),
+ '客服': $lang('ai_chat.ai-chat.ai-chat-message.l1132.t1')
};
for (let key in responses) {
if (userMessage.includes(key)) {
@@ -1365,10 +1365,10 @@ _handleStreamError(msg) {
return timeStr;
}
if (msgDate.getTime() === yesterday.getTime()) {
- return `${this.$lang('timeFormatYesterday')} ${timeStr}`;
+ return `${this.$lang('common.list.time_format_yesterday')} ${timeStr}`;
}
if (msgDate.getTime() === beforeYesterday.getTime()) {
- return `${this.$lang('timeFormatBeforeYesterday')} ${timeStr}`;
+ return `${this.$lang('common.list.time_format_before_yesterday')} ${timeStr}`;
}
const isCurrentYear = date.getFullYear() === now.getFullYear();
@@ -1385,9 +1385,9 @@ _handleStreamError(msg) {
// 格式化文件大小
formatFileSize(bytes) {
- if (!bytes) return this.$lang('about')
+ if (!bytes) return this.$lang('common.list.about')
const k = 1024
- const sizes = [this.$lang('about'), 'KB', 'MB', 'GB']
+ const sizes = [this.$lang('common.list.about'), 'KB', 'MB', 'GB']
const i = Math.floor(Math.log(bytes) / Math.log(k))
return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + sizes[i]
},
@@ -1426,7 +1426,7 @@ _handleStreamError(msg) {
}
this.isFetchingHistory = true;
this.isLoadingHistory = true;
- this.loadingText = '加载历史消息中...';
+ this.loadingText = $lang('ai_chat.ai-chat.ai-chat-message.l1429.t0');
try {
const response = await aiService.getConversationHistory({
@@ -1474,13 +1474,13 @@ _handleStreamError(msg) {
this.hasMoreHistory = false;
}
} catch (error) {
- console.error('加载历史失败:', error);
- uni.showToast({ title: this.$lang('loadHistoryFail'), icon: 'none' });
+ console.error($lang('ai_chat.ai-chat.ai-chat-message.l1477.t0'), error);
+ uni.showToast({ title: this.$lang('common.list.load_history_fail'), icon: 'none' });
this.hasMoreHistory = false;
} finally {
this.isLoadingHistory = false;
this.isFetchingHistory = false;
- this.loadingText = '加载更多历史消息';
+ this.loadingText = $lang('ai_chat.ai-chat.ai-chat-message.l1483.t0');
}
},
// 显示更多工具
@@ -1490,7 +1490,7 @@ _handleStreamError(msg) {
// 预览文件
previewFile(message) {
- uni.showLoading({ title: this.$lang('openingFile') })
+ uni.showLoading({ title: this.$lang('common.list.opening_file') })
// #ifdef H5
window.open(message.url, '_blank')
@@ -1500,7 +1500,7 @@ _handleStreamError(msg) {
plus.runtime.openFile(message.url, {
error: (e) => {
uni.showToast({
- title: this.$lang('fileOpenFail'),
+ title: this.$lang('common.list.file_open_fail'),
icon: 'none'
})
}
@@ -1674,7 +1674,7 @@ _handleStreamError(msg) {
copyText = message.content || ''
}
if (!copyText) {
- uni.showToast({ title: this.$lang('noContentToCopy'), icon: 'none' })
+ uni.showToast({ title: this.$lang('common.list.no_content_to_copy'), icon: 'none' })
return
}
@@ -1688,7 +1688,7 @@ _handleStreamError(msg) {
try {
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(finalText).then(() => {
- uni.showToast({ title: selectedText ? '已复制选中内容' : '已复制', icon: 'success' })
+ uni.showToast({ title: selectedText ? '已复制选中内容' : $lang('ai_chat.ai-chat.ai-chat-message.l1691.t1'), icon: 'success' })
}).catch(() => {
this._fallbackCopyH5(finalText)
})
@@ -1702,17 +1702,17 @@ _handleStreamError(msg) {
// #ifdef MP-WEIXIN
// 微信小程序专用(含小米等 Android 兼容)
- console.log('[AI Chat] 开始复制, 内容长度:', copyText.length, '内容前50字:', copyText.substring(0, 50))
+ console.log($lang('ai_chat.ai-chat.ai-chat-message.l1705.t0'), copyText.length, $lang('ai_chat.ai-chat.ai-chat-message.l1705.t1'), copyText.substring(0, 50))
uni.setClipboardData({
data: copyText,
success: () => {
- console.log('[AI Chat] 复制成功')
- uni.showToast({ title: this.$lang('copySuccess'), icon: 'success' })
+ console.log($lang('ai_chat.ai-chat.ai-chat-message.l1709.t0'))
+ uni.showToast({ title: this.$lang('common.tip.copySuccess'), icon: 'success' })
},
fail: (err) => {
- console.error('[AI Chat] 复制失败, 详细错误:', JSON.stringify(err))
- console.error('[AI Chat] 复制失败 errMsg:', err.errMsg || err.message || '无错误消息')
- uni.showToast({ title: this.$lang('copyFail') + ': ' + (err.errMsg || this.$lang('serviceUnavailable')), icon: 'none', duration: 3000 })
+ console.error($lang('ai_chat.ai-chat.ai-chat-message.l1713.t0'), JSON.stringify(err))
+ console.error($lang('ai_chat.ai-chat.ai-chat-message.l1714.t0'), err.errMsg || err.message || $lang('ai_chat.ai-chat.ai-chat-message.l1714.t1'))
+ uni.showToast({ title: this.$lang('common.tip.copyFail') + ': ' + (err.errMsg || this.$lang('chat.list.service_unavailable')), icon: 'none', duration: 3000 })
}
})
// #endif
@@ -1733,12 +1733,12 @@ _handleStreamError(msg) {
const success = document.execCommand('copy')
document.body.removeChild(textarea)
if (success) {
- uni.showToast({ title: this.$lang('copySuccess'), icon: 'success' })
+ uni.showToast({ title: this.$lang('common.tip.copySuccess'), icon: 'success' })
} else {
- uni.showToast({ title: this.$lang('copyFail'), icon: 'none' })
+ uni.showToast({ title: this.$lang('common.tip.copyFail'), icon: 'none' })
}
} catch (e) {
- uni.showToast({ title: this.$lang('copyFail'), icon: 'none' })
+ uni.showToast({ title: this.$lang('common.tip.copyFail'), icon: 'none' })
}
},
@@ -1841,7 +1841,7 @@ _handleStreamError(msg) {
type: 'loading',
content: '',
timestamp: Date.now(),
- loadingText: this.$lang('aiThinking'),
+ loadingText: this.$lang('ai_chat.list.ai_thinking'),
_loadingIndex: 0
}
@@ -1862,7 +1862,7 @@ _handleStreamError(msg) {
}
} catch (error) {
- console.error('AI服务调用失败:', error)
+ console.error($lang('ai_chat.ai-chat.ai-chat-message.l884.t0'), error)
// 移除加载状态
this._removeLoadingMessages()
@@ -1872,10 +1872,10 @@ _handleStreamError(msg) {
id: ++this.messageId,
role: 'ai',
type: 'text',
- content: this.$lang('serviceUnavailable'),
+ content: this.$lang('chat.list.service_unavailable'),
timestamp: Date.now(),
actions: [
- { id: 1, text: this.$lang('retry'), type: 'retry' }
+ { id: 1, text: this.$lang('common.button.retry'), type: 'retry' }
]
}
@@ -1968,167 +1968,167 @@ _handleStreamError(msg) {
enhanceEmojiMessage(content) {
// 常见表情的含义映射
const emojiResponses = {
- '😀': '[开心]',
- '😂': '[大笑]',
- '😊': '[微笑]',
- '❤️': '[爱心]',
- '👍': '[点赞]',
- '😭': '[哭泣]',
- '🙏': '[感谢/拜托]',
- '😍': '[喜欢]',
- '🎉': '[庆祝]',
- '🤔': '[思考]',
- '😅': '[尴尬]',
- '😁': '[开心]',
- '🥰': '[喜爱]',
- '😘': '[飞吻]',
- '😏': '[坏笑]',
- '🥳': '[庆祝]',
- '😔': '[难过]',
- '😢': '[哭泣]',
- '😤': '[生气]',
- '😴': '[困]',
- '🤗': '[拥抱]',
- '🙂': '[微笑]',
- '😃': '[开心]',
- '😄': '[大笑]',
- '😆': '[开心]',
- '😇': '[天使]',
- '🤩': '[惊喜]',
- '😋': '[好吃]',
- '😛': '[调皮]',
- '😜': '[调皮]',
- '🤪': '[搞怪]',
- '😝': '[开心]',
- '🤑': '[发财]',
- '🤭': '[害羞]',
- '🤫': '[嘘]',
- '🤐': '[闭嘴]',
- '🤨': '[疑惑]',
- '😐': '[无语]',
- '😑': '[无语]',
- '😶': '[沉默]',
- '😒': '[不屑]',
- '🙄': '[白眼]',
- '😬': '[尴尬]',
- '🤥': '[说谎]',
- '😌': '[安心]',
- '😪': '[困]',
- '🤤': '[流口水]',
- '😷': '[生病]',
- '🤒': '[发烧]',
- '🤕': '[受伤]',
- '🤢': '[恶心]',
- '🤮': '[呕吐]',
- '🤧': '[感冒]',
- '🥵': '[热]',
- '🥶': '[冷]',
- '🥴': '[头晕]',
- '😵': '[晕]',
- '🤯': '[爆炸]',
- '🤠': '[酷]',
- '😎': '[酷]',
- '🤓': '[书呆子]',
- '🧐': '[疑惑]',
- '😕': '[困惑]',
- '😟': '[担心]',
- '🙁': '[难过]',
- '😮': '[惊讶]',
- '😯': '[惊讶]',
- '😲': '[震惊]',
- '😳': '[脸红]',
- '🥺': '[恳求]',
- '😦': '[惊讶]',
- '😧': '[惊讶]',
- '😨': '[害怕]',
- '😰': '[紧张]',
- '😥': '[失望]',
- '😱': '[恐惧]',
- '😖': '[困扰]',
- '😣': '[痛苦]',
- '😞': '[难过]',
- '😓': '[汗]',
- '😩': '[累]',
- '😫': '[累]',
- '🥱': '[困]',
- '😡': '[愤怒]',
- '😠': '[生气]',
- '🤬': '[咒骂]',
- '😈': '[恶魔]',
- '👿': '[生气]',
- '💀': '[骷髅]',
- '💩': '[便便]',
- '👻': '[鬼]',
- '👽': '[外星人]',
- '🤖': '[机器人]',
- '🎃': '[万圣节]',
- '😺': '[开心猫]',
- '😸': '[微笑猫]',
- '😹': '[大笑猫]',
- '😻': '[花痴猫]',
- '😼': '[得意猫]',
- '😽': '[亲亲猫]',
- '🙀': '[惊讶猫]',
- '😿': '[哭泣猫]',
- '😾': '[生气猫]',
- '👋': '[挥手]',
- '🤚': '[举手]',
- '🖐': '[手掌]',
- '✋': '[手掌]',
+ '😀': $lang('ai_chat.ai-chat.ai-chat-message.l1971.t0'),
+ '😂': $lang('ai_chat.ai-chat.ai-chat-message.l1972.t0'),
+ '😊': $lang('ai_chat.ai-chat.ai-chat-message.l1973.t0'),
+ '❤️': $lang('ai_chat.ai-chat.ai-chat-message.l1974.t0'),
+ '👍': $lang('ai_chat.ai-chat.ai-chat-message.l1975.t0'),
+ '😭': $lang('ai_chat.ai-chat.ai-chat-message.l1976.t0'),
+ '🙏': $lang('ai_chat.ai-chat.ai-chat-message.l1977.t0'),
+ '😍': $lang('ai_chat.ai-chat.ai-chat-message.l1978.t0'),
+ '🎉': $lang('ai_chat.ai-chat.ai-chat-message.l1979.t0'),
+ '🤔': $lang('ai_chat.ai-chat.ai-chat-message.l1980.t0'),
+ '😅': $lang('ai_chat.ai-chat.ai-chat-message.l1981.t0'),
+ '😁': $lang('ai_chat.ai-chat.ai-chat-message.l1971.t0'),
+ '🥰': $lang('ai_chat.ai-chat.ai-chat-message.l1983.t0'),
+ '😘': $lang('ai_chat.ai-chat.ai-chat-message.l1984.t0'),
+ '😏': $lang('ai_chat.ai-chat.ai-chat-message.l1985.t0'),
+ '🥳': $lang('ai_chat.ai-chat.ai-chat-message.l1979.t0'),
+ '😔': $lang('ai_chat.ai-chat.ai-chat-message.l1987.t0'),
+ '😢': $lang('ai_chat.ai-chat.ai-chat-message.l1976.t0'),
+ '😤': $lang('ai_chat.ai-chat.ai-chat-message.l1989.t0'),
+ '😴': $lang('ai_chat.ai-chat.ai-chat-message.l1990.t0'),
+ '🤗': $lang('ai_chat.ai-chat.ai-chat-message.l1991.t0'),
+ '🙂': $lang('ai_chat.ai-chat.ai-chat-message.l1973.t0'),
+ '😃': $lang('ai_chat.ai-chat.ai-chat-message.l1971.t0'),
+ '😄': $lang('ai_chat.ai-chat.ai-chat-message.l1972.t0'),
+ '😆': $lang('ai_chat.ai-chat.ai-chat-message.l1971.t0'),
+ '😇': $lang('ai_chat.ai-chat.ai-chat-message.l1996.t0'),
+ '🤩': $lang('ai_chat.ai-chat.ai-chat-message.l1997.t0'),
+ '😋': $lang('ai_chat.ai-chat.ai-chat-message.l1998.t0'),
+ '😛': $lang('ai_chat.ai-chat.ai-chat-message.l1999.t0'),
+ '😜': $lang('ai_chat.ai-chat.ai-chat-message.l1999.t0'),
+ '🤪': $lang('ai_chat.ai-chat.ai-chat-message.l2001.t0'),
+ '😝': $lang('ai_chat.ai-chat.ai-chat-message.l1971.t0'),
+ '🤑': $lang('ai_chat.ai-chat.ai-chat-message.l2003.t0'),
+ '🤭': $lang('ai_chat.ai-chat.ai-chat-message.l2004.t0'),
+ '🤫': $lang('ai_chat.ai-chat.ai-chat-message.l2005.t0'),
+ '🤐': $lang('ai_chat.ai-chat.ai-chat-message.l2006.t0'),
+ '🤨': $lang('ai_chat.ai-chat.ai-chat-message.l2007.t0'),
+ '😐': $lang('ai_chat.ai-chat.ai-chat-message.l2008.t0'),
+ '😑': $lang('ai_chat.ai-chat.ai-chat-message.l2008.t0'),
+ '😶': $lang('ai_chat.ai-chat.ai-chat-message.l2010.t0'),
+ '😒': $lang('ai_chat.ai-chat.ai-chat-message.l2011.t0'),
+ '🙄': $lang('ai_chat.ai-chat.ai-chat-message.l2012.t0'),
+ '😬': $lang('ai_chat.ai-chat.ai-chat-message.l1981.t0'),
+ '🤥': $lang('ai_chat.ai-chat.ai-chat-message.l2014.t0'),
+ '😌': $lang('ai_chat.ai-chat.ai-chat-message.l2015.t0'),
+ '😪': $lang('ai_chat.ai-chat.ai-chat-message.l1990.t0'),
+ '🤤': $lang('ai_chat.ai-chat.ai-chat-message.l2017.t0'),
+ '😷': $lang('ai_chat.ai-chat.ai-chat-message.l2018.t0'),
+ '🤒': $lang('ai_chat.ai-chat.ai-chat-message.l2019.t0'),
+ '🤕': $lang('ai_chat.ai-chat.ai-chat-message.l2020.t0'),
+ '🤢': $lang('ai_chat.ai-chat.ai-chat-message.l2021.t0'),
+ '🤮': $lang('ai_chat.ai-chat.ai-chat-message.l2022.t0'),
+ '🤧': $lang('ai_chat.ai-chat.ai-chat-message.l2023.t0'),
+ '🥵': $lang('ai_chat.ai-chat.ai-chat-message.l2024.t0'),
+ '🥶': $lang('ai_chat.ai-chat.ai-chat-message.l2025.t0'),
+ '🥴': $lang('ai_chat.ai-chat.ai-chat-message.l2026.t0'),
+ '😵': $lang('ai_chat.ai-chat.ai-chat-message.l2027.t0'),
+ '🤯': $lang('ai_chat.ai-chat.ai-chat-message.l2028.t0'),
+ '🤠': $lang('ai_chat.ai-chat.ai-chat-message.l2029.t0'),
+ '😎': $lang('ai_chat.ai-chat.ai-chat-message.l2029.t0'),
+ '🤓': $lang('ai_chat.ai-chat.ai-chat-message.l2031.t0'),
+ '🧐': $lang('ai_chat.ai-chat.ai-chat-message.l2007.t0'),
+ '😕': $lang('ai_chat.ai-chat.ai-chat-message.l2033.t0'),
+ '😟': $lang('ai_chat.ai-chat.ai-chat-message.l2034.t0'),
+ '🙁': $lang('ai_chat.ai-chat.ai-chat-message.l1987.t0'),
+ '😮': $lang('ai_chat.ai-chat.ai-chat-message.l2036.t0'),
+ '😯': $lang('ai_chat.ai-chat.ai-chat-message.l2036.t0'),
+ '😲': $lang('ai_chat.ai-chat.ai-chat-message.l2038.t0'),
+ '😳': $lang('ai_chat.ai-chat.ai-chat-message.l2039.t0'),
+ '🥺': $lang('ai_chat.ai-chat.ai-chat-message.l2040.t0'),
+ '😦': $lang('ai_chat.ai-chat.ai-chat-message.l2036.t0'),
+ '😧': $lang('ai_chat.ai-chat.ai-chat-message.l2036.t0'),
+ '😨': $lang('ai_chat.ai-chat.ai-chat-message.l2043.t0'),
+ '😰': $lang('ai_chat.ai-chat.ai-chat-message.l2044.t0'),
+ '😥': $lang('ai_chat.ai-chat.ai-chat-message.l2045.t0'),
+ '😱': $lang('ai_chat.ai-chat.ai-chat-message.l2046.t0'),
+ '😖': $lang('ai_chat.ai-chat.ai-chat-message.l2047.t0'),
+ '😣': $lang('ai_chat.ai-chat.ai-chat-message.l2048.t0'),
+ '😞': $lang('ai_chat.ai-chat.ai-chat-message.l1987.t0'),
+ '😓': $lang('ai_chat.ai-chat.ai-chat-message.l2050.t0'),
+ '😩': $lang('ai_chat.ai-chat.ai-chat-message.l2051.t0'),
+ '😫': $lang('ai_chat.ai-chat.ai-chat-message.l2051.t0'),
+ '🥱': $lang('ai_chat.ai-chat.ai-chat-message.l1990.t0'),
+ '😡': $lang('ai_chat.ai-chat.ai-chat-message.l2054.t0'),
+ '😠': $lang('ai_chat.ai-chat.ai-chat-message.l1989.t0'),
+ '🤬': $lang('ai_chat.ai-chat.ai-chat-message.l2056.t0'),
+ '😈': $lang('ai_chat.ai-chat.ai-chat-message.l2057.t0'),
+ '👿': $lang('ai_chat.ai-chat.ai-chat-message.l1989.t0'),
+ '💀': $lang('ai_chat.ai-chat.ai-chat-message.l2059.t0'),
+ '💩': $lang('ai_chat.ai-chat.ai-chat-message.l2060.t0'),
+ '👻': $lang('ai_chat.ai-chat.ai-chat-message.l2061.t0'),
+ '👽': $lang('ai_chat.ai-chat.ai-chat-message.l2062.t0'),
+ '🤖': $lang('ai_chat.ai-chat.ai-chat-message.l2063.t0'),
+ '🎃': $lang('ai_chat.ai-chat.ai-chat-message.l2064.t0'),
+ '😺': $lang('ai_chat.ai-chat.ai-chat-message.l2065.t0'),
+ '😸': $lang('ai_chat.ai-chat.ai-chat-message.l2066.t0'),
+ '😹': $lang('ai_chat.ai-chat.ai-chat-message.l2067.t0'),
+ '😻': $lang('ai_chat.ai-chat.ai-chat-message.l2068.t0'),
+ '😼': $lang('ai_chat.ai-chat.ai-chat-message.l2069.t0'),
+ '😽': $lang('ai_chat.ai-chat.ai-chat-message.l2070.t0'),
+ '🙀': $lang('ai_chat.ai-chat.ai-chat-message.l2071.t0'),
+ '😿': $lang('ai_chat.ai-chat.ai-chat-message.l2072.t0'),
+ '😾': $lang('ai_chat.ai-chat.ai-chat-message.l2073.t0'),
+ '👋': $lang('ai_chat.ai-chat.ai-chat-message.l2074.t0'),
+ '🤚': $lang('ai_chat.ai-chat.ai-chat-message.l2075.t0'),
+ '🖐': $lang('ai_chat.ai-chat.ai-chat-message.l2076.t0'),
+ '✋': $lang('ai_chat.ai-chat.ai-chat-message.l2076.t0'),
'🖖': '[V]',
'👌': '[OK]',
- '🤏': '[捏]',
- '✌️': '[耶]',
- '🤞': '[好运]',
- '🤟': '[爱你]',
- '🤘': '[摇滚]',
- '🤙': '[打电话]',
- '👈': '[左边]',
- '👉': '[右边]',
- '👆': '[上边]',
- '🖕': '[竖中指]',
- '👇': '[下边]',
- '☝': '[向上]',
- '👎': '[鄙视]',
- '✊': '[拳头]',
- '👊': '[拳头]',
- '🤛': '[左拳]',
- '🤜': '[右拳]',
- '👏': '[鼓掌]',
- '🙌': '[举手庆祝]',
- '👐': '[张开手]',
- '🤲': '[摊手]',
- '🤝': '[握手]',
- '✍️': '[写字]',
- '💅': '[美甲]',
- '🤳': '[自拍]',
- '💪': '[肌肉]',
- '💗': '[爱心]',
- '💓': '[心跳]',
- '💕': '[两颗心]',
- '💖': '[闪亮心]',
- '💝': '[礼物心]',
- '💞': '[旋转心]',
- '💘': '[丘比特]',
- '💌': '[情书]',
- '💟': '[心形]',
- '💛': '[黄心]',
- '💙': '[蓝心]',
- '💜': '[紫心]',
- '🖤': '[黑心]',
- '💔': '[心碎]',
- '💢': '[愤怒]',
- '💣': '[炸弹]',
- '💥': '[爆炸]',
- '💫': '[头晕]',
- '💦': '[汗]',
- '💨': '[风]',
- '👁️': '[眼睛]',
- '👀': '[看]',
- '👅': '[舌头]',
- '👄': '[嘴巴]',
- '👂': '[耳朵]',
- '👃': '[鼻子]'
+ '🤏': $lang('ai_chat.ai-chat.ai-chat-message.l2080.t0'),
+ '✌️': $lang('ai_chat.ai-chat.ai-chat-message.l2081.t0'),
+ '🤞': $lang('ai_chat.ai-chat.ai-chat-message.l2082.t0'),
+ '🤟': $lang('ai_chat.ai-chat.ai-chat-message.l2083.t0'),
+ '🤘': $lang('ai_chat.ai-chat.ai-chat-message.l2084.t0'),
+ '🤙': $lang('ai_chat.ai-chat.ai-chat-message.l2085.t0'),
+ '👈': $lang('ai_chat.ai-chat.ai-chat-message.l2086.t0'),
+ '👉': $lang('ai_chat.ai-chat.ai-chat-message.l2087.t0'),
+ '👆': $lang('ai_chat.ai-chat.ai-chat-message.l2088.t0'),
+ '🖕': $lang('ai_chat.ai-chat.ai-chat-message.l2089.t0'),
+ '👇': $lang('ai_chat.ai-chat.ai-chat-message.l2090.t0'),
+ '☝': $lang('ai_chat.ai-chat.ai-chat-message.l2091.t0'),
+ '👎': $lang('ai_chat.ai-chat.ai-chat-message.l2092.t0'),
+ '✊': $lang('ai_chat.ai-chat.ai-chat-message.l2093.t0'),
+ '👊': $lang('ai_chat.ai-chat.ai-chat-message.l2093.t0'),
+ '🤛': $lang('ai_chat.ai-chat.ai-chat-message.l2095.t0'),
+ '🤜': $lang('ai_chat.ai-chat.ai-chat-message.l2096.t0'),
+ '👏': $lang('ai_chat.ai-chat.ai-chat-message.l2097.t0'),
+ '🙌': $lang('ai_chat.ai-chat.ai-chat-message.l2098.t0'),
+ '👐': $lang('ai_chat.ai-chat.ai-chat-message.l2099.t0'),
+ '🤲': $lang('ai_chat.ai-chat.ai-chat-message.l2100.t0'),
+ '🤝': $lang('ai_chat.ai-chat.ai-chat-message.l2101.t0'),
+ '✍️': $lang('ai_chat.ai-chat.ai-chat-message.l2102.t0'),
+ '💅': $lang('ai_chat.ai-chat.ai-chat-message.l2103.t0'),
+ '🤳': $lang('ai_chat.ai-chat.ai-chat-message.l2104.t0'),
+ '💪': $lang('ai_chat.ai-chat.ai-chat-message.l2105.t0'),
+ '💗': $lang('ai_chat.ai-chat.ai-chat-message.l1974.t0'),
+ '💓': $lang('ai_chat.ai-chat.ai-chat-message.l2107.t0'),
+ '💕': $lang('ai_chat.ai-chat.ai-chat-message.l2108.t0'),
+ '💖': $lang('ai_chat.ai-chat.ai-chat-message.l2109.t0'),
+ '💝': $lang('ai_chat.ai-chat.ai-chat-message.l2110.t0'),
+ '💞': $lang('ai_chat.ai-chat.ai-chat-message.l2111.t0'),
+ '💘': $lang('ai_chat.ai-chat.ai-chat-message.l2112.t0'),
+ '💌': $lang('ai_chat.ai-chat.ai-chat-message.l2113.t0'),
+ '💟': $lang('ai_chat.ai-chat.ai-chat-message.l2114.t0'),
+ '💛': $lang('ai_chat.ai-chat.ai-chat-message.l2115.t0'),
+ '💙': $lang('ai_chat.ai-chat.ai-chat-message.l2116.t0'),
+ '💜': $lang('ai_chat.ai-chat.ai-chat-message.l2117.t0'),
+ '🖤': $lang('ai_chat.ai-chat.ai-chat-message.l2118.t0'),
+ '💔': $lang('ai_chat.ai-chat.ai-chat-message.l2119.t0'),
+ '💢': $lang('ai_chat.ai-chat.ai-chat-message.l2054.t0'),
+ '💣': $lang('ai_chat.ai-chat.ai-chat-message.l2121.t0'),
+ '💥': $lang('ai_chat.ai-chat.ai-chat-message.l2028.t0'),
+ '💫': $lang('ai_chat.ai-chat.ai-chat-message.l2026.t0'),
+ '💦': $lang('ai_chat.ai-chat.ai-chat-message.l2050.t0'),
+ '💨': $lang('ai_chat.ai-chat.ai-chat-message.l2125.t0'),
+ '👁️': $lang('ai_chat.ai-chat.ai-chat-message.l2126.t0'),
+ '👀': $lang('ai_chat.ai-chat.ai-chat-message.l2127.t0'),
+ '👅': $lang('ai_chat.ai-chat.ai-chat-message.l2128.t0'),
+ '👄': $lang('ai_chat.ai-chat.ai-chat-message.l2129.t0'),
+ '👂': $lang('ai_chat.ai-chat.ai-chat-message.l2130.t0'),
+ '👃': $lang('ai_chat.ai-chat.ai-chat-message.l2131.t0')
}
// 如果是纯表情消息,添加一些提示
diff --git a/pages_tool/ai-chat/components/ai-chat-avatar-selector.vue b/pages_tool/ai-chat/components/ai-chat-avatar-selector.vue
index dd2adef..03d9c36 100644
--- a/pages_tool/ai-chat/components/ai-chat-avatar-selector.vue
+++ b/pages_tool/ai-chat/components/ai-chat-avatar-selector.vue
@@ -3,7 +3,7 @@
diff --git a/pages_tool/ai-chat/components/ai-chat-emoji-panel.vue b/pages_tool/ai-chat/components/ai-chat-emoji-panel.vue
index 9bba1a8..946bcb7 100644
--- a/pages_tool/ai-chat/components/ai-chat-emoji-panel.vue
+++ b/pages_tool/ai-chat/components/ai-chat-emoji-panel.vue
@@ -3,7 +3,7 @@
- {{ $lang('searchClose') }}
+ {{ $lang('goods.list.search_close') }}
!
- {{ $lang('noMatchResult') }}
+ {{ $lang('common.list.no_match_result') }}
@@ -43,7 +43,7 @@
*
* Props:
* messages: Array - 原始消息列表
- * showLabel: Boolean - (默认 true) 是否显示"搜索"文字;设为 false 则只显示搜索图标
+ * showLabel: Boolean - (默认 true) 是否显示$lang("diy.diy-search.l31.t0")文字;设为 false 则只显示搜索图标
*
* Events:
* scroll-to: (messageKey: string) => void - 请求父组件滚动到指定消息
@@ -187,7 +187,7 @@ export default {
if (idx >= 0) {
this.scrollToSearchResult(idx)
} else {
- uni.showToast({ title: this.$lang('searchAtTop'), icon: 'none' })
+ uni.showToast({ title: this.$lang('goods.list.search_at_top'), icon: 'none' })
}
},
@@ -196,7 +196,7 @@ export default {
if (idx < this.searchResults.length) {
this.scrollToSearchResult(idx)
} else {
- uni.showToast({ title: this.$lang('searchAtBottom'), icon: 'none' })
+ uni.showToast({ title: this.$lang('goods.list.search_at_bottom'), icon: 'none' })
}
},
diff --git a/pages_tool/ai-chat/components/ai-chat-tools-panel.vue b/pages_tool/ai-chat/components/ai-chat-tools-panel.vue
index e37536f..9eac948 100644
--- a/pages_tool/ai-chat/components/ai-chat-tools-panel.vue
+++ b/pages_tool/ai-chat/components/ai-chat-tools-panel.vue
@@ -3,7 +3,7 @@
- {{ $lang('file') }}
+ {{ $lang('common.list.file') }}
- {{ $lang('voice') }}
+ {{ $lang('common.list.voice') }}
- {{ $lang('location') }}
+ {{ $lang('common.list.location') }}
diff --git a/pages_tool/ai-chat/components/ai-chat-voice-panel.vue b/pages_tool/ai-chat/components/ai-chat-voice-panel.vue
index 7b0587f..52c7033 100644
--- a/pages_tool/ai-chat/components/ai-chat-voice-panel.vue
+++ b/pages_tool/ai-chat/components/ai-chat-voice-panel.vue
@@ -3,7 +3,7 @@
- {{ voiceInputing ? $lang('recordingTip') : $lang('startRecordTip') }}
+ {{ voiceInputing ? $lang('common.list.recording_tip') : $lang('common.list.start_record_tip') }}
-
+
@@ -79,7 +79,7 @@ export default {
return {
goodsId: 0,
list: [],
- evaluateList: [{ name: '全部', value: 0, count: 0 }, { name: '好评', value: 1, count: 0 }, { name: '中评', value: 2, count: 0 }, { name: '差评', value: 3, count: 0 }],
+ evaluateList: [{ name: $lang('diy.diy-category-item.l47.t0'), value: 0, count: 0 }, { name: $lang('tool.goods.evaluate.l82.t0'), value: 1, count: 0 }, { name: $lang('tool.goods.evaluate.l82.t1'), value: 2, count: 0 }, { name: $lang('tool.goods.evaluate.l82.t2'), value: 3, count: 0 }],
evaluateTab: 0,
mescroll_type: {}
};
diff --git a/pages_tool/goods/not_exist.vue b/pages_tool/goods/not_exist.vue
index a13d322..257b271 100644
--- a/pages_tool/goods/not_exist.vue
+++ b/pages_tool/goods/not_exist.vue
@@ -2,7 +2,7 @@
- 您查看的商品不存在,可能已下架或被删除
+ {{ $lang("tool.goods.not_exist.l5.t0") }}
diff --git a/pages_tool/goods/search.vue b/pages_tool/goods/search.vue
index 1870587..c3161ed 100644
--- a/pages_tool/goods/search.vue
+++ b/pages_tool/goods/search.vue
@@ -1,345 +1,345 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 历史搜索
-
-
-
-
- {{ item }}
-
-
-
-
-
-
-
-
-
-
-
-
- 热门搜索
-
-
-
- {{ item }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages_tool/help/list.vue b/pages_tool/help/list.vue
index 479227c..b45fd8c 100644
--- a/pages_tool/help/list.vue
+++ b/pages_tool/help/list.vue
@@ -1,132 +1,132 @@
-
-
-
-
- {{ item.class_name }}
- {{ s_item.title }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ {{ item.class_name }}
+ {{ s_item.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_tool/index/diy.vue b/pages_tool/index/diy.vue
index 2bf6c87..a1ad661 100644
--- a/pages_tool/index/diy.vue
+++ b/pages_tool/index/diy.vue
@@ -43,7 +43,7 @@
diff --git a/pages_tool/login/find.vue b/pages_tool/login/find.vue
index dd8d3b2..488c270 100644
--- a/pages_tool/login/find.vue
+++ b/pages_tool/login/find.vue
@@ -1,440 +1,440 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ $lang('next') }}
-
-
-
-
-
- {{ codeText }}
-
-
-
-
-
-
-
-
-
-
-
- {{ $lang('save') }}
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $lang('common.button.next') }}
+
+
+
+
+
+ {{ codeText }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ $lang('common.button.save') }}
+
+
+
+
+
+
+
+
diff --git a/pages_tool/login/login.vue b/pages_tool/login/login.vue
index 0ec95de..aa34ca1 100644
--- a/pages_tool/login/login.vue
+++ b/pages_tool/login/login.vue
@@ -1,500 +1,500 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ $lang('forgetPasswordText') }}
-
-
-
-
-
-
- {{ dynacodeData.codeText }}
-
-
-
-
-
- {{ $lang('loginButtonText') }}
-
-
-
-
-
- {{
- $lang('registerAgreementText') }} {{ $lang('privacyPolicyText') }} {{ $lang('userServiceAgreementText') }}
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/pages_tool/member/account.vue b/pages_tool/member/account.vue
index 2921673..5efd028 100644
--- a/pages_tool/member/account.vue
+++ b/pages_tool/member/account.vue
@@ -1,453 +1,453 @@
-
-
-
-
-
-
-
-
- 提现到余额
-
-
-
-
-
-
-
- {{ item.withdraw_type_name }}
-
- {{ item.realname }}
- {{ item.mobile }}
-
-
-
- 提现账号:{{ item.bank_account }}
-
-
- 银行名称 :{{ item.branch_bank_name }}
-
-
-
- 修改
-
-
-
-
- 设为默认账户
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 暂无账户信息,请添加
- {{ $lang('newAddAccount')
- }}
-
-
-
-
- {{ $lang('newAddAccount') }}
-
-
-
-
-
-
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/pages_tool/member/account_edit.vue b/pages_tool/member/account_edit.vue
index 0225527..acfc6a7 100644
--- a/pages_tool/member/account_edit.vue
+++ b/pages_tool/member/account_edit.vue
@@ -1,323 +1,323 @@
-
-
-
- {{ $lang('name') }}
-
-
-
- {{ $lang('mobilePhone') }}
-
-
-
- {{ $lang('accountType') }}
-
- {{ payList[index] }}
-
-
-
-
- 银行名称
-
-
-
- 提现账号
-
-
-
- {{ $lang('save') }}
-
-
-
-
-
-
-
-
+
+
+
+ {{ $lang('common.list.name') }}
+
+
+
+ {{ $lang('login.list.mobile_phone') }}
+
+
+
+ {{ $lang('member.list.account_type') }}
+
+ {{ payList[index] }}
+
+
+
+
+ {{ $lang("fenxiao.withdrawal_detail.l30") }}
+
+
+
+ {{ $lang("member.account_edit.l23") }}
+
+
+
+ {{ $lang('common.button.save') }}
+
+
+
+
+
+
+
+
diff --git a/pages_tool/member/address.vue b/pages_tool/member/address.vue
index b0a4f9f..f4503c0 100644
--- a/pages_tool/member/address.vue
+++ b/pages_tool/member/address.vue
@@ -1,607 +1,607 @@
-
-
-
-
-
-
-
-
-
-
- {{ item.name }}
- {{ item.mobile }}
- {{
- item.local_data }}
-
- {{ item.full_address }}{{ item.address }}
-
-
- {{ $lang('modify') }}
-
-
-
-
-
-
- {{ item.name }}
- {{ item.mobile }}
-
- {{ item.full_address }}{{ item.address }}
-
-
- {{ $lang('modify') }}
-
-
-
-
-
- 设为默认地址
- 设为默认地址
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 暂无收货地址,请添加
-
- {{ $lang('newAddAddress')
- }}
-
-
- {{
- $lang('getAddress') }}
-
-
- {{
- $lang('getAddress')
- }}
-
-
-
-
-
-
-
-
-
- {{ $lang('getAddress') }}
-
-
-
- {{
- $lang('getAddress') }}
-
-
-
- {{ $lang('newAddAddress') }}
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/pages_tool/member/address_edit.vue b/pages_tool/member/address_edit.vue
index 7451fea..b17af22 100644
--- a/pages_tool/member/address_edit.vue
+++ b/pages_tool/member/address_edit.vue
@@ -1,497 +1,497 @@
-
-
-
- 地址信息
-
-
- {{ $lang('consignee') }}
- *
-
-
-
-
-
- {{ $lang('mobile') }}
- *
-
-
-
-
- {{ $lang('telephone') }}
-
-
-
-
-
-
- {{ $lang('receivingCity') }}
- *
-
-
- {{ formData.full_address ? formData.full_address : '请选择省市区县' }}
-
-
-
-
-
-
-
-
- {{ $lang('receivingCity') }}
- *
-
-
-
- {{ formData.full_address ? formData.full_address : '请选择省市区县' }}
-
-
-
-
-
-
-
- {{ $lang('address') }}
- *
-
-
-
-
-
-
- {{ $lang('save') }}
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages_tool/member/apply_withdrawal.vue b/pages_tool/member/apply_withdrawal.vue
index 6317eb6..609760a 100644
--- a/pages_tool/member/apply_withdrawal.vue
+++ b/pages_tool/member/apply_withdrawal.vue
@@ -1,424 +1,424 @@
-
-
-
-
- 提现到
- 微信默认钱包
- {{ bankAccountInfo.bank_account }}
-
-
-
-
-
-
-
-
-
-
-
- 请添加提现方式
-
-
-
-
- 提现金额
-
- {{ $lang('common.currencySymbol') }}
-
-
-
-
-
-
-
- 可提现余额:{{ $lang('common.currencySymbol') }}{{ withdrawInfo.member_info.balance_money | moneyFormat }}
- 全部提现
-
-
-
- 最小提现金额为{{ $lang('common.currencySymbol') }}{{ withdrawInfo.config.min | moneyFormat }}
- ,手续费为{{ withdrawInfo.config.rate + '%' }}
-
-
-
-
- 提现
-
-
-
- 提现记录
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages_tool/member/assets.vue b/pages_tool/member/assets.vue
index f5a7a8b..b60fbd6 100644
--- a/pages_tool/member/assets.vue
+++ b/pages_tool/member/assets.vue
@@ -1,234 +1,234 @@
-
-
-
-
- 风险提示:确认申请后您的资产将被清空且不可找回!
-
-
-
- 账户资产
-
-
-
- {{ member_info.point }}
- 积分
-
-
- ¥{{ member_info.balance_money }}
- 现金余额
-
-
- ¥{{ member_info.balance }}
- 储值余额
-
-
- {{ accountInfo.member_coupon_count }}
- 优惠券
-
-
-
-
-
-
- 订单资产
-
-
-
- {{ accountInfo.order_pay_count }}
- 待发货
-
-
- {{ accountInfo.order_delivery_count }}
- 待收货
-
-
- {{ accountInfo.order_refund_count }}
- 退款中
-
-
-
-
-
-
-
- 分销资产
-
-
-
- ¥{{ fenxiao_info.account }}
- 可提现佣金
-
-
- ¥{{ fenxiao_info.account_withdraw_apply }}
- 提现中佣金
-
-
- {{ accountInfo.fenxiao_order_count }}
- 待结算订单
-
-
-
-
-
- 上一步
- 确认申请
-
-
-
-
-
-
-
-
+
+
+
+
+ {{ $lang("member.assets.l5") }}
+
+
+
+ {{ $lang("member.assets.l9") }}
+
+
+
+ {{ member_info.point }}
+ {{ $lang("common.register-reward.l19.t0") }}
+
+
+ ¥{{ member_info.balance_money }}
+ {{ $lang("member.assets.l18") }}
+
+
+ ¥{{ member_info.balance }}
+ {{ $lang("member.assets.l22") }}
+
+
+ {{ accountInfo.member_coupon_count }}
+ {{ $lang("diy.diy-coupon.l209.t0") }}
+
+
+
+
+
+
+ {{ $lang("member.assets.l33") }}
+
+
+
+ {{ accountInfo.order_pay_count }}
+ {{ $lang("order.list.l302") }}
+
+
+ {{ accountInfo.order_delivery_count }}
+ {{ $lang("order.list.l307") }}
+
+
+ {{ accountInfo.order_refund_count }}
+ {{ $lang("member.assets.l46") }}
+
+
+
+
+
+
+
+ {{ $lang("member.assets.l54") }}
+
+
+
+ ¥{{ fenxiao_info.account }}
+ {{ $lang("member.assets.l59") }}
+
+
+ ¥{{ fenxiao_info.account_withdraw_apply }}
+ {{ $lang("member.assets.l63") }}
+
+
+ {{ accountInfo.fenxiao_order_count }}
+ {{ $lang("member.assets.l67") }}
+
+
+
+
+
+ {{ $lang("member.assets.l73") }}
+ {{ $lang("member.assets.l74") }}
+
+
+
+
+
+
+
+
diff --git a/pages_tool/member/balance.vue b/pages_tool/member/balance.vue
index fa528b7..997b62e 100644
--- a/pages_tool/member/balance.vue
+++ b/pages_tool/member/balance.vue
@@ -1,189 +1,189 @@
-
-
-
-
-
-
-
- 账户余额
-
-
-
-
-
-
-
- 账户余额(元)
- {{ (parseFloat(balanceInfo.balance) + parseFloat(balanceInfo.balance_money)).toFixed(2) }}
-
-
- 提现
- 充值
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+ 账户余额
+
+
+
+
+
+
+
+ {{ $lang("member.balance.l19") }}
+ {{ (parseFloat(balanceInfo.balance) + parseFloat(balanceInfo.balance_money)).toFixed(2) }}
+
+
+ {{ $lang("fenxiao.withdraw_apply.l59") }}
+ {{ $lang("member.balance.l33") }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_tool/member/balance_detail.vue b/pages_tool/member/balance_detail.vue
index ff5586c..5f0f2eb 100644
--- a/pages_tool/member/balance_detail.vue
+++ b/pages_tool/member/balance_detail.vue
@@ -1,362 +1,362 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ item.remark }}
-
- {{ $util.timeStampTurnTime(item.create_time) }}
-
-
- {{ item.account_data > 0 ?
- '+' + item.account_data : item.account_data }}元
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages_tool/member/cancellation.vue b/pages_tool/member/cancellation.vue
index 15d1e79..492ffbc 100644
--- a/pages_tool/member/cancellation.vue
+++ b/pages_tool/member/cancellation.vue
@@ -1,133 +1,133 @@
-
-
-
-
- {{ agreement.title }}
-
-
-
-
-
-
-
- 勾选即表示您已阅读并同意本协议
-
- 下一步
-
-
-
-
-
-
-
-
+
+
+
+
+ {{ agreement.title }}
+
+
+
+
+
+
+
+ {{ $lang("member.cancellation.l13") }}
+
+ {{ $lang("member.cancellation.l15") }}
+
+
+
+
+
+
+
+
diff --git a/pages_tool/member/cancelrefuse.vue b/pages_tool/member/cancelrefuse.vue
index 7ca4d77..57df6ed 100644
--- a/pages_tool/member/cancelrefuse.vue
+++ b/pages_tool/member/cancelrefuse.vue
@@ -1,117 +1,117 @@
-
-
-
-
- 您的申请已拒绝
- 拒绝理由:{{ reason }}
-
- 返回
- 重新申请
-
-
-
-
-
-
-
-
+
+
+
+
+ {{ $lang("member.cancelrefuse.l5") }}
+ { $lang("member.cancelrefuse.l6") } reason }}
+
+ {{ $lang("member.cancelrefuse.l8") }}
+ {{ $lang("fenxiao.apply.l134") }}
+
+
+
+
+
+
+
+
diff --git a/pages_tool/member/cancelstatus.vue b/pages_tool/member/cancelstatus.vue
index fc0e914..31a148e 100644
--- a/pages_tool/member/cancelstatus.vue
+++ b/pages_tool/member/cancelstatus.vue
@@ -1,189 +1,189 @@
-
-
-
-
-
- 1
-
- 提交申请
- 您已提交申请,请耐心等待~
-
-
-
-
- 2
-
- 等待审核
- 等待审核中,审核通过后您的账号将直接被删除
-
-
-
-
-
- 3
-
-
- 审核通过,注销完成
- 您已成功注销账号,期待下一次与您相遇
-
-
-
-
- 返回
- 撤销申请
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages_tool/member/cancelsuccess.vue b/pages_tool/member/cancelsuccess.vue
index dca4284..b1692c8 100644
--- a/pages_tool/member/cancelsuccess.vue
+++ b/pages_tool/member/cancelsuccess.vue
@@ -1,104 +1,104 @@
-
-
-
-
-
-
- 您已成功注销账号
- 待下次与您更好的相遇,如需再次使用,请重新注册
- 完成
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages_tool/member/card.vue b/pages_tool/member/card.vue
index f98f099..acdd3d6 100644
--- a/pages_tool/member/card.vue
+++ b/pages_tool/member/card.vue
@@ -1,265 +1,265 @@
-
-
-
-
-
-
-
-
-
-
- {{ memberInfo.nickname }}
-
- 有效期至:{{ $util.timeStampTurnTime(memberInfo.level_expire_time, true) }}
-
-
-
-
-
-
-
-
- {{ levelInfo.level_name }}
- {{ levelInfo.level_name }}可享受消费折扣和
- 会员大礼包等权益
-
-
-
- 立即续费
-
-
-
-
-
-
-
-
-
- 会员权益
-
-
-
-
-
-
-
-
-
- 全场包邮
- 享受商品包邮服务
-
-
-
- 消费折扣
- 部分商品下单可享{{ levelInfo.consume_discount / 10 }}折优惠
-
-
-
- 积分回馈
- 下单享{{ parseFloat(levelInfo.point_feedback) }}倍积分回馈
-
-
-
-
-
-
-
-
- 开卡礼包
-
-
-
-
-
-
-
-
- 积分礼包
- 赠送{{ levelInfo.send_point }}积分
-
-
-
- 红包礼包
- 赠送{{ parseFloat(levelInfo.send_balance) }}元红包
-
-
-
- 优惠券礼包
- 赠送{{ levelInfo.send_coupon.split(',').length }}张优惠券
-
-
-
-
-
-
-
-
-
-
-
- 会员卡说明
-
-
-
-
-
- 会员卡说明
- {{ levelInfo.remark }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/pages_tool/member/card_buy.vue b/pages_tool/member/card_buy.vue
index bd4b526..ff677cc 100644
--- a/pages_tool/member/card_buy.vue
+++ b/pages_tool/member/card_buy.vue
@@ -1,429 +1,429 @@
-
-
-
-
-
-
-
-
-
-
-
- {{ memberInfo.nickname }}
-
- 有效期至:{{ $util.timeStampTurnTime(memberInfo.level_expire_time, true) }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ levelList[curIndex].level_name }}
- {{
- levelList[curIndex].level_name }}可享受消费折扣和
-
- 会员大礼包等权益
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 卡种选择
-
-
-
-
-
-
-
-
-
- {{ cardType[item.key].name }}
-
- {{ $lang('common.currencySymbol') }}
- {{ item.value }}
- /{{ cardType[item.key].unit }}
-
-
-
-
-
-
-
-
-
-
-
- 会员权益
-
-
-
-
-
-
-
-
-
-
- 全场包邮
- 享受商品包邮服务
-
-
-
- 消费折扣
- 部分商品下单可享{{ currCard.consume_discount / 10 }}折优惠
-
-
-
- 积分回馈
- 下单享{{ parseFloat(currCard.point_feedback) }}倍积分回馈
-
-
-
-
-
-
-
-
- 开卡礼包
-
-
-
-
-
-
-
-
- 积分礼包
- 赠送{{ currCard.send_point }}积分
-
-
-
- 红包礼包
- 赠送{{ parseFloat(currCard.send_balance) }}元红包
-
-
-
- 优惠券礼包
- 赠送{{ currCard.send_coupon.split(',').length }}张优惠券
-
-
-
-
-
-
-
-
-
-
-
- 立即续费
-
- 充值开通
- 立即开通
-
- {{ $lang('common.currencySymbol') }}
- {{ currCard.charge_rule_arr[choiceIndex].value }}
- /{{ cardType[currCard.charge_rule_arr[choiceIndex].key].unit }}
-
-
- 购买既视为同意
- 《{{ agreement.title
- }}》
-
-
-
-
-
-
-
-
-
-
- 会员卡说明
-
-
-
-
-
- 会员卡说明
- {{ currCard.remark }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages_tool/member/collection.vue b/pages_tool/member/collection.vue
index 83e0458..044a263 100644
--- a/pages_tool/member/collection.vue
+++ b/pages_tool/member/collection.vue
@@ -1,92 +1,92 @@
-
-
-
-
-
-
-
-
-
-
- {{ item.sku_name }}
-
-
- ¥
- {{
- parseFloat(item.discount_price).toFixed(2).split('.')[0] }}
- .{{
- parseFloat(item.discount_price).toFixed(2).split('.')[1] }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ $lang('toLogin') }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/pages_tool/member/contact.vue b/pages_tool/member/contact.vue
index d3b7c6a..4fb4ff4 100644
--- a/pages_tool/member/contact.vue
+++ b/pages_tool/member/contact.vue
@@ -1,28 +1,28 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_tool/member/coupon.vue b/pages_tool/member/coupon.vue
index 08db353..8a52290 100644
--- a/pages_tool/member/coupon.vue
+++ b/pages_tool/member/coupon.vue
@@ -1,401 +1,401 @@
-
-
-
-
- 未使用
- 已使用
- 已过期
-
-
-
-
-
-
-
-
-
-
-
-
- ¥
- {{ parseFloat(item.money) }}
-
-
- ¥
- {{ parseFloat(item.money) }}
-
-
- {{ parseFloat(item.discount) }}
- 折
-
-
- 满{{ item.at_least }}元可用
- 无门槛优惠券
-
-
-
-
- {{ item.coupon_name }}
- 指定商品
- (最大优惠{{ item.discount_limit }}元)
- {{ item.use_channel_name }}
-
-
- 有效期:{{ $util.timeStampTurnTime(item.end_time) }}
-
- 有效期:长期有效
-
-
- 去使用
- 已使用
- 已过期
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages_tool/member/footprint.vue b/pages_tool/member/footprint.vue
index 01a4b54..1f7a54c 100644
--- a/pages_tool/member/footprint.vue
+++ b/pages_tool/member/footprint.vue
@@ -1,255 +1,255 @@
-
-
-
- {{ manage ? '完成' : '管理' }}
-
-
-
-
-
- {{ datetime(item) }}
-
-
-
-
-
-
- {{ goodsTag(item) }}
-
-
-
- {{ isEnEnv ? item.en_goods_name : item.goods_name }}
-
-
-
-
- {{ $lang('common.currencySymbol') }}
- {{ parseFloat(showPrice(item)).toFixed(2).split('.')[0] }}
- .{{ parseFloat(showPrice(item)).toFixed(2).split('.')[1] }}
-
-
-
-
-
-
-
-
-
-
- {{ $lang('common.currencySymbol') }}
- {{ showMarketPrice(item) }}
-
- 已售{{ item.sale_num }}{{ item.unit ? item.unit : '件' }}
-
-
-
-
-
-
-
-
-
-
- 全选
-
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ {{ manage ? '完成' : $lang('member.footprint.l4') }}
+
+
+
+
+
+ {{ datetime(item) }}
+
+
+
+
+
+
+ {{ goodsTag(item) }}
+
+
+
+ {{ isEnEnv ? item.en_goods_name : item.goods_name }}
+
+
+
+
+ {{ $lang('common.currency_symbol') }}
+ {{ parseFloat(showPrice(item)).toFixed(2).split('.')[0] }}
+ .{{ parseFloat(showPrice(item)).toFixed(2).split('.')[1] }}
+
+
+
+
+
+
+
+
+
+
+ {{ $lang('common.currency_symbol') }}
+ {{ showMarketPrice(item) }}
+
+ { $lang("goods.detail.l18") } item.sale_num }}{{ item.unit ? item.unit : $lang('common.ns-goods-sku.ns-goods-sku-index.l150.t0') }}
+
+
+
+
+
+
+
+
+
+
+ {{ $lang("member.footprint.l57") }}
+
+ {{ $lang("member.footprint.l59") }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_tool/member/index.vue b/pages_tool/member/index.vue
index 2a908c1..5b48521 100644
--- a/pages_tool/member/index.vue
+++ b/pages_tool/member/index.vue
@@ -1,202 +1,202 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ $lang('cancellation') }}
- {{ $lang('logout') }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/pages_tool/member/info.vue b/pages_tool/member/info.vue
index c36bd80..0f9596b 100644
--- a/pages_tool/member/info.vue
+++ b/pages_tool/member/info.vue
@@ -1,329 +1,329 @@
-
-
-
-
-
- 头像
-
-
-
-
-
-
-
-
-
-
-
- 昵称
- {{ memberInfoformData.nickName }}
-
-
-
-
- 姓名
- {{ memberInfoformData.realName }}
-
-
-
-
- 性别
- {{ memberInfoformData.sex }}
-
-
-
-
- 生日
- {{ memberInfoformData.birthday }}
-
-
-
-
- 手机号
- 密码
- {{ memberInfoformData.mobile }}
-
-
-
-
-
-
-
-
-
-
-
- 注销账号
-
-
-
-
-
-
-
-
-
-
-
-
-
- 退出登录
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages_tool/member/info_edit.vue b/pages_tool/member/info_edit.vue
index 5d9ef29..953af00 100644
--- a/pages_tool/member/info_edit.vue
+++ b/pages_tool/member/info_edit.vue
@@ -1,387 +1,387 @@
-
-
-
-
-
-
- 用户名
-
-
- 用户名仅可修改一次,请谨慎设置
-
- 保存
-
-
-
-
-
- 昵称
-
-
-
- 保存
-
-
-
-
-
- 姓名
-
-
-
- 保存
-
-
-
-
-
- 性别
-
-
-
-
-
- 保存
-
-
-
-
-
- 生日
-
- {{ formData.birthday ? formData.birthday : '请选择生日' }}
-
-
-
- 保存
-
-
-
-
-
-
-
-
-
- 请先绑定手机再执行该操作
- 立即绑定
-
-
-
-
- 原密码
-
-
-
-
- 新密码
-
-
-
-
- 再次输入
-
- {{ formData.mobileCodeText }}
-
-
- 点击“获取动态码”,将会向您已绑定的手机号{{ memberInfoformData.mobile | mobile }}发送验证码
-
-
- 新密码
-
-
-
- 再次输入
-
-
-
-
- 保存
-
-
-
-
-
-
- 手机号
-
-
-
- 验证码
-
-
-
-
- 短信验证码
-
- {{ formData.mobileCodeText }}
-
-
- 保存
-
-
-
-
-
- 一键授权绑定
-
-
- 手动绑定
-
-
-
-
- 所在地区
-
-
- {{ formData.fullAddress ? formData.fullAddress : '请选择省市区县' }}
-
-
-
-
- 详细地址
-
-
-
- 保存
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages_tool/member/invite_friends.vue b/pages_tool/member/invite_friends.vue
index 34c44bb..5d5b7b0 100644
--- a/pages_tool/member/invite_friends.vue
+++ b/pages_tool/member/invite_friends.vue
@@ -1,278 +1,278 @@
-
-
-
-
-
-
-
-
-
- 活动说明
-
-
-
- 活动时间:{{ $util.timeStampTurnTime(info.start_time, 1) }}至{{ $util.timeStampTurnTime(info.end_time, 1) }}
-
-
- 立即邀请
-
-
- 我的好友
-
-
-
-
-
-
-
-
-
- {{ item.source_member_nickname }}
-
- {{ $util.timeStampTurnTime(item.create_time) }}
-
-
-
- {{ item.balance }}元现金红包
- +
- {{ parseInt(item.point) }}积分
- +
-
- {{ item.coupon_num }}张优惠券
-
-
-
-
-
- 查看更多
-
-
- 没有更多数据了
-
-
-
-
- 您还没有邀请到新朋友哦
- 邀请好友,赚取好礼。赶紧去试试吧~
-
-
-
-
- 邀请好友奖励
-
-
-
-
-
-
- {{ $lang('common.currencySymbol') }}
- {{ info.balance }}
-
- 现金红包
-
-
-
-
-
-
-
- {{ parseInt(info.point) }}
-
- 积分
-
-
-
-
-
-
-
-
- {{ info.coupon.split(',').length }}
- 张
-
- 优惠券
-
-
-
-
- 分享给好友,让好友通过你的分享链接进入并注册登录,可获得以下奖励:
-
-
- ●
- 可得{{ info.balance }}元红包奖励
-
-
- ●
- 可得{{ info.point }}积分
-
-
- ●
- 可得{{ info.coupon.split(',').length }}张优惠券
-
-
-
- ●
- 可得奖励不受限制
-
-
- ●
- 奖励上限为{{ info.max_fetch }}人
-
-
-
-
-
-
- 如何邀请好友
-
-
-
-
-
-
- 分享链接给好友
-
-
-
-
-
-
-
-
- 好友进入
-
-
-
-
-
-
-
-
- 好友注册成功获得奖励
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 保存图片
-
-
- 长按保存图片
-
-
-
-
- {{ posterMsg }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- 活动说明
-
-
-
- {{ info.remark }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ 活动说明
+
+
+
+ 活动时间:{{ $util.timeStampTurnTime(info.start_time, 1) }}至{{ $util.timeStampTurnTime(info.end_time, 1) }}
+
+
+ {{ $lang("member.invite_friends.l17") }}
+
+
+ {{ $lang("member.invite_friends.l20") }}
+
+
+
+
+
+
+
+
+
+ {{ item.source_member_nickname }}
+
+ {{ $util.timeStampTurnTime(item.create_time) }}
+
+
+
+ {{ item.balance }}元现金红包
+ +
+ {{ parseInt(item.point) }}积分
+ +
+
+ {{ item.coupon_num }}张优惠券
+
+
+
+
+
+ 查看更多
+
+
+ {{ $lang("member.invite_friends.l50") }}
+
+
+
+
+ {{ $lang("member.invite_friends.l55") }}
+ {{ $lang("member.invite_friends.l56") }}
+
+
+
+
+ {{ $lang("member.invite_friends.l61") }}
+
+
+
+
+
+
+ {{ $lang('common.currency_symbol') }}
+ {{ info.balance }}
+
+ {{ $lang("member.invite_friends.l71") }}
+
+
+
+
+
+
+
+ {{ parseInt(info.point) }}
+
+ {{ $lang("common.register-reward.l19.t0") }}
+
+
+
+
+
+
+
+
+ {{ info.coupon.split(',').length }}
+ 张
+
+ {{ $lang("diy.diy-coupon.l209.t0") }}
+
+
+
+
+ {{ $lang("member.invite_friends.l98") }}
+
+
+ ●
+ 可得{{ info.balance }}元红包奖励
+
+
+ ●
+ 可得{{ info.point }}积分
+
+
+ ●
+ 可得{{ info.coupon.split(',').length }}张优惠券
+
+
+
+ ●
+ 可得奖励不受限制
+
+
+ ●
+ 奖励上限为{{ info.max_fetch }}人
+
+
+
+
+
+
+ {{ $lang("member.invite_friends.l126") }}
+
+
+
+
+
+
+ {{ $lang("member.invite_friends.l133") }}
+
+
+
+
+
+
+
+
+ {{ $lang("member.invite_friends.l142") }}
+
+
+
+
+
+
+
+
+ {{ $lang("member.invite_friends.l151") }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $lang("goods._components.goods-detail-view.l397.t0") }}
+
+
+ {{ $lang("fenxiao.goods_list.l118") }}
+
+
+
+
+ {{ posterMsg }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $lang("member.invite_friends.l217") }}
+
+
+
+ {{ info.remark }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_tool/member/level.vue b/pages_tool/member/level.vue
index 1eb6596..b019434 100644
--- a/pages_tool/member/level.vue
+++ b/pages_tool/member/level.vue
@@ -1,372 +1,372 @@
-
-
-
-
-
-
-
-
-
-
- {{ memberInfo.nickname }}
- 当前等级:{{ memberInfo.member_level_name }}
-
-
-
- 成长规则
-
-
-
-
-
-
-
-
-
-
-
- {{ levelList[curIndex].level_name }}
- 当前等级
-
- 当前成长值
- {{ growth }}
-
-
-
-
- 再获得{{ levelList[curIndex + 1].needGrowth > 0 ? levelList[curIndex + 1].needGrowth : 0 }}成长值成为{{
- levelList[curIndex + 1].level_name
- }}
-
-
-
- 您现在已经是最高等级
-
-
-
-
-
- 再获得{{ levelList[curIndex].needGrowth }}成长值成为{{ levelList[curIndex].level_name }}
-
-
-
-
-
-
-
-
- 会员权益
-
-
-
- 包邮服务
- 提供商品包邮服务
-
-
-
-
-
- 享受消费折扣服务
- 不享受任何消费折扣和其他权益
- 提供{{ levelList[curIndex].consume_discount }}折消费折扣
-
-
-
-
-
- 享受积分回馈服务
- 提供{{ levelList[curIndex].point_feedback }}倍积分回馈倍率
-
-
-
-
-
- 会员礼包
-
-
-
- 积分礼包
- 赠送{{ levelList[curIndex].send_point }}积分
-
-
-
-
-
- 红包礼包
- 赠送{{ levelList[curIndex].send_balance }}元红包
-
-
-
-
-
- 优惠券礼包
- 赠送{{ levelList[curIndex].coupon_length }}张优惠券
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages_tool/member/level_growth_rules.vue b/pages_tool/member/level_growth_rules.vue
index 94309f0..2ce653b 100644
--- a/pages_tool/member/level_growth_rules.vue
+++ b/pages_tool/member/level_growth_rules.vue
@@ -8,8 +8,8 @@
- 等级
- 成长值
+ {{ $lang("fenxiao.level.l221") }}
+ {{ $lang("common.register-reward.l27.t0") }}
{{ item.level_name }}
@@ -20,20 +20,20 @@
- 什么是成长值
+ {{ $lang("member.level_growth_rules.l23") }}
- 成长值是消费者在店铺成为会员后,通过消费计算出来的值。成长值决定会员等级,会员等级越高,所享受的会员权益和会员礼包就越多。
+ {{ $lang("member.level_growth_rules.l25") }}
- 如何获得成长值
+ {{ $lang("member.level_growth_rules.l30") }}
- 1、注册会员送x成长值。
- 2、会员充值到余额送x成长值。
- 3、会员签到送x成长值。
- 4、会员消费x元,交易完成即可获得x个成长值。
+ {{ $lang("member.level_growth_rules.l33") }}
+ {{ $lang("member.level_growth_rules.l34") }}
+ {{ $lang("member.level_growth_rules.l35") }}
+ {{ $lang("member.level_growth_rules.l36") }}
@@ -118,7 +118,7 @@
},
getBannerDetail(index) {
uni.showLoading({
- title: '将前往详情页面',
+ title: $lang('member.level.l268'),
duration: 2000,
mask: true
});
diff --git a/pages_tool/member/modify_face.vue b/pages_tool/member/modify_face.vue
index fece095..e892d58 100644
--- a/pages_tool/member/modify_face.vue
+++ b/pages_tool/member/modify_face.vue
@@ -1,197 +1,197 @@
-
-
-
-
-
-
-
-
-
-
-
- 点击上传
-
-
- 点击上传
-
-
-
-
- 确认保存
- 重新上传
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages_tool/member/pay_password.vue b/pages_tool/member/pay_password.vue
index 0511b4b..721c1ce 100644
--- a/pages_tool/member/pay_password.vue
+++ b/pages_tool/member/pay_password.vue
@@ -1,278 +1,278 @@
-
-
- 请输入6位支付密码,建议不要使用重复或连续数字
- 验证码已发送至{{ memberInfo.mobile | mobile }}请在下方输入4位数字验证码
-
-
-
- {{ dynacodeData.codeText }}
-
- 输入短信验证码
- 请设置支付密码
- 请再次输入
- 确认
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages_tool/member/point.vue b/pages_tool/member/point.vue
index 172cbc8..9c61231 100644
--- a/pages_tool/member/point.vue
+++ b/pages_tool/member/point.vue
@@ -1,161 +1,161 @@
-
-
-
-
-
-
-
- 我的积分
-
-
-
-
-
-
- {{ pointInfo.point }}
- 当前积分
-
-
- {{ pointInfo.totalPoint }}
- 累计积分
-
-
- {{ pointInfo.totalConsumePoint }}
- 累计消费
-
-
- {{ pointInfo.todayPoint }}
- 今日获得
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+ 我的积分
+
+
+
+
+
+
+ {{ pointInfo.point }}
+ {{ $lang("member.point.l20") }}
+
+
+ {{ pointInfo.totalPoint }}
+ {{ $lang("member.point.l24") }}
+
+
+ {{ pointInfo.totalConsumePoint }}
+ {{ $lang("member.point.l28") }}
+
+
+ {{ pointInfo.todayPoint }}
+ {{ $lang("member.point.l32") }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_tool/member/point_detail.vue b/pages_tool/member/point_detail.vue
index 7087667..f217931 100644
--- a/pages_tool/member/point_detail.vue
+++ b/pages_tool/member/point_detail.vue
@@ -1,342 +1,342 @@
-
-
-
-
-
-
-
-
-
-
-
- {{ item.type_name }}
-
- {{ $util.timeStampTurnTime(item.create_time) }}
-
-
- +{{ parseInt(item.account_data) }}
- {{ parseInt(item.account_data) }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.type_name }}
+
+ {{ $util.timeStampTurnTime(item.create_time) }}
+
+
+ +{{ parseInt(item.account_data) }}
+ {{ parseInt(item.account_data) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_tool/member/public/js/collection.js b/pages_tool/member/public/js/collection.js
index c941bc6..f781f08 100644
--- a/pages_tool/member/public/js/collection.js
+++ b/pages_tool/member/public/js/collection.js
@@ -1,80 +1,80 @@
-export default {
- data() {
- return {
- collectionList: [],
- isShowEmpty: false
- };
- },
- methods: {
- //跳转至详情页
- toDetail(e) {
- this.$util.redirectTo("/pages_goods/detail", {
- goods_id: e.goods_id
- });
- },
- //请求数据
- getData(mescroll) {
- this.isShowEmpty = false;
- let url = "/api/goodscollect/page"
- let array = []
- this.$api.sendRequest({
- url: url,
- data: {
- page_size: mescroll.size,
- page: mescroll.num,
- },
- async: false,
- }).then((res) => {
- let newArr = res.data?.list || [];
- for (var i = 0; i < newArr.length; i++) {
- newArr[i].composite_score = Math.floor((parseFloat(newArr[i].shop_desccredit) + parseFloat(newArr[i].shop_servicecredit) + parseFloat(newArr[i].shop_deliverycredit)) / 3).toFixed(1);
- }
- array = array.concat(newArr);
- //设置列表数据
- if (mescroll.num == 1) this.collectionList = []; //如果是第一页需手动制空列表
- this.collectionList = this.collectionList.concat(newArr); //追加新数据
- mescroll.endSuccess(array.length);
- if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
- this.isShowEmpty = true;
- })
-
- },
- //监听下拉刷新,初始化页面数据
- listenRefresh(e) {
- this.$refs.goodsRecommend.init();
- },
- //删除某一项
- deleteItem(e) {
- this.$api.sendRequest({
- url: "/api/goodscollect/delete",
- data: {
- goods_id: e
- },
- success: res => {
- if (res.code == 0) {
- this.$util.showToast({
- title: "删除成功"
- })
- let array = this.collectionList;
- let newArray = array.filter((v) => {
- return v.goods_id != e;
- })
- this.collectionList = newArray;
- } else {
- this.$util.showToast({
- title: res.message
- })
- }
- }
- })
- },
- imageError(index) {
- this.collectionList[index].logo = this.$util.getDefaultImage().goods;
- this.$forceUpdate();
- },
- goodsImageError(index) {
- this.collectionList[index].sku_image = this.$util.getDefaultImage().goods;
- this.$forceUpdate();
- }
- }
-};
+export default {
+ data() {
+ return {
+ collectionList: [],
+ isShowEmpty: false
+ };
+ },
+ methods: {
+ //跳转至详情页
+ toDetail(e) {
+ this.$util.redirectTo("/pages_goods/detail", {
+ goods_id: e.goods_id
+ });
+ },
+ //请求数据
+ getData(mescroll) {
+ this.isShowEmpty = false;
+ let url = "/api/goodscollect/page"
+ let array = []
+ this.$api.sendRequest({
+ url: url,
+ data: {
+ page_size: mescroll.size,
+ page: mescroll.num,
+ },
+ async: false,
+ }).then((res) => {
+ let newArr = res.data?.list || [];
+ for (var i = 0; i < newArr.length; i++) {
+ newArr[i].composite_score = Math.floor((parseFloat(newArr[i].shop_desccredit) + parseFloat(newArr[i].shop_servicecredit) + parseFloat(newArr[i].shop_deliverycredit)) / 3).toFixed(1);
+ }
+ array = array.concat(newArr);
+ //设置列表数据
+ if (mescroll.num == 1) this.collectionList = []; //如果是第一页需手动制空列表
+ this.collectionList = this.collectionList.concat(newArr); //追加新数据
+ mescroll.endSuccess(array.length);
+ if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
+ this.isShowEmpty = true;
+ })
+
+ },
+ //监听下拉刷新,初始化页面数据
+ listenRefresh(e) {
+ this.$refs.goodsRecommend.init();
+ },
+ //删除某一项
+ deleteItem(e) {
+ this.$api.sendRequest({
+ url: "/api/goodscollect/delete",
+ data: {
+ goods_id: e
+ },
+ success: res => {
+ if (res.code == 0) {
+ this.$util.showToast({
+ title: $lang("member.account.l118")
+ })
+ let array = this.collectionList;
+ let newArray = array.filter((v) => {
+ return v.goods_id != e;
+ })
+ this.collectionList = newArray;
+ } else {
+ this.$util.showToast({
+ title: res.message
+ })
+ }
+ }
+ })
+ },
+ imageError(index) {
+ this.collectionList[index].logo = this.$util.getDefaultImage().goods;
+ this.$forceUpdate();
+ },
+ goodsImageError(index) {
+ this.collectionList[index].sku_image = this.$util.getDefaultImage().goods;
+ this.$forceUpdate();
+ }
+ }
+};
diff --git a/pages_tool/member/public/js/info.js b/pages_tool/member/public/js/info.js
index b0764e4..009b9c5 100644
--- a/pages_tool/member/public/js/info.js
+++ b/pages_tool/member/public/js/info.js
@@ -1,962 +1,962 @@
-import validate from '@/common/js/validate.js';
-import memberPublic from './member-public.js';
-
-export default {
- data() {
- return {
- registerConfig: {},
- indent: 'all',
- customNavTitle: "",
- formData: {
- userHeadImg: '',
- number: '', //账号
- nickName: '', //昵称
- sex: '', //性别
- realName: '', //真实姓名
- birthday: '', //生日
- currentPassword: '', //当前密码
- newPassword: '', //新密码
- confirmPassword: '', //确认密码
- mobile: '', //手机号
- mobileVercode: '', //手机验证码
- mobileDynacode: '', //手机动态验证吗
- mobileCodeText: "",
- username: '',
- provinceId: 0,
- cityId: 0,
- districtId: 0,
- fullAddress: '',
- address: ''
- },
- memberInfoformData: {
- userHeadImg: '',
- number: '', //账号
- nickName: '', //昵称
- sex: '', //性别
- realName: '', //真实姓名
- birthday: '', //生日
- currentPassword: '', //当前密码
- newPassword: '', //新密码
- confirmPassword: '', //确认密码
- mobile: '', //手机号
- mobileVercode: '', //手机验证码
- mobileDynacode: '', //手机动态验证吗
- mobileCodeText: "",
- },
- langList: [],
- langIndex: 0,
- seconds: 120,
- timer: null,
- isSend: false,
- captcha: {
- id: '',
- img: ''
- },
- isIphoneX: false,
- items: [{
- value: '0',
- name: '未知'
- },
- {
- value: '1',
- name: '男',
- checked: 'true'
- },
- {
- value: '2',
- name: '女'
- }
- ],
- current: 0,
- memberConfig: {
- is_audit: 0,
- is_enable: 0
- },
- defaultRegions: [],
- };
- },
- onLoad(option) {
- this.isIphoneX = this.$util.uniappIsIPhoneX()
- this.formData.mobileCodeText = this.$lang('findanimateCode');
-
- if (option.back) {
- this.back = option.back;
- }
-
- this.getCaptcha();
-
- if (option.action) {
- this.indent = option.action;
- this.setNavbarTitle()
-
- // #ifdef MP-WEIXIN
- option.action == 'bind_mobile' && this.getCode()
- // #endif
- }
-
- this.getRegisterConfig();
- this.initLang();
- this.getMemberConfig();
- },
- onShow() {
- if (!this.storeToken) {
- this.$nextTick(() => {
- this.$refs.login.open('/pages_tool/member/info');
- });
- } else {
- this.getInfo();
- }
- },
- onHide() {
- this.seconds = 120;
- this.formData.mobileCodeText = '获取动态码';
- this.isSend = false;
- clearInterval(this.timer);
- },
- watch: {
- seconds(value) {
- if (value == 0) {
- this.seconds = 120;
- this.formData.mobileCodeText = '获取动态码';
- this.isSend = false;
- clearInterval(this.timer);
- }
- }
- },
- computed: {
- startDate() {
- return this.getDate('start');
- },
- endDate() {
- return this.getDate('end');
- }
- },
- filters: {
- mobile(mobile) {
- return mobile.substring(0, 4 - 1) + '****' + mobile.substring(6 + 1);
- }
- },
- methods: {
- ...memberPublic.methods,
- // 初始化语言
- initLang() {
- //获取语言列表
- this.langList = this.$langConfig.list();
- if (!uni.getStorageSync("lang")) {
- this.langIndex = 0;
- } else {
- for (let i = 0; i < this.langList.length; i++) {
- if (this.langList[i].value == uni.getStorageSync("lang")) {
- this.langIndex = i;
- break;
- }
- }
- }
- },
- setNavbarTitle() {
- let title = '个人资料';
- switch (this.indent) {
- case 'name':
- title = this.$lang('modifyNickname');
- break;
- case 'realName':
- title = this.$lang('realName');
- break;
- case 'sex':
- title = this.$lang('sex');
- break;
- case 'birthday':
- title = this.$lang('birthday');
- break;
- case 'password':
- title = this.$lang('password');
- break;
- case 'mobile':
- title = this.$lang('mobile');
- break;
- }
- uni.setNavigationBarTitle({
- title: title
- });
- },
- // 初始化用户信息
- getInfo() {
- this.memberInfoformData.userHeadImg = this.memberInfo.headimg;
- this.memberInfoformData.number = this.memberInfo.username; //账号
- this.memberInfoformData.nickName = this.memberInfo.nickname; //昵称
- this.memberInfoformData.realName = this.memberInfo.realname ? this.memberInfo.realname : '请输入真实姓名'; //真实姓名
- this.memberInfoformData.sex = this.memberInfo.sex == 0 ? '未知' : this.memberInfo.sex == 1 ? '男' : '女'; //性别
- this.memberInfoformData.birthday = this.memberInfo.birthday ? this.$util.timeStampTurnTime(this.memberInfo.birthday, 'YYYY-MM-DD') : '请选择生日'; //生日
- this.memberInfoformData.mobile = this.memberInfo.mobile; //手机号
-
- this.formData.username = this.memberInfo.username; //用户名
- this.formData.nickName = this.memberInfo.nickname; //昵称
- this.formData.realName = this.memberInfo.realname; //真实姓名
- this.formData.sex = this.memberInfo.sex; //性别
- this.formData.birthday = this.memberInfo.birthday ? this.$util.timeStampTurnTime(this.memberInfo.birthday, 'YYYY-MM-DD') : ''; //生日
- this.formData.provinceId = this.memberInfo.province_id;
- this.formData.cityId = this.memberInfo.city_id;
- this.formData.districtId = this.memberInfo.district_id;
- this.formData.fullAddress = this.memberInfo.full_address;
- this.formData.address = this.memberInfo.address;
- if (this.memberInfo.full_address) this.defaultRegions = [this.memberInfo
- .province_id, this.memberInfo.city_id, this.memberInfo.district_id
- ];
- },
- // 切换编辑项
- modifyInfo(action) {
- switch (action) {
- case 'cancellation':
- this.getCancelStatus();
- break;
- case 'language':
- let newArray = [];
- for (let i = 0; i < this.langList.length; i++) {
- newArray.push(this.langList[i].name)
- }
- uni.showActionSheet({
- itemList: newArray,
- success: function (res) {
- if (vm.langIndex != res.tapIndex) {
- vm.$langConfig.change(vm.langList[res.tapIndex].value)
- }
- }
- });
- break;
- case 'mobile':
- // #ifdef MP
- this.$util.redirectTo('/pages_tool/member/info_edit', {
- action: 'bind_mobile'
- });
- // #endif
- // #ifndef MP
- this.$util.redirectTo('/pages_tool/member/info_edit', {
- action
- });
- // #endif
- break;
- default:
- this.$util.redirectTo('/pages_tool/member/info_edit', {
- action
- });
- }
- },
- // 导航返回
- NavReturn() {
- uni.navigateBack({
- delta: 1
- })
- },
- // 获取验证码
- getCaptcha() {
- this.$api.sendRequest({
- url: '/api/captcha/captcha',
- data: {
- captcha_id: this.captcha.id
- },
- success: res => {
- if (res.code >= 0) {
- this.captcha = res.data;
- this.captcha.img = this.captcha.img.replace(/\r\n/g, '');
- }
- }
- });
- },
- headImage() {
- this.$util.redirectTo("/pages_tool/member/modify_face");
- },
- // 检测手机是否已绑定
- async testBinding(type) {
- var res = await this.checkMobile();
- return res;
- },
- //获取注销的配置信息
- getMemberConfig() {
- this.$api.sendRequest({
- url: '/membercancel/api/membercancel/config',
- success: res => {
- if (res.code >= 0) {
- this.memberConfig = res.data
- }
- }
- });
-
- },
- save(type) {
- switch (type) {
- case 'username':
- this.modifyUserName();
- break;
- case 'name':
- this.modifyNickName();
- break;
- case 'realName':
- this.modifyRealName();
- break;
- case 'sex':
- this.modifySex();
- break;
- case 'birthday':
- this.modifyBirthday();
- break;
- case 'password':
- this.modifyPassword();
- break;
- case 'mobile':
- this.modifyMobile();
- break;
- case 'address':
- this.modifyAddress();
- break;
- }
- },
-
- // ------------------------修改用户名------------------------------
- modifyUserName() {
- if (this.formData.username == this.memberInfo.username) {
- this.$util.showToast({
- title: this.$lang('alikeusername')
- });
- return;
- }
- var rule = [{
- name: 'username',
- checkType: 'required',
- errorMsg: this.$lang('noEmityUsername')
- }];
- if (!rule.length) return;
- var checkRes = validate.check(this.formData, rule);
- if (checkRes) {
- this.$api.sendRequest({
- url: '/api/member/modifyusername',
- data: {
- username: this.formData.username
- },
- success: res => {
- if (res.code == 0) {
- this.memberInfo.username = this.formData.username;
- this.$store.commit('setMemberInfo', this.memberInfo);
- this.$util.showToast({
- title: this.$lang("updateSuccess")
- });
- this.NavReturn();
- } else {
- this.$util.showToast({
- title: res.message
- });
- }
- }
- });
- } else {
- this.$util.showToast({
- title: validate.error
- });
- }
- },
- // ------------------------修改昵称------------------------------
-
- modifyNickName() {
- if (this.formData.nickName == this.memberInfo.nickname) {
- this.$util.showToast({
- title: this.$lang('alikeNickname')
- });
- return;
- }
- var rule = [{
- name: 'nickName',
- checkType: 'required',
- errorMsg: this.$lang('noEmityNickname')
- }];
- if (!rule.length) return;
- var checkRes = validate.check(this.formData, rule);
- if (checkRes) {
- this.$api.sendRequest({
- url: '/api/member/modifynickname',
- data: {
- nickname: this.formData.nickName
- },
- success: res => {
- if (res.code == 0) {
- this.memberInfo.nickname = this.formData.nickName;
- this.$store.commit('setMemberInfo', this.memberInfo);
- this.$util.showToast({
- title: this.$lang("updateSuccess")
- });
- this.NavReturn();
- } else {
- this.$util.showToast({
- title: res.message
- });
- }
- }
- });
- } else {
- this.$util.showToast({
- title: validate.error
- });
- }
- },
-
- // ------------------------修改真实姓名------------------------------
- modifyRealName() {
- if (this.formData.realName == this.memberInfo.realname && this.memberInfo.realname) {
- this.$util.showToast({
- title: '与原真实姓名一致,无需修改'
- });
- return;
- }
- var rule = [{
- name: 'realName',
- checkType: 'required',
- errorMsg: '真实姓名不能为空'
- }];
- if (!rule.length) return;
- var checkRes = validate.check(this.formData, rule);
- if (checkRes) {
- this.$api.sendRequest({
- url: '/api/member/modifyrealname',
- data: {
- realname: this.formData.realName
- },
- success: res => {
- if (res.code == 0) {
- this.memberInfo.realname = this.formData.realName;
- this.$store.commit('setMemberInfo', this.memberInfo);
- this.$util.showToast({
- title: this.$lang("updateSuccess")
- });
- this.NavReturn();
- } else {
- this.$util.showToast({
- title: res.message
- });
- }
- }
- });
- } else {
- this.$util.showToast({
- title: validate.error
- });
- }
- },
-
- // ------------------------修改性别------------------------------
- radioChange: function (evt) {
- for (let i = 0; i < this.items.length; i++) {
- if (this.items[i].value === evt.target.value) {
- this.formData.sex = i;
- break;
- }
- }
- },
-
- modifySex() {
- this.$api.sendRequest({
- url: '/api/member/modifysex',
- data: {
- sex: this.formData.sex
- },
- success: res => {
- if (res.code == 0) {
- this.memberInfo.sex = this.formData.sex;
- this.$store.commit('setMemberInfo', this.memberInfo);
- this.$util.showToast({
- title: this.$lang("updateSuccess")
- });
- this.NavReturn();
- } else {
- this.$util.showToast({
- title: res.message
- });
- }
- }
- });
- },
-
- // ------------------------修改生日------------------------------
-
- bindDateChange: function (e) {
- this.formData.birthday = e.target.value
- },
-
- getDate(type) {
- const date = new Date();
- let year = date.getFullYear();
- let month = date.getMonth() + 1;
- let day = date.getDate();
-
- if (type === 'start') {
- year = year - 60;
- } else if (type === 'end') {
- year = year + 2;
- }
- month = month > 9 ? month : '0' + month;
- day = day > 9 ? day : '0' + day;
- return `${year}-${month}-${day}`;
- },
-
- modifyBirthday() {
- if (this.formData.birthday.length == 0) {
- this.$util.showToast({
- title: '请选择生日'
- });
- return;
- }
- this.$api.sendRequest({
- url: '/api/member/modifybirthday',
- data: {
- birthday: this.$util.timeTurnTimeStamp(this.formData.birthday)
- },
- success: res => {
- if (res.code == 0) {
- this.memberInfo.birthday = this.$util.timeTurnTimeStamp(this.formData.birthday);
- this.$store.commit('setMemberInfo', this.memberInfo);
- this.$util.showToast({
- title: this.$lang("updateSuccess")
- });
- this.NavReturn();
- } else {
- this.$util.showToast({
- title: res.message
- });
- }
- }
- });
- },
-
- // ------------------------修改密码------------------------------
- /**
- * 获取注册配置
- */
- getRegisterConfig() {
- this.$api.sendRequest({
- url: '/api/register/config',
- success: res => {
- if (res.code >= 0) {
- this.registerConfig = res.data.value;
- }
- }
- });
- },
- modifyPassword() {
- if (this.memberInfo.password) {
- var rule = [{
- name: 'currentPassword',
- checkType: 'required',
- errorMsg: this.$lang("pleaseInputOldPassword")
- },
- {
- name: 'newPassword',
- checkType: 'required',
- errorMsg: this.$lang("pleaseInputNewPassword")
- }
- ];
- } else {
- var rule = [{
- name: 'mobileVercode',
- checkType: 'required',
- errorMsg: this.$lang("confirmCodeInput")
- },
- {
- name: 'mobileDynacode',
- checkType: 'required',
- errorMsg: this.$lang("animateCodeInput")
- },
- {
- name: 'newPassword',
- checkType: 'required',
- errorMsg: this.$lang("pleaseInputNewPassword")
- }
- ];
- }
-
- let regConfig = this.registerConfig;
- if (regConfig.pwd_len > 0) {
- rule.push({
- name: 'newPassword',
- checkType: 'lengthMin',
- checkRule: regConfig.pwd_len,
- errorMsg: '新密码长度不能小于' + regConfig.pwd_len + '位'
- });
- }
- if (regConfig.pwd_complexity) {
- let passwordErrorMsg = '密码需包含',
- reg = '';
- if (regConfig.pwd_complexity.indexOf('number') != -1) {
- reg += '(?=.*?[0-9])';
- passwordErrorMsg += '数字';
- }
- if (regConfig.pwd_complexity.indexOf('letter') != -1) {
- reg += '(?=.*?[a-z])';
- passwordErrorMsg += '、小写字母';
- }
- if (regConfig.pwd_complexity.indexOf('upper_case') != -1) {
- reg += '(?=.*?[A-Z])';
- passwordErrorMsg += '、大写字母';
- }
- if (regConfig.pwd_complexity.indexOf('symbol') != -1) {
- reg += '(?=.*?[#?!@$%^&*-])';
- passwordErrorMsg += '、特殊字符';
- }
- rule.push({
- name: 'newPassword',
- checkType: 'reg',
- checkRule: reg,
- errorMsg: passwordErrorMsg
- });
- }
- var checkRes = validate.check(this.formData, rule);
- if (checkRes) {
- if (this.formData.currentPassword == this.formData.newPassword) {
- this.$util.showToast({
- title: '新密码不能与原密码相同'
- });
- return;
- }
- if (this.formData.newPassword != this.formData.confirmPassword) {
- this.$util.showToast({
- title: '两次密码不一致'
- });
- return;
- }
- this.$api.sendRequest({
- url: '/api/member/modifypassword',
- data: {
- new_password: this.formData.newPassword,
- old_password: this.formData.currentPassword,
- code: this.formData.mobileDynacode,
- key: uni.getStorageSync("password_mobile_key"),
- },
- success: res => {
- if (res.code == 0) {
- this.memberInfo.password = 1;
- this.$store.commit('setMemberInfo', this.memberInfo);
- this.$util.showToast({
- title: this.$lang('updateSuccess')
- });
- this.NavReturn();
- uni.removeStorageSync('password_mobile_key');
- } else {
- this.$util.showToast({
- title: res.message
- });
- this.getCaptcha();
- }
- }
- });
- } else {
- this.$util.showToast({
- title: validate.error
- });
- }
- },
-
- // ------------------------修改手机号------------------------------
- // 验证手机号
- vertifyMobile() {
- var rule = [{
- name: 'mobile',
- checkType: 'required',
- errorMsg: '请输入手机号'
- }, {
- name: 'mobile',
- checkType: 'phoneno',
- errorMsg: '请输入正确的手机号'
- }];
- var checkRes = validate.check(this.formData, rule);
- if (!checkRes) {
- this.$util.showToast({
- title: validate.error
- });
- return false;
- }
- return true;
- },
- // 检测手机号是否存在
- async checkMobile() {
- if (!this.vertifyMobile()) return;
- let res = await this.$api.sendRequest({
- url: '/api/member/checkmobile',
- data: {
- mobile: this.formData.mobile
- },
- async: false
- });
- if (res.code != 0) {
- this.$util.showToast({
- title: res.message
- });
- return false;
- }
- return true;
- },
-
- // 发送短信动态码
- async bindMoblieCode() {
- if (this.seconds != 120) return;
- var rule = [{
- name: 'mobile',
- checkType: 'phoneno',
- errorMsg: this.$lang("surePhoneNumber")
- },
- {
- name: 'mobileVercode',
- checkType: 'required',
- errorMsg: this.$lang("confirmCodeInput")
- },
- ];
-
- var checkRes = validate.check(this.formData, rule);
-
- if (checkRes && !this.isSend) {
- this.isSend = true;
- this.$api.sendRequest({
- url: '/api/member/bindmobliecode',
- data: {
- mobile: this.formData.mobile,
- captcha_id: this.captcha.id,
- captcha_code: this.formData.mobileVercode
- },
- success: res => {
- let data = res.data;
- if (data.key) {
- if (this.seconds == 120 && this.timer == null) {
- this.timer = setInterval(() => {
- this.seconds--;
- this.formData.mobileCodeText = '已发送(' + this.seconds + 's)';
- }, 1000);
- }
- uni.setStorageSync('mobile_key', data.key);
- } else {
- this.$util.showToast({
- title: res.message
- });
- this.isSend = false;
- }
- },
- fail: res => {
- this.isSend = false;
- this.getCaptcha();
- }
- });
- } else {
- this.$util.showToast({
- title: validate.error ? validate.error : '请勿重复点击'
- });
- }
- },
- async modifyMobile() {
-
- var mobileRule = [{
- name: 'mobile',
- checkType: 'phoneno',
- errorMsg: this.$lang("surePhoneNumber")
- },
- {
- name: 'mobileVercode',
- checkType: 'required',
- errorMsg: this.$lang("confirmCodeInput")
- },
- {
- name: 'mobileDynacode',
- checkType: 'required',
- errorMsg: this.$lang("animateCodeInput")
- },
- ];
- var checkRes = validate.check(this.formData, mobileRule);
-
- if (checkRes) {
- if (this.formData.mobile == this.memberInfo.mobile) {
- this.$util.showToast({
- title: this.$lang("alikePhone")
- });
- return;
- }
- this.$api.sendRequest({
- url: '/api/member/modifymobile',
- data: {
- mobile: this.formData.mobile,
- captcha_id: this.captcha.id,
- captcha_code: this.formData.mobileVercode,
- code: this.formData.mobileDynacode,
- key: uni.getStorageSync("mobile_key"),
- },
- success: res => {
- if (res.code == 0) {
- this.memberInfo.mobile = this.formData.mobile;
- this.$store.commit('setMemberInfo', this.memberInfo);
- this.$util.showToast({
- title: this.$lang("updateSuccess")
- });
- if (this.back) {
- this.$util.redirectTo('/pages_tool/member/pay_password', {
- 'back': this.back
- }, 'redirectTo')
- } else {
- this.NavReturn();
- }
- } else {
- this.$util.showToast({
- title: res.message
- });
- this.getCaptcha();
- }
- },
- fail: res => {
- this.isSend = false;
- this.getCaptcha();
- }
- });
- } else {
- this.$util.showToast({
- title: validate.error
- });
- }
- },
- /**
- * 修改密码发送动态码
- */
- passwordMoblieCode() {
- if (this.seconds != 120) return;
-
- if (this.formData.mobileVercode == '') {
- this.$util.showToast({
- title: this.$lang("confirmCodeInput")
- });
- return;
- }
-
- if (!this.isSend) {
- this.isSend = true;
- this.$api.sendRequest({
- url: '/api/member/pwdmobliecode',
- data: {
- captcha_id: this.captcha.id,
- captcha_code: this.formData.mobileVercode
- },
- success: res => {
- let data = res.data;
- if (data.key) {
- if (this.seconds == 120 && this.timer == null) {
- this.timer = setInterval(() => {
- this.seconds--;
- this.formData.mobileCodeText = '已发送(' + this.seconds + 's)';
- }, 1000);
- }
- uni.setStorageSync('password_mobile_key', data.key);
- } else {
- this.$util.showToast({
- title: res.message
- });
- this.isSend = false;
- }
- },
- fail: res => {
- this.isSend = false;
- this.getCaptcha();
- }
- });
- } else {
- this.$util.showToast({
- title: '请勿重复点击'
- });
- }
- },
- modifyAddress() {
- var rule = [{
- name: 'fullAddress',
- checkType: 'required',
- errorMsg: '请选择所在地区'
- },
- {
- name: 'address',
- checkType: 'required',
- errorMsg: '请输入详细地址'
- }
- ];
- if (!rule.length) return;
- var checkRes = validate.check(this.formData, rule);
- if (checkRes) {
- this.$api.sendRequest({
- url: '/api/member/modifyaddress',
- data: {
- province_id: this.formData.provinceId,
- city_id: this.formData.cityId,
- district_id: this.formData.districtId,
- address: this.formData.address,
- full_address: this.formData.fullAddress
- },
- success: res => {
- if (res.code == 0) {
- this.memberInfo.province_id = this.formData.provinceId;
- this.memberInfo.city_id = this.formData.cityId;
- this.memberInfo.district_id = this.formData.districtId;
- this.memberInfo.address = this.formData.address;
- this.memberInfo.full_address = this.formData.fullAddress;
- this.$store.commit('setMemberInfo', this.memberInfo);
- this.$util.showToast({
- title: this.$lang("updateSuccess")
- });
- this.NavReturn();
- } else {
- this.$util.showToast({
- title: res.message
- });
- }
- }
- });
- } else {
- this.$util.showToast({
- title: validate.error
- });
- }
- },
- initFormData() {
- this.formData.currentPassword = '';
- this.formData.newPassword = '';
- this.formData.confirmPassword = '';
- this.formData.mobileVercode = '';
- this.formData.mobileDynacode = '';
- this.formData.mobile = '';
- },
- handleGetRegions(regions) {
- this.formData.fullAddress = '';
- this.formData.fullAddress += regions[0] != undefined ? regions[0].label : '';
- this.formData.fullAddress += regions[1] != undefined ? '-' + regions[1].label : '';
- this.formData.fullAddress += regions[2] != undefined ? '-' + regions[2].label : '';
- this.formData.provinceId = regions[0] ? regions[0].value : 0;
- this.formData.cityId = regions[1] ? regions[1].value : 0;
- this.formData.districtId = regions[2] ? regions[2].value : 0;
- },
- /**
- * 手动绑定手机号
- */
- manualBinding() {
- this.indent = 'mobile';
- },
- mobileAuth(e) {
- if (e.detail.errMsg == 'getPhoneNumber:ok') {
- let data = e.detail
- // #ifdef MP-WEIXIN
- Object.assign(data, this.authInfo)
- // #endif
- this.$api.sendRequest({
- url: '/api/member/mobileauth',
- data,
- success: res => {
- if (res.code == 0) {
- this.$util.showToast({
- title: this.$lang("updateSuccess")
- });
- this.NavReturn();
- } else {
- this.$util.showToast({
- title: res.message
- });
- }
- }
- })
- }
- }
- }
+import validate from '@/common/js/validate.js';
+import memberPublic from './member-public.js';
+
+export default {
+ data() {
+ return {
+ registerConfig: {},
+ indent: 'all',
+ customNavTitle: "",
+ formData: {
+ userHeadImg: '',
+ number: '', //账号
+ nickName: '', //昵称
+ sex: '', //性别
+ realName: '', //真实姓名
+ birthday: '', //生日
+ currentPassword: '', //当前密码
+ newPassword: '', //新密码
+ confirmPassword: '', //确认密码
+ mobile: '', //手机号
+ mobileVercode: '', //手机验证码
+ mobileDynacode: '', //手机动态验证吗
+ mobileCodeText: "",
+ username: '',
+ provinceId: 0,
+ cityId: 0,
+ districtId: 0,
+ fullAddress: '',
+ address: ''
+ },
+ memberInfoformData: {
+ userHeadImg: '',
+ number: '', //账号
+ nickName: '', //昵称
+ sex: '', //性别
+ realName: '', //真实姓名
+ birthday: '', //生日
+ currentPassword: '', //当前密码
+ newPassword: '', //新密码
+ confirmPassword: '', //确认密码
+ mobile: '', //手机号
+ mobileVercode: '', //手机验证码
+ mobileDynacode: '', //手机动态验证吗
+ mobileCodeText: "",
+ },
+ langList: [],
+ langIndex: 0,
+ seconds: 120,
+ timer: null,
+ isSend: false,
+ captcha: {
+ id: '',
+ img: ''
+ },
+ isIphoneX: false,
+ items: [{
+ value: '0',
+ name: $lang('member.public.js.info.l58')
+ },
+ {
+ value: '1',
+ name: $lang('member.public.js.info.l62'),
+ checked: 'true'
+ },
+ {
+ value: '2',
+ name: $lang('member.public.js.info.l67')
+ }
+ ],
+ current: 0,
+ memberConfig: {
+ is_audit: 0,
+ is_enable: 0
+ },
+ defaultRegions: [],
+ };
+ },
+ onLoad(option) {
+ this.isIphoneX = this.$util.uniappIsIPhoneX()
+ this.formData.mobileCodeText = this.$lang('login.list.findanimate_code');
+
+ if (option.back) {
+ this.back = option.back;
+ }
+
+ this.getCaptcha();
+
+ if (option.action) {
+ this.indent = option.action;
+ this.setNavbarTitle()
+
+ // #ifdef MP-WEIXIN
+ option.action == 'bind_mobile' && this.getCode()
+ // #endif
+ }
+
+ this.getRegisterConfig();
+ this.initLang();
+ this.getMemberConfig();
+ },
+ onShow() {
+ if (!this.storeToken) {
+ this.$nextTick(() => {
+ this.$refs.login.open('/pages_tool/member/info');
+ });
+ } else {
+ this.getInfo();
+ }
+ },
+ onHide() {
+ this.seconds = 120;
+ this.formData.mobileCodeText = $lang('common.ns-login.l169.t0');
+ this.isSend = false;
+ clearInterval(this.timer);
+ },
+ watch: {
+ seconds(value) {
+ if (value == 0) {
+ this.seconds = 120;
+ this.formData.mobileCodeText = $lang('common.ns-login.l169.t0');
+ this.isSend = false;
+ clearInterval(this.timer);
+ }
+ }
+ },
+ computed: {
+ startDate() {
+ return this.getDate('start');
+ },
+ endDate() {
+ return this.getDate('end');
+ }
+ },
+ filters: {
+ mobile(mobile) {
+ return mobile.substring(0, 4 - 1) + '****' + mobile.substring(6 + 1);
+ }
+ },
+ methods: {
+ ...memberPublic.methods,
+ // 初始化语言
+ initLang() {
+ //获取语言列表
+ this.langList = this.$langConfig.list();
+ if (!uni.getStorageSync("lang")) {
+ this.langIndex = 0;
+ } else {
+ for (let i = 0; i < this.langList.length; i++) {
+ if (this.langList[i].value == uni.getStorageSync("lang")) {
+ this.langIndex = i;
+ break;
+ }
+ }
+ }
+ },
+ setNavbarTitle() {
+ let title = $lang('member.public.js.info.l157');
+ switch (this.indent) {
+ case 'name':
+ title = this.$lang('common.list.modify_nickname');
+ break;
+ case 'realName':
+ title = this.$lang('common.list.real_name');
+ break;
+ case 'sex':
+ title = this.$lang('common.list.sex');
+ break;
+ case 'birthday':
+ title = this.$lang('birthday');
+ break;
+ case 'password':
+ title = this.$lang('login.list.password');
+ break;
+ case 'mobile':
+ title = this.$lang('login.list.mobile');
+ break;
+ }
+ uni.setNavigationBarTitle({
+ title: title
+ });
+ },
+ // 初始化用户信息
+ getInfo() {
+ this.memberInfoformData.userHeadImg = this.memberInfo.headimg;
+ this.memberInfoformData.number = this.memberInfo.username; //账号
+ this.memberInfoformData.nickName = this.memberInfo.nickname; //昵称
+ this.memberInfoformData.realName = this.memberInfo.realname ? this.memberInfo.realname : $lang('member.account_edit.l5'); //真实姓名
+ this.memberInfoformData.sex = this.memberInfo.sex == 0 ? '未知' : this.memberInfo.sex == 1 ? '男' : $lang('member.public.js.info.l67'); //性别
+ this.memberInfoformData.birthday = this.memberInfo.birthday ? this.$util.timeStampTurnTime(this.memberInfo.birthday, 'YYYY-MM-DD') : $lang('member.info_edit.l57'); //生日
+ this.memberInfoformData.mobile = this.memberInfo.mobile; //手机号
+
+ this.formData.username = this.memberInfo.username; //用户名
+ this.formData.nickName = this.memberInfo.nickname; //昵称
+ this.formData.realName = this.memberInfo.realname; //真实姓名
+ this.formData.sex = this.memberInfo.sex; //性别
+ this.formData.birthday = this.memberInfo.birthday ? this.$util.timeStampTurnTime(this.memberInfo.birthday, 'YYYY-MM-DD') : ''; //生日
+ this.formData.provinceId = this.memberInfo.province_id;
+ this.formData.cityId = this.memberInfo.city_id;
+ this.formData.districtId = this.memberInfo.district_id;
+ this.formData.fullAddress = this.memberInfo.full_address;
+ this.formData.address = this.memberInfo.address;
+ if (this.memberInfo.full_address) this.defaultRegions = [this.memberInfo
+ .province_id, this.memberInfo.city_id, this.memberInfo.district_id
+ ];
+ },
+ // 切换编辑项
+ modifyInfo(action) {
+ switch (action) {
+ case 'cancellation':
+ this.getCancelStatus();
+ break;
+ case 'language':
+ let newArray = [];
+ for (let i = 0; i < this.langList.length; i++) {
+ newArray.push(this.langList[i].name)
+ }
+ uni.showActionSheet({
+ itemList: newArray,
+ success: function (res) {
+ if (vm.langIndex != res.tapIndex) {
+ vm.$langConfig.change(vm.langList[res.tapIndex].value)
+ }
+ }
+ });
+ break;
+ case 'mobile':
+ // #ifdef MP
+ this.$util.redirectTo('/pages_tool/member/info_edit', {
+ action: 'bind_mobile'
+ });
+ // #endif
+ // #ifndef MP
+ this.$util.redirectTo('/pages_tool/member/info_edit', {
+ action
+ });
+ // #endif
+ break;
+ default:
+ this.$util.redirectTo('/pages_tool/member/info_edit', {
+ action
+ });
+ }
+ },
+ // 导航返回
+ NavReturn() {
+ uni.navigateBack({
+ delta: 1
+ })
+ },
+ // 获取验证码
+ getCaptcha() {
+ this.$api.sendRequest({
+ url: '/api/captcha/captcha',
+ data: {
+ captcha_id: this.captcha.id
+ },
+ success: res => {
+ if (res.code >= 0) {
+ this.captcha = res.data;
+ this.captcha.img = this.captcha.img.replace(/\r\n/g, '');
+ }
+ }
+ });
+ },
+ headImage() {
+ this.$util.redirectTo("/pages_tool/member/modify_face");
+ },
+ // 检测手机是否已绑定
+ async testBinding(type) {
+ var res = await this.checkMobile();
+ return res;
+ },
+ //获取注销的配置信息
+ getMemberConfig() {
+ this.$api.sendRequest({
+ url: '/membercancel/api/membercancel/config',
+ success: res => {
+ if (res.code >= 0) {
+ this.memberConfig = res.data
+ }
+ }
+ });
+
+ },
+ save(type) {
+ switch (type) {
+ case 'username':
+ this.modifyUserName();
+ break;
+ case 'name':
+ this.modifyNickName();
+ break;
+ case 'realName':
+ this.modifyRealName();
+ break;
+ case 'sex':
+ this.modifySex();
+ break;
+ case 'birthday':
+ this.modifyBirthday();
+ break;
+ case 'password':
+ this.modifyPassword();
+ break;
+ case 'mobile':
+ this.modifyMobile();
+ break;
+ case 'address':
+ this.modifyAddress();
+ break;
+ }
+ },
+
+ // ------------------------修改用户名------------------------------
+ modifyUserName() {
+ if (this.formData.username == this.memberInfo.username) {
+ this.$util.showToast({
+ title: this.$lang('login.list.alikeusername')
+ });
+ return;
+ }
+ var rule = [{
+ name: 'username',
+ checkType: 'required',
+ errorMsg: this.$lang('login.list.no_emity_username')
+ }];
+ if (!rule.length) return;
+ var checkRes = validate.check(this.formData, rule);
+ if (checkRes) {
+ this.$api.sendRequest({
+ url: '/api/member/modifyusername',
+ data: {
+ username: this.formData.username
+ },
+ success: res => {
+ if (res.code == 0) {
+ this.memberInfo.username = this.formData.username;
+ this.$store.commit('setMemberInfo', this.memberInfo);
+ this.$util.showToast({
+ title: this.$lang("common.list.update_success")
+ });
+ this.NavReturn();
+ } else {
+ this.$util.showToast({
+ title: res.message
+ });
+ }
+ }
+ });
+ } else {
+ this.$util.showToast({
+ title: validate.error
+ });
+ }
+ },
+ // ------------------------修改昵称------------------------------
+
+ modifyNickName() {
+ if (this.formData.nickName == this.memberInfo.nickname) {
+ this.$util.showToast({
+ title: this.$lang('common.list.alike_nickname')
+ });
+ return;
+ }
+ var rule = [{
+ name: 'nickName',
+ checkType: 'required',
+ errorMsg: this.$lang('common.list.no_emity_nickname')
+ }];
+ if (!rule.length) return;
+ var checkRes = validate.check(this.formData, rule);
+ if (checkRes) {
+ this.$api.sendRequest({
+ url: '/api/member/modifynickname',
+ data: {
+ nickname: this.formData.nickName
+ },
+ success: res => {
+ if (res.code == 0) {
+ this.memberInfo.nickname = this.formData.nickName;
+ this.$store.commit('setMemberInfo', this.memberInfo);
+ this.$util.showToast({
+ title: this.$lang("common.list.update_success")
+ });
+ this.NavReturn();
+ } else {
+ this.$util.showToast({
+ title: res.message
+ });
+ }
+ }
+ });
+ } else {
+ this.$util.showToast({
+ title: validate.error
+ });
+ }
+ },
+
+ // ------------------------修改真实姓名------------------------------
+ modifyRealName() {
+ if (this.formData.realName == this.memberInfo.realname && this.memberInfo.realname) {
+ this.$util.showToast({
+ title: $lang('member.public.js.info.l404')
+ });
+ return;
+ }
+ var rule = [{
+ name: 'realName',
+ checkType: 'required',
+ errorMsg: $lang('member.public.js.info.l411')
+ }];
+ if (!rule.length) return;
+ var checkRes = validate.check(this.formData, rule);
+ if (checkRes) {
+ this.$api.sendRequest({
+ url: '/api/member/modifyrealname',
+ data: {
+ realname: this.formData.realName
+ },
+ success: res => {
+ if (res.code == 0) {
+ this.memberInfo.realname = this.formData.realName;
+ this.$store.commit('setMemberInfo', this.memberInfo);
+ this.$util.showToast({
+ title: this.$lang("common.list.update_success")
+ });
+ this.NavReturn();
+ } else {
+ this.$util.showToast({
+ title: res.message
+ });
+ }
+ }
+ });
+ } else {
+ this.$util.showToast({
+ title: validate.error
+ });
+ }
+ },
+
+ // ------------------------修改性别------------------------------
+ radioChange: function (evt) {
+ for (let i = 0; i < this.items.length; i++) {
+ if (this.items[i].value === evt.target.value) {
+ this.formData.sex = i;
+ break;
+ }
+ }
+ },
+
+ modifySex() {
+ this.$api.sendRequest({
+ url: '/api/member/modifysex',
+ data: {
+ sex: this.formData.sex
+ },
+ success: res => {
+ if (res.code == 0) {
+ this.memberInfo.sex = this.formData.sex;
+ this.$store.commit('setMemberInfo', this.memberInfo);
+ this.$util.showToast({
+ title: this.$lang("common.list.update_success")
+ });
+ this.NavReturn();
+ } else {
+ this.$util.showToast({
+ title: res.message
+ });
+ }
+ }
+ });
+ },
+
+ // ------------------------修改生日------------------------------
+
+ bindDateChange: function (e) {
+ this.formData.birthday = e.target.value
+ },
+
+ getDate(type) {
+ const date = new Date();
+ let year = date.getFullYear();
+ let month = date.getMonth() + 1;
+ let day = date.getDate();
+
+ if (type === 'start') {
+ year = year - 60;
+ } else if (type === 'end') {
+ year = year + 2;
+ }
+ month = month > 9 ? month : '0' + month;
+ day = day > 9 ? day : '0' + day;
+ return `${year}-${month}-${day}`;
+ },
+
+ modifyBirthday() {
+ if (this.formData.birthday.length == 0) {
+ this.$util.showToast({
+ title: $lang('member.info_edit.l57')
+ });
+ return;
+ }
+ this.$api.sendRequest({
+ url: '/api/member/modifybirthday',
+ data: {
+ birthday: this.$util.timeTurnTimeStamp(this.formData.birthday)
+ },
+ success: res => {
+ if (res.code == 0) {
+ this.memberInfo.birthday = this.$util.timeTurnTimeStamp(this.formData.birthday);
+ this.$store.commit('setMemberInfo', this.memberInfo);
+ this.$util.showToast({
+ title: this.$lang("common.list.update_success")
+ });
+ this.NavReturn();
+ } else {
+ this.$util.showToast({
+ title: res.message
+ });
+ }
+ }
+ });
+ },
+
+ // ------------------------修改密码------------------------------
+ /**
+ * 获取注册配置
+ */
+ getRegisterConfig() {
+ this.$api.sendRequest({
+ url: '/api/register/config',
+ success: res => {
+ if (res.code >= 0) {
+ this.registerConfig = res.data.value;
+ }
+ }
+ });
+ },
+ modifyPassword() {
+ if (this.memberInfo.password) {
+ var rule = [{
+ name: 'currentPassword',
+ checkType: 'required',
+ errorMsg: this.$lang("login.list.please_input_old_password")
+ },
+ {
+ name: 'newPassword',
+ checkType: 'required',
+ errorMsg: this.$lang("login.list.please_input_new_password")
+ }
+ ];
+ } else {
+ var rule = [{
+ name: 'mobileVercode',
+ checkType: 'required',
+ errorMsg: this.$lang("common.list.confirm_code_input")
+ },
+ {
+ name: 'mobileDynacode',
+ checkType: 'required',
+ errorMsg: this.$lang("login.list.animate_code_input")
+ },
+ {
+ name: 'newPassword',
+ checkType: 'required',
+ errorMsg: this.$lang("login.list.please_input_new_password")
+ }
+ ];
+ }
+
+ let regConfig = this.registerConfig;
+ if (regConfig.pwd_len > 0) {
+ rule.push({
+ name: 'newPassword',
+ checkType: 'lengthMin',
+ checkRule: regConfig.pwd_len,
+ errorMsg: $lang('member.public.js.info.l579') + regConfig.pwd_len + $lang('login.find.l196')
+ });
+ }
+ if (regConfig.pwd_complexity) {
+ let passwordErrorMsg = $lang('login.find.l200'),
+ reg = '';
+ if (regConfig.pwd_complexity.indexOf('number') != -1) {
+ reg += '(?=.*?[0-9])';
+ passwordErrorMsg += $lang('login.find.l204');
+ }
+ if (regConfig.pwd_complexity.indexOf('letter') != -1) {
+ reg += '(?=.*?[a-z])';
+ passwordErrorMsg += $lang('login.find.l208');
+ }
+ if (regConfig.pwd_complexity.indexOf('upper_case') != -1) {
+ reg += '(?=.*?[A-Z])';
+ passwordErrorMsg += $lang('login.find.l212');
+ }
+ if (regConfig.pwd_complexity.indexOf('symbol') != -1) {
+ reg += '(?=.*?[#?!@$%^&*-])';
+ passwordErrorMsg += $lang('login.find.l216');
+ }
+ rule.push({
+ name: 'newPassword',
+ checkType: 'reg',
+ checkRule: reg,
+ errorMsg: passwordErrorMsg
+ });
+ }
+ var checkRes = validate.check(this.formData, rule);
+ if (checkRes) {
+ if (this.formData.currentPassword == this.formData.newPassword) {
+ this.$util.showToast({
+ title: $lang('member.public.js.info.l612')
+ });
+ return;
+ }
+ if (this.formData.newPassword != this.formData.confirmPassword) {
+ this.$util.showToast({
+ title: $lang('login.find.l230')
+ });
+ return;
+ }
+ this.$api.sendRequest({
+ url: '/api/member/modifypassword',
+ data: {
+ new_password: this.formData.newPassword,
+ old_password: this.formData.currentPassword,
+ code: this.formData.mobileDynacode,
+ key: uni.getStorageSync("password_mobile_key"),
+ },
+ success: res => {
+ if (res.code == 0) {
+ this.memberInfo.password = 1;
+ this.$store.commit('setMemberInfo', this.memberInfo);
+ this.$util.showToast({
+ title: this.$lang('common.list.update_success')
+ });
+ this.NavReturn();
+ uni.removeStorageSync('password_mobile_key');
+ } else {
+ this.$util.showToast({
+ title: res.message
+ });
+ this.getCaptcha();
+ }
+ }
+ });
+ } else {
+ this.$util.showToast({
+ title: validate.error
+ });
+ }
+ },
+
+ // ------------------------修改手机号------------------------------
+ // 验证手机号
+ vertifyMobile() {
+ var rule = [{
+ name: 'mobile',
+ checkType: 'required',
+ errorMsg: $lang('common.ns-login.l16.t0')
+ }, {
+ name: 'mobile',
+ checkType: 'phoneno',
+ errorMsg: $lang('common.ns-login.l393.t0')
+ }];
+ var checkRes = validate.check(this.formData, rule);
+ if (!checkRes) {
+ this.$util.showToast({
+ title: validate.error
+ });
+ return false;
+ }
+ return true;
+ },
+ // 检测手机号是否存在
+ async checkMobile() {
+ if (!this.vertifyMobile()) return;
+ let res = await this.$api.sendRequest({
+ url: '/api/member/checkmobile',
+ data: {
+ mobile: this.formData.mobile
+ },
+ async: false
+ });
+ if (res.code != 0) {
+ this.$util.showToast({
+ title: res.message
+ });
+ return false;
+ }
+ return true;
+ },
+
+ // 发送短信动态码
+ async bindMoblieCode() {
+ if (this.seconds != 120) return;
+ var rule = [{
+ name: 'mobile',
+ checkType: 'phoneno',
+ errorMsg: this.$lang("login.list.sure_phone_number")
+ },
+ {
+ name: 'mobileVercode',
+ checkType: 'required',
+ errorMsg: this.$lang("common.list.confirm_code_input")
+ },
+ ];
+
+ var checkRes = validate.check(this.formData, rule);
+
+ if (checkRes && !this.isSend) {
+ this.isSend = true;
+ this.$api.sendRequest({
+ url: '/api/member/bindmobliecode',
+ data: {
+ mobile: this.formData.mobile,
+ captcha_id: this.captcha.id,
+ captcha_code: this.formData.mobileVercode
+ },
+ success: res => {
+ let data = res.data;
+ if (data.key) {
+ if (this.seconds == 120 && this.timer == null) {
+ this.timer = setInterval(() => {
+ this.seconds--;
+ this.formData.mobileCodeText = $lang('member.public.js.info.l726') + this.seconds + 's)';
+ }, 1000);
+ }
+ uni.setStorageSync('mobile_key', data.key);
+ } else {
+ this.$util.showToast({
+ title: res.message
+ });
+ this.isSend = false;
+ }
+ },
+ fail: res => {
+ this.isSend = false;
+ this.getCaptcha();
+ }
+ });
+ } else {
+ this.$util.showToast({
+ title: validate.error ? validate.error : $lang('member.public.js.info.l744')
+ });
+ }
+ },
+ async modifyMobile() {
+
+ var mobileRule = [{
+ name: 'mobile',
+ checkType: 'phoneno',
+ errorMsg: this.$lang("login.list.sure_phone_number")
+ },
+ {
+ name: 'mobileVercode',
+ checkType: 'required',
+ errorMsg: this.$lang("common.list.confirm_code_input")
+ },
+ {
+ name: 'mobileDynacode',
+ checkType: 'required',
+ errorMsg: this.$lang("login.list.animate_code_input")
+ },
+ ];
+ var checkRes = validate.check(this.formData, mobileRule);
+
+ if (checkRes) {
+ if (this.formData.mobile == this.memberInfo.mobile) {
+ this.$util.showToast({
+ title: this.$lang("login.list.alike_phone")
+ });
+ return;
+ }
+ this.$api.sendRequest({
+ url: '/api/member/modifymobile',
+ data: {
+ mobile: this.formData.mobile,
+ captcha_id: this.captcha.id,
+ captcha_code: this.formData.mobileVercode,
+ code: this.formData.mobileDynacode,
+ key: uni.getStorageSync("mobile_key"),
+ },
+ success: res => {
+ if (res.code == 0) {
+ this.memberInfo.mobile = this.formData.mobile;
+ this.$store.commit('setMemberInfo', this.memberInfo);
+ this.$util.showToast({
+ title: this.$lang("common.list.update_success")
+ });
+ if (this.back) {
+ this.$util.redirectTo('/pages_tool/member/pay_password', {
+ 'back': this.back
+ }, 'redirectTo')
+ } else {
+ this.NavReturn();
+ }
+ } else {
+ this.$util.showToast({
+ title: res.message
+ });
+ this.getCaptcha();
+ }
+ },
+ fail: res => {
+ this.isSend = false;
+ this.getCaptcha();
+ }
+ });
+ } else {
+ this.$util.showToast({
+ title: validate.error
+ });
+ }
+ },
+ /**
+ * 修改密码发送动态码
+ */
+ passwordMoblieCode() {
+ if (this.seconds != 120) return;
+
+ if (this.formData.mobileVercode == '') {
+ this.$util.showToast({
+ title: this.$lang("common.list.confirm_code_input")
+ });
+ return;
+ }
+
+ if (!this.isSend) {
+ this.isSend = true;
+ this.$api.sendRequest({
+ url: '/api/member/pwdmobliecode',
+ data: {
+ captcha_id: this.captcha.id,
+ captcha_code: this.formData.mobileVercode
+ },
+ success: res => {
+ let data = res.data;
+ if (data.key) {
+ if (this.seconds == 120 && this.timer == null) {
+ this.timer = setInterval(() => {
+ this.seconds--;
+ this.formData.mobileCodeText = $lang('member.public.js.info.l726') + this.seconds + 's)';
+ }, 1000);
+ }
+ uni.setStorageSync('password_mobile_key', data.key);
+ } else {
+ this.$util.showToast({
+ title: res.message
+ });
+ this.isSend = false;
+ }
+ },
+ fail: res => {
+ this.isSend = false;
+ this.getCaptcha();
+ }
+ });
+ } else {
+ this.$util.showToast({
+ title: $lang('member.public.js.info.l744')
+ });
+ }
+ },
+ modifyAddress() {
+ var rule = [{
+ name: 'fullAddress',
+ checkType: 'required',
+ errorMsg: $lang('member.public.js.info.l869')
+ },
+ {
+ name: 'address',
+ checkType: 'required',
+ errorMsg: $lang('member.public.js.info.l874')
+ }
+ ];
+ if (!rule.length) return;
+ var checkRes = validate.check(this.formData, rule);
+ if (checkRes) {
+ this.$api.sendRequest({
+ url: '/api/member/modifyaddress',
+ data: {
+ province_id: this.formData.provinceId,
+ city_id: this.formData.cityId,
+ district_id: this.formData.districtId,
+ address: this.formData.address,
+ full_address: this.formData.fullAddress
+ },
+ success: res => {
+ if (res.code == 0) {
+ this.memberInfo.province_id = this.formData.provinceId;
+ this.memberInfo.city_id = this.formData.cityId;
+ this.memberInfo.district_id = this.formData.districtId;
+ this.memberInfo.address = this.formData.address;
+ this.memberInfo.full_address = this.formData.fullAddress;
+ this.$store.commit('setMemberInfo', this.memberInfo);
+ this.$util.showToast({
+ title: this.$lang("common.list.update_success")
+ });
+ this.NavReturn();
+ } else {
+ this.$util.showToast({
+ title: res.message
+ });
+ }
+ }
+ });
+ } else {
+ this.$util.showToast({
+ title: validate.error
+ });
+ }
+ },
+ initFormData() {
+ this.formData.currentPassword = '';
+ this.formData.newPassword = '';
+ this.formData.confirmPassword = '';
+ this.formData.mobileVercode = '';
+ this.formData.mobileDynacode = '';
+ this.formData.mobile = '';
+ },
+ handleGetRegions(regions) {
+ this.formData.fullAddress = '';
+ this.formData.fullAddress += regions[0] != undefined ? regions[0].label : '';
+ this.formData.fullAddress += regions[1] != undefined ? '-' + regions[1].label : '';
+ this.formData.fullAddress += regions[2] != undefined ? '-' + regions[2].label : '';
+ this.formData.provinceId = regions[0] ? regions[0].value : 0;
+ this.formData.cityId = regions[1] ? regions[1].value : 0;
+ this.formData.districtId = regions[2] ? regions[2].value : 0;
+ },
+ /**
+ * 手动绑定手机号
+ */
+ manualBinding() {
+ this.indent = 'mobile';
+ },
+ mobileAuth(e) {
+ if (e.detail.errMsg == 'getPhoneNumber:ok') {
+ let data = e.detail
+ // #ifdef MP-WEIXIN
+ Object.assign(data, this.authInfo)
+ // #endif
+ this.$api.sendRequest({
+ url: '/api/member/mobileauth',
+ data,
+ success: res => {
+ if (res.code == 0) {
+ this.$util.showToast({
+ title: this.$lang("common.list.update_success")
+ });
+ this.NavReturn();
+ } else {
+ this.$util.showToast({
+ title: res.message
+ });
+ }
+ }
+ })
+ }
+ }
+ }
};
\ No newline at end of file
diff --git a/pages_tool/member/public/js/invite_friends.js b/pages_tool/member/public/js/invite_friends.js
index 12e5a86..2de14bb 100644
--- a/pages_tool/member/public/js/invite_friends.js
+++ b/pages_tool/member/public/js/invite_friends.js
@@ -1,115 +1,115 @@
-export default {
- methods: {
- //获取邀请列表
- getList() {
- this.$api.sendRequest({
- url: '/memberrecommend/api/memberrecommend/lists',
- data: {
- page: this.page,
- page_size: this.page_size
- },
- success: res => {
- this.inviteList = this.inviteList.concat(res.data.list);
- this.total_num = res.data.page_count;
- }
- });
- },
- moreList() {
- this.page++;
- this.isClick = false;
- if (this.page < this.total_num) {
- this.getList();
- this.isClick = true;
- } else if (this.page == this.total_num) {
- this.getList();
- }
- },
- getBaseInfo() {
- this.$api.sendRequest({
- url: '/memberrecommend/api/memberrecommend/info',
- success: res => {
- if (res.code == 0) {
- this.info = res.data;
- if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
- }
- }
- });
- },
- openSharePopup() {
- this.$refs.sharePopup.open();
- },
- // 关闭分享弹出层
- closeSharePopup() {
- this.$refs.sharePopup.close();
- },
- // 打开规则说明弹出层
- openRulePopup() {
- this.$refs.rulePopup.open();
- },
- // 打开规则说明弹出层
- closeRulePopup() {
- this.$refs.rulePopup.close();
- },
- copyUrl() {
- let text = this.$config.h5Domain + this.$util.INDEX_PAGE_URL;
- if (this.memberInf && this.memberInfo.member_id) text += '?source_member=' + this.memberInfo.member_id;
- this.$util.copy(text, () => {
- this.closeSharePopup();
- });
- },
- // 打开海报弹出层
- openPosterPopup() {
- this.getPoster();
- this.$refs.sharePopup.close();
- this.$refs.posterPopup.open();
- },
- // 关闭海报弹出层
- closePosterPopup() {
- this.$refs.posterPopup.close();
- },
- //生成海报
- getPoster() {
- //活动海报信息
- let qrcode_param = {
- source_member: this.memberInfo.member_id
- };
- this.$api.sendRequest({
- url: "/memberrecommend/api/memberrecommend/poster",
- data: {
- page: this.$util.INDEX_PAGE_URL,
- qrcode_param: JSON.stringify(qrcode_param)
- },
- success: res => {
- if (res.code == 0) {
- this.poster = res.data.path + "?time=" + new Date().getTime();
- } else {
- this.posterMsg = res.message;
- }
- }
- });
- },
- savePoster() {
- let url = this.$util.img(this.poster);
- uni.downloadFile({
- url: url,
- success: (res) => {
- if (res.statusCode === 200) {
- uni.saveImageToPhotosAlbum({
- filePath: res.tempFilePath,
- success: () => {
- this.$util.showToast({
- title: "保存成功"
- });
- },
- fail: () => {
- this.$util.showToast({
- title: "保存失败,请稍后重试"
- });
- }
- });
- }
- }
- });
- }
- }
+export default {
+ methods: {
+ //获取邀请列表
+ getList() {
+ this.$api.sendRequest({
+ url: '/memberrecommend/api/memberrecommend/lists',
+ data: {
+ page: this.page,
+ page_size: this.page_size
+ },
+ success: res => {
+ this.inviteList = this.inviteList.concat(res.data.list);
+ this.total_num = res.data.page_count;
+ }
+ });
+ },
+ moreList() {
+ this.page++;
+ this.isClick = false;
+ if (this.page < this.total_num) {
+ this.getList();
+ this.isClick = true;
+ } else if (this.page == this.total_num) {
+ this.getList();
+ }
+ },
+ getBaseInfo() {
+ this.$api.sendRequest({
+ url: '/memberrecommend/api/memberrecommend/info',
+ success: res => {
+ if (res.code == 0) {
+ this.info = res.data;
+ if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
+ }
+ }
+ });
+ },
+ openSharePopup() {
+ this.$refs.sharePopup.open();
+ },
+ // 关闭分享弹出层
+ closeSharePopup() {
+ this.$refs.sharePopup.close();
+ },
+ // 打开规则说明弹出层
+ openRulePopup() {
+ this.$refs.rulePopup.open();
+ },
+ // 打开规则说明弹出层
+ closeRulePopup() {
+ this.$refs.rulePopup.close();
+ },
+ copyUrl() {
+ let text = this.$config.h5Domain + this.$util.INDEX_PAGE_URL;
+ if (this.memberInf && this.memberInfo.member_id) text += '?source_member=' + this.memberInfo.member_id;
+ this.$util.copy(text, () => {
+ this.closeSharePopup();
+ });
+ },
+ // 打开海报弹出层
+ openPosterPopup() {
+ this.getPoster();
+ this.$refs.sharePopup.close();
+ this.$refs.posterPopup.open();
+ },
+ // 关闭海报弹出层
+ closePosterPopup() {
+ this.$refs.posterPopup.close();
+ },
+ //生成海报
+ getPoster() {
+ //活动海报信息
+ let qrcode_param = {
+ source_member: this.memberInfo.member_id
+ };
+ this.$api.sendRequest({
+ url: "/memberrecommend/api/memberrecommend/poster",
+ data: {
+ page: this.$util.INDEX_PAGE_URL,
+ qrcode_param: JSON.stringify(qrcode_param)
+ },
+ success: res => {
+ if (res.code == 0) {
+ this.poster = res.data.path + "?time=" + new Date().getTime();
+ } else {
+ this.posterMsg = res.message;
+ }
+ }
+ });
+ },
+ savePoster() {
+ let url = this.$util.img(this.poster);
+ uni.downloadFile({
+ url: url,
+ success: (res) => {
+ if (res.statusCode === 200) {
+ uni.saveImageToPhotosAlbum({
+ filePath: res.tempFilePath,
+ success: () => {
+ this.$util.showToast({
+ title: $lang("goods._components.goods-detail-view.detail.l351.t0")
+ });
+ },
+ fail: () => {
+ this.$util.showToast({
+ title: $lang("goods._components.goods-detail-view.detail.l356.t0")
+ });
+ }
+ });
+ }
+ }
+ });
+ }
+ }
}
\ No newline at end of file
diff --git a/pages_tool/member/public/js/member-public.js b/pages_tool/member/public/js/member-public.js
index 5a736b4..2ecccbf 100644
--- a/pages_tool/member/public/js/member-public.js
+++ b/pages_tool/member/public/js/member-public.js
@@ -1,90 +1,90 @@
-export default {
- methods: {
- // 清除登录态(token / 用户信息 / 购物车 / 本地存储)
- clearLoginState() {
- this.$store.commit('setToken', '');
- this.$store.commit('setMemberInfo', '');
- this.$store.dispatch('emptyCart');
- uni.removeStorageSync('authInfo');
- uni.removeStorageSync('privacyAgreed');
- },
-
- // 退出登录
- logout() {
- uni.showModal({
- title: this.$lang('logoutTitle'),
- content: this.$lang('logoutContent'),
- success: (res) => {
- if (res.confirm) {
- this.clearLoginState();
- this.$util.redirectTo(this.$util.LOGIN_PAGE_URL);
- }
- }
- });
- },
-
- // 账号注销入口:先查状态,根据状态分流
- cancellation() {
- this.getCancelStatus();
- },
-
- // 查询注销状态并跳转对应页面
- // status: undefined/null → 未申请 → 协议页 cancellation.vue
- // status: 0 → 审核中 → 状态页 cancelstatus.vue
- // status: 1 → 通过 → 成功页 cancelsuccess.vue
- // status: -1 → 拒绝 → 拒绝页 cancelrefuse.vue
- getCancelStatus() {
- this.$api.sendRequest({
- url: '/membercancel/api/membercancel/info',
- success: res => {
- if (res.code >= 0) {
- if (res.data) {
- if (res.data.status == 0) {
- this.$util.redirectTo('/pages_tool/member/cancelstatus');
- } else if (res.data.status == 1) {
- this.$util.redirectTo('/pages_tool/member/cancelsuccess');
- } else {
- this.$util.redirectTo('/pages_tool/member/cancelrefuse');
- }
- } else {
- this.$util.redirectTo('/pages_tool/member/cancellation');
- }
- } else if (res.code == -1) {
- this.clearLoginState();
- this.$util.redirectTo(this.$util.LOGIN_PAGE_URL);
- }
- }
- });
- },
-
- // 提交注销申请并清理登录态(供 assets.vue 等页面调用)
- submitCancelApply(options = {}) {
- uni.showModal({
- title: options.title || '风险提示',
- content: options.content || '确定要注销当前账号吗?',
- confirmColor: '#000000',
- success: res => {
- if (res.confirm) {
- this.$api.sendRequest({
- url: '/membercancel/api/membercancel/apply',
- success: rres => {
- if (rres.code >= 0) {
- if (options.clearStateAndRedirect) {
- this.clearLoginState();
- this.$util.redirectTo(this.$util.LOGIN_PAGE_URL);
- } else {
- this.$util.redirectTo('/pages_tool/member/cancelstatus');
- }
- } else {
- this.$util.showToast({
- title: rres.message
- });
- }
- }
- });
- }
- }
- });
- }
- }
-};
+export default {
+ methods: {
+ // 清除登录态(token / 用户信息 / 购物车 / 本地存储)
+ clearLoginState() {
+ this.$store.commit('setToken', '');
+ this.$store.commit('setMemberInfo', '');
+ this.$store.dispatch('emptyCart');
+ uni.removeStorageSync('authInfo');
+ uni.removeStorageSync('privacyAgreed');
+ },
+
+ // 退出登录
+ logout() {
+ uni.showModal({
+ title: this.$lang('login.list.logout_title'),
+ content: this.$lang('login.list.logout_content'),
+ success: (res) => {
+ if (res.confirm) {
+ this.clearLoginState();
+ this.$util.redirectTo(this.$util.LOGIN_PAGE_URL);
+ }
+ }
+ });
+ },
+
+ // 账号注销入口:先查状态,根据状态分流
+ cancellation() {
+ this.getCancelStatus();
+ },
+
+ // 查询注销状态并跳转对应页面
+ // status: undefined/null → 未申请 → 协议页 cancellation.vue
+ // status: 0 → 审核中 → 状态页 cancelstatus.vue
+ // status: 1 → 通过 → 成功页 cancelsuccess.vue
+ // status: -1 → 拒绝 → 拒绝页 cancelrefuse.vue
+ getCancelStatus() {
+ this.$api.sendRequest({
+ url: '/membercancel/api/membercancel/info',
+ success: res => {
+ if (res.code >= 0) {
+ if (res.data) {
+ if (res.data.status == 0) {
+ this.$util.redirectTo('/pages_tool/member/cancelstatus');
+ } else if (res.data.status == 1) {
+ this.$util.redirectTo('/pages_tool/member/cancelsuccess');
+ } else {
+ this.$util.redirectTo('/pages_tool/member/cancelrefuse');
+ }
+ } else {
+ this.$util.redirectTo('/pages_tool/member/cancellation');
+ }
+ } else if (res.code == -1) {
+ this.clearLoginState();
+ this.$util.redirectTo(this.$util.LOGIN_PAGE_URL);
+ }
+ }
+ });
+ },
+
+ // 提交注销申请并清理登录态(供 assets.vue 等页面调用)
+ submitCancelApply(options = {}) {
+ uni.showModal({
+ title: options.title || $lang('member.cancelstatus.l84'),
+ content: options.content || $lang('member.public.js.member-public.l64.t0'),
+ confirmColor: '#000000',
+ success: res => {
+ if (res.confirm) {
+ this.$api.sendRequest({
+ url: '/membercancel/api/membercancel/apply',
+ success: rres => {
+ if (rres.code >= 0) {
+ if (options.clearStateAndRedirect) {
+ this.clearLoginState();
+ this.$util.redirectTo(this.$util.LOGIN_PAGE_URL);
+ } else {
+ this.$util.redirectTo('/pages_tool/member/cancelstatus');
+ }
+ } else {
+ this.$util.showToast({
+ title: rres.message
+ });
+ }
+ }
+ });
+ }
+ }
+ });
+ }
+ }
+};
diff --git a/pages_tool/member/public/js/signin.js b/pages_tool/member/public/js/signin.js
index 94d2f11..62cff91 100644
--- a/pages_tool/member/public/js/signin.js
+++ b/pages_tool/member/public/js/signin.js
@@ -1,276 +1,276 @@
-export default {
- data() {
- return {
- showSignDays: [], // 一共展示的天数
- rule: [{}],
- hasSign: 0, //今天是否签到
- signDaysSeries: 0, //连续签到次数
- MonthData: [], //本月日期信息
- signList: [],
- back: '', //返回页
- redirect: '', //返回方式
- successTip: {},
- startDate: null,
- endDate: null,
- isActive: "", //判断点击
- signState: 1,
- headimg: '',
- point: 0,
- growth: 0,
- signPoint: 0,
- signGrowth: 0,
- rewardRuleDay: [],
- cycle: 0,
- reward: {}
- };
- },
- onLoad(option) {
- setTimeout( () => {
- if (!this.addonIsExist.membersignin) {
- this.$util.showToast({
- title: '商家未开启会员签到',
- mask: true,
- duration: 2000
- });
- setTimeout(() => {
- this.$util.redirectTo(this.$util.INDEX_PAGE_URL);
- }, 2000);
- }
- },1000);
-
- if (option.back) this.back = option.back;
- if (option.redirect) this.redirect = option.redirect;
-
- this.getSignState();
- },
- onShow() {
- if (!this.storeToken) {
- this.$nextTick(() => {
- this.$refs.login.open('/pages_tool/member/signin');
- });
- return;
- }
-
- this.headimg = this.memberInfo.headimg;
- this.signDaysSeries = this.memberInfo.sign_days_series;
-
- this.getSignPointData();
- this.getSignGrowthData();
- this.setPublicShare();
-
- this.getIsSign();
- },
- methods: {
- // 获取签到累积积分
- getSignPointData() {
- this.$api.sendRequest({
- url: '/api/memberaccount/sum',
- data: {
- account_type: 'point',
- from_type: 'signin'
- },
- success: res => {
- if (res.code == 0) {
- this.signPoint = res.data;
- }
- }
- });
- },
- // 获取签到累积成长值
- getSignGrowthData() {
- this.$api.sendRequest({
- url: '/api/memberaccount/sum',
- data: {
- account_type: 'growth',
- from_type: 'signin'
- },
- success: res => {
- if (res.code == 0) {
- this.signGrowth = res.data;
- }
- }
- });
- },
- // 签到是否开启
- getSignState() {
- this.$api.sendRequest({
- url: '/api/membersignin/getSignStatus',
- success: res => {
- if (res.code == 0) {
- this.signState = res.data.is_use;
- }
- }
- });
- },
- navigateBack() {
- if (this.back != '') {
- this.$util.redirectTo(this.back, {}, this.redirect);
- } else {
- this.$util.redirectTo(this.$util.MEMBER_PAGE_URL);
- }
- },
- //获取rule
- getRule() {
- this.rewardRuleDay = [];
- this.$api.sendRequest({
- url: '/api/membersignin/award',
- success: res => {
- if (res.code == 0) {
-
- this.cycle = res.data.cycle || 0;
- this.rule = res.data.reward || [];
- let default_point = 0;
- if (this.rule.length > 0) {
- this.rule.forEach((item, index) => {
- if (item.day == 1) {
- default_point = item.point;
- } else {
- this.rewardRuleDay.push(parseInt(item.day));
- this.reward[item.day] = item.point;
- }
- });
- }
- //展示7天
- var showSignDays = [];
- var start_day = 1;
- var end_day = 7;
- var total_day = res.data.cycle;
- if (this.signDaysSeries > 5) {
- start_day = this.signDaysSeries - 5;
- }
- if (total_day >= (this.signDaysSeries + 1)) {
- end_day = this.signDaysSeries + 1;
- }
- if (this.signDaysSeries <= 5) {
- end_day = 8 - start_day;
- }
-
- if ((end_day - start_day) < 7 && total_day >= start_day + 6) {
- end_day = start_day + 6;
- }
- if (total_day == this.signDaysSeries) {
- start_day = this.signDaysSeries - 6;
- end_day = this.signDaysSeries;
- }
-
- for (let i = 1; i <= res.data.cycle; i++) {
- if (i >= start_day && i <= end_day) {
- showSignDays.push({
- day: i,
- is_last: 0,
- point: default_point
- })
- }
- }
-
- if (showSignDays && showSignDays.length) {
- showSignDays[showSignDays.length - 1]['is_last'] = 1;
- }
-
- for (let i in showSignDays) {
- let item = showSignDays[i];
- if (this.$util.inArray(item.day, this.rewardRuleDay) != -1) {
- showSignDays[i]['point'] = parseInt(this.reward[item.day]) + parseInt(default_point);
- }
- }
-
- this.showSignDays = showSignDays;
- this.$refs.loadingCover.hide();
- }
- }
- });
- },
- //判断当前是否签到
- getIsSign() {
- this.$api.sendRequest({
- url: '/api/membersignin/issign',
- success: res => {
- if (res.code == 0) {
- this.hasSign = res.data;
- this.getRule();
- this.getSignPointData();
- this.getSignGrowthData();
- }
- }
- });
- },
- //签到
- sign() {
- if (this.signState == 0) {
- this.$util.showToast({
- title: '签到未开启'
- })
- }
-
- if (!this.hasSign && this.signState == 1) {
- this.$api.sendRequest({
- url: '/api/membersignin/signin',
- success: res => {
- if (res.code == 0) {
- this.successTip = res.data;
- this.$refs.uniPopup.open()
- this.getRule();
- this.getSignPointData();
- this.getSignGrowthData();
- this.hasSign = 1;
- this.signDaysSeries = this.signDaysSeries + 1;
- } else {
- this.$util.showToast({
- title: res.message
- })
- }
- }
- });
- }
- },
- close() {
- this.$refs.uniPopup.close()
- },
- /**
- * 设置公众号分享
- */
- setPublicShare() {
- let shareUrl = this.$config.h5Domain + '/pages_tool/member/signin';
-
- this.$util.setPublicShare({
- title: '签到有礼',
- desc: '天天签到,积分好礼送不停',
- link: shareUrl,
- imgUrl: ''
- },
- res => {
- // console.log('公众号分享成功');
- // this.share();
- }
- );
- },
- },
- computed: {
- pointTomorrow: function() {
- var signDaysSeries = this.signDaysSeries + 1;
- var point = this.rule[0].point ? parseInt(this.rule[0].point) : 0;
- for (let i = 1; i < this.rule.length; i++) {
- let reward = this.rule[i];
- if (reward.day == signDaysSeries && reward.point) point += parseInt(reward.point);
- }
- return point;
- },
- showDay: function() {
- return parseInt(this.signDaysSeries / 7) * 7 + 1;
- }
- },
- /**
- * 自定义分享内容
- */
- onShareAppMessage() {
- var path = '/pages_tool/member/signin';
- return {
- title: '签到有礼,天天签到,积分好礼送不停',
- imageUrl: '',
- path: path,
- success: res => {},
- fail: res => {},
- complete: res => {}
- };
- }
+export default {
+ data() {
+ return {
+ showSignDays: [], // 一共展示的天数
+ rule: [{}],
+ hasSign: 0, //今天是否签到
+ signDaysSeries: 0, //连续签到次数
+ MonthData: [], //本月日期信息
+ signList: [],
+ back: '', //返回页
+ redirect: '', //返回方式
+ successTip: {},
+ startDate: null,
+ endDate: null,
+ isActive: "", //判断点击
+ signState: 1,
+ headimg: '',
+ point: 0,
+ growth: 0,
+ signPoint: 0,
+ signGrowth: 0,
+ rewardRuleDay: [],
+ cycle: 0,
+ reward: {}
+ };
+ },
+ onLoad(option) {
+ setTimeout( () => {
+ if (!this.addonIsExist.membersignin) {
+ this.$util.showToast({
+ title: $lang('member.public.js.signin.l31'),
+ mask: true,
+ duration: 2000
+ });
+ setTimeout(() => {
+ this.$util.redirectTo(this.$util.INDEX_PAGE_URL);
+ }, 2000);
+ }
+ },1000);
+
+ if (option.back) this.back = option.back;
+ if (option.redirect) this.redirect = option.redirect;
+
+ this.getSignState();
+ },
+ onShow() {
+ if (!this.storeToken) {
+ this.$nextTick(() => {
+ this.$refs.login.open('/pages_tool/member/signin');
+ });
+ return;
+ }
+
+ this.headimg = this.memberInfo.headimg;
+ this.signDaysSeries = this.memberInfo.sign_days_series;
+
+ this.getSignPointData();
+ this.getSignGrowthData();
+ this.setPublicShare();
+
+ this.getIsSign();
+ },
+ methods: {
+ // 获取签到累积积分
+ getSignPointData() {
+ this.$api.sendRequest({
+ url: '/api/memberaccount/sum',
+ data: {
+ account_type: 'point',
+ from_type: 'signin'
+ },
+ success: res => {
+ if (res.code == 0) {
+ this.signPoint = res.data;
+ }
+ }
+ });
+ },
+ // 获取签到累积成长值
+ getSignGrowthData() {
+ this.$api.sendRequest({
+ url: '/api/memberaccount/sum',
+ data: {
+ account_type: 'growth',
+ from_type: 'signin'
+ },
+ success: res => {
+ if (res.code == 0) {
+ this.signGrowth = res.data;
+ }
+ }
+ });
+ },
+ // 签到是否开启
+ getSignState() {
+ this.$api.sendRequest({
+ url: '/api/membersignin/getSignStatus',
+ success: res => {
+ if (res.code == 0) {
+ this.signState = res.data.is_use;
+ }
+ }
+ });
+ },
+ navigateBack() {
+ if (this.back != '') {
+ this.$util.redirectTo(this.back, {}, this.redirect);
+ } else {
+ this.$util.redirectTo(this.$util.MEMBER_PAGE_URL);
+ }
+ },
+ //获取rule
+ getRule() {
+ this.rewardRuleDay = [];
+ this.$api.sendRequest({
+ url: '/api/membersignin/award',
+ success: res => {
+ if (res.code == 0) {
+
+ this.cycle = res.data.cycle || 0;
+ this.rule = res.data.reward || [];
+ let default_point = 0;
+ if (this.rule.length > 0) {
+ this.rule.forEach((item, index) => {
+ if (item.day == 1) {
+ default_point = item.point;
+ } else {
+ this.rewardRuleDay.push(parseInt(item.day));
+ this.reward[item.day] = item.point;
+ }
+ });
+ }
+ //展示7天
+ var showSignDays = [];
+ var start_day = 1;
+ var end_day = 7;
+ var total_day = res.data.cycle;
+ if (this.signDaysSeries > 5) {
+ start_day = this.signDaysSeries - 5;
+ }
+ if (total_day >= (this.signDaysSeries + 1)) {
+ end_day = this.signDaysSeries + 1;
+ }
+ if (this.signDaysSeries <= 5) {
+ end_day = 8 - start_day;
+ }
+
+ if ((end_day - start_day) < 7 && total_day >= start_day + 6) {
+ end_day = start_day + 6;
+ }
+ if (total_day == this.signDaysSeries) {
+ start_day = this.signDaysSeries - 6;
+ end_day = this.signDaysSeries;
+ }
+
+ for (let i = 1; i <= res.data.cycle; i++) {
+ if (i >= start_day && i <= end_day) {
+ showSignDays.push({
+ day: i,
+ is_last: 0,
+ point: default_point
+ })
+ }
+ }
+
+ if (showSignDays && showSignDays.length) {
+ showSignDays[showSignDays.length - 1]['is_last'] = 1;
+ }
+
+ for (let i in showSignDays) {
+ let item = showSignDays[i];
+ if (this.$util.inArray(item.day, this.rewardRuleDay) != -1) {
+ showSignDays[i]['point'] = parseInt(this.reward[item.day]) + parseInt(default_point);
+ }
+ }
+
+ this.showSignDays = showSignDays;
+ this.$refs.loadingCover.hide();
+ }
+ }
+ });
+ },
+ //判断当前是否签到
+ getIsSign() {
+ this.$api.sendRequest({
+ url: '/api/membersignin/issign',
+ success: res => {
+ if (res.code == 0) {
+ this.hasSign = res.data;
+ this.getRule();
+ this.getSignPointData();
+ this.getSignGrowthData();
+ }
+ }
+ });
+ },
+ //签到
+ sign() {
+ if (this.signState == 0) {
+ this.$util.showToast({
+ title: $lang('member.public.js.signin.l201')
+ })
+ }
+
+ if (!this.hasSign && this.signState == 1) {
+ this.$api.sendRequest({
+ url: '/api/membersignin/signin',
+ success: res => {
+ if (res.code == 0) {
+ this.successTip = res.data;
+ this.$refs.uniPopup.open()
+ this.getRule();
+ this.getSignPointData();
+ this.getSignGrowthData();
+ this.hasSign = 1;
+ this.signDaysSeries = this.signDaysSeries + 1;
+ } else {
+ this.$util.showToast({
+ title: res.message
+ })
+ }
+ }
+ });
+ }
+ },
+ close() {
+ this.$refs.uniPopup.close()
+ },
+ /**
+ * 设置公众号分享
+ */
+ setPublicShare() {
+ let shareUrl = this.$config.h5Domain + '/pages_tool/member/signin';
+
+ this.$util.setPublicShare({
+ title: $lang('member.public.js.signin.l236'),
+ desc: $lang('member.public.js.signin.l237'),
+ link: shareUrl,
+ imgUrl: ''
+ },
+ res => {
+ // console.log('公众号分享成功');
+ // this.share();
+ }
+ );
+ },
+ },
+ computed: {
+ pointTomorrow: function() {
+ var signDaysSeries = this.signDaysSeries + 1;
+ var point = this.rule[0].point ? parseInt(this.rule[0].point) : 0;
+ for (let i = 1; i < this.rule.length; i++) {
+ let reward = this.rule[i];
+ if (reward.day == signDaysSeries && reward.point) point += parseInt(reward.point);
+ }
+ return point;
+ },
+ showDay: function() {
+ return parseInt(this.signDaysSeries / 7) * 7 + 1;
+ }
+ },
+ /**
+ * 自定义分享内容
+ */
+ onShareAppMessage() {
+ var path = '/pages_tool/member/signin';
+ return {
+ title: $lang('member.public.js.signin.l268'),
+ imageUrl: '',
+ path: path,
+ success: res => {},
+ fail: res => {},
+ complete: res => {}
+ };
+ }
};
\ No newline at end of file
diff --git a/pages_tool/member/withdrawal.vue b/pages_tool/member/withdrawal.vue
index 380d22e..dc08d48 100644
--- a/pages_tool/member/withdrawal.vue
+++ b/pages_tool/member/withdrawal.vue
@@ -1,171 +1,171 @@
-
-
-
-
-
-
-
-
-
- {{ item.transfer_type_name }}
-
- {{ $util.timeStampTurnTime(item.apply_time) }}
-
-
-
- ¥{{ item.apply_money }}
- {{ item.status_name }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ {{ item.transfer_type_name }}
+
+ {{ $util.timeStampTurnTime(item.apply_time) }}
+
+
+
+ ¥{{ item.apply_money }}
+ {{ item.status_name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_tool/member/withdrawal_detail.vue b/pages_tool/member/withdrawal_detail.vue
index ab035de..9aafc4d 100644
--- a/pages_tool/member/withdrawal_detail.vue
+++ b/pages_tool/member/withdrawal_detail.vue
@@ -1,131 +1,131 @@
-
-
-
- -{{ detail.apply_money }}
-
-
-
-
-
- 当前状态
- {{ detail.status_name }}
-
-
- 交易号
- {{ detail.withdraw_no }}
-
-
- 手续费
- ¥{{ detail.service_money }}
-
-
- 申请时间
- {{ $util.timeStampTurnTime(detail.apply_time) }}
-
-
- 审核时间
- {{ $util.timeStampTurnTime(detail.audit_time) }}
-
-
- 银行名称
- {{ detail.bank_name }}
-
-
- 收款账号
- {{ detail.account_number }}
-
-
- 拒绝理由
- {{ detail.refuse_reason }}
-
-
- 转账方式名称
- {{ detail.transfer_type_name }}
-
-
- 转账时间
- {{ $util.timeStampTurnTime(detail.payment_time) }}
-
-
-
-
-
-
-
-
-
-
+
+
+
+ -{{ detail.apply_money }}
+
+
+
+
+
+ {{ $lang("fenxiao.withdrawal_detail.l10") }}
+ {{ detail.status_name }}
+
+
+ {{ $lang("fenxiao.withdrawal_detail.l14") }}
+ {{ detail.withdraw_no }}
+
+
+ {{ $lang("fenxiao.withdrawal_detail.l18") }}
+ ¥{{ detail.service_money }}
+
+
+ {{ $lang("fenxiao.withdrawal_detail.l22") }}
+ {{ $util.timeStampTurnTime(detail.apply_time) }}
+
+
+ {{ $lang("fenxiao.withdrawal_detail.l26") }}
+ {{ $util.timeStampTurnTime(detail.audit_time) }}
+
+
+ {{ $lang("fenxiao.withdrawal_detail.l30") }}
+ {{ detail.bank_name }}
+
+
+ {{ $lang("fenxiao.withdrawal_detail.l34") }}
+ {{ detail.account_number }}
+
+
+ {{ $lang("fenxiao.withdrawal_detail.l38") }}
+ {{ detail.refuse_reason }}
+
+
+ {{ $lang("fenxiao.withdrawal_detail.l42") }}
+ {{ detail.transfer_type_name }}
+
+
+ {{ $lang("fenxiao.withdrawal_detail.l46") }}
+ {{ $util.timeStampTurnTime(detail.payment_time) }}
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_tool/notice/detail.vue b/pages_tool/notice/detail.vue
index a2b25a4..bcccdb2 100644
--- a/pages_tool/notice/detail.vue
+++ b/pages_tool/notice/detail.vue
@@ -1,139 +1,139 @@
-
-
- {{ detail.title }}
-
- 发表时间: {{ $util.timeStampTurnTime(detail.create_time) }}
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages_tool/notice/list.vue b/pages_tool/notice/list.vue
index 91b484b..cffb48e 100644
--- a/pages_tool/notice/list.vue
+++ b/pages_tool/notice/list.vue
@@ -1,182 +1,182 @@
-
-
-
-
-
-
-
-
- 置顶
- {{ item.title }}
-
- {{ $util.timeStampTurnTime(item.create_time, 1) }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages_tool/order/activist.vue b/pages_tool/order/activist.vue
index 3eb7fba..83e3bc1 100644
--- a/pages_tool/order/activist.vue
+++ b/pages_tool/order/activist.vue
@@ -1,151 +1,151 @@
-
-
-
-
-
-
-
-
-
-
-
- {{ item.sku_name }}
-
- {{ item.refund_status_name }}
-
- ¥{{ item.price }}
- ×{{ item.num }}
-
-
-
-
-
-
- 共{{ item.num }}件商品
- 退款:¥{{ item.refund_status == 3 ? item.refund_real_money : item.refund_apply_money }}
-
-
- 查看详情
-
-
- {{ actionItem.title }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.sku_name }}
+
+ {{ item.refund_status_name }}
+
+ ¥{{ item.price }}
+ ×{{ item.num }}
+
+
+
+
+
+
+ { $lang("goods.cart.l8") } item.num }}件商品
+ { $lang("tool.order.activist.l30.t0") } item.refund_status == 3 ? item.refund_real_money : item.refund_apply_money }}
+
+
+ {{ $lang("order.list.l141") }}
+
+
+ {{ actionItem.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_tool/order/evaluate.vue b/pages_tool/order/evaluate.vue
index 6f0df14..e89558f 100644
--- a/pages_tool/order/evaluate.vue
+++ b/pages_tool/order/evaluate.vue
@@ -13,7 +13,7 @@
- 描述相符
+ {{ $lang("tool.order.evaluate.l16.t0") }}
@@ -26,11 +26,11 @@
: ''
">
好评
+ v-if="goodsEvalList[index].explain_type == '1'">{{ $lang("tool.goods.evaluate.l82.t0") }}
中评
+ v-if="goodsEvalList[index].explain_type == '2'">{{ $lang("tool.goods.evaluate.l82.t1") }}
差评
+ v-if="goodsEvalList[index].explain_type == '3'">{{ $lang("tool.goods.evaluate.l82.t2") }}
@@ -39,12 +39,12 @@
-
{{ goodsEvalList[index].content.length }}/200
-
{{ goodsEvalList[index].again_content.length }}/200
@@ -69,9 +69,9 @@
- 匿名
+ {{ $lang("tool.order.evaluate.l72.t0") }}
- 提交
+ {{ $lang("diy.diy-form.l142.t0") }}
diff --git a/pages_tool/order/logistics.vue b/pages_tool/order/logistics.vue
index f4222ae..411cd79 100644
--- a/pages_tool/order/logistics.vue
+++ b/pages_tool/order/logistics.vue
@@ -1,170 +1,170 @@
-
-
-
-
-
- {{ packageItem.package_name }}
-
-
-
-
-
-
-
-
-
-
-
-
- {{ goodsItem.sku_name }}
-
-
-
-
- {{ goodsItem.num }}
-
-
-
-
-
-
-
-
-
-
-
-
- 承运公司: {{ packageItem.express_company_name }}
-
-
-
- 运单号:
- {{ packageItem.delivery_no }}
-
-
-
-
-
-
-
-
-
-
-
- {{ traceItem.remark }}
- {{ traceItem.datetime }}
-
-
-
-
- {{ packageItem.trace.reason }}
-
-
- {{ packageItem.trace.reason }}
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ {{ packageItem.package_name }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ goodsItem.sku_name }}
+
+
+
+
+ {{ goodsItem.num }}
+
+
+
+
+
+
+
+
+
+
+
+
+ 承运公司: {{ packageItem.express_company_name }}
+
+
+
+ 运单号:
+ {{ packageItem.delivery_no }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ traceItem.remark }}
+ {{ traceItem.datetime }}
+
+
+
+
+ {{ packageItem.trace.reason }}
+
+
+ {{ packageItem.trace.reason }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_tool/order/public/js/evaluate.js b/pages_tool/order/public/js/evaluate.js
index c15a1f8..7abfd00 100644
--- a/pages_tool/order/public/js/evaluate.js
+++ b/pages_tool/order/public/js/evaluate.js
@@ -1,233 +1,233 @@
-export default {
- data() {
- return {
- orderId: null,
- orderNo: "",
- isAnonymous: 1, //是否匿名发布 1.匿名,0.公开
-
- goodsList: [], //订单列表
- goodsEvalList: [], //评价列表
-
- imgList: [],
- isEvaluate: 0, //判断是否为追评
-
- flag: false, //防止重复点击 ,
- evaluateConfig: {
- evaluate_audit: 1,
- evaluate_show: 0,
- evaluate_status: 1
- },
-
- isIphoneX: false //判断手机是否是iphoneX以上
- };
- },
- onLoad(options) {
- //接收订单号,订单是否是追评等信息
- options.order_id ? (this.orderId = options.order_id) : this.$util.redirectTo('/pages_order/list');
-
- this.isIphoneX = this.$util.uniappIsIPhoneX();
- if (!this.storeToken) {
- this.$util.redirectTo(this.$util.LOGIN_PAGE_URL, {
- back: '/pages_tool/order/evaluate?order_id=' + this.orderId
- }, 'redirectTo');
- }
- this.getEvaluateConfig();
- this.getOrderInfo();
- },
- onShow() {
- //初始化重复点击
- this.flag = false;
- },
- methods: {
- //获取订单信息
- getOrderInfo() {
- //获取订单信息
- let data = {
- order_id: this.orderId
- };
- this.$api.sendRequest({
- url: '/api/order/evluateinfo',
- data: data,
- success: res => {
- if (res.code == 0) {
- this.isEvaluate = res.data.evaluate_status
- this.goodsList = res.data.list;
- if (this.goodsList.length) {
- this.orderNo = res.data.list[0].order_no;
- }
- if (this.isEvaluate) {
- for (let i = 0; i < res.data.list.length; i++) {
- let array = [];
- this.imgList.push(array)
- this.goodsEvalList.push({
- order_goods_id: res.data.list[i].order_goods_id,
- goods_id: res.data.list[i].goods_id,
- sku_id: res.data.list[i].sku_id,
- again_content: "",
- again_images: ""
- });
- }
- } else {
- for (let i = 0; i < res.data.list.length; i++) {
- let array = [];
- this.imgList.push(array)
- this.goodsEvalList.push({
- content: '', // 评价内容
- images: "", //图片数组
- scores: 5, // 评分
- explain_type: 1, // 评价类型
- order_goods_id: res.data.list[i].order_goods_id,
- goods_id: res.data.list[i].goods_id,
- sku_id: res.data.list[i].sku_id,
- sku_name: res.data.list[i].sku_name,
- sku_price: res.data.list[i].price,
- sku_image: res.data.list[i].sku_image
- });
- }
- }
- } else {
- this.$util.showToast({
- title: "未获取到订单数据"
- })
- setTimeout(() => {
- this.$util.redirectTo('/pages_order/list', {}, "redirectTo");
- }, 1000)
- }
- if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
- },
- fail() {
- if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
- }
- });
- },
- //监听评分变化
- setStar(e) {
- this.goodsEvalList[e.index].scores = e.value;
- if (e.value >= 4) {
- this.goodsEvalList[e.index].explain_type = 1;
- } else if (1 < e.value && e.value < 4) {
- this.goodsEvalList[e.index].explain_type = 2
- } else {
- this.goodsEvalList[e.index].explain_type = 3
- }
- },
- //切换,是否匿名
- isAll() {
- this.isAnonymous ? this.isAnonymous = 0 : this.isAnonymous = 1
- },
- //添加图片
- addImg(e) {
- let size = this.imgList[e].length ? this.imgList[e].length : 0
- this.$util.upload(6 - size, {
- path: 'evaluateimg'
- }, res => {
- let arr = this.imgList[e]
- arr = arr.concat(res);
- this.imgList[e] = [];
- this.$set(this.imgList, e, arr)
- if (this.isEvaluate) {
- this.goodsEvalList[e].again_images = this.imgList[e].toString()
- } else {
- this.goodsEvalList[e].images = this.imgList[e].toString()
- }
- });
- },
- //删除图片
- deleteImg(i, index, j) {
- this.imgList[index].splice(j, 1);
- if (this.isEvaluate) {
- this.goodsEvalList[index].again_images = this.imgList[index].toString()
- } else {
- this.goodsEvalList[index].images = this.imgList[index].toString()
- }
- },
- // 图片预览
- preview(i, j) {
- let urls = this.imgList[j];
- for (let k = 0; k < urls.length; k++) {
- urls[k] = this.$util.img(urls[k])
- }
- uni.previewImage({
- urls: urls,
- current: i
- });
- },
-
- //提交评价
- save() {
- if (this.evaluateConfig.evaluate_status == 0) {
- this.$util.showToast({
- title: "商家未开启商品评价功能"
- });
- return;
- }
- for (let i = 0; i < this.goodsEvalList.length; i++) {
- if (this.isEvaluate) {
- if (!this.goodsEvalList[i].again_content.trim().length) {
- this.$util.showToast({
- title: "商品的评价不能为空哦"
- });
- return;
- }
- } else {
- if (!this.goodsEvalList[i].content.trim().length) {
- this.$util.showToast({
- title: "商品的评价不能为空哦"
- });
- return;
- }
- }
- }
- let goodsEvaluate = JSON.stringify(this.goodsEvalList)
- let data = {
- order_id: this.orderId,
- goods_evaluate: goodsEvaluate,
- };
- if (!this.isEvaluate) {
- data.order_no = this.orderNo;
- data.member_name = this.memberInfo.nickname;
- data.member_headimg = this.memberInfo.headimg;
- data.is_anonymous = this.isAnonymous;
- }
- if (this.flag) return;
- this.flag = true;
- this.$api.sendRequest({
- url: this.isEvaluate ? '/api/goodsevaluate/again' : '/api/goodsevaluate/add',
- data: data,
- success: res => {
- if (res.code == 0) {
- this.$util.showToast({
- title: "评价成功"
- });
- setTimeout(() => {
- this.$util.redirectTo('/pages_order/list', {}, "redirectTo");
- }, 1000);
- } else {
- this.$util.showToast({
- title: res.message
- });
- this.flag = false;
- }
- },
- fail: res => {
- this.flag = false;
- }
- });
- },
- imageError(index) {
- this.goodsList[index].sku_image = this.$util.getDefaultImage().goods;
- this.$forceUpdate();
- },
- getEvaluateConfig() {
- this.$api.sendRequest({
- url: '/api/goodsevaluate/config',
- success: res => {
- if (res.code == 0) {
- var data = res.data;
- this.evaluateConfig = data;
- }
- }
- });
- }
- }
+export default {
+ data() {
+ return {
+ orderId: null,
+ orderNo: "",
+ isAnonymous: 1, //是否匿名发布 1.匿名,0.公开
+
+ goodsList: [], //订单列表
+ goodsEvalList: [], //评价列表
+
+ imgList: [],
+ isEvaluate: 0, //判断是否为追评
+
+ flag: false, //防止重复点击 ,
+ evaluateConfig: {
+ evaluate_audit: 1,
+ evaluate_show: 0,
+ evaluate_status: 1
+ },
+
+ isIphoneX: false //判断手机是否是iphoneX以上
+ };
+ },
+ onLoad(options) {
+ //接收订单号,订单是否是追评等信息
+ options.order_id ? (this.orderId = options.order_id) : this.$util.redirectTo('/pages_order/list');
+
+ this.isIphoneX = this.$util.uniappIsIPhoneX();
+ if (!this.storeToken) {
+ this.$util.redirectTo(this.$util.LOGIN_PAGE_URL, {
+ back: '/pages_tool/order/evaluate?order_id=' + this.orderId
+ }, 'redirectTo');
+ }
+ this.getEvaluateConfig();
+ this.getOrderInfo();
+ },
+ onShow() {
+ //初始化重复点击
+ this.flag = false;
+ },
+ methods: {
+ //获取订单信息
+ getOrderInfo() {
+ //获取订单信息
+ let data = {
+ order_id: this.orderId
+ };
+ this.$api.sendRequest({
+ url: '/api/order/evluateinfo',
+ data: data,
+ success: res => {
+ if (res.code == 0) {
+ this.isEvaluate = res.data.evaluate_status
+ this.goodsList = res.data.list;
+ if (this.goodsList.length) {
+ this.orderNo = res.data.list[0].order_no;
+ }
+ if (this.isEvaluate) {
+ for (let i = 0; i < res.data.list.length; i++) {
+ let array = [];
+ this.imgList.push(array)
+ this.goodsEvalList.push({
+ order_goods_id: res.data.list[i].order_goods_id,
+ goods_id: res.data.list[i].goods_id,
+ sku_id: res.data.list[i].sku_id,
+ again_content: "",
+ again_images: ""
+ });
+ }
+ } else {
+ for (let i = 0; i < res.data.list.length; i++) {
+ let array = [];
+ this.imgList.push(array)
+ this.goodsEvalList.push({
+ content: '', // 评价内容
+ images: "", //图片数组
+ scores: 5, // 评分
+ explain_type: 1, // 评价类型
+ order_goods_id: res.data.list[i].order_goods_id,
+ goods_id: res.data.list[i].goods_id,
+ sku_id: res.data.list[i].sku_id,
+ sku_name: res.data.list[i].sku_name,
+ sku_price: res.data.list[i].price,
+ sku_image: res.data.list[i].sku_image
+ });
+ }
+ }
+ } else {
+ this.$util.showToast({
+ title: $lang("tool.order.public.js.evaluate.l90.t0")
+ })
+ setTimeout(() => {
+ this.$util.redirectTo('/pages_order/list', {}, "redirectTo");
+ }, 1000)
+ }
+ if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
+ },
+ fail() {
+ if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
+ }
+ });
+ },
+ //监听评分变化
+ setStar(e) {
+ this.goodsEvalList[e.index].scores = e.value;
+ if (e.value >= 4) {
+ this.goodsEvalList[e.index].explain_type = 1;
+ } else if (1 < e.value && e.value < 4) {
+ this.goodsEvalList[e.index].explain_type = 2
+ } else {
+ this.goodsEvalList[e.index].explain_type = 3
+ }
+ },
+ //切换,是否匿名
+ isAll() {
+ this.isAnonymous ? this.isAnonymous = 0 : this.isAnonymous = 1
+ },
+ //添加图片
+ addImg(e) {
+ let size = this.imgList[e].length ? this.imgList[e].length : 0
+ this.$util.upload(6 - size, {
+ path: 'evaluateimg'
+ }, res => {
+ let arr = this.imgList[e]
+ arr = arr.concat(res);
+ this.imgList[e] = [];
+ this.$set(this.imgList, e, arr)
+ if (this.isEvaluate) {
+ this.goodsEvalList[e].again_images = this.imgList[e].toString()
+ } else {
+ this.goodsEvalList[e].images = this.imgList[e].toString()
+ }
+ });
+ },
+ //删除图片
+ deleteImg(i, index, j) {
+ this.imgList[index].splice(j, 1);
+ if (this.isEvaluate) {
+ this.goodsEvalList[index].again_images = this.imgList[index].toString()
+ } else {
+ this.goodsEvalList[index].images = this.imgList[index].toString()
+ }
+ },
+ // 图片预览
+ preview(i, j) {
+ let urls = this.imgList[j];
+ for (let k = 0; k < urls.length; k++) {
+ urls[k] = this.$util.img(urls[k])
+ }
+ uni.previewImage({
+ urls: urls,
+ current: i
+ });
+ },
+
+ //提交评价
+ save() {
+ if (this.evaluateConfig.evaluate_status == 0) {
+ this.$util.showToast({
+ title: $lang("tool.order.public.js.evaluate.l160.t0")
+ });
+ return;
+ }
+ for (let i = 0; i < this.goodsEvalList.length; i++) {
+ if (this.isEvaluate) {
+ if (!this.goodsEvalList[i].again_content.trim().length) {
+ this.$util.showToast({
+ title: $lang("tool.order.public.js.evaluate.l168.t0")
+ });
+ return;
+ }
+ } else {
+ if (!this.goodsEvalList[i].content.trim().length) {
+ this.$util.showToast({
+ title: $lang("tool.order.public.js.evaluate.l168.t0")
+ });
+ return;
+ }
+ }
+ }
+ let goodsEvaluate = JSON.stringify(this.goodsEvalList)
+ let data = {
+ order_id: this.orderId,
+ goods_evaluate: goodsEvaluate,
+ };
+ if (!this.isEvaluate) {
+ data.order_no = this.orderNo;
+ data.member_name = this.memberInfo.nickname;
+ data.member_headimg = this.memberInfo.headimg;
+ data.is_anonymous = this.isAnonymous;
+ }
+ if (this.flag) return;
+ this.flag = true;
+ this.$api.sendRequest({
+ url: this.isEvaluate ? '/api/goodsevaluate/again' : '/api/goodsevaluate/add',
+ data: data,
+ success: res => {
+ if (res.code == 0) {
+ this.$util.showToast({
+ title: $lang("tool.order.public.js.evaluate.l200.t0")
+ });
+ setTimeout(() => {
+ this.$util.redirectTo('/pages_order/list', {}, "redirectTo");
+ }, 1000);
+ } else {
+ this.$util.showToast({
+ title: res.message
+ });
+ this.flag = false;
+ }
+ },
+ fail: res => {
+ this.flag = false;
+ }
+ });
+ },
+ imageError(index) {
+ this.goodsList[index].sku_image = this.$util.getDefaultImage().goods;
+ this.$forceUpdate();
+ },
+ getEvaluateConfig() {
+ this.$api.sendRequest({
+ url: '/api/goodsevaluate/config',
+ success: res => {
+ if (res.code == 0) {
+ var data = res.data;
+ this.evaluateConfig = data;
+ }
+ }
+ });
+ }
+ }
};
\ No newline at end of file
diff --git a/pages_tool/order/public/js/refundMethod.js b/pages_tool/order/public/js/refundMethod.js
index 2feb464..f11d84d 100644
--- a/pages_tool/order/public/js/refundMethod.js
+++ b/pages_tool/order/public/js/refundMethod.js
@@ -1,30 +1,30 @@
-export default {
- methods: {
- /**
- * 撤销退款申请
- * @param {Object} order_goods_id
- * @param {Object} callback
- */
- cancleRefund(order_goods_id, callback) {
- uni.showModal({
- content: '撤销之后本次申请将会关闭,如后续仍有问题可再次发起申请。',
- cancelText: '暂不撤销',
- cancelColor: '#898989',
- success: res => {
- if (res.confirm) {
- this.$api.sendRequest({
- url: '/api/orderrefund/cancel',
- data: {
- order_goods_id
- },
- success: res => {
- typeof callback == 'function' && callback(res);
- }
- })
- }
- }
- })
- },
-
- }
-}
+export default {
+ methods: {
+ /**
+ * 撤销退款申请
+ * @param {Object} order_goods_id
+ * @param {Object} callback
+ */
+ cancleRefund(order_goods_id, callback) {
+ uni.showModal({
+ content: $lang('order.public.js.refund_method.l10'),
+ cancelText: $lang('order.public.js.refund_method.l11'),
+ cancelColor: '#898989',
+ success: res => {
+ if (res.confirm) {
+ this.$api.sendRequest({
+ url: '/api/orderrefund/cancel',
+ data: {
+ order_goods_id
+ },
+ success: res => {
+ typeof callback == 'function' && callback(res);
+ }
+ })
+ }
+ }
+ })
+ },
+
+ }
+}
diff --git a/pages_tool/order/refund.vue b/pages_tool/order/refund.vue
index d81cb38..e6acf10 100644
--- a/pages_tool/order/refund.vue
+++ b/pages_tool/order/refund.vue
@@ -1,300 +1,300 @@
-
-
-
-
-
-
-
-
-
- {{ refund_data.order_goods_info.sku_name }}
-
-
-
-
-
-
- 退款无需退货
- 没收到货,或与卖家协商同意无需退货只退款
-
-
-
-
-
- 退货退款
- 已收到货,需退还收到的货物
-
-
-
-
-
-
-
-
- 退款原因:
-
- 请选择
- {{ refund_reason }}
-
-
-
-
- 退款金额:
- {{ $lang('common.currencySymbol') }}{{ refund_data.refund_money }}
-
-
-
-
- 退款说明
-
-
-
-
-
-
-
-
-
-
-
- {{ $lang('common.submit') }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ {{ refund_data.order_goods_info.sku_name }}
+
+
+
+
+
+
+ {{ $lang("tool.order.refund.l17.t0") }}
+ {{ $lang("tool.order.refund.l18.t0") }}
+
+
+
+
+
+ {{ $lang("tool.order.refund.l24.t0") }}
+ {{ $lang("tool.order.refund.l25.t0") }}
+
+
+
+
+
+
+
+
+ {{ $lang("tool.order.refund.l34.t0") }}
+
+ {{ $lang("common.ns-form.l37.t0") }}
+ {{ refund_reason }}
+
+
+
+
+ {{ $lang("tool.order.refund.l42.t0") }}
+ {{ $lang('common.currency_symbol') }}{{ refund_data.refund_money }}
+
+
+
+
+ {{ $lang("tool.order.refund.l48.t0") }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ $lang('common.submit') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_tool/order/refund_batch.vue b/pages_tool/order/refund_batch.vue
index e745b94..dc0ed52 100644
--- a/pages_tool/order/refund_batch.vue
+++ b/pages_tool/order/refund_batch.vue
@@ -1,306 +1,306 @@
-
-
-
-
-
-
-
-
-
- {{ item.sku_name }}
-
-
-
-
-
-
-
- 退款原因:
-
- 请选择
- {{ refund_reason }}
-
-
-
-
- 退款方式:
- 退款无需退货
- 退货退款
-
-
- 退款金额:
- {{ $lang('common.currencySymbol') }}{{ refund_data.refund_money }}
-
-
-
-
- 退款说明
-
-
-
-
-
-
-
-
-
-
-
-
- {{ $lang('common.submit') }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ {{ item.sku_name }}
+
+
+
+
+
+
+
+ {{ $lang("tool.order.refund.l34.t0") }}
+
+ {{ $lang("common.ns-form.l37.t0") }}
+ {{ refund_reason }}
+
+
+
+
+ {{ $lang("tool.order.refund_batch.l26.t0") }}
+ {{ $lang("tool.order.refund.l17.t0") }}
+ {{ $lang("tool.order.refund.l24.t0") }}
+
+
+ {{ $lang("tool.order.refund.l42.t0") }}
+ {{ $lang('common.currency_symbol') }}{{ refund_data.refund_money }}
+
+
+
+
+ {{ $lang("tool.order.refund.l48.t0") }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $lang('common.submit') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_tool/order/refund_detail.vue b/pages_tool/order/refund_detail.vue
index eed0847..f75b53b 100644
--- a/pages_tool/order/refund_detail.vue
+++ b/pages_tool/order/refund_detail.vue
@@ -1,272 +1,272 @@
-
-
-
-
-
- {{ detail.refund_status_name }}
-
- 如果商家拒绝,你可重新发起申请
- 如果商家同意,将通过申请并退款给你
-
-
-
- 如果商家确认收货将会退款给你
- 如果商家拒绝收货,该次退款将会关闭,你可以重新发起退款
-
-
-
-
- 协商记录
-
-
-
-
-
-
- 收货人:{{ detail.shop_contacts }}
-
-
- 联系方式:{{ detail.shop_mobile }}
-
-
- 退货地址:{{ detail.shop_address }}
- 复制
-
-
-
-
-
-
-
-
-
-
-
-
- {{ detail.sku_name }}
-
-
-
-
- 退款方式:{{ detail.refund_type == 1 ? '仅退款' : '退款退货' }}
- 退款途径:{{ detail.refund_money_type == 1 ? '原路退款' : detail.refund_money_type == 2 ? '线下退款' : '退款到余额' }}
- 退款原因:{{ detail.refund_reason }}
- 退款金额:{{ $lang('common.currencySymbol') }}{{ detail.refund_real_money }}
- 退款金额:{{ $lang('common.currencySymbol') }}{{ detail.refund_apply_money }}
- 退款编号:{{ detail.refund_no }}
- 申请时间:{{ $util.timeStampTurnTime(detail.refund_action_time) }}
- 退款时间:{{ $util.timeStampTurnTime(detail.refund_time) }}
- 退款说明:{{ detail.refund_remark }}
- 退款积分:{{ detail.use_point }}
-
-
-
-
-
-
- {{ actionItem.title }}
-
-
-
-
-
-
-
-
- 物流公司
-
-
-
-
-
- 物流单号
-
-
-
-
-
- 物流说明
-
-
-
-
-
- 提交
-
-
-
-
-
-
-
-
- {{ logItem.action_way == 1 ? '买家' : '卖家' }}
- {{ $util.timeStampTurnTime(logItem.action_time) }}
-
-
- {{ logItem.action }}
- {{ logItem.desc }}
-
-
-
-
-
-
-
- 返回详情
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ {{ detail.refund_status_name }}
+
+ {{ $lang("tool.order.refund_detail.l8.t0") }}
+ {{ $lang("tool.order.refund_detail.l9.t0") }}
+
+
+
+ {{ $lang("tool.order.refund_detail.l13.t0") }}
+ {{ $lang("tool.order.refund_detail.l14.t0") }}
+
+
+
+
+ {{ $lang("tool.order.refund_detail.l19.t0") }}
+
+
+
+
+
+
+ { $lang("tool.order.refund_detail.l26.t0") } detail.shop_contacts }}
+
+
+ { $lang("tool.order.refund_detail.l29.t0") } detail.shop_mobile }}
+
+
+ { $lang("tool.order.refund_detail.l32.t0") } detail.shop_address }}
+ {{ $lang("order.detail.l109") }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ detail.sku_name }}
+
+
+
+
+ { $lang("tool.order.refund_batch.l26.t0") } detail.refund_type == 1 ? '仅退款' : $lang('tool.order.refund_detail.l51.t1') }}
+ { $lang("tool.order.refund_detail.l52.t3") } detail.refund_money_type == 1 ? '原路退款' : detail.refund_money_type == 2 ? '线下退款' : $lang('tool.order.refund_detail.l52.t2') }}
+ { $lang("tool.order.refund.l34.t0") } detail.refund_reason }}
+ { $lang("tool.order.refund.l42.t0") } $lang('common.currency_symbol') }}{{ detail.refund_real_money }}
+ { $lang("tool.order.refund.l42.t0") } $lang('common.currency_symbol') }}{{ detail.refund_apply_money }}
+ { $lang("tool.order.refund_detail.l56.t0") } detail.refund_no }}
+ { $lang("tool.order.refund_detail.l57.t0") } $util.timeStampTurnTime(detail.refund_action_time) }}
+ { $lang("tool.order.refund_detail.l58.t0") } $util.timeStampTurnTime(detail.refund_time) }}
+ { $lang("tool.order.refund_detail.l59.t0") } detail.refund_remark }}
+ { $lang("tool.order.refund_detail.l60.t0") } detail.use_point }}
+
+
+
+
+
+
+ {{ actionItem.title }}
+
+
+
+
+
+
+
+
+ {{ $lang("tool.order.refund_detail.l76.t0") }}
+
+
+
+
+
+ {{ $lang("tool.order.refund_detail.l88.t0") }}
+
+
+
+
+
+ {{ $lang("tool.order.refund_detail.l100.t0") }}
+
+
+
+
+
+ {{ $lang("diy.diy-form.l142.t0") }}
+
+
+
+
+
+
+
+
+ {{ logItem.action_way == 1 ? '买家' : $lang('tool.order.refund_detail.l121.t1') }}
+ {{ $util.timeStampTurnTime(logItem.action_time) }}
+
+
+ {{ logItem.action }}
+ {{ logItem.desc }}
+
+
+
+
+
+
+
+ {{ $lang("tool.order.refund_detail.l139.t0") }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_tool/order/refund_goods_select.vue b/pages_tool/order/refund_goods_select.vue
index 8703c63..77e9d77 100644
--- a/pages_tool/order/refund_goods_select.vue
+++ b/pages_tool/order/refund_goods_select.vue
@@ -1,225 +1,225 @@
-
-
-
- 共{{refund_data.length}}件商品
-
-
-
-
-
-
-
-
-
-
- {{item.sku_name}}
-
-
-
-
-
-
-
-
-
- 下一步
- 请选择商品
-
-
-
-
-
-
-
-
-
+
+
+
+ 共{{refund_data.length}}件商品
+
+
+
+
+
+
+
+
+
+
+ {{item.sku_name}}
+
+
+
+
+
+
+
+
+
+ {{ $lang("member.cancellation.l15") }}
+ {{ $lang("tool.order.refund_goods_select.l28.t0") }}
+
+
+
+
+
+
+
+
+
diff --git a/pages_tool/order/refund_type_select.vue b/pages_tool/order/refund_type_select.vue
index 50b62e9..7fdb26c 100644
--- a/pages_tool/order/refund_type_select.vue
+++ b/pages_tool/order/refund_type_select.vue
@@ -1,116 +1,116 @@
-
-
-
-
-
-
- 退款无需退货
- 没收到货,或与卖家协商同意无需退货只退款
-
-
-
-
-
- 退货退款
- 已收到货,需退还收到的货物
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/pages_tool/pay/cashier.vue b/pages_tool/pay/cashier.vue
index 0846451..113b4af 100644
--- a/pages_tool/pay/cashier.vue
+++ b/pages_tool/pay/cashier.vue
@@ -18,9 +18,9 @@
- 确认支付
+ {{ $lang("common.ns-payment.l39.t0") }}
- 店铺尚未配置支付方式!
+ {{ $lang("tool.pay.cashier.l23.t0") }}
@@ -40,12 +40,12 @@ export default {
// #ifdef H5
payTypeList: [
{
- name: '支付宝支付',
+ name: $lang('common.ns-payment.l75.t0'),
icon: 'icon-zhifubaozhifu-',
type: 'alipay'
},
{
- name: '微信支付',
+ name: $lang('common.ns-payment.l80.t0'),
icon: 'icon-weixin1',
type: 'wechatpay'
}
@@ -54,7 +54,7 @@ export default {
// #endif
// #ifdef MP-WEIXIN
payTypeList: [{
- name: '微信支付',
+ name: $lang('common.ns-payment.l80.t0'),
provider: 'wxpay',
icon: 'icon-weixin1',
type: 'wechatpay'
@@ -131,12 +131,12 @@ export default {
}
if (this.payTypeList.length == 0 && this.payInfo.pay_money > 0) {
this.$util.showToast({
- title: '请选择支付方式!'
+ title: $lang('common.ns-payment.l161.t0')
});
return;
}
uni.showLoading({
- title: '支付中...',
+ title: $lang('common.ns-payment.l166.t0'),
mask: true
});
this.pay();
@@ -265,7 +265,7 @@ export default {
fail: res => {
this.flag = false;
if (res.errMsg == 'requestPayment:fail cancel') {
- this.$util.showToast({ title: '您已取消支付' });
+ this.$util.showToast({ title: $lang('common.ns-payment.l298.t0') });
} else {
uni.showModal({ content: '支付失败,失败原因: ' + res.errMsg, showCancel: false });
}
diff --git a/pages_tool/pay/index.vue b/pages_tool/pay/index.vue
index 8e63c97..bfc373f 100644
--- a/pages_tool/pay/index.vue
+++ b/pages_tool/pay/index.vue
@@ -1,143 +1,143 @@
-
-
-
-
- {{ $lang('paymentAmount') }}
-
- {{ $lang('common.currencySymbol') }}
- {{ payInfo.pay_money }}
-
- {{ payInfo.pay_body }}
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ {{ $lang('order.list.payment_amount') }}
+
+ {{ $lang('common.currency_symbol') }}
+ {{ payInfo.pay_money }}
+
+ {{ payInfo.pay_body }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_tool/pay/result.vue b/pages_tool/pay/result.vue
index 53a1973..1da6d2e 100644
--- a/pages_tool/pay/result.vue
+++ b/pages_tool/pay/result.vue
@@ -1,345 +1,345 @@
-
-
-
-
-
-
- {{ $lang('paymentSuccess') }}
-
- {{ $lang('common.currencySymbol') }}
- {{ parseFloat(payInfo.pay_money).toFixed(2).split(".")[0] }}
- .{{ parseFloat(payInfo.pay_money).toFixed(2).split(".")[1] }}
-
-
-
-
- {{ $lang('paymentFail') }}
-
-
-
-
- 恭喜您获得
-
-
-
-
- {{ consumeInfo.point_num }}
- 积分
-
-
-
- {{ consumeInfo.growth_num }}
- 成长值
-
-
-
- {{ consumeInfo.coupon_list.length }}
- 张优惠券
-
-
-
-
-
-
- 充值记录
- 会员卡
- 查看订单
- 查看订单
- 查看订单
-
- 查看订单
-
- {{ $lang('goHome') }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/pages_tool/pay/wx_pay.vue b/pages_tool/pay/wx_pay.vue
index 298e4d2..a1892cf 100644
--- a/pages_tool/pay/wx_pay.vue
+++ b/pages_tool/pay/wx_pay.vue
@@ -3,7 +3,7 @@
- 点击右上角跳转到浏览器打开
+ {{ $lang("tool.pay.wx_pay.l6.t0") }}
-
-
+
+
+
+
+
+
+
+ 充值金额
+ {{ $lang("member.balance.l56") }}
+
+
+
+
+ ¥
+
+
+
+
+
+
+
+ {{ parseFloat(item.face_value).toFixed(0) }}
+ {{ $lang("common.register-reward.l45.t0") }}
+
+ 售价 {{ item.buy_price }} 元
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $lang("tool.recharge.list.l20.t0") }}
+
+ {{keywordsInfo.price?keywordsInfo.price:$lang('tool.recharge.list.l67.t0')}}{{ $lang("common.register-reward.l45.t0") }}
+
+
+ { $lang("tool.recharge.list.l29.t0") }payMoney}}元
+
+
+
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+
+ 0
+
+
+
+
+ {{ $lang("tool.recharge.list.l89.t0") }}
+
+
+
+
+
+
+
+ {{ $lang("member.balance.l33") }}
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_tool/recharge/order_list.vue b/pages_tool/recharge/order_list.vue
index e12aaf1..ab20fe4 100644
--- a/pages_tool/recharge/order_list.vue
+++ b/pages_tool/recharge/order_list.vue
@@ -1,177 +1,177 @@
-
-
-
-
-
-
-
-
- 充值成功
-
-
- ¥
- {{ orderItem.buy_price }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ {{ $lang("tool.recharge.order_list.l16.t0") }}
+
+
+ ¥
+ {{ orderItem.buy_price }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages_tool/seal/medium/detail.vue b/pages_tool/seal/medium/detail.vue
index 0437e56..b9e0ef8 100644
--- a/pages_tool/seal/medium/detail.vue
+++ b/pages_tool/seal/medium/detail.vue
@@ -1,199 +1,199 @@
-
-
-
-
- {{title}}
-
-
-
- {{item.text}}
- {{item.value}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages_tool/seal/medium/search.vue b/pages_tool/seal/medium/search.vue
index cbc1dda..ac08bf3 100644
--- a/pages_tool/seal/medium/search.vue
+++ b/pages_tool/seal/medium/search.vue
@@ -1,240 +1,240 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索结果
-
-
-
-
- {{item.name}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages_tool/seal/structure.vue b/pages_tool/seal/structure.vue
index ecf1017..943e68c 100644
--- a/pages_tool/seal/structure.vue
+++ b/pages_tool/seal/structure.vue
@@ -1,114 +1,114 @@
-
-
-
-
-
- 当前选择:{{item.range[item.value].name || '请选择'}}
-
-
-
-
-
- 选型结果:{{answerName}}
-
-
-
-
-
-
-
-
-
-
- 结果文件
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages_tool/storeclose/storeclose.vue b/pages_tool/storeclose/storeclose.vue
index 1dfb9b1..3b63964 100644
--- a/pages_tool/storeclose/storeclose.vue
+++ b/pages_tool/storeclose/storeclose.vue
@@ -38,13 +38,13 @@ export default {
},
computed: {
textVal() {
- return '该店铺已打烊...';
+ return $lang('tool.storeclose.l41.t0');
},
pageVal() {
if (this.$store.state.siteState == -2) {
- return '店铺不存在';
+ return $lang('tool.storeclose.l45.t0');
} else if (this.$store.state.siteState == -3) {
- return '店铺打烊';
+ return $lang('tool.storeclose.l47.t0');
}
}
},
diff --git a/pages_tool/weapp/order_shipping.vue b/pages_tool/weapp/order_shipping.vue
index f63a3ad..69884de 100644
--- a/pages_tool/weapp/order_shipping.vue
+++ b/pages_tool/weapp/order_shipping.vue
@@ -1,48 +1,48 @@
-
-
- {{errorMsg}}
-
-
-
-
-
-
+
+
+ {{errorMsg}}
+
+
+
+
+
+
diff --git a/project.config.json b/project.config.json
index 5a09734..a583cb2 100644
--- a/project.config.json
+++ b/project.config.json
@@ -1,7 +1,10 @@
{
"description": "项目配置文件",
"packOptions": {
- "ignore": [],
+ "ignore": [{
+ "type": "folder",
+ "value": "unpackage"
+ }],
"include": []
},
"setting": {
diff --git a/scripts/analyze_i18n_keys.py b/scripts/analyze_i18n_keys.py
new file mode 100644
index 0000000..1e022ef
--- /dev/null
+++ b/scripts/analyze_i18n_keys.py
@@ -0,0 +1,172 @@
+import re
+
+# 读取 zh-cn.js
+with open('lang/zh-cn.js', 'r', encoding='utf-8') as f:
+ content = f.read()
+
+# 提取所有 "key": "value" 模式(考虑嵌套)
+# 先提取 lang 对象内部的内容
+match = re.search(r'export const lang = \{(.*?)\n\};', content, re.DOTALL)
+if not match:
+ print("Cannot find lang object")
+ exit(1)
+
+lang_body = match.group(1)
+
+# 提取所有 key-value 对
+pattern = r'"([^"]+)"\s*:\s*"([^"]*)"'
+matches = re.findall(pattern, lang_body)
+
+print(f'Total key-value pairs found: {len(matches)}')
+
+# 因为是嵌套结构,key 可能重复(不同层级),我们需要完整路径
+# 让我们用另一种方式:计算缩进层级来构建完整路径
+lines = lang_body.split('\n')
+stack = [] # 当前路径栈
+full_keys = {} # 完整路径 -> 值
+
+for line in lines:
+ stripped = line.strip()
+ if not stripped:
+ continue
+
+ # 计算缩进
+ indent = len(line) - len(line.lstrip())
+
+ # 计算当前层级 (每 4 个空格一级,或者根据 tab)
+ level = indent // 4 + 1 # 假设最外层是第 1 级
+
+ # 收缩栈到当前层级
+ while len(stack) >= level:
+ stack.pop()
+
+ # 检查是否是对象 key
+ obj_match = re.match(r'"([^"]+)"\s*:\s*\{', stripped)
+ if obj_match:
+ stack.append(obj_match.group(1))
+ continue
+
+ # 检查是否是字符串值
+ val_match = re.match(r'"([^"]+)"\s*:\s*"([^"]*)"', stripped)
+ if val_match:
+ key = val_match.group(1)
+ value = val_match.group(2)
+ full_path = '.'.join(stack + [key])
+ full_keys[full_path] = value
+
+print(f'Full-path keys: {len(full_keys)}')
+
+# 统计按一级命名空间分类
+namespaces = {}
+for k in full_keys.keys():
+ ns = k.split('.')[0]
+ namespaces[ns] = namespaces.get(ns, 0) + 1
+
+print('\n=== Namespace distribution ===')
+for ns, count in sorted(namespaces.items(), key=lambda x: -x[1]):
+ print(f' {ns}: {count} keys')
+
+# 找包含 .l数字.t 的机器生成 key
+machine_keys = [k for k in full_keys.keys() if re.search(r'\.l\d+\.t\d+', k)]
+print(f'\n=== Machine-generated keys (lXX.tY pattern): {len(machine_keys)} ===')
+print(f' Percentage: {len(machine_keys)/len(full_keys)*100:.1f}%')
+
+# 常见词重复统计
+common_words = {
+ '确定': [],
+ '取消': [],
+ '保存': [],
+ '删除': [],
+ '确认': [],
+ '关闭': [],
+ '加载中': [],
+ '暂无相关数据': [],
+ '去逛逛': [],
+ '联系客服': [],
+ '立即购买': [],
+ '加入购物车': [],
+ '搜索': [],
+}
+
+for k, v in full_keys.items():
+ for word in common_words:
+ if v == word:
+ common_words[word].append(k)
+
+print('\n=== Common word duplicates ===')
+for word, keys in common_words.items():
+ if len(keys) > 1:
+ print(f' "{word}" -> {len(keys)} keys:')
+ for k in keys[:8]:
+ print(f' - {k}')
+
+# 同值不同 key 统计
+value_to_keys = {}
+for k, v in full_keys.items():
+ if v and len(v) >= 2:
+ if v not in value_to_keys:
+ value_to_keys[v] = []
+ value_to_keys[v].append(k)
+
+duplicate_values = {v: ks for v, ks in value_to_keys.items() if len(ks) > 1}
+print(f'\n=== Total same-translation-different-key: {len(duplicate_values)} ===')
+
+# Top 20 最多重复的翻译
+print('\n=== Top 20 most duplicated translations ===')
+sorted_dups = sorted(duplicate_values.items(), key=lambda x: -len(x[1]))[:20]
+for v, ks in sorted_dups:
+ print(f' "{v}" ({len(ks)}x):')
+ for k in ks[:6]:
+ print(f' - {k}')
+
+# 读取 en-us.js 对比
+with open('lang/en-us.js', 'r', encoding='utf-8') as f:
+ en_content = f.read()
+
+en_match = re.search(r'export const lang = \{(.*?)\n\};', en_content, re.DOTALL)
+if en_match:
+ en_body = en_match.group(1)
+ en_lines = en_body.split('\n')
+ en_stack = []
+ en_full_keys = {}
+
+ for line in en_lines:
+ stripped = line.strip()
+ if not stripped:
+ continue
+ indent = len(line) - len(line.lstrip())
+ level = indent // 4 + 1
+
+ while len(en_stack) >= level:
+ en_stack.pop()
+
+ obj_match = re.match(r'"([^"]+)"\s*:\s*\{', stripped)
+ if obj_match:
+ en_stack.append(obj_match.group(1))
+ continue
+
+ val_match = re.match(r'"([^"]+)"\s*:\s*"([^"]*)"', stripped)
+ if val_match:
+ key = val_match.group(1)
+ value = val_match.group(2)
+ full_path = '.'.join(en_stack + [key])
+ en_full_keys[full_path] = value
+
+ print(f'\n=== en-us stats ===')
+ print(f' Total keys: {len(en_full_keys)}')
+ empty_en = sum(1 for v in en_full_keys.values() if not v)
+ print(f' Empty translations: {empty_en} ({empty_en/len(en_full_keys)*100:.1f}%)')
+
+# 示例:语义不清的 key
+print('\n=== Example machine keys (semantic-less) ===')
+examples = machine_keys[:20]
+for k in examples:
+ print(f' {k} -> "{full_keys[k]}"')
+
+# 扁平 key 列表
+flat_keys = [k for k in full_keys.keys() if k.count('.') == 2 and k.startswith('common.')]
+# 不对,应该找只有一级的
+top_level = [k for k in full_keys.keys() if '.' not in k]
+print(f'\n=== Top-level keys (no namespace): {len(top_level)} ===')
+for k in top_level[:30]:
+ print(f' {k}: "{full_keys[k]}"')
diff --git a/scripts/analyze_modules.py b/scripts/analyze_modules.py
new file mode 100644
index 0000000..ae15a8c
--- /dev/null
+++ b/scripts/analyze_modules.py
@@ -0,0 +1,76 @@
+#!/usr/bin/env python3
+"""
+分析各业务模块的 key,生成迁移映射表
+"""
+import os
+import re
+import json
+
+PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+LANG_FILE = os.path.join(PROJECT_ROOT, 'lang', 'zh-cn.js')
+
+def parse_lang_file(filepath):
+ with open(filepath, 'r', encoding='utf-8') as f:
+ content = f.read()
+ match = re.search(r'export const lang = \{(.*?)\n\};', content, re.DOTALL)
+ if not match:
+ return {}
+ body = match.group(1)
+ lines = body.split('\n')
+ stack = []
+ result = {}
+ for line in lines:
+ stripped = line.strip()
+ if not stripped:
+ continue
+ indent = len(line) - len(line.lstrip())
+ level = indent // 4 + 1
+ while len(stack) >= level:
+ stack.pop()
+ obj_match = re.match(r'"([^"]+)"\s*:\s*\{', stripped)
+ if obj_match:
+ stack.append(obj_match.group(1))
+ continue
+ val_match = re.match(r'"([^"]+)"\s*:\s*"([^"]*)"', stripped)
+ if val_match:
+ key = val_match.group(1)
+ value = val_match.group(2)
+ full_path = '.'.join(stack + [key])
+ result[full_path] = value
+ return result
+
+def main():
+ data = parse_lang_file(LANG_FILE)
+
+ # 按一级命名空间分组
+ groups = {}
+ for k, v in data.items():
+ parts = k.split('.')
+ ns = parts[0]
+ if ns not in groups:
+ groups[ns] = []
+ groups[ns].append((k, v))
+
+ print("=" * 80)
+ print("各业务模块 key 数量统计")
+ print("=" * 80)
+ for ns, items in sorted(groups.items(), key=lambda x: -len(x[1])):
+ machine_count = sum(1 for k, v in items if re.search(r'\.l\d+\.t\d+', k))
+ print(f"\n{ns}: {len(items)} 个 key (机器生成: {machine_count})")
+ # 打印前 10 个示例
+ for k, v in items[:10]:
+ print(f" {k} -> \"{v}\"")
+ if len(items) > 10:
+ print(f" ... 还有 {len(items) - 10} 个")
+
+ # 特别关注 goods 相关的
+ print("\n" + "=" * 80)
+ print("GOODS 相关 key 详情")
+ print("=" * 80)
+ goods_keys = [(k, v) for k, v in data.items() if k.startswith('goods') or 'goods' in k.lower()]
+ print(f"共 {len(goods_keys)} 个 goods 相关 key")
+ for k, v in goods_keys[:30]:
+ print(f" {k} -> \"{v}\"")
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/diagnose_keys.py b/scripts/diagnose_keys.py
deleted file mode 100644
index 41b578e..0000000
--- a/scripts/diagnose_keys.py
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/usr/bin/env python3
-"""诊断: 哪些 $lang() 调用的 key 在哪能找到"""
-import re
-from pathlib import Path
-
-ROOT = Path('.')
-
-call_keys = set()
-for f in ROOT.rglob('*.vue'):
- sp = str(f)
- if 'unpackage' in sp or 'node_modules' in sp:
- continue
- try:
- text = f.read_text(encoding='utf-8')
- except UnicodeDecodeError:
- continue
- for m in re.finditer(r'\$lang\(\s*["\']([^"\']+)["\']', text):
- call_keys.add(m.group(1))
-
-print(f'所有 $lang() 调用 key: {len(call_keys)} 个')
-
-single = (ROOT / 'lang' / 'zh-cn.js').read_text(encoding='utf-8')
-in_single = set()
-for k in call_keys:
- if f'"{k}":' in single:
- in_single.add(k)
-print(f' 在 lang/zh-cn.js 单文件里: {len(in_single)}')
-
-modular = set()
-for f in (ROOT / 'lang' / 'zh-cn').glob('*.js'):
- if f.name == 'index.js':
- continue
- text = f.read_text(encoding='utf-8')
- for k in call_keys:
- leaf = k.split('.')[-1]
- if f'"{leaf}"' in text or f'"{k}"' in text:
- modular.add(k)
-print(f' 在 lang/zh-cn/ modular 文件里: {len(modular)}')
-
-orphan = call_keys - in_single - modular
-print(f' 都不在 (orphan 调用): {len(orphan)}')
-if orphan:
- for k in sorted(orphan)[:10]:
- print(f' - {k}')
\ No newline at end of file
diff --git a/scripts/find_i18n_key.py b/scripts/find_i18n_key.py
new file mode 100644
index 0000000..509a22c
--- /dev/null
+++ b/scripts/find_i18n_key.py
@@ -0,0 +1,214 @@
+#!/usr/bin/env python3
+"""
+i18n key 定位工具
+用法:
+ python scripts/find_i18n_key.py # 按 key 搜索调用位置
+ python scripts/find_i18n_key.py -v # 按翻译值反向搜索 key
+ python scripts/find_i18n_key.py -f # 列出某文件中使用的所有 key
+ python scripts/find_i18n_key.py --unused # 找出未被使用的 key
+ python scripts/find_i18n_key.py --duplicate # 找出同翻译不同 key 的重复项
+"""
+
+import os
+import re
+import sys
+import json
+
+PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+LANG_FILE = os.path.join(PROJECT_ROOT, 'lang', 'zh-cn.js')
+
+SEARCH_DIRS = [
+ 'common',
+ 'components',
+ 'components-diy',
+ 'pages',
+ 'pages_goods',
+ 'pages_order',
+ 'pages_promotion',
+ 'pages_tool',
+]
+
+def parse_lang_file(filepath):
+ """解析语言包文件,返回展平的 key-value 字典"""
+ with open(filepath, 'r', encoding='utf-8') as f:
+ content = f.read()
+
+ match = re.search(r'export const lang = \{(.*?)\n\};', content, re.DOTALL)
+ if not match:
+ return {}
+
+ body = match.group(1)
+ lines = body.split('\n')
+ stack = []
+ result = {}
+
+ for line in lines:
+ stripped = line.strip()
+ if not stripped:
+ continue
+ indent = len(line) - len(line.lstrip())
+ level = indent // 4 + 1
+
+ while len(stack) >= level:
+ stack.pop()
+
+ obj_match = re.match(r'"([^"]+)"\s*:\s*\{', stripped)
+ if obj_match:
+ stack.append(obj_match.group(1))
+ continue
+
+ val_match = re.match(r'"([^"]+)"\s*:\s*"([^"]*)"', stripped)
+ if val_match:
+ key = val_match.group(1)
+ value = val_match.group(2)
+ full_path = '.'.join(stack + [key])
+ result[full_path] = value
+
+ return result
+
+def find_key_usage(key_pattern):
+ """搜索 key 在哪些文件中被使用"""
+ pattern = re.compile(rf'\$lang\([\'"]({re.escape(key_pattern)})[\'"]')
+ results = []
+
+ for dirname in SEARCH_DIRS:
+ dirpath = os.path.join(PROJECT_ROOT, dirname)
+ if not os.path.isdir(dirpath):
+ continue
+ for root, dirs, files in os.walk(dirpath):
+ for fname in files:
+ if not fname.endswith(('.vue', '.js')):
+ continue
+ fpath = os.path.join(root, fname)
+ try:
+ with open(fpath, 'r', encoding='utf-8') as f:
+ content = f.read()
+ for i, line in enumerate(content.split('\n'), 1):
+ if pattern.search(line):
+ rel_path = os.path.relpath(fpath, PROJECT_ROOT)
+ results.append((rel_path, i, line.strip()))
+ except:
+ pass
+
+ return results
+
+def find_value_in_lang(value_substr, lang_data):
+ """按翻译值反向搜索 key"""
+ results = []
+ for k, v in lang_data.items():
+ if value_substr in v:
+ results.append((k, v))
+ return results
+
+def list_file_keys(filepath):
+ """列出某个文件中使用的所有 $lang key"""
+ full_path = os.path.join(PROJECT_ROOT, filepath)
+ if not os.path.exists(full_path):
+ print(f"文件不存在: {filepath}")
+ return []
+
+ pattern = re.compile(r'\$lang\([\'"]([^\'"]+)[\'"]')
+ keys = []
+ with open(full_path, 'r', encoding='utf-8') as f:
+ for i, line in enumerate(f, 1):
+ m = pattern.findall(line)
+ for k in m:
+ keys.append((k, i))
+ return keys
+
+def find_all_used_keys():
+ """找出所有被使用的 key"""
+ pattern = re.compile(r'\$lang\([\'"]([^\'"]+)[\'"]')
+ used = set()
+
+ for dirname in SEARCH_DIRS:
+ dirpath = os.path.join(PROJECT_ROOT, dirname)
+ if not os.path.isdir(dirpath):
+ continue
+ for root, dirs, files in os.walk(dirpath):
+ for fname in files:
+ if not fname.endswith(('.vue', '.js')):
+ continue
+ fpath = os.path.join(root, fname)
+ try:
+ with open(fpath, 'r', encoding='utf-8') as f:
+ content = f.read()
+ matches = pattern.findall(content)
+ used.update(matches)
+ except:
+ pass
+ return used
+
+def find_duplicate_values(lang_data):
+ """找出同翻译不同 key 的重复项"""
+ value_to_keys = {}
+ for k, v in lang_data.items():
+ if v and len(v) >= 2:
+ if v not in value_to_keys:
+ value_to_keys[v] = []
+ value_to_keys[v].append(k)
+ return {v: ks for v, ks in value_to_keys.items() if len(ks) > 1}
+
+def main():
+ if len(sys.argv) < 2:
+ print(__doc__)
+ return
+
+ lang_data = parse_lang_file(LANG_FILE)
+
+ if sys.argv[1] == '--unused':
+ used = find_all_used_keys()
+ all_keys = set(lang_data.keys())
+ unused = all_keys - used
+ print(f"总 key 数: {len(all_keys)}")
+ print(f"被使用的 key 数: {len(used)}")
+ print(f"未使用的 key 数: {len(unused)}")
+ print("\n未使用的 key:")
+ for k in sorted(unused)[:50]:
+ print(f" {k} -> \"{lang_data.get(k, '')}\"")
+ if len(unused) > 50:
+ print(f" ... 还有 {len(unused) - 50} 个")
+ return
+
+ if sys.argv[1] == '--duplicate':
+ dups = find_duplicate_values(lang_data)
+ print(f"同翻译不同 key 的组数: {len(dups)}")
+ print("\n重复最多的翻译 Top 20:")
+ sorted_dups = sorted(dups.items(), key=lambda x: -len(x[1]))[:20]
+ for v, ks in sorted_dups:
+ print(f'\n "{v}" ({len(ks)} 个 key):')
+ for k in ks[:8]:
+ print(f" - {k}")
+ return
+
+ if sys.argv[1] == '-f' and len(sys.argv) > 2:
+ filepath = sys.argv[2]
+ keys = list_file_keys(filepath)
+ print(f"文件 {filepath} 中使用的 key ({len(keys)} 个):")
+ for k, line in keys:
+ val = lang_data.get(k, '【未找到】')
+ print(f" L{line}: {k} -> \"{val}\"")
+ return
+
+ if sys.argv[1] == '-v' and len(sys.argv) > 2:
+ value = sys.argv[2]
+ results = find_value_in_lang(value, lang_data)
+ print(f"包含 \"{value}\" 的翻译 ({len(results)} 个):")
+ for k, v in results[:30]:
+ print(f" {k} -> \"{v}\"")
+ if len(results) > 30:
+ print(f" ... 还有 {len(results) - 30} 个")
+ return
+
+ # 默认:按 key 搜索
+ key = sys.argv[1]
+ usages = find_key_usage(key)
+ print(f'搜索 key: "{key}"')
+ print(f"找到 {len(usages)} 处使用:")
+ for fpath, line, content in usages[:30]:
+ print(f" {fpath}:{line} {content[:80]}")
+ if len(usages) > 30:
+ print(f" ... 还有 {len(usages) - 30} 处")
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/full_migrate_i18n.py b/scripts/full_migrate_i18n.py
deleted file mode 100644
index 7c1f7d6..0000000
--- a/scripts/full_migrate_i18n.py
+++ /dev/null
@@ -1,807 +0,0 @@
-#!/usr/bin/env python3
-"""
-[DEPRECATED] 自 2026-06-25 起不再使用 — 详见 docs/i18n-rules.md
-
-i18n 全量迁移脚本:把旧的单文件机器生成 key 全部迁移到新的多文件语义化结构
-
-⚠️ 此脚本的输出违反 CLAUDE.md 铁律:
- - 会产生大量中文 key(违反 1.2 命名空间铁律)
- - 把无法分类的 key 全部塞进 common.*(违反 common 只放真正通用文案的语义)
- - 保留 lXX.tYY 行号式 key(违反长期维护目标 4)
-
-正确的迁移方式:
- - 每个业务模块单独一个 commit(避免 CLAUDE.md 1.5 夹带风险)
- - 人类按 <业务域>.<子模块>.<语义> 命名,由机器只做查重和替换
- - 完成后跑 python scripts/i18n_check.py 验证
-
-用法(仍然能跑,但产出不符合规范):
- python scripts/full_migrate_i18n.py --analyze # 分析分类结果
- python scripts/full_migrate_i18n.py --generate # 生成新语言包文件 + 映射表
- python scripts/full_migrate_i18n.py --apply # 替换代码中所有旧 key
-"""
-
-import os
-import re
-import sys
-import json
-import shutil
-from collections import defaultdict
-
-PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
-ZH_FILE = os.path.join(PROJECT_ROOT, 'lang', 'zh-cn.js')
-EN_FILE = os.path.join(PROJECT_ROOT, 'lang', 'en-us.js')
-NEW_ZH_DIR = os.path.join(PROJECT_ROOT, 'lang', 'zh-cn')
-NEW_EN_DIR = os.path.join(PROJECT_ROOT, 'lang', 'en-us')
-MAP_FILE = os.path.join(PROJECT_ROOT, 'lang', '_migration_map.json')
-
-SEARCH_DIRS = [
- 'common', 'components', 'components-diy', 'pages',
- 'pages_goods', 'pages_order', 'pages_promotion', 'pages_tool',
-]
-
-# 业务域分类规则(按 key 前缀匹配,优先级从高到低)
-NAMESPACE_RULES = [
- # ===== 商品相关 =====
- ('goods', [
- 'goods.', 'ns-goods', 'ns-goods-sku', 'ns-goods-recommend',
- 'list.l', 'detail.l', 'category.', 'search', 'Search', 'Random',
- 'Sales', 'Price', 'Filter', 'stock', 'spec', 'details',
- 'sellout', 'addcart', 'buynow', 'buy', 'follow', 'consult',
- 'Make', 'make', 'max', 'status',
- ]),
- # ===== 订单相关 =====
- ('order', [
- 'order.', 'order_list', 'orders', 'order_detail',
- 'waitpay', 'waitsend', 'waitconfirm', 'completed',
- 'payment', 'refund', 'aftersale', 'activist',
- 'express', 'logistics', 'ship', 'delivery',
- ]),
- # ===== 购物车 =====
- ('cart', [
- 'cart.', 'shoppingCart', 'addCart', 'addcart',
- 'settlement', 'total',
- ]),
- # ===== 支付相关 =====
- ('pay', [
- 'pay.', 'payment', 'paypassword', 'payPassword',
- 'paymentAmount', 'paymentSuccess', 'paymentFail',
- ]),
- # ===== 个人中心 =====
- ('member', [
- 'member.', 'userinfo', 'userInfo', 'account',
- 'address', 'addressPlaceholder', 'consignee',
- 'collection', 'footprint', 'assets', 'balance',
- 'cancellation', 'cancelrefuse', 'cancelstatus', 'cancelsuccess',
- 'card', 'card_buy', 'info_edit',
- ]),
- # ===== 登录注册 =====
- ('login', [
- 'login.', 'ns-login', 'find.', 'register',
- 'captcha', 'dynacode', 'animateCode',
- 'accountInput', 'accountPlaceholder', 'accountType',
- 'password', 'mobile', 'phone', 'userName', 'username',
- 'logout', 'loginSuccess', 'loginTpis',
- 'registerAgreement', 'privacyPolicy', 'userService',
- 'agreeAgreement',
- ]),
- # ===== 优惠券 =====
- ('coupon', [
- 'coupon.', 'coupon-empty', 'ns-coupon',
- ]),
- # ===== 积分 =====
- ('point', [
- 'point.', 'points', 'exchange', '积分',
- ]),
- # ===== 分销 =====
- ('fenxiao', [
- 'fenxiao.', 'commission', 'withdrawal',
- 'myTeam', 'team', '推广',
- ]),
- # ===== 商家/店铺 =====
- ('merch', [
- 'merch.', 'merchcategory', 'merchant',
- 'diy-merch-list', '店铺', '商家',
- ]),
- # ===== DIY 装修 =====
- ('diy', [
- 'diy.', 'diy-', 'ns-diy',
- 'diy-search', 'diy-category', 'diy-kefu', 'diy-listmenu',
- 'diy-map', 'diy-text', 'diy-notice', 'diy-coupon',
- ]),
- # ===== 客服聊天 =====
- ('chat', [
- 'chat.', 'ns-chat', 'customerService',
- 'service', 'contactService', 'wxwork-contact',
- 'leave', 'onlineMessage', 'messageContent',
- 'pleaseEnterMessage',
- ]),
- # ===== AI 聊天 =====
- ('ai_chat', [
- 'ai-chat.', 'ai_chat.', 'aiChat', 'ai-chat-',
- 'aiThinking', 'aiNickname', 'ai_chat',
- 'chatCleared', 'confirmClearChat',
- 'fallbackWelcome', 'serviceUnavailable',
- 'serviceTemporaryUnavailable',
- ]),
- # ===== 文章 =====
- ('article', [
- 'article.', 'articles',
- ]),
- # ===== 公告 =====
- ('notice', [
- 'notice.', 'notices',
- ]),
- # ===== 帮助 =====
- ('help', [
- 'help.', 'helpCenter',
- ]),
- # ===== 印章 =====
- ('seal', [
- 'seal.', '印章',
- ]),
- # ===== 门店关闭 =====
- ('storeclose', [
- 'storeclose.', 'store_close',
- ]),
- # ===== 文件相关 =====
- ('common', [
- 'file-preview', 'file-preview', 'files.',
- ]),
- # ===== 通用组件(归到 common) =====
- ('common', [
- 'ns-empty', 'ns-loading', 'ns-form', 'ns-tabbar',
- 'ns-copyright', 'ns-video-player', 'ns-popup',
- 'ns-pick-regions', 'pick-regions', 'ns-scroll-list',
- 'copy', 'share', 'save', 'delete', 'edit', 'submit',
- 'cancel', 'close', 'reset', 'confirm', 'complete',
- 'searchTip', 'searchPlaceholder', 'searchEntrance',
- 'emptyTips', 'noDataTip', 'loading', 'loadingText',
- 'loadMore', 'loadMoreTxt', 'loadMoreLoading',
- 'currencySymbol', 'symbol',
- 'toGoodsCategoryPage', 'goHome', 'goShopping',
- 'prompt', 'copySuccess', 'copyFail', 'copyFailed',
- 'operationSuccess', 'operationFailed', 'networkError',
- 'saveSuccess', 'saveSuc', 'updateSuccess',
- 'noContentToCopy', 'noMatchResult',
- 'inputPlaceholder', 'selectPlaceholder',
- 'required', 'invalid', 'maxUpload',
- 'endDateBeforeStart', 'endTimeBeforeStartTime',
- 'idCardInvalid', 'phoneInvalid',
- 'selectAtLeastOne', 'uploadAtLeastOne',
- 'selectProvinceCity', 'selectProvinceCityDistrict',
- 'home', 'about', 'call', 'oneClickNavigation',
- 'location', 'image', 'video', 'audio', 'file',
- 'voice', 'voiceInput', 'emoji',
- 'send', 'settlement',
- 'allElection', 'selectAll',
- 'next', 'previous', 'retry',
- 'pageTitle', 'title',
- ]),
-]
-
-# key 名规范化映射(常见模式转换)
-KEY_NORMALIZE_PATTERNS = [
- # 组件前缀去除
- (r'^ns-', ''),
- # 文件扩展名去除
- (r'\.public\.js\.', '.'),
- (r'\.js\.', '.'),
- # 行号模式去除(lXX.tY -> 不处理,交由后面的逻辑)
- # 大小写规范化
-]
-
-
-def parse_lang_file(filepath):
- """解析语言包文件,返回展平的 key-value 字典"""
- with open(filepath, 'r', encoding='utf-8') as f:
- content = f.read()
-
- match = re.search(r'export const lang = \{(.*?)\n\};', content, re.DOTALL)
- if not match:
- return {}
-
- body = match.group(1)
- lines = body.split('\n')
- stack = []
- result = {}
-
- for line in lines:
- stripped = line.strip()
- if not stripped:
- continue
- indent = len(line) - len(line.lstrip())
- level = indent // 4 + 1
-
- while len(stack) >= level:
- stack.pop()
-
- obj_match = re.match(r'"([^"]+)"\s*:\s*\{', stripped)
- if obj_match:
- stack.append(obj_match.group(1))
- continue
-
- val_match = re.match(r'"([^"]+)"\s*:\s*"([^"]*)"', stripped)
- if val_match:
- key = val_match.group(1)
- value = val_match.group(2)
- full_path = '.'.join(stack + [key])
- result[full_path] = value
-
- return result
-
-
-def classify_key(old_key, old_value):
- """根据旧 key 和翻译值判断属于哪个业务域"""
- # 先按规则匹配
- for namespace, prefixes in NAMESPACE_RULES:
- for prefix in prefixes:
- lower_key = old_key.lower()
- lower_prefix = prefix.lower()
- if lower_key.startswith(lower_prefix) or lower_prefix in lower_key:
- return namespace
-
- # 兜底:根据翻译值的关键词判断
- value_keywords = {
- 'goods': ['商品', '规格', '库存', '销量', '购买', '加入购物车', '立即购买', '商品详情'],
- 'order': ['订单', '付款', '发货', '收货', '退款', '售后', '物流'],
- 'cart': ['购物车', '结算', '合计'],
- 'pay': ['支付', '付款', '支付密码'],
- 'member': ['个人', '资料', '收货地址', '收藏', '浏览', '余额', '积分', '会员卡'],
- 'login': ['登录', '注册', '密码', '验证码', '账号', '手机号', '忘记密码'],
- 'coupon': ['优惠券', '领券', '满减'],
- 'fenxiao': ['分销', '佣金', '提成', '团队'],
- 'merch': ['店铺', '商家', '品牌'],
- 'diy': ['装修', '组件', '模板'],
- 'chat': ['客服', '聊天', '消息'],
- 'ai_chat': ['AI', '智能', '助手'],
- 'article': ['文章', '资讯'],
- 'notice': ['公告', '通知'],
- 'help': ['帮助', 'FAQ'],
- }
-
- for namespace, keywords in value_keywords.items():
- for kw in keywords:
- if kw in old_value:
- return namespace
-
- # 最终兜底:归到 common
- return 'common'
-
-
-def generate_new_key(old_key, old_value, namespace):
- """根据旧 key 和翻译值生成语义化新 key"""
-
- # 已有良好命名的 key(非机器生成),只调整命名空间
- if not re.search(r'\.l\d+\.t\d+', old_key) and '.' in old_key:
- # 已经有命名空间的,检查是否需要调整
- parts = old_key.split('.')
- first_part = parts[0]
-
- # 如果第一个就是正确的业务域,保持原样(转换为 snake_case)
- if first_part == namespace:
- return to_snake_case(old_key)
-
- # 否则加上业务域前缀
- return to_snake_case(f"{namespace}.{old_key}")
-
- # 扁平 key(无点),加业务域前缀
- if '.' not in old_key:
- # 常见的扁平 key 映射
- flat_map = {
- 'buy': 'action.buy',
- 'buynow': 'action.buy_now',
- 'save': 'button.save',
- 'cancel': 'button.cancel',
- 'submit': 'button.submit',
- 'delete': 'button.delete',
- 'edit': 'button.edit',
- 'close': 'button.close',
- 'search': 'button.search',
- 'reset': 'button.reset',
- 'copy': 'button.copy',
- 'share': 'button.share',
- 'retry': 'button.retry',
- 'next': 'button.next',
- 'previous': 'button.prev',
- 'back': 'button.back',
- 'confirm': 'button.confirm',
- 'complete': 'button.confirm',
- 'prompt': 'dialog.tip_title',
- 'logout': 'button.logout',
- 'login': 'button.login',
- 'register': 'button.register',
- 'loading': 'loading.text',
- 'emptyTips': 'empty.text',
- 'noDataTip': 'empty.text',
- 'goHome': 'empty.go_home',
- 'toGoodsCategoryPage': 'empty.go_shopping',
- 'home': 'nav.home',
- 'currencySymbol': 'currency.symbol',
- 'symbol': 'currency.symbol',
- 'copySuccess': 'tip.copy_success',
- 'copyFail': 'tip.copy_fail',
- 'saveSuccess': 'tip.save_success',
- 'operationSuccess': 'tip.operation_success',
- 'operationFailed': 'tip.operation_failed',
- 'networkError': 'tip.network_error',
- 'allElection': 'button.select_all',
- 'settlement': 'button.checkout',
- 'stock': 'detail.stock',
- 'spec': 'detail.spec',
- 'details': 'detail.details',
- 'sales': 'list.sales',
- 'price': 'list.price',
- 'Search': 'placeholder.search',
- 'searchTip': 'placeholder.search',
- 'searchPlaceholder': 'placeholder.search',
- 'searchEntrance': 'placeholder.search',
- 'inputPlaceholder': 'placeholder.input',
- 'selectPlaceholder': 'placeholder.select',
- 'required': 'form.required',
- 'invalid': 'form.invalid',
- 'title': 'common.title',
- 'status': 'detail.status',
- }
- lower_key = old_key.lower()
- for k, v in flat_map.items():
- if lower_key == k.lower():
- return f"{namespace}.{v}"
-
- # 其他扁平 key,转 snake_case 后放 list 或 detail 下
- return f"{namespace}.list.{to_snake_case(old_key)}"
-
- # 机器生成的行号 key(含 .lXX.tY)
- # 提取前面的路径部分作为子模块
- parts = old_key.split('.')
-
- # 去掉行号部分
- meaningful_parts = []
- for p in parts:
- if re.match(r'^l\d+$', p):
- break
- meaningful_parts.append(p)
-
- # 去掉组件前缀中的 ns-
- sub_parts = []
- for p in meaningful_parts:
- p = re.sub(r'^ns-', '', p)
- p = re.sub(r'-index$', '', p)
- sub_parts.append(p)
-
- sub_path = '.'.join(sub_parts) if sub_parts else 'list'
-
- # 如果翻译值有明确语义,用翻译值生成 key
- semantic_suffix = generate_key_from_value(old_value)
-
- new_key = f"{namespace}.{sub_path}.{semantic_suffix}"
- new_key = to_snake_case(new_key)
-
- # 清理多余的层级
- new_key = clean_key_path(new_key, namespace)
-
- return new_key
-
-
-def generate_key_from_value(value):
- """根据翻译值生成语义化的 key 后缀"""
- if not value:
- return 'text'
-
- # 常见翻译值映射
- value_map = {
- '确定': 'confirm',
- '取消': 'cancel',
- '保存': 'save',
- '删除': 'delete',
- '提交': 'submit',
- '关闭': 'close',
- '搜索': 'search',
- '重置': 'reset',
- '编辑': 'edit',
- '复制': 'copy',
- '分享': 'share',
- '返回': 'back',
- '下一步': 'next',
- '上一步': 'prev',
- '加载更多': 'load_more',
- '重试': 'retry',
- '确认': 'confirm',
- '完成': 'confirm',
- '提示': 'tip_title',
- '暂无相关数据': 'empty_text',
- '暂无记录': 'empty_text',
- '去逛逛': 'go_shopping',
- '回到首页': 'go_home',
- '加载中': 'loading_text',
- '加载中...': 'loading_text',
- '下拉刷新': 'pull_refresh',
- '释放更新': 'release_update',
- '购买': 'buy',
- '立即购买': 'buy_now',
- '加入购物车': 'add_cart',
- '立即咨询': 'consult',
- '收藏': 'follow',
- '销量': 'sales',
- '价格': 'price',
- '综合': 'comprehensive',
- '筛选': 'filter',
- '库存': 'stock',
- '规格': 'spec',
- '商品详情': 'details',
- '合计': 'total',
- '结算': 'checkout',
- '管理': 'edit',
- '全选': 'select_all',
- '请输入搜索关键词': 'search_placeholder',
- '请输入您要搜索的商品': 'search_placeholder',
- '搜索商品': 'search_placeholder',
- '暂无相关商品': 'empty_text',
- '商品列表': 'title',
- '订单列表': 'title',
- '我的订单': 'title',
- '订单详情': 'title',
- '待付款': 'pending_payment',
- '待发货': 'pending_shipment',
- '待收货': 'pending_receipt',
- '已完成': 'completed',
- '售后': 'after_sale',
- '全部': 'all',
- '支付成功': 'pay_success',
- '支付失败': 'pay_fail',
- '支付金额': 'pay_amount',
- '登录': 'login',
- '注册': 'register',
- '忘记密码?': 'forgot_password',
- '退出登录': 'logout',
- '个人资料': 'title',
- '收货地址': 'title',
- '我的收藏': 'title',
- '浏览记录': 'title',
- '个人中心': 'title',
- '账号': 'account',
- '密码': 'password',
- '手机号': 'mobile',
- '验证码': 'captcha',
- '动态码': 'dynacode',
- '获取验证码': 'get_captcha',
- '获取动态码': 'get_dynacode',
- '联系客服': 'customer_service',
- '客服热线': 'service_hotline',
- '复制成功': 'copy_success',
- '复制失败': 'copy_fail',
- '保存成功': 'save_success',
- '操作成功': 'operation_success',
- '操作失败': 'operation_failed',
- '网络错误,请稍后重试': 'network_error',
- '暂无相关订单': 'empty_text',
- '购物车是空的': 'empty_text',
- '立即付款': 'pay_now',
- '取消订单': 'cancel_order',
- '确认收货': 'confirm_receipt',
- '申请退款': 'apply_refund',
- '查看物流': 'view_logistics',
- '再次购买': 'buy_again',
- '删除订单': 'delete_order',
- '订单编号': 'order_no',
- '下单时间': 'create_time',
- '实付金额': 'pay_amount',
- '商品总额': 'goods_total',
- '运费': 'shipping_fee',
- '优惠': 'discount',
- '配送方式': 'shipping_method',
- '支付方式': 'payment_method',
- '买家留言': 'buyer_message',
- '库存不足': 'insufficient_stock',
- '商品已下架': 'off_shelf',
- '商品已售罄': 'sold_out',
- '已选规格:': 'selected_spec',
- '购买数量': 'buy_quantity',
- '兑换数量': 'exchange_quantity',
- '每人限购': 'limit_buy',
- '最多购买': 'max_buy',
- }
-
- # 精确匹配
- if value in value_map:
- return value_map[value]
-
- # 短翻译值直接用(去除特殊字符)
- if len(value) <= 10 and len(value) >= 2:
- clean = re.sub(r'[^\w\u4e00-\u9fa5]', '', value)
- if clean:
- return to_snake_case(clean)
-
- # 长文本用通用后缀
- if '暂无' in value:
- return 'empty_text'
- if '请输入' in value:
- return 'placeholder'
- if '确定要' in value:
- return 'confirm_tip'
- if '成功' in value:
- return 'success_tip'
- if '失败' in value:
- return 'fail_tip'
-
- return 'text'
-
-
-def to_snake_case(text):
- """转换为 snake_case"""
- # 先处理中划线
- text = text.replace('-', '_')
- # 处理驼峰:在大写字母前加下划线
- text = re.sub(r'([A-Z])', r'_\1', text)
- # 多下划线合并
- text = re.sub(r'_+', '_', text)
- # 转小写
- text = text.lower()
- # 去除首尾下划线
- text = text.strip('_')
- return text
-
-
-def clean_key_path(key, namespace):
- """清理 key 路径中多余的层级"""
- parts = key.split('.')
-
- # 去除重复的业务域
- if parts[0] == namespace and len(parts) > 1 and parts[1] == namespace:
- parts = [parts[0]] + parts[2:]
-
- # 合并常见的冗余层级
- # 例如 goods.goods.sku -> goods.sku
- if len(parts) >= 2 and parts[0] == parts[1]:
- parts = [parts[0]] + parts[2:]
-
- # 控制层级在 2-4 级
- if len(parts) > 4:
- # 保留首尾,中间合并
- parts = [parts[0], parts[1], '_'.join(parts[2:-1]), parts[-1]]
-
- return '.'.join(parts)
-
-
-def analyze():
- """分析分类结果"""
- zh_data = parse_lang_file(ZH_FILE)
- print(f"总 key 数: {len(zh_data)}")
-
- # 分类统计
- categories = defaultdict(list)
- for k, v in zh_data.items():
- ns = classify_key(k, v)
- new_key = generate_new_key(k, v, ns)
- categories[ns].append((k, new_key, v))
-
- print("\n" + "=" * 80)
- print("分类结果统计")
- print("=" * 80)
- for ns in sorted(categories.keys(), key=lambda x: -len(categories[x])):
- items = categories[ns]
- print(f"\n{ns}: {len(items)} 个 key")
- for old_key, new_key, value in items[:8]:
- print(f" {old_key} -> {new_key} ({value[:30]})")
- if len(items) > 8:
- print(f" ... 还有 {len(items) - 8} 个")
-
- # 检查新 key 冲突
- all_new_keys = defaultdict(list)
- for ns, items in categories.items():
- for old_key, new_key, value in items:
- all_new_keys[new_key].append((old_key, value))
-
- conflicts = {k: v for k, v in all_new_keys.items() if len(v) > 1}
- print(f"\n\n新 key 冲突数: {len(conflicts)}")
- if conflicts:
- print("冲突的 key:")
- for new_key, old_list in list(conflicts.items())[:15]:
- print(f" {new_key}:")
- for old_key, value in old_list[:5]:
- print(f" - {old_key} -> \"{value[:30]}\"")
-
- return categories
-
-
-def build_nested_dict(flat_dict):
- """将展平的 key-value 转换为嵌套对象"""
- result = {}
- for key, value in flat_dict.items():
- parts = key.split('.')
- current = result
- for i, part in enumerate(parts[:-1]):
- if part not in current:
- current[part] = {}
- elif isinstance(current[part], str):
- # 冲突:当前是字符串,但需要变成对象
- # 把字符串值移到 text 子键下
- current[part] = {'text': current[part]}
- current = current[part]
-
- # 处理最后一级
- last_part = parts[-1]
- if last_part in current and isinstance(current[last_part], dict):
- # 冲突:要写字符串,但已经是对象了
- # 把字符串写到 text 子键
- current[last_part]['text'] = value
- else:
- current[last_part] = value
- return result
-
-
-def write_lang_module(filepath, module_name, data):
- """写入单个语言模块文件"""
- # 确保目录存在
- os.makedirs(os.path.dirname(filepath), exist_ok=True)
-
- # 生成缩进的 JS 对象字符串
- def to_js_obj(obj, indent=1):
- lines = []
- tab = '\t' * indent
- for key, value in sorted(obj.items()):
- if isinstance(value, dict):
- lines.append(f"{tab}{key}: {{")
- lines.append(to_js_obj(value, indent + 1))
- lines.append(f"{tab}}},")
- else:
- # 转义特殊字符
- escaped = value.replace('\\', '\\\\').replace("'", "\\'")
- lines.append(f"{tab}{key}: '{escaped}',")
- return '\n'.join(lines)
-
- content = f"""// {module_name} 模块文案
-
-export const {module_name} = {{
-{to_js_obj(data)}
-}};
-"""
- with open(filepath, 'w', encoding='utf-8') as f:
- f.write(content)
-
-
-def generate():
- """生成新的多文件语言包和映射表"""
- zh_data = parse_lang_file(ZH_FILE)
- en_data = parse_lang_file(EN_FILE)
-
- # 分类
- categories = defaultdict(dict) # namespace -> {new_key: zh_value}
- en_categories = defaultdict(dict) # namespace -> {new_key: en_value}
- migration_map = {} # old_key -> new_key
-
- # 用于去重的计数器
- new_key_counter = defaultdict(int)
-
- for old_key, zh_val in zh_data.items():
- ns = classify_key(old_key, zh_val)
- new_key = generate_new_key(old_key, zh_val, ns)
-
- # 处理冲突:如果新 key 已存在且值不同,加后缀
- if new_key in categories[ns]:
- existing_val = categories[ns][new_key]
- if existing_val != zh_val:
- # 翻译不同,加序号区分
- new_key_counter[new_key] += 1
- new_key = f"{new_key}_{new_key_counter[new_key] + 1}"
-
- categories[ns][new_key] = zh_val
- migration_map[old_key] = new_key
-
- # 英文也同步处理
- if old_key in en_data:
- en_categories[ns][new_key] = en_data[old_key]
- else:
- en_categories[ns][new_key] = ''
-
- # 写入中文语言包
- print("生成中文语言包...")
- for ns, data in categories.items():
- filepath = os.path.join(NEW_ZH_DIR, f'{ns}.js')
- nested = build_nested_dict(data)
- write_lang_module(filepath, ns, nested)
- print(f" {ns}.js: {len(data)} 个 key")
-
- # 写入英文语言包
- print("\n生成英文语言包...")
- for ns, data in en_categories.items():
- filepath = os.path.join(NEW_EN_DIR, f'{ns}.js')
- nested = build_nested_dict(data)
- write_lang_module(filepath, ns, nested)
- print(f" {ns}.js: {len(data)} 个 key")
-
- # 保存映射表
- with open(MAP_FILE, 'w', encoding='utf-8') as f:
- json.dump(migration_map, f, ensure_ascii=False, indent=2)
- print(f"\n映射表已保存: {len(migration_map)} 个映射")
-
- # 统计
- total = len(migration_map)
- print(f"\n迁移统计:")
- print(f" 总 key 数: {total}")
- print(f" 业务模块数: {len(categories)}")
- for ns in sorted(categories.keys(), key=lambda x: -len(categories[x])):
- print(f" {ns}: {len(categories[ns])} 个")
-
-
-def apply_migration():
- """替换代码中所有旧 key"""
- # 读取映射表
- with open(MAP_FILE, 'r', encoding='utf-8') as f:
- mapping = json.load(f)
-
- print(f"加载映射表: {len(mapping)} 个映射")
-
- # 统计
- total_replacements = 0
- files_modified = 0
-
- pattern = re.compile(r'\$lang\(([\'"])([^\'"]+)([\'"])')
-
- for dirname in SEARCH_DIRS:
- dirpath = os.path.join(PROJECT_ROOT, dirname)
- if not os.path.isdir(dirpath):
- continue
- for root, dirs, files in os.walk(dirpath):
- for fname in files:
- if not fname.endswith(('.vue', '.js')):
- continue
- fpath = os.path.join(root, fname)
- try:
- with open(fpath, 'r', encoding='utf-8') as f:
- content = f.read()
-
- original_content = content
-
- def replace_match(m):
- nonlocal total_replacements
- quote1 = m.group(1)
- old_key = m.group(2)
- quote2 = m.group(3)
- if old_key in mapping:
- new_key = mapping[old_key]
- total_replacements += 1
- return f"$lang({quote1}{new_key}{quote2}"
- return m.group(0)
-
- content = pattern.sub(replace_match, content)
-
- if content != original_content:
- with open(fpath, 'w', encoding='utf-8') as f:
- f.write(content)
- files_modified += 1
- rel_path = os.path.relpath(fpath, PROJECT_ROOT)
- print(f" 修改: {rel_path}")
- except Exception as e:
- print(f" 跳过 {fname}: {e}")
-
- print(f"\n完成!替换了 {total_replacements} 处调用,修改了 {files_modified} 个文件")
-
-
-def main():
- args = sys.argv[1:]
-
- if not args or args[0] == '--analyze':
- analyze()
- elif args[0] == '--generate':
- generate()
- elif args[0] == '--apply':
- apply_migration()
- elif args[0] == '--all':
- print("=" * 80)
- print("步骤 1: 分析分类")
- print("=" * 80)
- analyze()
- print("\n" + "=" * 80)
- print("步骤 2: 生成新语言包")
- print("=" * 80)
- generate()
- print("\n" + "=" * 80)
- print("步骤 3: 替换代码中的旧 key")
- print("=" * 80)
- apply_migration()
- else:
- print(__doc__)
-
-
-if __name__ == '__main__':
- main()
diff --git a/scripts/i18n_build_zhcn.py b/scripts/i18n_build_zhcn.py
new file mode 100644
index 0000000..6fc80c6
--- /dev/null
+++ b/scripts/i18n_build_zhcn.py
@@ -0,0 +1,169 @@
+"""
+i18n_build_zhcn.py - 用真实中文 (docs/i18n-real-zh.json) 重建 lang/zh-cn.js
+
+- key -> 真实中文 (来自 f258987 .vue 硬编码)
+- 保留现有 pageTitles (用户说 pageTitles 用现在值即可)
+- en-us 端留空 stub 保持对称
+"""
+import re
+import json
+import sys
+from pathlib import Path
+from collections import defaultdict
+
+ROOT = Path(__file__).resolve().parent.parent
+EN_FILE = ROOT / 'lang' / 'en-us.js'
+ZH_FILE = ROOT / 'lang' / 'zh-cn.js'
+REAL_ZH = ROOT / 'docs' / 'i18n-real-zh.json'
+EXISTING_ZH = ROOT / 'docs' / 'i18n-existing-zh.json'
+
+
+def parse_existing_keys(path):
+ """读现有 lang/.js 的所有 key -> value 映射"""
+ if not path.exists():
+ return {}
+ text = path.read_bytes().decode('utf-8', errors='ignore')
+ out = {}
+ indent_stack = [(-1, '')]
+ for ln in text.split('\n'):
+ if ln.strip().startswith('//') or not ln.strip(): continue
+ indent = len(ln) - len(ln.lstrip())
+ m = re.match(r"""^['\"]?([A-Za-z_][A-Za-z0-9_.]*)['\"]?\s*:\s*(.*)$""", ln.lstrip())
+ if not m: continue
+ key, rest = m.group(1), m.group(2).strip().rstrip(',')
+ while len(indent_stack) > 1 and indent_stack[-1][0] >= indent: indent_stack.pop()
+ parent = indent_stack[-1][1]
+ full_key = f'{parent}.{key}' if parent else key
+ if rest.endswith('{'): indent_stack.append((indent, full_key)); continue
+ v = rest
+ if (v.startswith('"') and v.endswith('"')) or (v.startswith("'") and v.endswith("'")):
+ if len(v) >= 2: v = v[1:-1]
+ out[full_key] = v
+ return out
+
+
+def write_lang(path, d, locale):
+ """写带双引号 key 的 lang/.js, UTF-8"""
+ grouped = defaultdict(dict)
+ top_level = {}
+ for k, v in d.items():
+ parts = k.split('.')
+ if len(parts) == 1:
+ top_level[k] = v
+ else:
+ ns = parts[0]
+ sub = '.'.join(parts[1:])
+ grouped[ns][sub] = v
+
+ lines = [
+ f'// Auto-generated by i18n_build_zhcn.py',
+ f'// Single authoritative lang source. Do not edit manually.',
+ f'// locale: {locale}',
+ f'// Generated: 2026-06-23',
+ '',
+ 'export const lang = {',
+ ]
+ written = set()
+ nested_ns = {'pageTitles', 'common', 'tabBar', 'customer'}
+ for ns in sorted(set(grouped.keys()) | set(top_level.keys())):
+ if ns in nested_ns and ns in grouped:
+ lines.append(f'\t"{ns}": {{')
+ for sub_k in sorted(grouped[ns].keys()):
+ sub_v = grouped[ns][sub_k]
+ escaped = sub_v.replace('\\', '\\\\').replace('"', '\\"')
+ lines.append(f'\t\t"{sub_k}": "{escaped}",')
+ lines.append('\t},')
+ written.add(ns)
+ for ns in sorted(grouped.keys()):
+ if ns in written: continue
+ lines.append(f'\t"{ns}": {{')
+ for sub_k in sorted(grouped[ns].keys()):
+ sub_v = grouped[ns][sub_k]
+ escaped = sub_v.replace('\\', '\\\\').replace('"', '\\"')
+ lines.append(f'\t\t"{sub_k}": "{escaped}",')
+ lines.append('\t},')
+ written.add(ns)
+ for k in sorted(top_level.keys()):
+ if k in written: continue
+ v = top_level[k]
+ escaped = v.replace('\\', '\\\\').replace('"', '\\"')
+ lines.append(f'\t"{k}": "{escaped}",')
+
+ lines.append('};')
+ lines.append('')
+ content = '\n'.join(lines)
+ path.write_bytes(content.encode('utf-8'))
+
+
+def main():
+ # 1. 真实中文 (从 f258987 .vue 硬编码提取)
+ real_zh = json.loads(REAL_ZH.read_text(encoding='utf-8'))
+ print(f'真实中文: {len(real_zh)} 条')
+
+ # 2. 现有 pageTitles 保留 (用户要求)
+ # 解析当前 zh-cn.js, 取 pageTitles 部分
+ current_zh = parse_existing_keys(ZH_FILE)
+ page_titles = {k: v for k, v in current_zh.items() if k.startswith('pageTitles.')}
+ print(f'pageTitles 保留: {len(page_titles)} 条')
+
+ # 3. 现有 en-us 端英文 (用作 en-us 基础, 保留已有的英文翻译)
+ current_en = parse_existing_keys(EN_FILE)
+ print(f'现有 en-us keys: {len(current_en)}')
+
+ # 4. 构造新的 zh-cn
+ new_zh = {}
+ # 先 pageTitles
+ for k, v in page_titles.items():
+ new_zh[k] = v
+ # 再真实中文 (新 key) - 来自 f258987 硬编码
+ for text, new_key in real_zh.items():
+ new_zh[new_key] = text
+ # 再补充: f258987 时 .vue 已有的 $lang 调用 (key 直接用原始 key)
+ if EXISTING_ZH.exists():
+ existing = json.loads(EXISTING_ZH.read_text(encoding='utf-8'))
+ for k, v in existing.items():
+ if k not in new_zh:
+ new_zh[k] = v
+ print(f'已补 {len(existing)} 个 f258987 已有的 $lang 值')
+ # 保留现有 zh-cn 里非 pageTitles 的 key
+ for k, v in current_zh.items():
+ if k.startswith('pageTitles.'): continue
+ if k not in new_zh:
+ new_zh[k] = v
+ print(f'new zh-cn keys: {len(new_zh)}')
+
+ # 5. 构造新的 en-us: 保留已有, 缺中文对应的留空
+ new_en = {}
+ for k, v in current_en.items():
+ if k.startswith('pageTitles.'): continue
+ new_en[k] = v
+ # 真实中文对应的 key, 英文侧: 优先保留已有, 缺则空
+ for new_key in real_zh.values():
+ if new_key not in new_en:
+ new_en[new_key] = ''
+ # 已有 $lang 对应的 key 留空 (中文侧已有, en 端缺)
+ if EXISTING_ZH.exists():
+ existing = json.loads(EXISTING_ZH.read_text(encoding='utf-8'))
+ for k in existing.keys():
+ if k not in new_en:
+ new_en[k] = ''
+ # pageTitles 保留
+ for k, v in page_titles.items():
+ new_en[k] = v
+ print(f'new en-us keys: {len(new_en)}')
+
+ # 6. 写
+ apply = '--apply' in sys.argv
+ if not apply:
+ print('\n[DRY-RUN] 加 --apply 真写文件')
+ return 0
+
+ write_lang(ZH_FILE, new_zh, 'zh-cn')
+ print(f'[OK] {ZH_FILE.relative_to(ROOT)}: {len(new_zh)} keys')
+ write_lang(EN_FILE, new_en, 'en-us')
+ print(f'[OK] {EN_FILE.relative_to(ROOT)}: {len(new_en)} keys')
+ return 0
+
+
+if __name__ == '__main__':
+ sys.exit(main())
\ No newline at end of file
diff --git a/scripts/i18n_check.bat b/scripts/i18n_check.bat
new file mode 100644
index 0000000..c2ba872
--- /dev/null
+++ b/scripts/i18n_check.bat
@@ -0,0 +1,17 @@
+@echo off
+REM i18n_check.bat - Windows 一键审计(等价于 npm run i18n:check)
+
+setlocal
+
+cd /d "%~dp0\.."
+python scripts\i18n_check.py %*
+
+if %ERRORLEVEL% NEQ 0 (
+ echo.
+ echo [FAIL] i18n audits failed - see docs\i18n-*-audit.json
+ exit /b 1
+)
+
+echo.
+echo [OK] i18n audits passed
+exit /b 0
\ No newline at end of file
diff --git a/scripts/i18n_check.sh b/scripts/i18n_check.sh
new file mode 100644
index 0000000..81a7da7
--- /dev/null
+++ b/scripts/i18n_check.sh
@@ -0,0 +1,15 @@
+#!/usr/bin/env bash
+# i18n_check.sh - bash 一键审计(等价于 npm run i18n:check)
+set -e
+
+cd "$(dirname "$0")/.."
+python scripts/i18n_check.py "$@"
+
+if [ $? -ne 0 ]; then
+ echo ""
+ echo "[FAIL] i18n audits failed - see docs/i18n-*-audit.json"
+ exit 1
+fi
+
+echo ""
+echo "[OK] i18n audits passed"
\ No newline at end of file
diff --git a/scripts/i18n_check_symmetry.py b/scripts/i18n_check_symmetry.py
new file mode 100644
index 0000000..6524e55
--- /dev/null
+++ b/scripts/i18n_check_symmetry.py
@@ -0,0 +1,84 @@
+"""
+i18n_check_symmetry.py - 检测 lang/en-us.js 与 lang/zh-cn.js key 是否对称
+
+规则:
+- 两侧 key 集合必须完全一致(一对一)
+- 任意一侧缺失即报错
+
+为什么需要:
+- 历史上 zh-cn.js 的 member 块丢了 11 个 key(activist/cancellation/completed/logout 等)
+ 导致运行时 $lang('member.waitpay') 显示 raw key 而非"待付款"
+- 这个 bug 之前的 audit 抓不到(audit 只看"是否存在",不对比两侧)
+- 这个脚本专门防止此类"单侧缺失"
+
+退出码:0 = 对称 / 非 0 = 不对称
+"""
+import re
+import sys
+from pathlib import Path
+
+ROOT = Path(__file__).resolve().parent.parent
+EN_FILE = ROOT / 'lang' / 'en-us.js'
+ZH_FILE = ROOT / 'lang' / 'zh-cn.js'
+
+
+def parse_keys(path):
+ if not path.exists():
+ return {}
+ # Both files are UTF-8 (verified: all 281 zh-cn source files are UTF-8)
+ raw = path.read_bytes()
+ text = raw.decode('utf-8', errors='ignore')
+ out = {}
+ indent_stack = [(-1, '')]
+ for ln in text.split('\n'):
+ if ln.strip().startswith('//') or not ln.strip():
+ continue
+ indent = len(ln) - len(ln.lstrip())
+ m = re.match(r"""^['\"]?([A-Za-z_][A-Za-z0-9_]*)['\"]?\s*:\s*(.*)$""", ln.lstrip())
+ if not m:
+ continue
+ key, rest = m.group(1), m.group(2).strip().rstrip(',')
+ while len(indent_stack) > 1 and indent_stack[-1][0] >= indent:
+ indent_stack.pop()
+ parent = indent_stack[-1][1]
+ full_key = f'{parent}.{key}' if parent else key
+ if rest.endswith('{'):
+ indent_stack.append((indent, full_key))
+ continue
+ out[full_key] = True
+ return out
+
+
+def main():
+ en = parse_keys(EN_FILE)
+ zh = parse_keys(ZH_FILE)
+
+ print(f'en-us: {len(en)} keys')
+ print(f'zh-cn: {len(zh)} keys')
+
+ only_en = sorted(set(en) - set(zh))
+ only_zh = sorted(set(zh) - set(en))
+
+ if not only_en and not only_zh:
+ print()
+ print('[OK] en-us 和 zh-cn 完全对称(key 集合一致)')
+ return 0
+
+ print()
+ if only_en:
+ print(f'[FAIL] 缺 zh-cn 翻译(只在 en-us 中存在,{len(only_en)} 个):')
+ for k in only_en:
+ print(f' - {k}')
+ if only_zh:
+ print(f'[FAIL] 缺 en-us 翻译(只在 zh-cn 中存在,{len(only_zh)} 个):')
+ for k in only_zh:
+ print(f' - {k}')
+
+ print()
+ print('Fix: 在缺失侧补上对应 key 与翻译。')
+ print(' 自查可用: python scripts/i18n_check.py basic')
+ return 1
+
+
+if __name__ == '__main__':
+ sys.exit(main())
\ No newline at end of file
diff --git a/scripts/i18n_clean_dead.py b/scripts/i18n_clean_dead.py
new file mode 100644
index 0000000..a52b738
--- /dev/null
+++ b/scripts/i18n_clean_dead.py
@@ -0,0 +1,165 @@
+"""
+i18n_clean_dead.py - 从 lang/en-us.js + lang/zh-cn.js 删除未被任何代码调用的死 key
+
+设计:
+- 解析 lang/.js 的全部 keys(带嵌套追踪)
+- 扫描所有 .vue / .js(非 lang/、非 node_modules)的 $lang('xxx') / $lang("xxx") / this.$lang('xxx')
+- 计算 dead keys = defined - used
+- 对每个 dead key:
+ - 如果是嵌套对象内的叶子值(字符串),从父对象里删
+ - 如果是嵌套对象的最后一个子项,整个对象也删(如果是空对象了)
+ - 同步删除 en-us 和 zh-cn 两侧
+
+退出码:
+ 0 = 成功
+ 非 0 = 有 dead key 列出但未删(dry-run 默认)
+ --apply 才会真删
+"""
+import re
+import json
+import sys
+from pathlib import Path
+from collections import defaultdict
+
+ROOT = Path(__file__).resolve().parent.parent
+EN_FILE = ROOT / 'lang' / 'en-us.js'
+ZH_FILE = ROOT / 'lang' / 'zh-cn.js'
+EXCLUDE_DIRS = {'node_modules', 'unpackage', 'stub-app-projects', '.git', 'lang'}
+
+
+def parse_keys_with_lines(path):
+ """Parse lang file with nesting + line tracking.
+ Returns: dict of full_key -> (value, line_no, indent, parent_path)
+ """
+ text = path.read_text(encoding='utf-8')
+ out = {}
+ indent_stack = [(-1, '', -1)] # (indent, parent_path, parent_line)
+ lines = text.split('\n')
+ for i, ln in enumerate(lines, 1):
+ stripped = ln.lstrip()
+ if stripped.startswith('//') or not stripped.strip():
+ continue
+ indent = len(ln) - len(stripped)
+ m = re.match(r"""^['\"]?([A-Za-z_][A-Za-z0-9_]*)['\"]?\s*:\s*(.*)$""", stripped)
+ if not m:
+ continue
+ key, rest = m.group(1), m.group(2).strip().rstrip(',')
+ while len(indent_stack) > 1 and indent_stack[-1][0] >= indent:
+ indent_stack.pop()
+ parent_path = indent_stack[-1][1]
+ full_key = f'{parent_path}.{key}' if parent_path else key
+ if rest.endswith('{'):
+ indent_stack.append((indent, full_key, i))
+ out[full_key] = ('