merge(scope): merge

This commit is contained in:
lukaijie
2026-04-17 22:13:14 +08:00
parent c6040c76e0
commit 2b1238d967
503 changed files with 2706 additions and 2760 deletions

View File

@@ -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

View File

@@ -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(财务开票税率): 税率配置选项改为全部/指定管理分类

View File

@@ -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

View File

@@ -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

View File

@@ -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: 自营商品列表太阳码弹窗二维码与按钮居中

View File

@@ -0,0 +1,12 @@
## 本次变更总结
**时间**: 2026-04-13
**涉及文件**:
- `src/view/base/account/normalstaff.vue` (修改)
**主要改动**:
- 普通员工列表表格:当 `VERSION_PLATFORM()` 为真(平台版)时,通过 `v-if="!VERSION_PLATFORM()"` 隐藏「关联分销商」列,避免平台场景展示不适用的列。
- 「角色」列增加 `min-width="180"`,避免多角色标签时列过窄。
**一句话概括**: fix: 平台版员工列表隐藏关联分销商列并优化角色列宽度

View File

@@ -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

View File

@@ -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: 修正积分商品库存重量体积与价格文案映射

View File

@@ -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: 修复加价购与限购会员等级回显及列表展示

View File

@@ -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 改为切换语言

View File

@@ -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: 商城信息移除登录页背景配置;加价购待开始操作列单行展示并优化图标区

View File

@@ -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 改为切换语言

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"
}
}
}

23
src/api/mail.js Normal file
View File

@@ -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
})
}

View File

@@ -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
}

View File

@@ -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'
}
})
}

View File

@@ -13,7 +13,7 @@
:class="{ 'border-dashed': border === 'dashed', 'border-none': border === 'none' }"
:style="{ width: width + 'px', height: height + 'px' }"
>
<img v-if="imgUrl" :src="imgUrl" alt="">
<img v-if="imgUrl" :src="imgUrl" alt="" />
<i v-else class="iconfont" :class="icon" :style="'font-size:' + width * 0.3 + 'px'" />
</div>
<div v-if="bottomInfo" class="bottom-info">

View File

@@ -7,10 +7,8 @@
@change="handleTypeChange"
>
<el-radio-button v-for="item in options" :key="item.id" :label="item.id" :value="item.id">
{{
item.name
}}
</el-radio-button>
{{ item.name }}
</el-radio-button>
</el-radio-group>
<div class="crowd-select-header">
<el-button

View File

@@ -57,10 +57,12 @@
<el-button v-if="!isSynchronize" type="primary" @click="saveStoreAction">{{
$t('f15fc38a.aa7527')
}}</el-button>
<el-button v-else type="primary" @click="saveStoreAction">{{ $t('f15fc38a.38ee33') }}</el-button>
<el-button v-if="isSynchronize" type="primary" @click="saveAllStoreAction"
>{{ $t('f15fc38a.90d8ec') }}</el-button
>
<el-button v-else type="primary" @click="saveStoreAction">{{
$t('f15fc38a.38ee33')
}}</el-button>
<el-button v-if="isSynchronize" type="primary" @click="saveAllStoreAction">{{
$t('f15fc38a.90d8ec')
}}</el-button>
</span>
</el-dialog>
</template>

View File

@@ -9,7 +9,7 @@
<el-col v-for="(item, index) in goods" :key="index" :xs="24" :sm="12" :md="8" :lg="6">
<div class="goods">
<div class="goods-thumbnail">
<img :src="item.pics[0]" alt="">
<img :src="item.pics[0]" alt="" />
</div>
<div class="goods-caption">
<div class="goods-title">
@@ -33,10 +33,8 @@
</el-row>
<div>
<el-button type="primary" @click="handleGoodsDialogShow">
{{
$t('ea95ac26.43d1e2')
}}
</el-button>
{{ $t('ea95ac26.43d1e2') }}
</el-button>
</div>
<!-- <el-dialog
title="选择sku"

View File

@@ -71,10 +71,10 @@
class="preview-cover_img"
src="@/assets/img/preview.png"
:alt="$t('6880d32e.645dbc')"
>
/>
<span class="preview-cover_text">{{ $t('6880d32e.645dbc') }}</span>
</div>
<img class="template-pic" :src="item.template_pic">
<img class="template-pic" :src="item.template_pic" />
<div v-if="item.template_type == 1" class="tag">{{ $t('6880d32e.55f872') }}</div>
</div>
<div class="template-name">
@@ -112,7 +112,7 @@
<div v-if="!item.showTime" class="no-time">
<div>{{ $t('6880d32e.b4f549') }}</div>
<div class="picker-wrap">
<img class="time-img" src="@/assets/img/time-img.png">
<img class="time-img" src="@/assets/img/time-img.png" />
<span>{{ $t('6880d32e.33d8ff') }}</span>
<el-date-picker
v-model="item.timer_time"
@@ -161,7 +161,7 @@
@click="AddOrEditDialog('add')"
>
<div class="template-wrap">
<img class="add-img" src="@/assets/img/add-template.png" :alt="$t('6880d32e.6fef15')">
<img class="add-img" src="@/assets/img/add-template.png" :alt="$t('6880d32e.6fef15')" />
<div class="add-text">{{ $t('6880d32e.6fef15') }}</div>
</div>
</div>
@@ -311,12 +311,12 @@
:src="
item.selectedIconPath || 'https://fakeimg.pl/60x60/EFEFEF/CCC/?text=icofont=lobster'
"
>
/>
<img
v-else
class="svg-icon"
:src="item.iconPath || 'https://fakeimg.pl/60x60/EFEFEF/CCC/?text=icon&font=lobster'"
>
/>
</template>
<div class="tab-text">
{{ $t(item.text) }}

View File

@@ -9,7 +9,7 @@
<el-col v-for="(item, index) in goods" :key="index" :xs="24" :sm="12" :md="8" :lg="6">
<div class="goods">
<div class="goods-thumbnail">
<img :src="item.pics[0]" alt="">
<img :src="item.pics[0]" alt="" />
</div>
<div class="goods-caption">
<div class="goods-title">

View File

@@ -9,7 +9,7 @@
<el-col v-for="(item, index) in goods" :key="index" :xs="24" :sm="12" :md="8" :lg="6">
<div class="goods">
<div class="goods-thumbnail">
<img :src="item.pics[0]" alt="">
<img :src="item.pics[0]" alt="" />
</div>
<div class="goods-caption">
<div class="goods-title">

View File

@@ -75,14 +75,14 @@
item.selectedIconPath ||
'https://fakeimg.pl/60x60/EFEFEF/CCC/?text=icofont=lobster'
"
>
/>
<img
v-else
class="svg-icon"
:src="
item.iconPath || 'https://fakeimg.pl/60x60/EFEFEF/CCC/?text=icon&font=lobster'
"
>
/>
</template>
<div class="tab-text">
{{ item.text }}

View File

@@ -61,7 +61,7 @@
"
>
<div class="pic_box">
<img :src="item.image_full_url" class="pic">
<img :src="item.image_full_url" class="pic" />
</div>
<span class="lbl_content">{{ item.image_name }}</span>
<div class="selected_mask">

View File

@@ -21,7 +21,7 @@
@mouseenter="picsEnter(index)"
@mouseleave="picsLeave"
>
<img :src="wximageurl + item">
<img :src="wximageurl + item" />
<div class="goodspic-mask" :class="picsCurrent == index ? 'on' : ''">
<!-- <div
class="el-icon-delete"

View File

@@ -25,7 +25,7 @@
<div class="shop_module_item shop_module_banner js_shopModuleWrapper">
<strong class="shop_banner_title">Onex平台</strong>
<!-- <span class="banner_logo"><img src="@/assets/img/logo2.31693aa.png" alt=""/></span> -->
<span class="banner_bg"><img src="" alt="" class="banner_pic"></span>
<span class="banner_bg"><img src="" alt="" class="banner_pic" /></span>
<div class="pic_mask" />
</div>
<div class="list_section shop_module_item js_shopModuleWrapper">
@@ -48,7 +48,7 @@
<ul class="list_row">
<li>
<a href="javascript:;">
<img alt="img" src="">
<img alt="img" src="" />
</a>
</li>
</ul>
@@ -57,15 +57,15 @@
<el-row :gutter="20" class="list_row_col">
<el-col :span="14">
<div class="ele_1">
<a href="javascript:;"><img src="" alt="img"></a>
<a href="javascript:;"><img src="" alt="img" /></a>
</div>
</el-col>
<el-col :span="10">
<div class="ele_2">
<a href="javascript:;"><img src="" alt="img"></a>
<a href="javascript:;"><img src="" alt="img" /></a>
</div>
<div class="ele_2">
<a href="javascript:;"><img src="" alt="img"></a>
<a href="javascript:;"><img src="" alt="img" /></a>
</div>
</el-col>
</el-row>

View File

