diff --git a/.cursor/commit-summary/2026-04-09-employee-activity-id-column.md b/.cursor/commit-summary/2026-04-09-employee-activity-id-column.md
new file mode 100644
index 0000000..5e4abe7
--- /dev/null
+++ b/.cursor/commit-summary/2026-04-09-employee-activity-id-column.md
@@ -0,0 +1,15 @@
+## 本次变更总结
+
+**时间**: 2026-04-09
+
+**涉及文件**:
+- `src/view/marketing/employee/list.vue` (修改)
+- `src/i18n/locales/zh-CN.json` (修改)
+- `src/i18n/locales/en.json` (修改)
+- `src/i18n/locales/ar.json` (修改)
+
+**主要改动**:
+- 企业购活动管理列表(`/employeepurchase/activities`)表格首列增加「活动ID」,绑定字段 `id`。
+- 新增 i18n 键 `bea3f44a.7a9e2d`(中/英/阿)。
+
+**一句话概括**: feat(企业购): 活动管理列表展示活动ID
diff --git a/.cursor/commit-summary/2026-04-09-invoice-tax-category-labels.md b/.cursor/commit-summary/2026-04-09-invoice-tax-category-labels.md
new file mode 100644
index 0000000..63cd150
--- /dev/null
+++ b/.cursor/commit-summary/2026-04-09-invoice-tax-category-labels.md
@@ -0,0 +1,13 @@
+## 本次变更总结
+
+**时间**: 2026-04-09
+
+**涉及文件**:
+- `src/i18n/locales/zh-CN.json` (修改)
+- `src/i18n/locales/en.json` (修改)
+- `src/i18n/locales/ar.json` (修改)
+
+**主要改动**:
+- 开票税率列表新增/编辑弹窗中「税率配置」单选项文案:`7350de2d.1a7503` / `7350de2d.9f7160` 调整为「全部管理分类」「指定管理分类」,并同步 en/ar。
+
+**一句话概括**: i18n(财务开票税率): 税率配置选项改为全部/指定管理分类
diff --git a/.cursor/commit-summary/2026-04-09-platform-account-related-stores-column.md b/.cursor/commit-summary/2026-04-09-platform-account-related-stores-column.md
new file mode 100644
index 0000000..0c2b9a6
--- /dev/null
+++ b/.cursor/commit-summary/2026-04-09-platform-account-related-stores-column.md
@@ -0,0 +1,11 @@
+## Change summary
+
+**Date**: 2026-04-09
+
+**Files**:
+- `src/view/base/account/normalstaff.vue` (modified)
+
+**What changed**:
+- Platform account list (`/setting/system-account/platform-account`) now includes a **Related stores** column (i18n key `f3a67ede.5c16c5`), showing `distributor_ids` as tags; shows an em dash when empty.
+
+**One-line summary (commit title)**: feat(settings): show related stores on platform account list
diff --git a/.cursor/commit-summary/2026-04-13-sale-category-transfer-i18n.md b/.cursor/commit-summary/2026-04-13-sale-category-transfer-i18n.md
new file mode 100644
index 0000000..ada7b99
--- /dev/null
+++ b/.cursor/commit-summary/2026-04-13-sale-category-transfer-i18n.md
@@ -0,0 +1,19 @@
+## 本次变更总结
+
+**时间**: 2026-04-13
+
+**涉及文件**:
+- `src/components/sp-form/index.vue` (修改)
+- `src/i18n/locales/zh-CN.json` (修改)
+- `src/i18n/locales/en.json` (修改)
+- `src/i18n/locales/ar.json` (修改)
+- `src/view/goods/saleCategory.vue` (修改)
+- `src/view/mall/trade/examineTransfer.vue` (修改)
+
+**主要改动**:
+- **销售分类**:「投放」生成小程序码/复制链接时,页面路径由 `pages/item/list` 改为 `subpages/item/list`。
+- **国际化**:键 `0e7dabe2.63cd0e`(销售分类页总开关旁文案)由「前端是否展示」改为「店铺分类展示与查询」,并同步 en、ar。
+- **SpForm**:`el-form-item` 的 `style` 支持与 `item.style` 对象合并,便于单项自定义样式。
+- **转账审核弹窗**:收款银行名称 / 收款银行账号 / 收款银联号三行去掉 `display: 'inline'`,改为默认块级纵向排布。
+
+**一句话概括**: feat: 销售分类投放路径与开关文案,SpForm 支持 item.style
diff --git a/.cursor/commit-summary/2026-04-13-self-products-sun-code-center.md b/.cursor/commit-summary/2026-04-13-self-products-sun-code-center.md
new file mode 100644
index 0000000..c788fc9
--- /dev/null
+++ b/.cursor/commit-summary/2026-04-13-self-products-sun-code-center.md
@@ -0,0 +1,12 @@
+## 本次变更总结
+
+**时间**: 2026-04-13
+
+**涉及文件**:
+- `src/view/mall/goods/physical/list.vue` (修改)
+
+**主要改动**:
+- **自营商品列表**(路由 `product-manage/self-products`):太阳码弹窗 `el-dialog` 增加 `custom-class="goods-self-products-sun-code-dialog"`。
+- 在该类下为 `.page-code`、`.page-code-img`、`.page-btns` 增加 flex 布局与间距,使二维码与「下载码 / 复制链接」按钮在弹窗内水平居中、排列一致。
+
+**一句话概括**: style: 自营商品列表太阳码弹窗二维码与按钮居中
diff --git a/.cursor/commit-summary/2026-04-13-summary.md b/.cursor/commit-summary/2026-04-13-summary.md
new file mode 100644
index 0000000..8c28116
--- /dev/null
+++ b/.cursor/commit-summary/2026-04-13-summary.md
@@ -0,0 +1,12 @@
+## 本次变更总结
+
+**时间**: 2026-04-13
+
+**涉及文件**:
+- `src/view/base/account/normalstaff.vue` (修改)
+
+**主要改动**:
+- 普通员工列表表格:当 `VERSION_PLATFORM()` 为真(平台版)时,通过 `v-if="!VERSION_PLATFORM()"` 隐藏「关联分销商」列,避免平台场景展示不适用的列。
+- 「角色」列增加 `min-width="180"`,避免多角色标签时列过窄。
+
+**一句话概括**: fix: 平台版员工列表隐藏关联分销商列并优化角色列宽度
diff --git a/.cursor/commit-summary/2026-04-14-ECX-8282-8283.md b/.cursor/commit-summary/2026-04-14-ECX-8282-8283.md
new file mode 100644
index 0000000..b234f94
--- /dev/null
+++ b/.cursor/commit-summary/2026-04-14-ECX-8282-8283.md
@@ -0,0 +1,13 @@
+## 本次变更总结
+
+**时间**: 2026-04-14
+
+**涉及文件**:
+- `src/view/member/selfservice/registrationrecord.vue` (修改)
+- `src/view/member/cardticket/coupon/gift.vue` (修改)
+
+**主要改动**:
+- **ECX-8283 报名记录**:导出改为调用 `getParams()`,与列表接口使用相同的 `start_time`/`end_time` 与 `status` 处理,避免筛选条数与导出不一致;结束时间改为当日 `23:59:59`,支持起止同一天且覆盖完整申请日;筛选项文案改为与列表「申请时间」一致的 i18n key;移除无效的 `currentPage` 赋值。
+- **ECX-8282 兑换券**:VIP 可领等级勾选使用 `lv_type` 作为 checkbox 的 key/label(与接口及其它营销页一致),修复黑钻等 VIP 等级保存后不回显;详情初始化时解析 `grade_ids`/`vip_grade_ids` 的 JSON 字符串并规范化类型;`mounted` 中先并行拉取会员与 VIP 等级列表再 `init`;初始化后同步 `params`。
+
+**一句话概括**: fix: 报名记录导出与筛选一致、兑换券 VIP 等级按 lv_type 回显(ECX-8283/8282)
diff --git a/.cursor/commit-summary/2026-04-15-ECX-8303.md b/.cursor/commit-summary/2026-04-15-ECX-8303.md
new file mode 100644
index 0000000..4136cf3
--- /dev/null
+++ b/.cursor/commit-summary/2026-04-15-ECX-8303.md
@@ -0,0 +1,16 @@
+## 本次变更总结
+
+**时间**: 2026-04-15
+
+**涉及文件**:
+- `src/view/applications/pointmall/add.vue` (修改)
+- `src/i18n/locales/zh-CN.json` (修改)
+- `src/i18n/locales/en.json` (修改)
+- `src/i18n/locales/ar.json` (修改)
+
+**主要改动**:
+- 积分商品新增/编辑页修正库存、重量、体积字段标签与单位对应关系,避免字段文案错位。
+- 修正积分商品模块 i18n 文案映射:将成本价与市场价 key 对应到正确字段。
+- 同步更新中英文与阿拉伯语文案,确保三端显示一致。
+
+**一句话概括**: fix: 修正积分商品库存重量体积与价格文案映射
diff --git a/.cursor/commit-summary/2026-04-15-promotion-vip-level-persist.md b/.cursor/commit-summary/2026-04-15-promotion-vip-level-persist.md
new file mode 100644
index 0000000..af12609
--- /dev/null
+++ b/.cursor/commit-summary/2026-04-15-promotion-vip-level-persist.md
@@ -0,0 +1,15 @@
+## 本次变更总结
+
+**时间**: 2026-04-15
+
+**涉及文件**:
+- `src/view/member/promotions/goodslimit/add.vue` (修改)
+- `src/view/member/promotions/pluspricebuy/add.vue` (修改)
+- `src/view/member/promotions/pluspricebuy/list.vue` (修改)
+
+**主要改动**:
+- 修复限购、加价购活动中会员等级勾选保存后回显不生效:统一复选框值类型,并在提交/回显时做类型归一化。
+- 修复加价购活动列表默认“全部商品类型”传参导致列表为空:`item_type=0` 时不作为过滤条件提交。
+- 修复加价购列表页 `tabList` 在 `data` 与 `computed` 重复定义造成的 Vue 警告。
+
+**一句话概括**: fix: 修复加价购与限购会员等级回显及列表展示
diff --git a/.cursor/commit-summary/2026-04-16-i18n-path-settings-language.md b/.cursor/commit-summary/2026-04-16-i18n-path-settings-language.md
new file mode 100644
index 0000000..c77a414
--- /dev/null
+++ b/.cursor/commit-summary/2026-04-16-i18n-path-settings-language.md
@@ -0,0 +1,14 @@
+## 本次变更总结
+
+**时间**: 2026-04-16
+
+**涉及文件**:
+- `src/i18n/locales/zh-CN.json` (修改)
+- `src/i18n/locales/en.json` (修改)
+- `src/i18n/locales/ar.json` (修改)
+
+**主要改动**:
+- **`223cc8af.e366cc`**(如 `picker-link` 中 settings 类链接展示名):由「设置」改为 **「切换语言」**;英文为 *Switch language*,阿语为 *تبديل اللغة*。
+- **`d81d8932.4f2c29`**(路径选择器 SpPicker 默认标题):由「切换语言」恢复为 **「设置路径」**;英文 *Set path*,阿语恢复为 تعيين المسار。
+
+**一句话概括**: i18n: 路径弹窗标题恢复为设置路径;链接项 223cc8af 改为切换语言
diff --git a/.cursor/commit-summary/2026-04-16-shopinfo-pluspricebuy.md b/.cursor/commit-summary/2026-04-16-shopinfo-pluspricebuy.md
new file mode 100644
index 0000000..86c06f5
--- /dev/null
+++ b/.cursor/commit-summary/2026-04-16-shopinfo-pluspricebuy.md
@@ -0,0 +1,13 @@
+## 本次变更总结
+
+**时间**: 2026-04-16
+
+**涉及文件**:
+- `src/view/wxapp/shopInfo/index.vue` (修改)
+- `src/view/member/promotions/pluspricebuy/list.vue` (修改)
+
+**主要改动**:
+- **商城信息**:去掉「登录页背景图」表单项及相关数据与保存字段;`handleImgChange` 仅处理门店 LOGO;移除未使用的 `uploadMaterial` 引用。
+- **加价购列表**:待开始状态下编辑/删除图标包在 `pluspricebuy-waiting-actions` 内;为 `.operating-icons` 增加 `flex` + `nowrap` + `white-space: nowrap`,避免操作列换行;图标区增加内边距与字号便于点击(用户后续可自行去掉 `gap`,以 margin 等方式控距)。
+
+**一句话概括**: feat: 商城信息移除登录页背景配置;加价购待开始操作列单行展示并优化图标区
diff --git a/.cursor/commit-summary/last-summary.md b/.cursor/commit-summary/last-summary.md
new file mode 100644
index 0000000..844e7c3
--- /dev/null
+++ b/.cursor/commit-summary/last-summary.md
@@ -0,0 +1,12 @@
+## 本次变更总结
+
+**时间**: 2026-04-16
+
+**涉及文件**:
+- `src/i18n/locales/zh-CN.json`、`en.json`、`ar.json`
+
+**主要改动**:
+- `223cc8af.e366cc` → 切换语言(及 en/ar 对应译文)。
+- `d81d8932.4f2c29` → 设置路径(路径选择器标题,三语与语义对齐)。
+
+**一句话概括**: i18n: 路径弹窗标题恢复为设置路径;链接项 223cc8af 改为切换语言
diff --git a/package-lock.json b/package-lock.json
index ee133a9..a64d94a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -49267,4 +49267,4 @@
}
}
}
-}
+}
\ No newline at end of file
diff --git a/package.json b/package.json
index a5b97e8..b0e60d4 100755
--- a/package.json
+++ b/package.json
@@ -139,4 +139,4 @@
"jugglingdb-nano": "0.0.1",
"global": "2.0.1"
}
-}
+}
\ No newline at end of file
diff --git a/src/api/mail.js b/src/api/mail.js
new file mode 100644
index 0000000..dfadfc3
--- /dev/null
+++ b/src/api/mail.js
@@ -0,0 +1,23 @@
+/**
+ * Copyright © ShopeX (http://www.shopex.cn). All rights reserved.
+ * See LICENSE file for license details.
+ */
+import { fetch } from './request'
+
+/** 店铺端:读取本企业 SMTP 配置(GET .../mail/setting) */
+export function getMailSetting(query) {
+ return fetch({
+ url: '/mail/setting',
+ method: 'get',
+ params: query
+ })
+}
+
+/** 店铺端:保存本企业 SMTP 配置(POST .../mail/setting) */
+export function saveMailSetting(params) {
+ return fetch({
+ url: '/mail/setting',
+ method: 'post',
+ params
+ })
+}
diff --git a/src/api/request/request.js b/src/api/request/request.js
index 563cecb..842c5fd 100755
--- a/src/api/request/request.js
+++ b/src/api/request/request.js
@@ -63,7 +63,11 @@ class RequestClient {
const countryCode = langMap[lang]
if (config.data) {
if (typeof config.data === 'string') {
- config.data = config.data + (config.data ? '&' : '') + 'country_code=' + encodeURIComponent(countryCode)
+ config.data =
+ config.data +
+ (config.data ? '&' : '') +
+ 'country_code=' +
+ encodeURIComponent(countryCode)
} else {
config.data.country_code = countryCode
}
diff --git a/src/api/shop.js b/src/api/shop.js
index f67bfb4..c87fbe2 100755
--- a/src/api/shop.js
+++ b/src/api/shop.js
@@ -254,7 +254,7 @@ export function putRulesInfo(query) {
method: 'put',
params: query,
headers: {
- 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
+ 'Content-Type': 'application/json'
}
})
}
diff --git a/src/components/element/imgBox.vue b/src/components/element/imgBox.vue
index 7db50ed..35fd540 100755
--- a/src/components/element/imgBox.vue
+++ b/src/components/element/imgBox.vue
@@ -13,7 +13,7 @@
:class="{ 'border-dashed': border === 'dashed', 'border-none': border === 'none' }"
:style="{ width: width + 'px', height: height + 'px' }"
>
-
+
{{ $t('6d548076.d17ff7') }}
{{ store.name }} @@ -41,7 +41,7 @@
{{ $t('f9b4b391.9b80e6') }}
{{ $t('d7e708c9.b449e5') }}
{{ $t('d7e708c9.0518b4') }}
{{ $t('d7e708c9.c295e2') }}
-{{ $t('d7e708c9.9b09a5') }}
{{ $t('d7e708c9.84e826') }}
{{ $t('d7e708c9.750080') }}
{{ $t('d7e708c9.eec9b5') }}
{{ $t('d7e708c9.91a39f') }}
{{ $t('d7e708c9.9b09a5') }}
{{ $t('d7e708c9.84e826') }}
{{ $t('d7e708c9.750080') }}
{{ $t('d7e708c9.eec9b5') }}
{{ $t('d7e708c9.91a39f') }}
{{ $t('d7e708c9.15e72c') }}
-
+
{{ $t('d7e708c9.d21dc6') }}
{{ $t('d7e708c9.55ce58') }}
{{ $t('d7e708c9.a96b28') }}
{{ $t('d7e708c9.8d61a3') }}
{{ $t('d7e708c9.3f4d02') }}
{{ $t('d7e708c9.55ce58') }}
{{ $t('d7e708c9.a96b28') }}
{{ $t('d7e708c9.8d61a3') }}
{{ $t('d7e708c9.3f4d02') }}
{{ $t('5bcdc5ca.b449e5') }}
{{ $t('5bcdc5ca.0518b4') }}
{{ $t('5bcdc5ca.c295e2') }}
-{{ $t('5bcdc5ca.9b09a5') }}
{{ $t('5bcdc5ca.84e826') }}
{{ $t('5bcdc5ca.750080') }}
{{ $t('5bcdc5ca.eec9b5') }}
{{ $t('5bcdc5ca.91a39f') }}
{{ $t('5bcdc5ca.9b09a5') }}
{{ $t('5bcdc5ca.84e826') }}
{{ $t('5bcdc5ca.750080') }}
{{ $t('5bcdc5ca.eec9b5') }}
{{ $t('5bcdc5ca.91a39f') }}
{{ $t('5bcdc5ca.15e72c') }}
-
+
{{ $t('5bcdc5ca.d21dc6') }}
{{ $t('5bcdc5ca.55ce58') }}
{{ $t('5bcdc5ca.a96b28') }}
{{ $t('5bcdc5ca.8d61a3') }}
{{ $t('5bcdc5ca.3f4d02') }}
{{ $t('5bcdc5ca.55ce58') }}
{{ $t('5bcdc5ca.a96b28') }}
{{ $t('5bcdc5ca.8d61a3') }}
{{ $t('5bcdc5ca.3f4d02') }}
{{ $t('94b9c64d.68986c') }}
@@ -21,7 +21,7 @@
@@ -38,7 +38,7 @@
{{ $t('4796514d.ff8e5d') }}
@@ -46,7 +46,7 @@{{ $t('4796514d.0236d1') }}
diff --git a/src/view/base/setting/dealer/cpn/checkBox.vue b/src/view/base/setting/dealer/cpn/checkBox.vue index cf2861c..af15ced 100755 --- a/src/view/base/setting/dealer/cpn/checkBox.vue +++ b/src/view/base/setting/dealer/cpn/checkBox.vue @@ -13,7 +13,7 @@@@ -24,7 +24,7 @@
@@ -46,7 +46,7 @@
{{ $t('e15f614a.ff8e5d') }}
@@ -54,7 +54,7 @@{{ $t('e15f614a.0236d1') }}
diff --git a/src/view/base/setting/dealer/upload_picture.vue b/src/view/base/setting/dealer/upload_picture.vue index c3e9689..f990e3b 100755 --- a/src/view/base/setting/dealer/upload_picture.vue +++ b/src/view/base/setting/dealer/upload_picture.vue @@ -25,7 +25,7 @@ v-if="form.social_credit_code_url" :src="form.social_credit_code_url" class="avatar" - > + />{{ $t('ee880f0e.c2c43a') }}
{{ $t('e06fc114.35547d') }}