chore: batch admin updates (i18n, tables, wx config, docs cleanup)

- Remove tracked .cursor commit-summary notes and resolve last-summary conflict
- Invoice tax copy: management-category wording in zh/en/ar
- Employee marketing list: Activity ID column + locale key bea3f44a.7a9e2d
- Account staff list: related store tags column
- Coupon list: creator store & shop scope columns; minor template spacing
- Refund address: shop picker sends show_distributor_self=1
- Transfer review: bank row value stringified for select binding
- External wx app page: drop data/computed duplicates; table minWidth; format template
- Order navigation widget: default labels via i18n.t
- package.json / lockfile: EOF newline

Made-with: Cursor
This commit is contained in:
moyayu
2026-04-10 17:52:07 +08:00
parent 1ac0480d4b
commit 08b9150dfd
34 changed files with 79 additions and 424 deletions

View File

@@ -1,44 +0,0 @@
# ECX-8097 阿拉伯语 RTL 样式与数据展示修复
## 问题描述
- 管理端在阿拉伯语下,商品销售分类列表、编辑/添加分类弹窗存在样式与展示异常
- 表单标签与输入左对齐、数字框按钮在右侧、弹窗底部按钮顺序不符合 RTL 习惯
- 表格操作列按钮与箭头方向不符合从右到左阅读习惯
- 切换语言后弹窗内表单文案未随当前语言更新
## 修改内容
### 1. `src/styles/lang-ar.scss`(阿拉伯语 RTL 全局样式)
**弹窗 (el-dialog)**
- 关闭按钮置于右侧(`right: 20px; left: auto`
- 底部按钮区 `direction: rtl``text-align: right`,确定在右、取消在左
- 底部按钮间距:`margin-right: 10px; margin-left: 0`
**弹窗内表单 (sp-dialog)**
- RTL 下表单使用 `margin-left: 100px``margin-right: 0`,避免整体偏左
- `el-form--label-right` 下表单项使用 flex + gap保证标签与输入在 RTL 下对齐
**输入与数字框**
- `.el-input__inner``.el-textarea__inner` 增加 `text-align: right`
- `.el-input-number` 设置 `direction: rtl`,内部输入右对齐
- `.el-input-number__decrease` / `__increase` 通过 `left: 1px; right: auto` 置于左侧
**表格**
- `.el-table__body-wrapper td .cell` 增加 `direction: rtl`,操作列按钮从右到左排列
**消息框 (el-message-box)**
- 关闭按钮置于右侧,与弹窗一致
(其余为既有 RTL 规则:设置路径/分类选择器、cascader、菜单、抽屉等
### 2. `src/view/goods/saleCategory.vue`(销售分类页)
-**categoryFormList**`data` 改为 **computed**,使「分类名称」「排序」「上级分类」「分类图片」等标签与 placeholder 随当前语言(含阿拉伯语)响应式更新,切换语言后弹窗内文案正确。
## 影响范围
- 仅当 `html[lang='ar-SA']``html[dir='rtl']` 时生效,其他语言无影响
- 销售分类添加/编辑弹窗、所有使用 sp-dialog + el-form 的弹窗、表格操作列均受益于 RTL 样式
## 备注
- 父分类名称(如「运动户外」)若仍显示为中文,需后端按语言返回分类名或前端做多语言映射,属数据/多语言方案,未在本单内实现。

View File

@@ -1,12 +0,0 @@
## 本次变更总结
**时间**: 2026-03-06
**TB**: ECX-8057
**涉及文件**:
- src/components/sp-form/index.vue (修改)
**主要改动**:
- **sp-form**`.flex` 样式类微调,`align-items``center` 改为 `flex-start`,并增加 `gap: 10px`,表单项纵向对齐与间距更适配弹窗表单。
**一句话概括**: style: 表单项 flex 布局对齐与间距微调 (ECX-8057)

View File

@@ -1,11 +0,0 @@
## 本次变更总结
**时间**: 2026-03-06
**涉及文件**:
- src/view/decorate/wgts/wgt_fullSlider/sliderDialog.vue (修改)
**主要改动**:
- **全屏轮播挂件弹窗**:与 wgt_slider 一致,表单项统一增加 `flex: true`(媒体类型、视频/图片地址、自动播放、离场视频交互、蒙层及蒙层宽高与位置、更多链接等),使用 flex 布局展示。
**一句话概括**: feat: 全屏轮播挂件弹窗表单项改用 flex 布局

View File

@@ -1,14 +0,0 @@
## 本次变更总结
**时间**: 2026-03-09
**需求单号**: ECX-8039
**涉及文件**:
- src/components/sp-picker/pickers/picker-coupon.vue (修改)
**主要改动**:
- 优惠券选择器与列表页一致:增加「创建店铺」「适用店铺」两列,展示逻辑与 coupon.vue 一致创建店铺source_id≤0 或无名称显示平台,否则显示 source_name/store_name/shop_name适用店铺use_all_shops==1 显示全部店铺,否则显示指定店铺);原单列「店铺」(source_name) 已移除。
- i18nconfig.title 由硬编码「选择优惠券」改为 i18n key 7039e9c5.45bcee,与 created() 中 $t 一致。
**一句话概括**: feat: 优惠券选择器增加创建店铺/适用店铺列并做 i18n (ECX-8039)

View File

@@ -1,16 +0,0 @@
## 本次变更总结
**时间**: 2026-03-09
**TB**: ECX-8064
**涉及文件**:
- src/i18n/locales/zh-CN.json (修改)
- src/i18n/locales/en.json (修改)
- src/i18n/locales/ar.json (修改)
**主要改动**:
- i18n补全普通订单列表导出成功提示的翻译 key。
- 在 zh-CN、en、ar 中新增 `c95ea121.3e1ddd`,对应「已加入执行队列,请在设置-导出列表中下载」及英/阿译文。
- 用于 `src/view/mall/trade/normalorders/list.vue` 中导出成功提示,修复该 key 未翻译的问题。
**一句话概括**: i18n: 补全 c95ea121.3e1ddd 翻译 (ECX-8064)

View File

@@ -1,18 +0,0 @@
## 本次变更总结
**时间**: 2026-03-09
**需求单号**: ECX-8068
**涉及文件**:
- src/view/member/members/tags.vue (修改)
- src/view/member/members/comps/CompAddTag.vue (新增)
- src/view/member/members/comps/CompTagList.vue (新增)
**主要改动**:
- 会员标签页由「单标签」管理改为「标签组」管理:列表改为调用 `/member/tag-group` 接口,使用 SpFinder 展示标签组列表,搜索区改为 SpFormPlus + keyword 关键词。
- 抽离新建/编辑弹窗为子组件 CompAddTag支持标签组名称、多标签名称/背景色/字体色、校验组名必填且≤15 字、至少一个标签、编辑时删除标签deleteids通过 submit/close 与父页联动。
- 新增 CompTagList标签列表展示与可选「添加」输入、可选选中态供列表列或其它场景复用。
- tags.vue 精简:移除原 el-table/分页及内联添加编辑弹窗,删除大量注释代码,主流程为搜索 → 新建标签组 → Finder 列表展示与操作。
**一句话概括**: feat: 会员标签页改为标签组管理,抽离 CompAddTag/CompTagList (ECX-8068)

View File

@@ -1,14 +0,0 @@
## 本次变更总结
**时间**: 2026-03-09
**需求单号**: ECX-8069
**涉及文件**:
- src/layout/basic/layout-sidebar.vue (修改)
**主要改动**:
- 三级菜单-多开保持:路由切换时不再调用会关闭其他二级菜单的 `openSubMenu`,改为新增 `ensureSubMenuOpen(menuToOpen)`,仅确保当前路由所在父级二级菜单展开,不折叠其他已展开的二级菜单;`updateMenuState()` 改为调用 `ensureSubMenuOpen`,解决「展开两个二级菜单后点击任意三级菜单会导致另一个二级被收起」的问题。
- 当前路由父级不收起:二级菜单 title 插槽内增加 `@click="handleSubmenuTitleClick(...)"`,当前路由所在父级且已展开时 `preventDefault`/`stopPropagation`,避免点击标题收起;`handleMenuClose` 中若被关闭项为当前路由父级则直接 return不将其从 `openedMenus` 移除。
**一句话概括**: fix: 三级菜单支持多开且当前路由父级不自动收起 (ECX-8069)

View File

@@ -1,16 +0,0 @@
## 本次变更总结
**时间**: 2026-03-09
**需求单号**: ECX-8070
**涉及文件**:
- src/components/sp-form/index.vue (修改)
- src/view/decorate/wgts/wgt_fullSlider/sliderDialog.vue (修改)
- src/view/decorate/wgts/wgt_slider/sliderDialog.vue (修改)
**主要改动**:
- sp-form移除表单项的 flex 布局支持(删除 .flex 样式及 form-item 的 flex class 绑定);表单项支持按项设置 labelWidthitem.labelWidth 或组件 labelWidth
- 装修轮播/全屏轮播:两个 sliderDialog 的 SpForm 增加 label-position="left";表单配置中移除或清空各表单项的 flex: true改为依赖 label 左对齐布局。
**一句话概括**: refactor: 表单移除 flex 布局,装修轮播弹窗改为 label 左对齐 (ECX-8070)

View File

@@ -1,18 +0,0 @@
## 本次变更总结
**时间**: 2026-03-09
**需求单号**: ECX-8079
**涉及文件**:
- src/i18n/locales/zh-CN.json (修改)
- src/i18n/locales/en.json (修改)
- src/i18n/locales/ar.json (修改)
- src/view/mall/pointsmalltrade/shipping/add.vue (修改)
**主要改动**:
- i18n 重复 key 修复zh-CN.json 中 `d41d8cd9.e5f6g7` 曾出现两次,分别对应「已加入执行队列,请在设置-导出列表中下载」与「卖家承担运费」,后者覆盖前者导致自营商品导出成功时误提示「卖家承担运费」。
- 为「卖家承担运费」新增独立 key `d41d8cd9.f8g9h0`,在 zh-CN / en / ar 三语中均增加该 key`d41d8cd9.e5f6g7` 仅保留导出队列提示文案及对应英/阿翻译。
- 积分商城运费模板页 pointsmalltrade/shipping/add.vue两处「卖家承担运费」由 `$t('d41d8cd9.e5f6g7')` 改为 `$t('d41d8cd9.f8g9h0')`
**一句话概括**: fix: 修复 d41d8cd9.e5f6g7 重复 key导出成功提示与卖家承担运费分离 (ECX-8079)

View File

@@ -1,13 +0,0 @@
## 本次变更总结
**时间**: 2026-03-09
**TB**: ECX-8086
**涉及文件**:
- src/view/decorate/index.vue (修改)
**主要改动**:
- 装修:店铺装修(scene=1003) 也展示「页面设置」挂件。
- 将 headerVisible 从仅 1001 展示改为 1001、1003 均展示页面设置1007 分类模版等仍不展示。
**一句话概括**: feat(decorate): 店铺装修 scene=1003 支持页面设置 (ECX-8086)

View File

@@ -1,20 +0,0 @@
## 本次变更总结
**时间**: 2026-03-09
**TB**: ECX-8088
**涉及文件**:
- src/components/sp-picker/pickers/picker-regactivity.vue (修改)
- src/i18n/locales/zh-CN.json (修改)
- src/i18n/locales/en.json (修改)
- src/i18n/locales/ar.json (修改)
**主要改动**:
- 活动报名挂件picker-regactivity
- 接口由 `easylist` 改为 `list`/selfhelp/registrationActivity/list
- 列表新增「活动状态」列status_name并做 i18nkey ffeca7a9.1181a5)。
- 弹窗标题改为通过 config 的 key 在 created 中解析,去掉硬编码中文。
- 模板名称列注释隐藏beforeSearch 中 is_valid 参数注释掉。
- i18nzh-CN/en/ar 新增「活动状态」文案ffeca7a9.1181a5)。
**一句话概括**: feat(picker): 活动报名挂件改 list 接口、加状态列并 i18n (ECX-8088)