@@ -15,7 +15,7 @@
<el-table v-loading.body="listLoading" :data="tableData">
<el-table-column label="" width="50">
<template slot-scope="scope">
<input type="radio" name="kq" :value="JSON.stringify(scope.row)">
<input type="radio" name="kq" :value="JSON.stringify(scope.row)" />
</template>
</el-table-column>
<el-table-column :label="$t('e4e162b0.f47182')">

View File

@@ -193,7 +193,7 @@
<div v-else class="cardmsgArea inner">
<div class="msg_card">
<div class="card_content clearfix">
<img class="logo f_l" :src="wximageurl + data.card.logo_url">
<img class="logo f_l" :src="wximageurl + data.card.logo_url" />
<div class="card_info">
<h4 class="card_title">
{{ data.card.title }}

View File

@@ -471,11 +471,12 @@ export default {
'no-label': typeof item.label == 'undefined',
'custom-error': typeof item.component != 'undefined',
'is-required': item.required || item.validator,
inline: typeof item.inline != 'undefined' ? item.inline : false,
inline: typeof item.inline != 'undefined' ? item.inline : false
}
]}
style={{
width: item.width ? item.width : 'auto'
width: item.width ? item.width : 'auto',
...(item.style && typeof item.style === 'object' ? item.style : {})
}}
showMessage={typeof item.showMessage == 'undefined' ? true : item.showMessage}
v-show={this.getItemShow(item)}

View File

@@ -19,10 +19,8 @@
}}</span>
<span v-else style="color: #67c23a; line-height: 40px">{{ $t('089d6e70.498a19') }}</span>
<el-button v-if="exportPercent < 100" size="mini" type="warning" @click="hanleStop">
{{
$t('089d6e70.84fac4')
}}
</el-button>
{{ $t('089d6e70.84fac4') }}
</el-button>
</div>
</div>
</template>

View File