View File

@@ -1,15 +0,0 @@
## 本次变更总结
**时间**: 2026-03-09
**TB**: ECX-8089
**涉及文件**:
- src/i18n/locales/zh-CN.json (修改)
- src/i18n/locales/en.json (修改)
- src/i18n/locales/ar.json (修改)
**主要改动**:
- i18n模版装修「设置路径」弹窗中将「秒杀」改为「限时特惠」。
- 文案 keyd81d8932.55c758。zh-CN 改为「限时特惠」en 改为「Limited-time offer」ar 改为「عرض محدود الوقت」。仅展示文案调整,逻辑与接口未改。
**一句话概括**: i18n: 设置路径弹窗「秒杀」改为「限时特惠」(ECX-8089)

View File

@@ -1,25 +0,0 @@
## 本次变更总结
**时间**: 2026-03-09
**涉及文件**:
- src/view/decorate/wgts/wgt_classify/config.js (修改)
- src/view/decorate/wgts/wgt_contentPartition/config.js (修改)
- src/view/decorate/wgts/wgt_coupon/config.js (修改)
- src/view/decorate/wgts/wgt_goods/config.js (修改)
- src/view/decorate/wgts/wgt_group/config.js (修改)
- src/view/decorate/wgts/wgt_hotranking/config.js (修改)
- src/view/decorate/wgts/wgt_hotzone/config.js (修改)
- src/view/decorate/wgts/wgt_locationModule/config.js (修改)
- src/view/decorate/wgts/wgt_ranking/config.js (修改)
- src/view/decorate/wgts/wgt_shop/config.js (修改)
- src/view/decorate/wgts/wgt_speedkill/config.js (修改)
- src/view/decorate/wgts/wgt_store-alphabet/config.js (修改)
**主要改动**:
- 装修挂件decorate/wgts在 12 个 wgt 的 config.js 中,为 transformIn 与 transformOut 统一补全 id 透传。
- transformIn在返回对象中增加 `id: v?.id`,保证入参 id 带入组件内部。
- transformOut在 pickBy 映射中增加 `id: 'id'`,保证保存/上报数据带 id。
- 涉及 wgtcontentPartition、locationModule、classify、coupon、goods、group、hotranking、hotzone、ranking、speedkill、store-alphabet、shop。
**一句话概括**: feat(decorate): 装修挂件 transformIn/transformOut 统一透传 id

View File

@@ -1,13 +0,0 @@
## 本次变更总结
**时间**: 2026-03-09
**涉及文件**:
- src/components/sp-rich-text/index.vue (修改)
**主要改动**:
- 富文本SpRichText图片上传修复点击上传按钮报错 `Cannot read properties of undefined (reading 'abstract')`
- 原因uploader 模块内使用 `Vue.prototype.$picker.image()`getter 的 this 为 Vue.prototype导致 picker 弹窗的 parent 非有效组件实例Vue initLifecycle 读 parent.$options.abstract 时报错。
- 修改:改为使用 `this.$root.$picker.image()`,从当前组件树的根实例取 $picker保证 parent 为合法 Vue 实例。
**一句话概括**: fix: 富文本图片上传改用 $root.$picker 修复 initLifecycle 报错

View File

@@ -1,13 +0,0 @@
## 本次变更总结
**时间**: 2026-03-09
**涉及范围**:
- ESLint --fix 自动修复(约 421 个 .vue/.js 文件)
- 会员标签页及子组件 i18ntags.vue、CompAddTag.vue、CompTagList.vue + zh-CN/en/ar
**主要改动**:
- **ESLint 自动修复**:对 src 执行 `eslint --ext .js,.jsx,.vue --fix`,批量修复 vue/html-self-closing 等可自动修复规则(如 void 元素 `<img/>``<img>`、非 void 元素自闭合等),涉及 components、view、views、layout 等大量文件。
- **会员标签 i18n**tags.vue 搜索/按钮/列名/确认与消息文案改为 $t()searchFormItems 改为 computedCompAddTag.vue 弹窗标题、表单项、校验文案、按钮改为 $t()CompTagList.vue 占位符与「+ 添加」改为 $t()。zh-CN/en/ar 新增 ec391ebb.*、a2bf2d04.*、45a63912.* 等 key。
**一句话概括**: chore: ESLint --fix 批量修复 + 会员标签页及 CompAddTag/CompTagList i18n