@@ -156,9 +156,11 @@ export default {
const { list } = response.data.data
if (this.value.data) {
// 统一转换为字符串类型 不然incluses匹配不到
let dataArrayString = this.value.data.map(item => String(item))
const selectRows = list.filter(item => dataArrayString.includes(String(item.attribute_id)))
let dataArrayString = this.value.data.map((item) => String(item))
const selectRows = list.filter((item) =>
dataArrayString.includes(String(item.attribute_id))
)
const { finderTable } = this.$refs.finder.$refs
setTimeout(() => {
finderTable.$refs.finderTable.setSelection(selectRows)

View File

@@ -171,15 +171,11 @@
/>
<el-button @click="onAddGroup" class="h-[calc(1em+16px)]">
{{
addGroupBtnText
}}
</el-button>
{{ addGroupBtnText }}
</el-button>
<el-button :disabled="disabledBtn" @click="onMoveGroup">
{{
moveGroupBtnText
}}
</el-button>
{{ moveGroupBtnText }}
</el-button>
<!-- <el-button :disabled="disabledDeleteGroup" @click="onDeleteImageGroup">
删除分组
</el-button> -->
@@ -204,10 +200,8 @@
下载
</el-button> -->
<el-button :disabled="disabledBtn" @click="handleCancelAll">
{{
cancelAllBtnText
}}
</el-button>
{{ cancelAllBtnText }}
</el-button>
</div>
<!-- <div>
<el-input size="small" placeholder="请输入图片名称" suffix-icon="el-icon-search" />
@@ -361,9 +355,7 @@
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="cropperDialogShow = false">{{ cancelText }}</el-button>
<el-button type="primary" @click="cropperDialogShow = false">{{
confirmText
}}</el-button>
<el-button type="primary" @click="cropperDialogShow = false">{{ confirmText }}</el-button>
</span>
</el-dialog>
</div>

View File

@@ -110,7 +110,7 @@ export default {
afterSearch(response) {
const { list } = response.data.data
if (this.value.data && Array.isArray(this.value.data) && this.value.data.length > 0) {
const selectRows = list.filter(item => this.value.data.includes(item.roomid))
const selectRows = list.filter((item) => this.value.data.includes(item.roomid))
const { finderTable } = this.$refs.finder.$refs
// 只有当找到匹配的项时才设置选中状态,避免清空其他选中项
if (selectRows.length > 0) {

View File

@@ -110,7 +110,7 @@ export default {
const urlParams = new URLSearchParams(window.location.search)
const distributor_id = urlParams.get('distributor_id')
params = {
...params,
...params
// is_valid: true
}
if (distributor_id) {

View File

@@ -121,7 +121,9 @@ export default {
computed: {
// 调用方通过 queryParams 指定了 is_valid 时,不再展示状态筛选
isValidFixed() {
return this.value?.queryParams?.is_valid !== undefined && this.value?.queryParams?.is_valid !== ''
return (
this.value?.queryParams?.is_valid !== undefined && this.value?.queryParams?.is_valid !== ''
)
},
setting() {
const t = this.$t.bind(this)

View File

@@ -203,9 +203,16 @@
<div class="picker-video">
<div class="picker-video-hd">
<div class="btn-actions">
<el-upload class="btn-upload" action="" accept="video/mp4,.mov" :show-file-list="false"
:http-request="handleUpload" :before-upload="beforeAvatarUpload" :on-success="handleAvatarSuccess"
:on-error="uploadError">
<el-upload
class="btn-upload"
action=""
accept="video/mp4,.mov"
:show-file-list="false"
:http-request="handleUpload"
:before-upload="beforeAvatarUpload"
:on-success="handleAvatarSuccess"
:on-error="uploadError"
>
<el-button>{{ i18n.t('24acd55e.afddcb') }}</el-button>
</el-upload>
</div>
@@ -216,21 +223,28 @@
<div class="picker-video-bd">
<div class="rg-container">
<div v-loading="loading" class="image-list">
<div v-for="(item, index) in list" :key="`image-item-wrap__${index}`" class="image-item-wrap">
<div
v-for="(item, index) in list"
:key="`image-item-wrap__${index}`"
class="image-item-wrap"
>
<div class="image-item" :style="{ color: '#fff' }">
<video-player class="picker-video-player" :options="{
// preload: 'auto',
aspectRatio: '16:9',
fluid: true,
sources: [
{
type: item.image_type,
src: item.url
}
],
notSupportedMessage: i18n.t('24acd55e.01c0da'),
controlBar: false
}" />
<video-player
class="picker-video-player"
:options="{
// preload: 'auto',
aspectRatio: '16:9',
fluid: true,
sources: [
{
type: item.image_type,
src: item.url
}
],
notSupportedMessage: i18n.t('24acd55e.01c0da'),
controlBar: false
}"
/>
<div class="image-modal" @click="handleClickItem(item)">
<i class="el-icon-link" @click.stop="handleCopy(item.url)" />
</div>
@@ -240,7 +254,10 @@
{{ item.image_name }}
</p>
</div>
<div v-show="multiple ? isActive(item) > -1 : isActive(item)" class="image-box-selected">
<div
v-show="multiple ? isActive(item) > -1 : isActive(item)"
class="image-box-selected"
>
<div class="image-box-selected__right-angle" />
<div class="image-box-selected__text">
<span v-show="multiple">{{ isActive(item) + 1 }}</span>
@@ -250,8 +267,13 @@
</div>
<el-empty v-if="list.length == 0" :description="i18n.t('24acd55e.21efd8')" />
</div>
<el-pagination layout="total, prev, pager, next" :current-page.sync="pageCur" :page-size="pageSize"
:total="pageCount" @current-change="goPage" />
<el-pagination
layout="total, prev, pager, next"
:current-page.sync="pageCur"
:page-size="pageSize"
:total="pageCount"
@current-change="goPage"
/>
</div>
</div>
</div>

View File

@@ -40,7 +40,8 @@ export default {
couponPackage: (args) => fn({ value: { ...args }, type: 'pickerCouponPackage' }, parent),
video: (args) => fn({ value: { ...args }, type: 'pickerVideo', width: '855px' }, parent),
goods: (args) => fn({ value: { ...args }, type: 'pickerGoods', width: '1110px' }, parent),
goodsList: (args) => fn({ value: { ...args }, type: 'pickerGoodsList', width: '1110px' }, parent),
goodsList: (args) =>
fn({ value: { ...args }, type: 'pickerGoodsList', width: '1110px' }, parent),
goodsitem: (args) => fn({ value: { ...args }, type: 'pickerGoodsItem' }, parent),
goodsSku: (args) => fn({ value: { ...args }, type: 'pickerGoodsSku' }, parent),
goodsParams: (args) => fn({ value: { ...args }, type: 'pickerGoodsParams' }, parent),
@@ -54,7 +55,8 @@ export default {
path: (args) => fn({ value: { ...args }, type: 'pickerPath' }, parent),
tag: (args) => fn({ value: { ...args }, type: 'pickerTag' }, parent),
shopTag: (args) => fn({ value: { ...args }, type: 'pickerShopTag' }, parent),
editBoard: (args) => fn({ value: { ...args }, type: 'pickerEditBoard', width: '892px' }, parent),
editBoard: (args) =>
fn({ value: { ...args }, type: 'pickerEditBoard', width: '892px' }, parent),
planting: (args) => fn({ value: { ...args }, type: 'pickerPlanting' }, parent),
pages: (args) => fn({ value: { ...args }, type: 'pickerPages' }, parent),
widget: (args) => fn({ value: { ...args }, type: 'pickerWidget' }, parent),
@@ -65,7 +67,8 @@ export default {
crowds: (args) => fn({ value: { ...args }, type: 'pickerCrowds' }, parent),
store: (args) => fn({ value: { ...args }, type: 'pickerStore' }, parent),
groups: (args) => fn({ value: { ...args }, type: 'pickerGroups' }, parent),
activityCollection: (args) => fn({ value: { ...args }, type: 'pickerActivityCollection' }, parent),
activityCollection: (args) =>
fn({ value: { ...args }, type: 'pickerActivityCollection' }, parent),
ranking: (args) => fn({ value: { ...args }, type: 'pickerRanking' }, parent)
})

View File

@@ -73,7 +73,7 @@
font-size: 12px;
cursor: default;
}
.icon-qingchuFilled{
.icon-qingchuFilled {
position: absolute;
right: -7px;
z-index: 99;

View File

@@ -25,15 +25,11 @@
</div>
<div slot="footer" class="tag-footer">
<el-button type="primary" plain size="medium" @click="selectAll">
{{
$t('debc18ae.296a44')
}}
</el-button>
{{ $t('debc18ae.296a44') }}
</el-button>
<el-button type="primary" size="medium" @click="submitTags">
{{
$t('debc18ae.aa7527')
}}
</el-button>
{{ $t('debc18ae.aa7527') }}
</el-button>
</div>
</el-dialog>
</template>

View File

@@ -25,7 +25,7 @@
:class="{ 'with-img': item.imgUrl }"
>
<template v-if="item.imgUrl">
<img class="coupon-img" :src="item.imgUrl">
<img class="coupon-img" :src="item.imgUrl" />
</template>
<template v-else>
<div class="coupon-amount">
@@ -36,7 +36,7 @@
</div>
</div>
<div class="coupon-brand">
<img class="brand-img" :src="wximageurl + item.imgUrl">
<img class="brand-img" :src="wximageurl + item.imgUrl" />
</div>
<div class="coupon-caption">
<div class="coupon-content">
@@ -60,11 +60,11 @@
:class="{ 'with-img': item.imgUrl }"
>
<template v-if="item.imgUrl">
<img class="coupon-img" :src="item.imgUrl">
<img class="coupon-img" :src="item.imgUrl" />
</template>
<template v-else>
<div class="coupon-brand">
<img class="brand-img" :src="wximageurl + item.imgUrl">
<img class="brand-img" :src="wximageurl + item.imgUrl" />
</div>
<div class="coupon-caption">
<div class="coupon-content">

View File

@@ -10,7 +10,7 @@
<div class="floorImg">
<div class="floorImg_img_list">
<div v-for="(item, index) in data" :key="index" class="floorImg_img_li">
<img class="floorImg_img" :src="wximageurl + item.imgUrl">
<img class="floorImg_img" :src="wximageurl + item.imgUrl" />
<div class="imgs_title" :style="'color:' + base.WordColor">
{{ item.ImgTitle }}
</div>

View File

@@ -11,9 +11,9 @@
<div class="floorImg">
<div v-if="base.openBackImg" class="floorImg_img_list">
<img :src="wximageurl + base.backgroundImg" class="floorImg-imgs">
<img :src="wximageurl + base.backgroundImg" class="floorImg-imgs" />
<div v-for="(item, index) in data" :key="index" class="floorImg_img_li1">
<img class="floorImg_img" :src="wximageurl + item.imgUrl">
<img class="floorImg_img" :src="wximageurl + item.imgUrl" />
<div class="imgs_title" :style="'color:' + base.WordColor">
{{ item.ImgTitle }}
</div>
@@ -22,7 +22,7 @@
<div v-else class="floorImg_img_list">
<div v-for="(item, index) in data" :key="index" class="floorImg_img_li2">
<img class="floorImg_img" :src="wximageurl + item.imgUrl">
<img class="floorImg_img" :src="wximageurl + item.imgUrl" />
<div class="imgs_title" :style="'color:' + base.WordColor">
{{ item.ImgTitle }}
</div>

View File

@@ -28,7 +28,7 @@
? 'https://fakeimg.pl/80x80/EFEFEF/CCC/?text=img&font=lobster'
: 'https://fakeimg.pl/288x120/EFEFEF/CCC/?text=img&font=lobster')
"
>
/>
<div class="caption">
<div class="goods-title">
{{ data[0].item_name || $t('37035f2d.07ec01') }}

View File

@@ -26,7 +26,7 @@
<div v-for="(item, index) in data.slice(0, 50)" :key="index" class="grid-item">
<div class="goods-wrap">
<div class="thumbnail">
<img class="goods-img" :src="wximageurl + item.imgUrl">
<img class="goods-img" :src="wximageurl + item.imgUrl" />
</div>
<div class="caption">
<img
@@ -37,7 +37,7 @@
? wximageurl + item.brand
: 'https://fakeimg.pl/60x60/EFEFEF/CCC/?text=brand&font=lobster'
"
>
/>
<div class="goods-title">
{{ item.title }}
</div>

View File

@@ -43,7 +43,7 @@
>
<div class="goods-wrap">
<div class="thumbnail">
<img class="goods-img" :src="wximageurl + item.imgUrl">
<img class="goods-img" :src="wximageurl + item.imgUrl" />
</div>
<div class="caption">
<img
@@ -54,7 +54,7 @@
? wximageurl + item.brand
: 'https://fakeimg.pl/60x60/EFEFEF/CCC/?text=brand&font=lobster'
"
>
/>
<div class="goods-title">
{{ item.title }}
</div>

View File

@@ -55,10 +55,10 @@
<div v-for="(item, index) in data.slice(0, 50)" :key="index" class="scroll-item">
<div v-if="config.leaderboard" class="subscript">
<div class="subscript-text">NO.{{ index + 1 }}</div>
<img class="subscript-img" :src="subscriptImg">
<img class="subscript-img" :src="subscriptImg" />
</div>
<div class="thumbnail">
<img class="goods-img" :src="wximageurl + item.imgUrl">
<img class="goods-img" :src="wximageurl + item.imgUrl" />
</div>
<div class="marketing-title">
{{ item.title }}
@@ -92,7 +92,7 @@
</div>
<div v-if="base.backgroundImg" class="scroll-item">
<div class="more">
<img :src="base.backgroundImg" alt="">
<img :src="base.backgroundImg" alt="" />
<div>{{ $t('2ba94ca2.90ef7c') }}</div>
</div>
</div>

View File

@@ -15,7 +15,7 @@
:src="item.imgUrl"
alt=""
/> -->
<img :src="data[0].imgUrl || data[1].imgUrl" alt="">
<img :src="data[0].imgUrl || data[1].imgUrl" alt="" />
<!-- <img class="png" :src="data[0].imgUrl" alt="">
<img class="gif" :src="data[1].imgUrl" alt=""> -->

View File

@@ -18,7 +18,7 @@
</div> -->
</div>
<div class="img-hotzone">
<img :src="config.imgUrl" alt="">
<img :src="config.imgUrl" alt="" />
<div
v-for="(item, index) in data"
:key="index"

View File

@@ -9,7 +9,7 @@
<div class="component-body with-padding">
<div class="navigation">
<div v-for="(item, index) in data" :key="index" class="nav-item">
<img class="nav-img" :src="wximageurl + item.imgUrl">
<img class="nav-img" :src="wximageurl + item.imgUrl" />
<div class="nav-name">
{{ item.content }}
</div>

View File

@@ -25,7 +25,7 @@
</div>
<div class="shopList">
<div v-if="shoplist.length <= 0" class="noShop">
<img :src="img.noShopImg" alt="">
<img :src="img.noShopImg" alt="" />
<p>{{ $t('6d548076.d17ff7') }}</p>
</div>
<div v-else class="content">
@@ -39,7 +39,7 @@
backgroundRepeat: 'no-repeat'
}"
>
<img class="logo" :src="item.logo || img.logoImg" alt="">
<img class="logo" :src="item.logo || img.logoImg" alt="" />
</div>
<!-- <img class="bg" :src="img.bgImg" alt="" /> -->

View File

@@ -20,15 +20,15 @@
<div :class="'showcase-scheme-' + config.style">
<div class="scheme-item">
<div class="layout layout-1">
<img v-if="data[0]" class="show-img" :src="wximageurl + data[0].imgUrl">
<img v-if="data[0]" class="show-img" :src="wximageurl + data[0].imgUrl" />
</div>
</div>
<div class="scheme-item">
<div class="layout layout-2">
<img v-if="data[1]" class="show-img" :src="wximageurl + data[1].imgUrl">
<img v-if="data[1]" class="show-img" :src="wximageurl + data[1].imgUrl" />
</div>
<div class="layout layout-3">
<img v-if="data[2]" class="show-img" :src="wximageurl + data[2].imgUrl">
<img v-if="data[2]" class="show-img" :src="wximageurl + data[2].imgUrl" />
</div>
</div>
</div>

View File

@@ -24,7 +24,7 @@
(data[0] && data[0].imgUrl) ||
'https://fakeimg.pl/320x240/EFEFEF/CCC/?text=image&font=lobster'
"
>
/>
<el-carousel
class="sliderimg"
@@ -46,7 +46,7 @@
item.imgUrl ||
'https://fakeimg.pl/320x' + config.height + '/EFEFEF/CCC/?text=image&font=lobster'
"
>
/>
<!-- 图片文字配置 -->
<div class="text-deploy">
<!-- 模板1 -->

View File

@@ -30,7 +30,7 @@
class="store-logo"
:src="store.logo || 'https://fakeimg.pl/120x120/EFEFEF/CCC/?text=logo&font=lobster'"
alt=""
>
/>
<div class="store-name">
<p class="name">
{{ store.name }}
@@ -41,7 +41,7 @@
</div>
</div>
<div class="picture">
<img :src="base.imgUrl" alt="">
<img :src="base.imgUrl" alt="" />
</div>
<div class="store-items">
<div v-for="item in store.items.slice(0, 4)" :key="item.goodsId" class="store-item">
@@ -50,7 +50,7 @@
:src="item.imgUrl"
alt=""
:style="{ 'border-color': base.borderColor || '#000' }"
>
/>
<div class="store-item-amount">
<span class="price">¥{{ item.price / 100 }}</span>
</div>

View File

@@ -24,7 +24,7 @@
:src="wximageurl + item.imgUrl"
class="banner-uploader square thumbnail"
@click="handleImgChange(index)"
>
/>
</div>
<div v-else class="banner-uploader square thumbnail" @click="handleImgChange(index)">
<div class="content-center">
@@ -65,7 +65,7 @@
:src="wximageurl + item.imgUrl"
class="banner-uploader square thumbnail"
@click="couponPackageImg(index)"
>
/>
</div>
<div v-else class="banner-uploader square thumbnail" @click="couponPackageImg(index)">
<div class="content-center">

View File

@@ -33,7 +33,7 @@
:src="wximageurl + item.imgUrl"
class="banner-uploader"
@click="handleImgChange(index)"
>
/>
<div v-else class="banner-uploader" @click="handleImgChange(index)">
<i class="el-icon-camera" />
{{ $t('9c3a7c75.ce6855') }}

View File

@@ -31,7 +31,7 @@
:src="wximageurl + base.backgroundImg"
class="banner-uploader"
@click="handleImgChange('backImg')"
>
/>
<div v-else class="banner-uploader" @click="handleImgChange('backImg')">
<i class="el-icon-camera" />
{{ $t('7def7648.ce6855') }}
@@ -51,7 +51,7 @@
:src="wximageurl + item.imgUrl"
class="banner-uploader"
@click="handleImgChange(index)"
>
/>
<div v-else class="banner-uploader" @click="handleImgChange(index)">
<i class="el-icon-camera" />
{{ $t('7def7648.ce6855') }}

View File

@@ -34,7 +34,7 @@
? 'https://fakeimg.pl/80x80/EFEFEF/CCC/?text=img&font=lobster'
: 'https://fakeimg.pl/288x120/EFEFEF/CCC/?text=img&font=lobster')
"
>
/>
<div class="caption">
<div class="goods-title">
{{ data[0].item_name || $t('2698edba.07ec01') }}

View File

@@ -68,7 +68,7 @@
@mouseover.native="mouseoverHandle(index)"
@mouseleave.native="mouseleaveHandle()"
>
<img class="thumbnail" :src="wximageurl + item.imgUrl" alt="">
<img class="thumbnail" :src="wximageurl + item.imgUrl" alt="" />
<div class="title">
{{ item.title }}
</div>

View File

@@ -82,7 +82,7 @@
@mouseover.native="mouseoverHandle(index_y)"
@mouseleave.native="mouseleaveHandle()"
>
<img class="thumbnail" :src="wximageurl + item_y.imgUrl" alt="">
<img class="thumbnail" :src="wximageurl + item_y.imgUrl" alt="" />
<div class="title">
{{ item_y.title }}
</div>

View File

@@ -60,7 +60,7 @@
@mouseover.native="mouseoverHandle(index)"
@mouseleave.native="mouseleaveHandle()"
>
<img class="thumbnail" :src="wximageurl + item.imgUrl" alt="">
<img class="thumbnail" :src="wximageurl + item.imgUrl" alt="" />
<div class="title">
{{ item.title }}
</div>
@@ -140,7 +140,7 @@
:src="wximageurl + base.backgroundImg"
class="banner-uploader"
@click="handleImgChange('backImg')"
>
/>
<div v-else class="banner-uploader" @click="handleImgChange('backImg')">
<i class="el-icon-camera" />
{{ $t('9e916548.ce6855') }}

View File

@@ -18,7 +18,7 @@
:src="item.imgUrl"
class="banner-uploader"
@click="handleImgChange(index)"
>
/>
<div v-else class="banner-uploader" @click="handleImgChange(index)">
<i class="el-icon-camera" />
{{ $t('b0943a74.ce6855') }}

View File

@@ -24,7 +24,7 @@
:src="wximageurl + config.imgUrl"
class="banner-uploader"
@click="handleImgChange"
>
/>
</div>
<div v-else class="banner-uploader" @click="handleImgChange">
<i class="el-icon-camera" />{{ $t('879af10c.ce6855') }}

View File

@@ -22,10 +22,10 @@
:src="wximageurl + item.imgUrl"
class="banner-uploader square"
@click="handleImgChange(index)"
>
/>
<div v-else class="banner-uploader square" @click="handleImgChange(index)">
<div class="content-center">
<i class="el-icon-camera" /><br>
<i class="el-icon-camera" /><br />
{{ $t('a0725930.ce6855') }}
</div>
</div>

View File

@@ -29,10 +29,10 @@
:src="wximageurl + item.imgUrl"
class="banner-uploader"
@click="handleImgChange(index)"
>
/>
<div v-else class="banner-uploader" @click="handleImgChange(index)">
<div class="content-center">
<i class="el-icon-camera" /><br>
<i class="el-icon-camera" /><br />
{{ $t('b6e9f291.ce6855') }}
</div>
</div>

View File

@@ -81,7 +81,7 @@
:src="wximageurl + item.imgUrl"
class="banner-uploader"
@click="handleImgChange(index)"
>
/>
</div>
<div v-else class="banner-uploader" @click="handleImgChange(index)">
<i class="el-icon-camera" />
@@ -136,7 +136,7 @@
</template>
<template v-if="type === 'pc'">
<div v-if="item.url" class="upload-box">
<img :src="item.url" class="banner-uploader" @click="handleImgChange(index)">
<img :src="item.url" class="banner-uploader" @click="handleImgChange(index)" />
</div>
<div v-else class="banner-uploader" @click="handleImgChange(index)">
<i class="el-icon-camera" />

View File

@@ -35,7 +35,7 @@
'https://fakeimg.pl/120x120/EFEFEF/CCC/?text=logo&font=lobster'
"
alt=""
>
/>
<div class="store-name">
{{ store.name }}
</div>
@@ -46,7 +46,7 @@
:key="item.goodsId"
class="store-item"
>
<img class="store-item-thumb" :src="item.imgUrl" alt="">
<img class="store-item-thumb" :src="item.imgUrl" alt="" />
<div class="store-item-amount">
<span class="price">¥{{ item.price / 100 }}</span>
</div>
@@ -106,7 +106,7 @@
:src="wximageurl + base.imgUrl"
class="banner-uploader"
@click="handleImgChange"
>
/>
</div>
<div v-else class="banner-uploader" @click="handleImgChange">
<i class="el-icon-camera" />{{ $t('43c29e65.ce6855') }}

View File

@@ -27,7 +27,7 @@
:src="item.iconPath"
class="icon-setter"
@click="handleIconChange(index)"
>
/>
<div v-else class="icon-setter" @click="handleIconChange(index)">
<i class="el-icon-picture muted" />
</div>
@@ -36,7 +36,7 @@
:src="item.selectedIconPath"
class="icon-setter"
@click="handleSelectedIconChange(index)"
>
/>
<div v-else class="icon-setter" @click="handleSelectedIconChange(index)">
<i class="el-icon-picture muted" />
</div>

View File

@@ -31,7 +31,7 @@
:src="item.iconPath"
class="icon-setter"
@click="handleIconChange(index)"
>
/>
<div v-else class="icon-setter" @click="handleIconChange(index)">
<i class="el-icon-picture muted" />
</div>
@@ -40,7 +40,7 @@
:src="item.selectedIconPath"
class="icon-setter"
@click="handleSelectedIconChange(index)"
>
/>
<div v-else class="icon-setter" @click="handleSelectedIconChange(index)">
<i class="el-icon-picture muted" />
</div>

View File

@@ -11,8 +11,7 @@
<el-option :label="$t('79d48f9d.63f66f')" :value="2" />
<el-option :label="$t('79d48f9d.457a6d')" :value="3" />
<el-option :label="$t('79d48f9d.4e2196')" :value="4" />
<el-option :label="$t('79d48f9d.f1d4ff')" :value="5" />
</el-select
<el-option :label="$t('79d48f9d.f1d4ff')" :value="5" /> </el-select
>&nbsp;
<span v-if="isNeardate"
>{{ typeText

View File

@@ -17,7 +17,7 @@
<li v-for="(item, index) in dataList">
<el-row>
<el-col :span="18" class="frm-tips">
<input type="radio" name="sendItem" :value="index">&nbsp;{{ item.title }}
<input type="radio" name="sendItem" :value="index" />&nbsp;{{ item.title }}
</el-col>
<el-col :span="6" class="tr">
<span class="frm-tips">{{ item.date }}</span>
@@ -32,7 +32,7 @@
<li v-for="(item, index) in scDataList">
<el-row>
<el-col :span="18" class="frm-tips">
<input type="radio" name="scItem" :value="index">&nbsp;{{ item.title }}
<input type="radio" name="scItem" :value="index" />&nbsp;{{ item.title }}
</el-col>
<el-col :span="6" class="tr">
<span class="frm-tips">{{ item.date }}</span>
@@ -45,7 +45,7 @@
<div class="history_msg clearfix">
<div class="preview_area f_l">
<div class="preview_box">
<img :src="demoimg">
<img :src="demoimg" />
</div>
<p>{{ $t('f9b4b391.9b80e6') }}</p>
</div>

View File

@@ -12,7 +12,7 @@
<div>
<div class="tips">{{ $t('fc463ac7.fed838') }}</div>
<div class="upload" @dragover="fileDragover" @drop="fileDrop">
<img class="upload-img" src="@/assets/img/upload.svg" alt="">
<img class="upload-img" src="@/assets/img/upload.svg" alt="" />
<div class="upload-text">
<span>{{ $t('fc463ac7.1ef03f') }}</span>
<el-upload

View File

@@ -20,7 +20,7 @@
src: item.url
}
],
notSupportedMessage: this.$t('c9176f55.01c0da'),
notSupportedMessage: $t('c9176f55.01c0da'),
controlBar: false
}"
/>
@@ -75,7 +75,7 @@
src: item.url
}
],
notSupportedMessage: this.$t('c9176f55.01c0da'),
notSupportedMessage: $t('c9176f55.01c0da'),
controlBar: false
}"
/>
@@ -93,10 +93,10 @@
<el-pagination
background
layout="total, sizes, prev, pager, next"
:current-page.sync="params.page"
:current-page.sync="localparams.page"
:page-sizes="[10, 20, 50]"
:total="total_count"
:page-size="params.pageSize"
:page-size="localparams.pageSize"
@current-change="handleLocalCurrentChange"
@size-change="handleLocalSizeChange"
/>
@@ -159,12 +159,19 @@ export default {
},
computed: {
checkedVideoList() {
return this.checked.filter((item) => item.media_id)
if (!Array.isArray(this.checked)) {
return []
}
return this.checked.filter((item) => item && item.media_id)
}
},
watch: {
data: {
handler(val) {
if (val == null) {
this.checked = []
return
}
this.isArray = Object.prototype.toString.call(val).slice(8, -1) === 'Array'
if (this.isArray) {
this.checked = JSON.parse(JSON.stringify(val))
@@ -268,10 +275,15 @@ export default {
this.localloading = true
getQiniuVideoList(this.localparams)
.then((response) => {
this.localvideoList = response.data.data.list
this.localloading = false
const payload = response?.data?.data
this.localvideoList = payload && Array.isArray(payload.list) ? payload.list : []
this.total_count =
payload && typeof payload.total_count === 'number' ? payload.total_count : 0
})
.catch(function (error) {
.catch((err) => {
console.error(err)
})
.finally(() => {
this.localloading = false
})
},
@@ -295,7 +307,7 @@ export default {
handleLocalSizeChange(pageSize) {
this.localparams.page = 1
this.localparams.pageSize = pageSize
this.fetchVideos()
this.fetchLocalVideos()
},
checkLocalVideo(item) {
if (this.multiple) {

View File

@@ -24,7 +24,7 @@
>
<div class="weapplink_item_inner">
<div class="weapplink_info clearfix">
<img class="weapplink_avatar f_l" :src="wechatImg" alt="img">
<img class="weapplink_avatar f_l" :src="wechatImg" alt="img" />
<strong class="f_l">商派小店</strong>
</div>
<div class="weapplink_select_mask">

View File

@@ -22,17 +22,17 @@
ref="contentImg"
:src="contentImgSrc"
:class="{ normalImg: imgType === 0 || imgType === 2, heightImg: imgType === 1 }"
>
/>
</div>
<div class="footer">
<div class="link">
<img :src="link">
<img :src="link" />
</div>
<div>{{ footerText || $t('b7f0c43b.0ed510') }}</div>
</div>
</div>
<div class="wechat-share-avatar">
<img :src="avatarImgSrc">
<img :src="avatarImgSrc" />
</div>
<div />
</div>

View File

@@ -5161,6 +5161,26 @@
"181fc9cc.86be9a": "قائمة التاجر",
"181fc9cc.f6b769": "قائمة المورد",
"181fc9cc.91a229": "الإعدادات العامة",
"181fc9cc.905eb5": "إعدادات خدمة البريد",
"0677a420.905eb5": "إعدادات خدمة البريد",
"0677a420.fdcadf": "منفذ SMTP",
"0677a420.114c66": "عنوان خادم SMTP",
"0677a420.b9d830": "البريد المرسل",
"0677a420.e2df57": "اسم مستخدم SMTP",
"0677a420.42c048": "كلمة مرور SMTP",
"0677a420.be5fbb": "حفظ",
"0677a420.3b1083": "تم الحفظ بنجاح",
"0677a420.6076bf": "أدخل منفذ SMTP",
"0677a420.13e53b": "أدخل عنوان خادم SMTP",
"0677a420.6eb7a0": "أدخل البريد المرسل",
"0677a420.999f45": "أدخل اسم مستخدم SMTP",
"0677a420.b0322a": "أدخل كلمة مرور SMTP",
"0677a420.f02628": "أدخل عنوان بريد إلكتروني صالحًا",
"0677a420.a4e76a": "عنوان أساسي لتفعيل البريد H5",
"0677a420.cbd9b8": "اختياري. يُفضّل https:// بدون شرطة مائلة أخيرة؛ يُلحق بـ /subpages/auth/email-activate",
"0677a420.41d4a7": "عنوان أساسي لتفعيل البريد على PC",
"0677a420.b5c545": "اختياري. أدخل عنوان الأساس لتفعيل PC، يُفضّل https:// بدون شرطة مائلة أخيرة",
"0677a420.82b7ed": "اختياري؛ اتركه فارغًا للاحتفاظ بكلمة المرور المحفوظة",
"181fc9cc.1275c1": "إعدادات الفواتير",
"181fc9cc.1c3835": "إعدادات الدفع",
"181fc9cc.ffa488": "خدمة الرسائل القصيرة",
@@ -16379,8 +16399,8 @@
"4b43f5ef.e9de29": "رقم الصنف",
"4b43f5ef.fcd943": "المخزون",
"4b43f5ef.972d5f": "الوزن",
"4b43f5ef.2e2ce2": "الحجم",
"4b43f5ef.818fc4": "سعر التكلفة",
"4b43f5ef.2e2ce2": "سعر التكلفة",
"4b43f5ef.818fc4": "سعر السوق",
"4b43f5ef.1e8836": "الباركود",
"4b43f5ef.0c9d2b": "طريقة الدفع",
"4b43f5ef.e29575": "سعر البيع",
@@ -20633,6 +20653,8 @@
"ff557c54.6e4f4b": "أدخل الجوال",
"ff557c54.652ced": "لقب واتساب:",
"ff557c54.32b6e8": "أدخل لقب واتساب",
"ff557c54.d093f6": "البريد المسجل",
"ff557c54.5692c0": "أدخل بريد التسجيل للبحث",
"ff557c54.71d220": "نوع العضو:",
"ff557c54.939890": "مستوى العضو المدفوع:",
"ff557c54.708c9d": "اختر",
@@ -22472,7 +22494,7 @@
"1e6dbbf7.710ad0": "معطل",
"1e6dbbf7.0044f6": "إلغاء",
"e3a5dbf4.e7dea7": "خدمة العملاء",
"0e7dabe2.63cd0e": "هل يُعرض في الواجهة الأمامية؟",
"0e7dabe2.63cd0e": "عرض فئة المتجر والبحث",
"0e7dabe2.976500": "فشل الحصول على حالة مفتاح العرض في الواجهة الأمامية",
"0e7dabe2.164ac5": "",
"0e7dabe2.819f29": "",
@@ -22509,7 +22531,7 @@
"223cc8af.26b2d6": "قائمة التوصيات",
"223cc8af.d50361": "طلب استلام ذاتي",
"223cc8af.e5f71f": "بحث",
"223cc8af.e366cc": "الإعدادات",
"223cc8af.e366cc": "تبديل اللغة",
"223cc8af.f2d3e5": "",
"223cc8af.3b02dd": "",
"223cc8af.5c34aa": "دعم الفعالية",

View File

@@ -5161,6 +5161,26 @@
"181fc9cc.86be9a": "Merchant menu",
"181fc9cc.f6b769": "Supplier menu",
"181fc9cc.91a229": "General settings",
"181fc9cc.905eb5": "Email service settings",
"0677a420.905eb5": "Email service settings",
"0677a420.fdcadf": "SMTP port",
"0677a420.114c66": "SMTP server host",
"0677a420.b9d830": "Sender email",
"0677a420.e2df57": "SMTP username",
"0677a420.42c048": "SMTP password",
"0677a420.be5fbb": "Save",
"0677a420.3b1083": "Saved successfully",
"0677a420.6076bf": "Enter SMTP port",
"0677a420.13e53b": "Enter SMTP server host",
"0677a420.6eb7a0": "Enter sender email",
"0677a420.999f45": "Enter SMTP username",
"0677a420.b0322a": "Enter SMTP password",
"0677a420.f02628": "Enter a valid email address",
"0677a420.a4e76a": "H5 email activation base URL",
"0677a420.cbd9b8": "Optional. Prefer https:// without trailing slash; concatenated with /subpages/auth/email-activate",
"0677a420.41d4a7": "PC email activation base URL",
"0677a420.b5c545": "Optional. Enter PC activation base URL, preferably https:// without trailing slash",
"0677a420.82b7ed": "Optional; leave blank to keep the saved password",
"181fc9cc.1275c1": "Invoice configuration",
"181fc9cc.1c3835": "Payment configuration",
"181fc9cc.ffa488": "SMS service",
@@ -16380,8 +16400,8 @@
"4b43f5ef.e9de29": "Item no.",
"4b43f5ef.fcd943": "Stock",
"4b43f5ef.972d5f": "Weight",
"4b43f5ef.2e2ce2": "Volume",
"4b43f5ef.818fc4": "Cost price",
"4b43f5ef.2e2ce2": "Cost price",
"4b43f5ef.818fc4": "Market price",
"4b43f5ef.1e8836": "Barcode",
"4b43f5ef.0c9d2b": "Payment method",
"4b43f5ef.e29575": "Sale price",
@@ -20635,6 +20655,8 @@
"ff557c54.6e4f4b": "Enter mobile",
"ff557c54.652ced": "WeChat nickname:",
"ff557c54.32b6e8": "Enter WeChat nickname",
"ff557c54.d093f6": "Registration email",
"ff557c54.5692c0": "Enter registration email to search",
"ff557c54.71d220": "Member type:",
"ff557c54.939890": "Paid member level:",
"ff557c54.708c9d": "Please select",
@@ -22473,7 +22495,7 @@
"1e6dbbf7.710ad0": "Disabled",
"1e6dbbf7.0044f6": "Abandon",
"e3a5dbf4.e7dea7": "Customer service",
"0e7dabe2.63cd0e": "Whether to display on the front end",
"0e7dabe2.63cd0e": "Store category display and search",
"0e7dabe2.976500": "Failed to get front-end display toggle status",
"0e7dabe2.164ac5": "",
"0e7dabe2.819f29": "",
@@ -22510,7 +22532,7 @@
"223cc8af.26b2d6": "Recommendation list",
"223cc8af.d50361": "Self-pickup order",
"223cc8af.e5f71f": "Search",
"223cc8af.e366cc": "Settings",
"223cc8af.e366cc": "Switch language",
"223cc8af.f2d3e5": "",
"223cc8af.3b02dd": "",
"223cc8af.5c34aa": "Support the event",

View File

@@ -5118,6 +5118,26 @@
"181fc9cc.86be9a": "商户菜单",
"181fc9cc.f6b769": "供应商菜单",
"181fc9cc.91a229": "通用设置",
"181fc9cc.905eb5": "邮件服务设置",
"0677a420.905eb5": "邮件服务设置",
"0677a420.fdcadf": "SMTP 端口",
"0677a420.114c66": "SMTP 服务器地址",
"0677a420.b9d830": "发件人邮箱",
"0677a420.e2df57": "SMTP 用户名",
"0677a420.42c048": "SMTP 密码",
"0677a420.be5fbb": "保存",
"0677a420.3b1083": "保存成功",
"0677a420.6076bf": "请输入 SMTP 端口",
"0677a420.13e53b": "请输入 SMTP 服务器地址",
"0677a420.6eb7a0": "请输入发件人邮箱",
"0677a420.999f45": "请输入 SMTP 用户名",
"0677a420.b0322a": "请输入 SMTP 密码",
"0677a420.f02628": "请输入合法的邮箱地址",
"0677a420.a4e76a": "H5 邮箱激活根地址",
"0677a420.cbd9b8": "选填。建议以 https:// 开头、无末尾斜杠,与 /subpages/auth/email-activate 拼接",
"0677a420.41d4a7": "PC 邮箱激活根地址",
"0677a420.b5c545": "请输入 PC 邮箱激活根地址,建议以 https:// 开头且无末尾斜杠",
"0677a420.82b7ed": "选填;留空则沿用已保存密码",
"181fc9cc.1275c1": "开票配置",
"181fc9cc.1c3835": "支付配置",
"181fc9cc.ffa488": "短信服务",
@@ -16481,8 +16501,8 @@
"4b43f5ef.e9de29": "货号",
"4b43f5ef.fcd943": "库存",
"4b43f5ef.972d5f": "重量",
"4b43f5ef.2e2ce2": "体积",
"4b43f5ef.818fc4": "成本价",
"4b43f5ef.2e2ce2": "成本价",
"4b43f5ef.818fc4": "市场价",
"4b43f5ef.1e8836": "条形码",
"4b43f5ef.0c9d2b": "支付方式",
"4b43f5ef.e29575": "销售价",
@@ -20837,6 +20857,8 @@
"ff557c54.6e4f4b": "请输入手机号",
"ff557c54.652ced": "微信昵称:",
"ff557c54.32b6e8": "请输入微信昵称",
"ff557c54.d093f6": "注册邮箱",
"ff557c54.5692c0": "请输入注册邮箱查询",
"ff557c54.71d220": "会员身份:",
"ff557c54.939890": "付费会员等级:",
"ff557c54.708c9d": "请选择",
@@ -22585,7 +22607,7 @@
"1e6dbbf7.710ad0": "禁用",
"1e6dbbf7.0044f6": "废弃",
"e3a5dbf4.e7dea7": "客服",
"0e7dabe2.63cd0e": "前端是否展示",
"0e7dabe2.63cd0e": "店铺分类展示与查询",
"0e7dabe2.976500": "获取前端展示开关状态失败",
"0e7dabe2.164ac5": "已开启前端展示",
"0e7dabe2.819f29": "已关闭前端展示",
@@ -22622,7 +22644,7 @@
"223cc8af.26b2d6": "种草列表",
"223cc8af.d50361": "自提订单",
"223cc8af.e5f71f": "搜索",
"223cc8af.e366cc": "设置",
"223cc8af.e366cc": "切换语言",
"223cc8af.f2d3e5": "酷家乐案例库",
"223cc8af.3b02dd": "所有门店列表",
"223cc8af.5c34aa": "助力活动",

View File

@@ -94,9 +94,7 @@
:size="16"
class="mr-2 flex-shrink-0"
/>
<span
v-html="highlightText(menu.name, keyword, selectedIndex === index)"
/>
<span v-html="highlightText(menu.name, keyword, selectedIndex === index)" />
</div>
<div v-if="menu.path" class="text-xs text-gray-400 mt-1">{{ menu.path }}</div>
</div>

View File

@@ -66,7 +66,8 @@
<span
class="block w-full"
@click="handleSubmenuTitleClick(item.alias_name, $event)"
>{{ menuDisplayName(item) }}</span>
>{{ menuDisplayName(item) }}</span
>
</template>
<!-- 三级菜单 -->
<template v-for="child in item.children">

View File

@@ -143,7 +143,7 @@ const routes = [
permissions: ['sellers.sellersmanager.nearbystoreinfo']
},
component: () => import('@/views/store/nearby-store-info')
},
}
]
}
]

View File

@@ -119,6 +119,21 @@ const routes = [
},
component: () => import('@/views/settings/systemConfig/publicsetting')
},
{
name: `systemConfigMailService`,
path: 'system-config/mail-service',
meta: {
aliasName: 'mailServiceSetting',
icon: 'icon-products',
title: '181fc9cc.905eb5',
// 与 publicsetting 并存:后台未单独下发 mail 权限时,拥有「通用设置」的用户仍可注册该路由
permissions: [
'setting.systemsetting.mailServiceSetting',
'setting.systemsetting.publicsetting'
]
},
component: () => import('@/views/settings/systemConfig/mailServiceSetting.vue')
},
{
name: `systemConfigInvoinceConfiguration`,
path: 'system-config/invoince-configuration',

View File

@@ -60,10 +60,8 @@
<div class="app-desc">{{ $t(appDesc) }}</div>
<div class="app-action">
<el-button type="primary" plain @click="onClickItem">
{{
$t('c161091b.710d33')
}}
</el-button>
{{ $t('c161091b.710d33') }}
</el-button>
</div>
<div v-if="!['miaosha', 'supplier'].includes(id)" class="app-image">
<el-image class="desc-image" :src="require(`@/assets/img/ectapp/${id}_detail.png`)" />
@@ -88,10 +86,8 @@
<div slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">{{ $t('c161091b.c08ab9') }}</el-button>
<el-button type="primary" @click="dialogVisible = true">
{{
$t('c161091b.38cf16')
}}
</el-button>
{{ $t('c161091b.38cf16') }}
</el-button>
</div>
</el-dialog>
</div>

View File

@@ -168,7 +168,7 @@
@mouseenter="picsEnter(index)"
@mouseleave="picsLeave"
>
<img :src="wximageurl + item">
<img :src="wximageurl + item" />
<div class="goodspic-mask" :class="picsCurrent == index ? 'on' : ''">
<!-- <div class="el-icon-delete" /> -->
<SpIcon name="delete" @click="removePicsImg(index)" />
@@ -307,7 +307,7 @@
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8">
<el-form-item :label="$t('4b43f5ef.0eac88')">
<el-form-item :label="$t('4b43f5ef.fcd943')">
<el-input v-model="form.store" type="number" required min="0" placeholder="" />
</el-form-item>
</el-col>
@@ -317,14 +317,14 @@
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8">
<el-form-item :label="$t('4b43f5ef.fcd943')">
<el-form-item :label="$t('4b43f5ef.8c0d75')">
<el-input v-model="form.weight" type="number" required min="0" placeholder="">
<template slot="append"> kg </template>
</el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8">
<el-form-item :label="$t('4b43f5ef.972d5f')">
<el-form-item :label="$t('4b43f5ef.3b35fa')">
<el-input v-model="form.volume" type="number" required min="0" placeholder="">
<template slot="append"> </template>
</el-input>
@@ -494,7 +494,7 @@
</el-select>
</template>
</el-table-column>
<el-table-column :label="$t('4b43f5ef.0eac88')">
<el-table-column :label="$t('4b43f5ef.fcd943')">
<template slot-scope="scope">
<el-input
v-model="scope.row.store"
@@ -516,12 +516,12 @@
/>
</template>
</el-table-column>
<el-table-column :label="$t('4b43f5ef.fcd943')">
<el-table-column :label="$t('4b43f5ef.8c0d75')">
<template slot-scope="scope">
<el-input v-model="scope.row.weight" :maxlength="60" size="mini" placeholder="" />
</template>
</el-table-column>
<el-table-column :label="$t('4b43f5ef.972d5f')">
<el-table-column :label="$t('4b43f5ef.3b35fa')">
<template slot-scope="scope">
<el-input v-model="scope.row.volume" :maxlength="60" size="mini" placeholder="" />
</template>
@@ -650,7 +650,7 @@
</el-select>
</template>
</el-table-column>
<el-table-column :label="$t('4b43f5ef.0eac88')" :render-header="renderRequire">
<el-table-column :label="$t('4b43f5ef.fcd943')" :render-header="renderRequire">
<template slot-scope="scope">
<el-input
v-model="scope.row.store"

View File

@@ -93,52 +93,37 @@
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="physicalupload">
{{
$t('8312e7f7.9745ac')
}}
</el-dropdown-item>
{{ $t('8312e7f7.9745ac') }}
</el-dropdown-item>
<el-dropdown-item command="physicalstoreupload">
{{
$t('8312e7f7.ac5320')
}}
</el-dropdown-item>
{{ $t('8312e7f7.ac5320') }}
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-button type="primary" plain @click="addCategory">{{ $t('8312e7f7.51af77') }}</el-button>
<el-button type="primary" plain @click="addTemplates">
{{
$t('8312e7f7.a7aae3')
}}
</el-button>
{{ $t('8312e7f7.a7aae3') }}
</el-button>
<el-button type="primary" plain @click="batchItemsStore">
{{
$t('8312e7f7.0648ad')
}}
</el-button>
{{ $t('8312e7f7.0648ad') }}
</el-button>
<el-button type="primary" plain @click="batchItemsStatus('onsale')">
{{
$t('8312e7f7.644c0d')
}}
</el-button>
{{ $t('8312e7f7.644c0d') }}
</el-button>
<el-button type="primary" plain @click="batchItemsStatus('instock')">
{{
$t('8312e7f7.d5e015')
}}
</el-button>
{{ $t('8312e7f7.d5e015') }}
</el-button>
<el-button v-if="isBindJstErp" plain type="primary" @click="uploadJstErpItems()">
{{ $t('8312e7f7.78a38b') }}
</el-button>
<el-dropdown @command="exportItemsData">
<el-button type="primary" plain>
{{ $t('8312e7f7.55405e') }} <i class="el-icon-arrow-down el-icon--right"
/>
</el-button>
{{ $t('8312e7f7.55405e') }} <i class="el-icon-arrow-down el-icon--right" />
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="product-export">
{{
$t('8312e7f7.f83133')
}}
</el-dropdown-item>
{{ $t('8312e7f7.f83133') }}
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
@@ -154,10 +139,8 @@
<el-input v-model="warning_store" value="warning_store">
<template slot="prepend">{{ $t('8312e7f7.6d4036') }}</template>
<el-button slot="append" @click="setWarningStore">
{{
$t('8312e7f7.be5fbb')
}}
</el-button>
{{ $t('8312e7f7.be5fbb') }}
</el-button>
</el-input>
</div>
<el-table

View File

@@ -552,7 +552,7 @@
class="item-image"
:src="wximageurl + scope.row.pic"
:alt="scope.row.item_name"
></span>
/></span>
</template>
</el-table-column>
<el-table-column prop="item_name" :label="$t('3a4ee48b.90f08f')" width="180">
@@ -748,7 +748,7 @@
</el-col>
<el-col :span="20">
<span v-for="(item, index) in orderInfo.third_params.drug_list_image">
<img class="item-image" :src="item.url" @click="imagedetail(item.url)">
<img class="item-image" :src="item.url" @click="imagedetail(item.url)" />
</span>
</el-col>
</el-row>
@@ -767,7 +767,7 @@
:visible.sync="dialogVisible"
width="80%"
>
<img v-if="bigImageUrl" :src="bigImageUrl" style="width: 100%; max-width: 100%">
<img v-if="bigImageUrl" :src="bigImageUrl" style="width: 100%; max-width: 100%" />
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="dialogVisible = false">{{
$t('3a4ee48b.b15d91')

View File

@@ -63,10 +63,8 @@
{{ $t('829ad9f2.538414') }}
</el-button>
<el-button type="primary" @click="exportData('normal_order')">
{{
$t('829ad9f2.82b914')
}}
</el-button>
{{ $t('829ad9f2.82b914') }}
</el-button>
</el-button-group>
<el-popover
placement="top-start"
@@ -466,10 +464,8 @@
<div slot="footer" class="dialog-footer">
<el-button @click.native="handleCancel">{{ $t('829ad9f2.625fb2') }}</el-button>
<el-button type="primary" @click="submitDeliveryAction">
{{
$t('829ad9f2.38cf16')
}}
</el-button>
{{ $t('829ad9f2.38cf16') }}
</el-button>
</div>
</el-dialog>
<el-dialog
@@ -565,10 +561,8 @@
<div slot="footer" class="dialog-footer">
<el-button @click.native="handleCancel">{{ $t('829ad9f2.625fb2') }}</el-button>
<el-button type="primary" @click="submitDeliveryAction">
{{
$t('829ad9f2.38cf16')
}}
</el-button>
{{ $t('829ad9f2.38cf16') }}
</el-button>
</div>
</el-dialog>
@@ -645,15 +639,11 @@
<el-col :span="20">
<template>
<el-radio v-model="cancelForm.check_cancel" label="0">
{{
$t('829ad9f2.1bf19c')
}}
</el-radio>
{{ $t('829ad9f2.1bf19c') }}
</el-radio>
<el-radio v-model="cancelForm.check_cancel" label="1">
{{
$t('829ad9f2.e61f2c')
}}
</el-radio>
{{ $t('829ad9f2.e61f2c') }}
</el-radio>
</template>
</el-col>
</el-row>
@@ -674,15 +664,11 @@
</template>
<div slot="footer" class="dialog-footer">
<el-button @click.native="handleCancelOrderCancel">
{{
$t('829ad9f2.625fb2')
}}
</el-button>
{{ $t('829ad9f2.625fb2') }}
</el-button>
<el-button type="primary" @click="submitCancelConfirmAction">
{{
$t('829ad9f2.38cf16')
}}
</el-button>
{{ $t('829ad9f2.38cf16') }}
</el-button>
</div>
</el-dialog>
<!-- 取消订单 -->
@@ -734,10 +720,8 @@
<div slot="footer" class="dialog-footer">
<el-button @click.native="handleCancelOrder">{{ $t('829ad9f2.625fb2') }}</el-button>
<el-button type="primary" @click="submitCancelOrderConfirmAction">
{{
$t('829ad9f2.38cf16')
}}
</el-button>
{{ $t('829ad9f2.38cf16') }}
</el-button>
</div>
</el-dialog>
<!-- 自提订单核销 -->
@@ -776,10 +760,8 @@
<div slot="footer" class="dialog-footer">
<el-button @click.native="handleWriteoffOrder">{{ $t('829ad9f2.625fb2') }}</el-button>
<el-button type="primary" @click="submitWriteoffOrderConfirmAction">
{{
$t('829ad9f2.38cf16')
}}
</el-button>
{{ $t('829ad9f2.38cf16') }}
</el-button>
</div>
</el-dialog>
<!-- 自提订单核销完成 -->
@@ -794,10 +776,8 @@
</template>
<div slot="footer" class="dialog-footer">
<el-button @click.native="handleWriteoffOrderSucc">
{{
$t('829ad9f2.ce2695')
}}
</el-button>
{{ $t('829ad9f2.ce2695') }}
</el-button>
</div>
</el-dialog>
</div>

View File

@@ -14,7 +14,7 @@
</el-form-item>
<el-form-item>
<span slot="label">
{{ $t('13b44266.c95e74') }} <br>
{{ $t('13b44266.c95e74') }} <br />
{{ $t('13b44266.518129') }}
</span>
<el-switch
@@ -35,7 +35,7 @@
<el-radio :label="'cash'">{{ $t('13b44266.b7312f') }}</el-radio>
<el-radio :label="'point'">{{ $t('13b44266.fcead5') }}</el-radio>
</el-radio-group>
<br>
<br />
<span class="tip">{{ $t('13b44266.4e116d') }}</span>
</el-form-item>
<el-form-item v-if="form.freight_type == 'point'" :label="$t('13b44266.a6cd51')">
@@ -53,7 +53,7 @@
<el-radio :label="'down'">{{ $t('13b44266.5a309d') }}</el-radio>
<el-radio :label="'up'">{{ $t('13b44266.a0730b') }}</el-radio>
</el-radio-group>
<br>
<br />
<!-- <span class="tip">说明运费使用现金或积分支付</span> -->
</el-form-item>
<!-- <el-form-item size="large">

View File

@@ -14,7 +14,7 @@
@mouseenter="picsEnter(index)"
@mouseleave="picsLeave"
>
<img :src="wximageurl + item">
<img :src="wximageurl + item" />
<div
class="goodspic-mask"
:class="picsCurrent == index ? 'on' : ''"

View File

@@ -8,7 +8,7 @@
<div class="log-header">
<div class="log-container">
<div class="brand">
<img :src="brand" alt="">
<img :src="brand" alt="" />
</div>
<div class="log-welcome">{{ $t('825c6793.04b015') }}</div>
</div>

View File

@@ -38,7 +38,7 @@
:src="imageData"
style="width: auto; height: 38px; cursor: pointer"
@click="_getImagesCode"
>
/>
</el-input>
</el-form-item>
</el-tab-pane>
@@ -56,7 +56,7 @@
:src="imageData"
style="width: auto; height: 38px; cursor: pointer"
@click="_getImagesCode"
>
/>
</el-input>
</el-form-item>
</el-tab-pane>
@@ -75,7 +75,7 @@
:src="imageData"
style="width: auto; height: 38px; cursor: pointer"
@click="_getImagesCode"
>
/>
</el-input>
</el-form-item>
</div>

View File

@@ -28,10 +28,8 @@
<template slot-scope="scope">
<div class="operating-icons">
<el-button type="text" @click="editRoleAction(scope.$index, scope.row)">
{{
$t('5a3a4a5f.95b351')
}}
</el-button>
{{ $t('5a3a4a5f.95b351') }}
</el-button>
<el-button type="text" @click="deleteRoleAction(scope.$index, scope.row)">
{{ $t('5a3a4a5f.2f4aad') }}
</el-button>

View File

@@ -40,7 +40,7 @@
<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">
<el-table-column :label="$t('f3a67ede.5c16c5')" min-width="180" v-if="!VERSION_PLATFORM()">
<template slot-scope="scope">
<template v-if="scope.row.distributor_ids && scope.row.distributor_ids.length">
<el-tag
@@ -55,7 +55,7 @@
<span v-else></span>
</template>
</el-table-column>
<el-table-column prop="roles" :label="$t('81d2acb6.464f3d')">
<el-table-column prop="roles" :label="$t('81d2acb6.464f3d')" min-width="180">
<template slot-scope="scope">
<el-tag
v-for="item in scope.row.role_data"

View File

@@ -28,15 +28,11 @@
<template slot-scope="scope">
<div class="operating-icons gap-2">
<el-button type="text" @click="editRoleAction(scope.$index, scope.row)">
{{
$t('31921bc0.95b351')
}}
</el-button>
{{ $t('31921bc0.95b351') }}
</el-button>
<el-button type="text" @click="deleteRoleAction(scope.$index, scope.row)">
{{
$t('31921bc0.2f4aad')
}}
</el-button>
{{ $t('31921bc0.2f4aad') }}
</el-button>
</div>
</template>
</el-table-column>

View File

@@ -15,16 +15,14 @@
<li v-if="VERSION_PLATFORM()">
{{ $t('ab2cdfe4.a36767')
}}<el-link :href="origin + '/merchant/login'" target="_blank" type="primary">
{{ $t('ab2cdfe4.a792da') }}
</el-link
{{ $t('ab2cdfe4.a792da') }} </el-link
>
</li>
<li>{{ $t('ab2cdfe4.09136f') }}</li>
<li>
{{ $t('ab2cdfe4.92eb56')
}}<el-link :href="origin + '/shopadmin/login'" target="_blank" type="primary">
{{ $t('ab2cdfe4.95ee58') }}
</el-link
{{ $t('ab2cdfe4.95ee58') }} </el-link
>
</li>
</ul>

View File

@@ -24,8 +24,7 @@
:indeterminate="isIndeterminate"
@change="handleCheckAllChange"
>
{{ $t('8e88d5e8.66eeac') }}
</el-checkbox
{{ $t('8e88d5e8.66eeac') }} </el-checkbox
><span style="line-height: 36px">{{ $t('8e88d5e8.816fa4') }}</span>
<el-button type="text" class="f_r" @click="showAddMobile">
{{ $t('8e88d5e8.3a126e') }}

View File

@@ -279,7 +279,7 @@
<el-table v-loading="loading" :data="goodsList" style="width: 100%">
<el-table-column :label="$t('88c304e0.1fd1d5')" class="goods-img">
<template slot-scope="scope">
<img :src="scope.row.img_url"><span>{{ scope.row.name }}</span>
<img :src="scope.row.img_url" /><span>{{ scope.row.name }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('88c304e0.0e9fd9')">

View File

@@ -7,7 +7,7 @@
<div>
<el-row class="section-white content-padded coupon-header">
<el-col :span="6" class="coupon-img">
<img src="@/assets/img/webchat.png" :alt="$t('88683ec4.20def7')">
<img src="@/assets/img/webchat.png" :alt="$t('88683ec4.20def7')" />
</el-col>
<el-col :span="18" class="coupon-desc">
<h3>

View File

@@ -30,17 +30,17 @@
<ul slot-scope="{ node, data }" class="custom-tree-node">
<li>
<i v-if="data.level == 0" /><i v-else> </i>
<input v-model="data.category_name" :placeholder="$t('692f821b.0d4458')">
<input v-model="data.category_name" :placeholder="$t('692f821b.0d4458')" />
<!-- <span class="add-child-category" v-if="data.level == 0"
@click="append(data.children, 1)">
<i class="el-icon-plus"></i>增加子栏目
</span> -->
</li>
<li>
<input v-model="data.sort" :placeholder="$t('692f821b.0e2532')">
<input v-model="data.sort" :placeholder="$t('692f821b.0e2532')" />
</li>
<li v-clipboard:copy="data.link" v-clipboard:success="onCopy">
<input v-model="data.link" class="copy-link" type="text">
<input v-model="data.link" class="copy-link" type="text" />
<i class="el-icon-copy-document" /> {{ $t('692f821b.25345a') }}
</li>
<li>

Some files were not shown because too many files have changed in this diff Show More