View File

@@ -1,16 +0,0 @@
## 本次变更总结
**时间**: 2026-03-09
**涉及文件**:
- src/components/sp-video-picker/index.vue (修改)
- src/view/mall/marketing/storewhitelist.vue (修改)
**主要改动**:
- **富文本/商品视频**SpVideoPicker 上传视频后支持删除。
- 删除图标改为 el-icon-circle-close补充样式与 hover并 stopPropagation 避免误触;移除 render 中的 console.log。
- **店铺白名单**:导出与列表勾选。
- 选择列移至表格第一列并设宽保证勾选框可见tableList 初始为 []selectMobile 初始为 []。
- 导出逻辑:有勾选时传 search_mobile 导出选中项,无勾选时按当前筛选条件导出全部,不再提示「请选择数据」;去掉导出处的 console.log。
**一句话概括**: fix: 商品视频可删除 + 店铺白名单勾选列与导出逻辑优化

View File

@@ -1,20 +0,0 @@
## 本次变更总结
**时间**: 2026-04-02
**涉及文件**:
- `src/view/financial/invoice/constants.js`(修改)
- `src/view/financial/invoice/list.vue`(修改)
- `src/view/financial/invoice/listSchema.js`(修改)
- `src/view/financial/invoice/invoiceTax.vue`(修改)
- `src/view/financial/invoice/information.vue`(修改)
- `src/view/applications/pointmall/orderList.vue`(修改)
**主要改动**:
- 发票 `constants`:列表项由 `label`/`title` 存 i18n key 改为统一字段 **`i18nKey`**,并补充注释说明须通过 `$t` 展示。
- 发票列表页:用计算属性 **`invoiceStatusTabItems`**、**`invoiceSourceOptions`** 生成已翻译的 `label``typeList` 统一为 `label` 字段。
- 发票 `listSchema` 弹窗选项改为 `vm.$t(item.i18nKey)`,移除未使用的 `invoice_source_arr` 导入。
- `invoiceTax.vue` / `information.vue`:删除未使用的 `status` 引用。
- 积分商城 `orderList.vue`:开票状态下拉 `:label="$t(item.i18nKey)"`;表格列用 **`invoiceStatusText`** 经 `$t` 展示状态文案(修复此前直接输出 key 的问题)。
**一句话概括**: 发票开票状态枚举改为 i18nKey列表/弹窗/积分订单列表统一用 $t 展示文案

View File

@@ -1,11 +0,0 @@
## 本次变更总结
**时间**: 2026-04-02
**涉及文件**:
- `src/view/mall/trade/order/detail/index.vue`(修改)
**主要改动**:
- 订单详情页某卡片区块(含表头 `3cdfcea1.954493` 与下方 `card-panel`)去掉 **`v-if="!IS_SUPPLIER()"`**,供应商端登录时也会展示该区块(此前仅非供应商可见)。
**一句话概括**: 订单详情:供应商端展示原隐藏的卡片区块

View File

@@ -1,13 +0,0 @@
## 本次变更总结
**时间**: 2026-04-02
**涉及文件**:
- `src/view/goods/saleCategory.vue` (修改)
**主要改动**:
- 销售分类页:在 **PLATFORM 版本**`VERSION_PLATFORM()` 为真)下隐藏「前端是否展示」总开关、表格「前台是否显示」列,以及弹窗内对应表单项。
- `mounted` 中仅在非 PLATFORM 时调用 `fetchSaleableFilter()`,避免多余接口请求。
- 去掉未使用的 `@/utils` 导入(展示控制仍使用原型上的 `VERSION_PLATFORM()` 等)。
**一句话概括**: 销售分类PLATFORM 版本隐藏前端展示相关开关与列

View File

@@ -1,24 +0,0 @@
# Commit 约定(可选)
本文件可选。若存在,生成 commit message 时会参考以下约定。
## 前缀
- `feat:` 新功能
- `fix:` 修复
- `refactor:` 重构(不改变行为)
- `i18n:` 国际化/文案
- `style:` 样式、格式(非逻辑)
- `chore:` 构建、配置、杂项
- `docs:` 文档
## 格式
- 标题首行 ≤ 50 字,使用祈使句(如「添加 xxx」而非「添加了 xxx」
- 需要时在 body 中列出主要改动点。
## 示例
```
feat: 装修挂件 wgtName 改为 i18n.t() 并补全导入
```

View File

@@ -1,7 +0,0 @@
## 最近一次变更
**时间**: 2026-04-02
**文件**: `src/view/mall/trade/order/detail/index.vue`
**简述**: 移除订单详情中某 el-card 表头与面板的 `!IS_SUPPLIER()` 条件,供应商账号也可看到该区块。

2
package-lock.json generated
View File

@@ -49267,4 +49267,4 @@
}
}
}
}
}

View File

@@ -139,4 +139,4 @@
"jugglingdb-nano": "0.0.1",
"global": "2.0.1"
}
}
}

View File

@@ -17468,7 +17468,7 @@
"7350de2d.ca2be5": "الرقم الضريبي للبائع",
"7350de2d.eff7dc": "هاتف البائع",
"7350de2d.b3ed9f": "التصنيف",
"7350de2d.1a7503": "جميع التصنيفات",
"7350de2d.1a7503": "جميع التصنيفات الإدارية",
"7350de2d.2a79a7": "نسبة الضريبة",
"7350de2d.68346c": "المُصدِر",
"7350de2d.ba2c38": "المستلم",
@@ -17478,7 +17478,7 @@
"7350de2d.ce7c10": "اختر معلومات فاتورة البائع من القائمة",
"7350de2d.2fc8ee": "تصنيف نسبة الضريبة",
"7350de2d.4dbf37": "التصنيف المحدد لا يمكن أن يكون فارغاً",
"7350de2d.9f7160": "التصنيف المحدد",
"7350de2d.9f7160": "تصنيف إداري محدد",
"7350de2d.708c9d": "يرجى الاختيار",
"7350de2d.a731f8": "نسبة ضريبة الفاتورة",
"20da51cd.023809": "اسم المواصفات",
@@ -17835,6 +17835,7 @@
"bea3f44a.687c58": "تأكيد الإيقاف؟",
"bea3f44a.12f1d7": "إنهاء",
"bea3f44a.263e04": "تأكيد الإنهاء؟",
"bea3f44a.7a9e2d": "معرف النشاط",
"bea3f44a.39834b": "اسم النشاط",
"bea3f44a.ed13b6": "حصة الموظف (يوان)",
"bea3f44a.085938": "حصة الأقارب (يوان)",

View File

@@ -17470,7 +17470,7 @@
"7350de2d.ca2be5": "Seller tax no.",
"7350de2d.eff7dc": "Seller phone",
"7350de2d.b3ed9f": "Category",
"7350de2d.1a7503": "All categories",
"7350de2d.1a7503": "All management categories",
"7350de2d.2a79a7": "Tax rate",
"7350de2d.68346c": "Drawer",
"7350de2d.ba2c38": "Payee",
@@ -17480,7 +17480,7 @@
"7350de2d.ce7c10": "Select seller invoice info from dropdown",
"7350de2d.2fc8ee": "Tax rate category",
"7350de2d.4dbf37": "Specified category cannot be empty",
"7350de2d.9f7160": "Specified category",
"7350de2d.9f7160": "Specified management categories",
"7350de2d.708c9d": "Please select",
"7350de2d.a731f8": "Invoice tax rate",
"20da51cd.023809": "Spec name",
@@ -17837,6 +17837,7 @@
"bea3f44a.687c58": "Confirm pause?",
"bea3f44a.12f1d7": "End",
"bea3f44a.263e04": "Confirm end?",
"bea3f44a.7a9e2d": "Activity ID",
"bea3f44a.39834b": "Activity name",
"bea3f44a.ed13b6": "Employee quota (CNY)",
"bea3f44a.085938": "Relatives quota (CNY)",

View File

@@ -17589,7 +17589,7 @@
"7350de2d.ca2be5": "开票方税号",
"7350de2d.eff7dc": "开票方电话",
"7350de2d.b3ed9f": "管理分类",
"7350de2d.1a7503": "全部分类",
"7350de2d.1a7503": "全部管理分类",
"7350de2d.2a79a7": "税率",
"7350de2d.68346c": "开票人",
"7350de2d.ba2c38": "收款人",
@@ -17599,7 +17599,7 @@
"7350de2d.ce7c10": "下拉选择配置销方开票信息",
"7350de2d.2fc8ee": "配置税率分类",
"7350de2d.4dbf37": "指定分类不能为空",
"7350de2d.9f7160": "指定分类",
"7350de2d.9f7160": "指定管理分类",
"7350de2d.708c9d": "请选择",
"7350de2d.a731f8": "发票税率",
"20da51cd.023809": "规格名称",
@@ -18039,6 +18039,7 @@
"bea3f44a.687c58": "确认暂停?",
"bea3f44a.12f1d7": "结束",
"bea3f44a.263e04": "确认结束?",
"bea3f44a.7a9e2d": "活动ID",
"bea3f44a.39834b": "活动名称",
"bea3f44a.ed13b6": "员工额度(元)",
"bea3f44a.085938": "亲友额度(元)",

View File

@@ -40,6 +40,21 @@
<el-table-column prop="login_name" :label="$t('81d2acb6.bb2cdf')" />
<el-table-column prop="mobile" :label="$t('81d2acb6.8098e2')" />
<el-table-column prop="username" :label="$t('81d2acb6.60d045')" />
<el-table-column :label="$t('f3a67ede.5c16c5')" min-width="180">
<template slot-scope="scope">
<template v-if="scope.row.distributor_ids && scope.row.distributor_ids.length">
<el-tag
v-for="item in scope.row.distributor_ids"
:key="item.distributor_id"
size="mini"
class="rel-distributor-tag"
>
{{ item.name }}
</el-tag>
</template>
<span v-else></span>
</template>
</el-table-column>
<el-table-column prop="roles" :label="$t('81d2acb6.464f3d')">
<template slot-scope="scope">
<el-tag
@@ -468,6 +483,9 @@ export default {
.el-tag + .el-tag {
margin-left: 5px;
}
.rel-distributor-tag + .rel-distributor-tag {
margin-left: 5px;
}
.new-tag {
height: 40px;
line-height: 40px;

View File

@@ -21,6 +21,7 @@
<script>
import Vue from 'vue'
import { i18n } from '@/i18n'
import CompPickerLink from '../../comps/comp-pickerLink'
import CompTodoList from '../../comps/comp-todoList'
import CompButton from '../../comps/comp-button'
@@ -33,7 +34,7 @@ export default {
methods: {
handleClickAdd() {
this.value.push({
content: 'c1030e12.8585af',
content: i18n.t('c1030e12.8585af'),
imgUrl: ''
})
},

View File

@@ -39,19 +39,19 @@ const config = {
},
value: [
{
content: 'cff31093.818d78',
content: i18n.t('cff31093.818d78'),
imgUrl: ''
},
{
content: 'cff31093.4933ca',
content: i18n.t('cff31093.4933ca'),
imgUrl: ''
},
{
content: 'cff31093.a48b28',
content: i18n.t('cff31093.a48b28'),
imgUrl: ''
},
{
content: 'cff31093.59bd68',
content: i18n.t('cff31093.59bd68'),
imgUrl: ''
}
]

View File

@@ -300,7 +300,10 @@ export default {
async addStoreAction() {
const distributor_ids = this.addressForm.distributors.map((item) => item.distributor_id)
const { data } = await this.$picker.shop({
data: distributor_ids
data: distributor_ids,
queryParams: {
show_distributor_self: 1
}
})
this.addressForm.distributors = JSON.parse(JSON.stringify(data))
},

View File

@@ -505,7 +505,7 @@ export default {
//搜索银行选项labelbank_name
label: `${item.bank_name}:${item.bank_account_no}`,
//弹框下拉选项valuetitle
value: item.id,
value: item.id.toString(),
title: item.bank_account_name
}))
this.bankList = _list

View File

@@ -292,6 +292,7 @@ export default {
}
],
columns: [
{ name: this.$t('bea3f44a.7a9e2d'), key: 'id', width: 120 },
{ name: this.$t('bea3f44a.39834b'), key: 'name', width: 180 },
{
name: this.$t('bea3f44a.ed13b6'),

View File

@@ -208,12 +208,31 @@
</el-table-column>
<el-table-column width="80" prop="get_num" :label="$t('9cc0c982.5d5aac')">
<template slot-scope="scope">
<span>{{scope.row.get_num || 0}}</span>
<span>{{ scope.row.get_num || 0 }}</span>
</template>
</el-table-column>
<el-table-column width="80" prop="use_num" :label="$t('9cc0c982.ce2ed8')">
<template slot-scope="scope">
<span>{{scope.row.use_num || 0}}</span>
<span>{{ scope.row.use_num || 0 }}</span>
</template>
</el-table-column>
<el-table-column width="120" :label="$t('9cc0c982.fea789')">
<template slot-scope="scope">
{{
0 >= parseInt(scope.row.source_id, 10) ||
!(scope.row.source_name || scope.row.store_name || scope.row.shop_name)
? $t('9cc0c982.498128')
: scope.row.source_name || scope.row.store_name || scope.row.shop_name
}}
</template>
</el-table-column>
<el-table-column width="120" :label="$t('9cc0c982.eb4307')">
<template slot-scope="scope">
{{
scope.row.use_all_shops == 1
? $t('9cc0c982.77678b')
: $t('9cc0c982.fcf7d8')
}}
</template>
</el-table-column>
</el-table>

View File

@@ -6,47 +6,22 @@
<template>
<SpPage>
<SpRouterView>
<SpFormPlus
v-model="formData"
form-type="searchForm"
:form-items="formItems"
@submit="onSearch"
@reset="onSearch"
:inline="true"
/>
<SpFormPlus v-model="formData" form-type="searchForm" :form-items="formItems" @submit="onSearch" @reset="onSearch"
:inline="true" />
<div class="action-container mt-5">
<el-button type="primary" icon="plus" @click="showEditModal('')">
{{
$t('f06fa37c.66ab5e')
}}
</el-button>
{{
$t('f06fa37c.66ab5e')
}}
</el-button>
</div>
<SpFinder
ref="finder"
url="/wxexternalconfig/list"
no-selection
:setting="setting"
:hooks="{ beforeSearch: beforeSearch }"
border
/>
<SpFinder ref="finder" url="/wxexternalconfig/list" no-selection :setting="setting"
:hooks="{ beforeSearch: beforeSearch }" border />
<el-dialog
class="modal"
width="30%"
:title="modalTitle"
:visible="showModal"
@close="closeModal"
>
<el-form
ref="editForm"
label-suffix=":"
label-width="120px"
class="form"
:rules="rules"
:model="editInfo"
>
<el-dialog class="modal" width="30%" :title="modalTitle" :visible="showModal" @close="closeModal">
<el-form ref="editForm" label-suffix=":" label-width="120px" class="form" :rules="rules" :model="editInfo">
<el-form-item :label="$t('f06fa37c.d34f1f')" prop="app_name">
<el-input v-model="editInfo.app_name" />
</el-form-item>
@@ -54,15 +29,8 @@
<el-input v-model="editInfo.app_id" />
</el-form-item>
<el-form-item :label="$t('f06fa37c.3bdd08')">
<el-input
v-model="editInfo.app_desc"
type="textarea"
:placeholder="$t('f06fa37c.d51187')"
resize="none"
maxlength="30"
show-word-limit
:rows="3"
/>
<el-input v-model="editInfo.app_desc" type="textarea" :placeholder="$t('f06fa37c.d51187')" resize="none"
maxlength="30" show-word-limit :rows="3" />
</el-form-item>
</el-form>
<div class="btns">
@@ -88,9 +56,6 @@ export default {
formData: {
app_name: ''
},
formItems: [],
// 规则
rules: {},
// modal title
modalTitle: '',
// 是否显示modal
@@ -102,9 +67,7 @@ export default {
app_id: '',
app_name: '',
app_desc: ''
},
//SpFinder的配置
setting: {}
}
}
},
computed: {
@@ -149,22 +112,22 @@ export default {
{
name: this.$t('f06fa37c.d70fe9'),
key: 'app_id',
width: 250
minWidth: 250
},
{
name: this.$t('f06fa37c.d34f1f'),
key: 'app_name',
width: 272
minWidth: 272
},
{
name: this.$t('f06fa37c.3bdd08'),
key: 'app_desc',
width: 300
minWidth: 300
},
{
name: this.$t('f06fa37c.2b6bc0'),
key: 'actions',
width: 230,
minWidth: 230,
render: (h, { row }) => {
return h('div', [
h(