mirror of
https://gitee.com/ShopeX/ECShopX_admin-frontend
synced 2026-08-07 05:05:46 +08:00
merge(scope): merge code
This commit is contained in:
@@ -1,7 +1,15 @@
|
||||
## 最近一次变更(2026-04-27)
|
||||
## 本次变更总结
|
||||
|
||||
**一句话概括**: fix: 跑马灯默认文案改为 i18n 翻译值
|
||||
**时间**: 2026-04-14
|
||||
|
||||
**要点**: `wgt_marquees` 的 `dataText` 默认值由 key 字符串改为 `i18n.t('8fc92d38.cbc608')`,新建/初始化挂件时可直接显示多语言文案。
|
||||
**涉及文件**:
|
||||
- `src/view/mall/goods/physical/list.vue` (修改)
|
||||
- `src/i18n/locales/zh-CN.json` (修改)
|
||||
- `src/i18n/locales/en.json` (修改)
|
||||
- `src/i18n/locales/ar.json` (修改)
|
||||
|
||||
详见: `.cursor/commit-summary/2026-04-27-marquees-default-i18n.md`
|
||||
**主要改动**:
|
||||
- **审核状态列**:驳回原因展示条件由未定义的 `loginType == 'supplier'` 改为 **`IS_SUPPLIER()`**,消除 `ReferenceError: loginType is not defined`,避免表格渲染失败。
|
||||
- **批量提交审核**:`$confirm` 正文不再使用与「自定义运费」冲突的 **`d41d8cd9.b2c3d4`**;新增专用键 **`d41d8cd9.b1a2c3`**(中/英/阿),并删除 zh-CN 中重复的 `b2c3d4` 条目,保留「自定义运费」定义。
|
||||
|
||||
**一句话概括**: fix: 自营商品列表审核列 loginType 与批量审核确认文案
|
||||
|
||||
@@ -142,9 +142,7 @@ export default {
|
||||
if (w) return w
|
||||
if (String(this.scene) === '1005' && key === 'goods') {
|
||||
return (
|
||||
this.widgets.find(
|
||||
(item) => String(item.config?.name || '').toLowerCase() === 'goodscard'
|
||||
) ||
|
||||
this.widgets.find((item) => String(item.config?.name || '').toLowerCase() === 'goodscard') ||
|
||||
this.widgets.find((item) => (item.name || '').toLowerCase() === 'goods') ||
|
||||
null
|
||||
)
|
||||
|
||||
@@ -7618,6 +7618,7 @@
|
||||
"d41d8cd9.b09ce9": "مكون",
|
||||
"d41d8cd9.fedbca": "إضافة علامات",
|
||||
"d41d8cd9.298be1": "إرسال دفعي للمراجعة",
|
||||
"d41d8cd9.b1a2c3": "تقديم المنتجات المحددة للمراجعة دفعة واحدة؟",
|
||||
"d41d8cd9.86a83b": "تعيين كهدية",
|
||||
"d41d8cd9.389203": "تعيين كغير هدية",
|
||||
"d41d8cd9.965407": "إيقاف البيع",
|
||||
|
||||
@@ -7618,6 +7618,7 @@
|
||||
"d41d8cd9.b09ce9": "Component",
|
||||
"d41d8cd9.fedbca": "Add tags",
|
||||
"d41d8cd9.298be1": "Batch submit for review",
|
||||
"d41d8cd9.b1a2c3": "Submit the selected products for batch review?",
|
||||
"d41d8cd9.86a83b": "Set as gift",
|
||||
"d41d8cd9.389203": "Set as non-gift",
|
||||
"d41d8cd9.965407": "Stop selling",
|
||||
|
||||
@@ -7635,6 +7635,7 @@
|
||||
"d41d8cd9.b09ce9": "组件式",
|
||||
"d41d8cd9.fedbca": "打标签",
|
||||
"d41d8cd9.298be1": "批量提交审核",
|
||||
"d41d8cd9.b1a2c3": "确认将所选商品批量提交审核吗?",
|
||||
"d41d8cd9.86a83b": "设为赠品",
|
||||
"d41d8cd9.389203": "设为非赠品",
|
||||
"d41d8cd9.965407": "停售",
|
||||
@@ -7699,7 +7700,6 @@
|
||||
"d41d8cd9.v6w7x8": "所有商品, 是否继续?",
|
||||
"d41d8cd9.y9z0a1": "是否将所有商品的都同步至店铺?",
|
||||
"6f19b2ab.6b3d7e": "是否将所有商品同步至店铺?",
|
||||
"d41d8cd9.b2c3d4": "确认是否批量提交?",
|
||||
"d41d8cd9.e5f6g7": "已加入执行队列,请在设置-导出列表中下载",
|
||||
"d41d8cd9.h8i9j0": "导出失败",
|
||||
"d41d8cd9.k1l2m3": "商品【",
|
||||
|
||||
@@ -163,7 +163,10 @@ export default {
|
||||
computed: {
|
||||
needsOfficialRawId() {
|
||||
const { linkPage, id } = this.localValue
|
||||
return linkPage === 'customer_service' && (id === 'officialProfile' || id === 'officialChat')
|
||||
return (
|
||||
linkPage === 'customer_service' &&
|
||||
(id === 'officialProfile' || id === 'officialChat')
|
||||
)
|
||||
},
|
||||
needsOfficialArticleLink() {
|
||||
const { linkPage, id } = this.localValue
|
||||
@@ -208,7 +211,8 @@ export default {
|
||||
const needRaw =
|
||||
res?.linkPage === 'customer_service' &&
|
||||
(res?.id === 'officialProfile' || res?.id === 'officialChat')
|
||||
const needArticle = res?.linkPage === 'customer_service' && res?.id === 'official'
|
||||
const needArticle =
|
||||
res?.linkPage === 'customer_service' && res?.id === 'official'
|
||||
if (needRaw) {
|
||||
next.officialAccountRawId = this.localValue.officialAccountRawId || ''
|
||||
next.officialArticleLink = ''
|
||||
|
||||
@@ -365,9 +365,7 @@ export default {
|
||||
if (w) return w
|
||||
if (String(this.localScene) === '1005' && key === 'goods') {
|
||||
return (
|
||||
this.widgets.find(
|
||||
(item) => String(item.config?.name || '').toLowerCase() === 'goodscard'
|
||||
) ||
|
||||
this.widgets.find((item) => String(item.config?.name || '').toLowerCase() === 'goodscard') ||
|
||||
this.widgets.find((item) => (item.name || '').toLowerCase() === 'goods') ||
|
||||
null
|
||||
)
|
||||
|
||||
@@ -194,12 +194,8 @@
|
||||
<template>
|
||||
<div class="wgt-page" :style="headerStyle" @click="handleClickHeader">
|
||||
<div class="wgt-page-content" :style="contentStyle">
|
||||
<div
|
||||
v-if="value"
|
||||
class="header-container"
|
||||
:class="{ 'has-nearby': showFunctionArea && functionAreaType === 'nearby' }"
|
||||
:style="containerStyle"
|
||||
>
|
||||
<div v-if="value" class="header-container"
|
||||
:class="{ 'has-nearby': showFunctionArea && functionAreaType === 'nearby' }" :style="containerStyle">
|
||||
<div class="header-content-left">
|
||||
<!-- 功能区:热区图 -->
|
||||
<div
|
||||
|
||||
@@ -45,9 +45,7 @@
|
||||
{{ getLabelName() }}
|
||||
</div>
|
||||
<div v-if="needsOfficialRawId" style="margin-top: 8px">
|
||||
<div style="font-size: 12px; color: #333; margin-bottom: 4px">
|
||||
{{ i18n.t('cc5110aa.d10654') }}
|
||||
</div>
|
||||
<div style="font-size: 12px; color: #333; margin-bottom: 4px">{{ i18n.t('cc5110aa.d10654') }}</div>
|
||||
<el-input
|
||||
v-model="localValue.officialAccountRawId"
|
||||
size="small"
|
||||
@@ -56,9 +54,7 @@
|
||||
/>
|
||||
</div>
|
||||
<div v-if="needsOfficialArticleLink" style="margin-top: 8px">
|
||||
<div style="font-size: 12px; color: #333; margin-bottom: 4px">
|
||||
{{ i18n.t('cc5110aa.f30876') }}
|
||||
</div>
|
||||
<div style="font-size: 12px; color: #333; margin-bottom: 4px">{{ i18n.t('cc5110aa.f30876') }}</div>
|
||||
<el-input
|
||||
v-model="localValue.officialArticleLink"
|
||||
size="small"
|
||||
@@ -116,7 +112,10 @@ export default {
|
||||
...mapGetters(['lang']),
|
||||
needsOfficialRawId() {
|
||||
const { linkPage, id } = this.localValue
|
||||
return linkPage === 'customer_service' && (id === 'officialProfile' || id === 'officialChat')
|
||||
return (
|
||||
linkPage === 'customer_service' &&
|
||||
(id === 'officialProfile' || id === 'officialChat')
|
||||
)
|
||||
},
|
||||
needsOfficialArticleLink() {
|
||||
const { linkPage, id } = this.localValue
|
||||
@@ -174,7 +173,8 @@ export default {
|
||||
const needRaw =
|
||||
res?.linkPage === 'customer_service' &&
|
||||
(res?.id === 'officialProfile' || res?.id === 'officialChat')
|
||||
const needArticle = res?.linkPage === 'customer_service' && res?.id === 'official'
|
||||
const needArticle =
|
||||
res?.linkPage === 'customer_service' && res?.id === 'official'
|
||||
if (needRaw) {
|
||||
next.officialAccountRawId = this.localValue.officialAccountRawId || ''
|
||||
next.officialArticleLink = ''
|
||||
|
||||
@@ -110,7 +110,7 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
const effectiveDataCount = this.value?.dataCount ?? 4
|
||||
const effectiveDataCount = this.value?.dataCount ?? 4
|
||||
let params = {
|
||||
data_type: dataType,
|
||||
data_value: this.value.data?.id || '',
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
<template>
|
||||
<div
|
||||
:class="{
|
||||
'wgt-goods-card': true
|
||||
'wgt-goods-card': true,
|
||||
}"
|
||||
:style="outerStyle"
|
||||
>
|
||||
|
||||
@@ -45,9 +45,7 @@
|
||||
{{ getLabelName() }}
|
||||
</div>
|
||||
<div v-if="needsOfficialRawId" style="margin-top: 8px">
|
||||
<div style="font-size: 12px; color: #333; margin-bottom: 4px">
|
||||
{{ i18n.t('cc5110aa.d10654') }}
|
||||
</div>
|
||||
<div style="font-size: 12px; color: #333; margin-bottom: 4px">{{ i18n.t('cc5110aa.d10654') }}</div>
|
||||
<el-input
|
||||
v-model="localValue.officialAccountRawId"
|
||||
size="small"
|
||||
@@ -56,9 +54,7 @@
|
||||
/>
|
||||
</div>
|
||||
<div v-if="needsOfficialArticleLink" style="margin-top: 8px">
|
||||
<div style="font-size: 12px; color: #333; margin-bottom: 4px">
|
||||
{{ i18n.t('cc5110aa.f30876') }}
|
||||
</div>
|
||||
<div style="font-size: 12px; color: #333; margin-bottom: 4px">{{ i18n.t('cc5110aa.f30876') }}</div>
|
||||
<el-input
|
||||
v-model="localValue.officialArticleLink"
|
||||
size="small"
|
||||
@@ -116,7 +112,10 @@ export default {
|
||||
...mapGetters(['lang']),
|
||||
needsOfficialRawId() {
|
||||
const { linkPage, id } = this.localValue
|
||||
return linkPage === 'customer_service' && (id === 'officialProfile' || id === 'officialChat')
|
||||
return (
|
||||
linkPage === 'customer_service' &&
|
||||
(id === 'officialProfile' || id === 'officialChat')
|
||||
)
|
||||
},
|
||||
needsOfficialArticleLink() {
|
||||
const { linkPage, id } = this.localValue
|
||||
@@ -174,7 +173,8 @@ export default {
|
||||
const needRaw =
|
||||
res?.linkPage === 'customer_service' &&
|
||||
(res?.id === 'officialProfile' || res?.id === 'officialChat')
|
||||
const needArticle = res?.linkPage === 'customer_service' && res?.id === 'official'
|
||||
const needArticle =
|
||||
res?.linkPage === 'customer_service' && res?.id === 'official'
|
||||
if (needRaw) {
|
||||
next.officialAccountRawId = this.localValue.officialAccountRawId || ''
|
||||
next.officialArticleLink = ''
|
||||
|
||||
@@ -110,7 +110,11 @@
|
||||
<div>{{ scope.row.sort }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('0e7dabe2.e8f9a1')" width="120" align="center">
|
||||
<el-table-column
|
||||
:label="$t('0e7dabe2.e8f9a1')"
|
||||
width="120"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
:value="scope.row.is_show_front"
|
||||
@@ -192,9 +196,7 @@ export default {
|
||||
{
|
||||
label: this.$t('0e7dabe2.e8f9a1'),
|
||||
key: 'is_show_front',
|
||||
component: ({ key }, value) => (
|
||||
<el-switch v-model={value[key]} active-value='1' inactive-value='0' />
|
||||
)
|
||||
component: ({ key }, value) => <el-switch v-model={value[key]} active-value="1" inactive-value="0"/>,
|
||||
},
|
||||
{
|
||||
label: this.$t('0e7dabe2.dc1eed'),
|
||||
|
||||
@@ -1154,7 +1154,7 @@ export default {
|
||||
render: (h, scope) => (
|
||||
<div>
|
||||
<span>{GOODS_APPLY_STATUS[scope.row.audit_status]}</span>
|
||||
{scope.row.audit_status == 'rejected' && loginType == 'supplier' && (
|
||||
{scope.row.audit_status == 'rejected' && IS_SUPPLIER() && (
|
||||
<div class='physical-cell-reason'>
|
||||
{this.$t('d41d8cd9.a36d88')}
|
||||
{scope.row.audit_reason}
|
||||
@@ -1913,7 +1913,7 @@ export default {
|
||||
this.$message.error(this.$t('dc9cefd6.ace302'))
|
||||
return
|
||||
}
|
||||
await this.$confirm(this.$t('d41d8cd9.b2c3d4'), this.$t('d41d8cd9.298be1'), {
|
||||
await this.$confirm(this.$t('d41d8cd9.b1a2c3'), this.$t('d41d8cd9.298be1'), {
|
||||
confirmButtonText: this.$t('d41d8cd9.aa7527'),
|
||||
cancelButtonText: this.$t('d41d8cd9.625fb2')
|
||||
})
|
||||
|
||||
@@ -444,17 +444,17 @@ export default {
|
||||
},
|
||||
{
|
||||
label: this.$t('77050e4f.d64589'),
|
||||
component: () => <span>{this.addForm.bank_name || '-'}</span>
|
||||
component: () => <span>{this.addForm.bank_name || '-'}</span>,
|
||||
},
|
||||
{
|
||||
label: this.$t('77050e4f.27d6ee'),
|
||||
key: 'bank_name',
|
||||
component: () => <span>{this.addForm.bank_account_no || '-'}</span>
|
||||
component: () => <span>{this.addForm.bank_account_no || '-'}</span>,
|
||||
},
|
||||
{
|
||||
label: this.$t('77050e4f.efce56'),
|
||||
key: 'china_ums_no',
|
||||
component: () => <span>{this.addForm.china_ums_no || '-'}</span>
|
||||
component: () => <span>{this.addForm.china_ums_no || '-'}</span>,
|
||||
},
|
||||
|
||||
{
|
||||
|
||||
@@ -228,7 +228,11 @@
|
||||
</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') }}
|
||||
{{
|
||||
scope.row.use_all_shops == 1
|
||||
? $t('9cc0c982.77678b')
|
||||
: $t('9cc0c982.fcf7d8')
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
@@ -167,7 +167,10 @@
|
||||
>
|
||||
{{ $t('ff141a64.3ae7e4') }}
|
||||
</el-button>
|
||||
<span v-if="scope.row.status == 'waiting'" class="pluspricebuy-waiting-actions">
|
||||
<span
|
||||
v-if="scope.row.status == 'waiting'"
|
||||
class="pluspricebuy-waiting-actions"
|
||||
>
|
||||
<i
|
||||
class="el-icon-edit-outline"
|
||||
@click="editActivityAction(scope.$index, scope.row)"
|
||||
|
||||
@@ -42,7 +42,11 @@
|
||||
<div v-if="hasRegisterJumpPath" class="link-content border px-2">
|
||||
<span @click="handleGoodsChange()">{{ registerJumpPathSummary }}</span>
|
||||
<span style="margin-left: 10px">
|
||||
<i style="color: #f56c6c" class="el-icon-delete" @click.stop="clear_pic_url" />
|
||||
<i
|
||||
style="color: #f56c6c"
|
||||
class="el-icon-delete"
|
||||
@click.stop="clear_pic_url"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<div
|
||||
|
||||
@@ -39,8 +39,10 @@
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
<el-tag v-if="isTemplateEnabled(scope.row.status)" type="success">
|
||||
{{ $t('8b0d1458.7854b5') }}
|
||||
</el-tag>
|
||||
{{
|
||||
$t('8b0d1458.7854b5')
|
||||
}}
|
||||
</el-tag>
|
||||
<el-tag v-else type="info">{{ $t('8b0d1458.463776') }}</el-tag>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -6,45 +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') }}
|
||||
{{
|
||||
$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>
|
||||
@@ -52,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">
|
||||
|
||||
@@ -5,7 +5,13 @@
|
||||
|
||||
<template>
|
||||
<SpPage>
|
||||
<SpPlatformTip v-if="!VERSION_SHUYUN()" h5 app alipay :text-val="$t('20f6ad88.c5d4d8')" />
|
||||
<SpPlatformTip
|
||||
v-if="!VERSION_SHUYUN()"
|
||||
h5
|
||||
app
|
||||
alipay
|
||||
:text-val="$t('20f6ad88.c5d4d8')"
|
||||
/>
|
||||
<SpFormPlus
|
||||
ref="form"
|
||||
v-model="form"
|
||||
|
||||
@@ -166,11 +166,7 @@ export default {
|
||||
EMAIL_SENDER: this.strField(d, 'EMAIL_SENDER'),
|
||||
EMAIL_USER: this.strField(d, 'EMAIL_USER'),
|
||||
EMAIL_PASSWORD: this.strField(d, 'EMAIL_PASSWORD'),
|
||||
EMAIL_ACTIVATION_H5_DOMAIN: this.strField(
|
||||
d,
|
||||
'EMAIL_ACTIVATION_H5_DOMAIN',
|
||||
'EMAIL_H5_ACTIVATE_DOMAIN'
|
||||
),
|
||||
EMAIL_ACTIVATION_H5_DOMAIN: this.strField(d, 'EMAIL_ACTIVATION_H5_DOMAIN', 'EMAIL_H5_ACTIVATE_DOMAIN'),
|
||||
EMAIL_ACTIVATION_PC_DOMAIN: this.strField(d, 'EMAIL_ACTIVATION_PC_DOMAIN')
|
||||
}
|
||||
},
|
||||
|
||||
@@ -6,7 +6,13 @@
|
||||
<template>
|
||||
<SpPage>
|
||||
<div v-loading="loading">
|
||||
<SpPlatformTip v-if="!VERSION_SHUYUN()" h5 app alipay :text-val="$t('59579ae2.c5d4d8')" />
|
||||
<SpPlatformTip
|
||||
v-if="!VERSION_SHUYUN()"
|
||||
h5
|
||||
app
|
||||
alipay
|
||||
:text-val="$t('59579ae2.c5d4d8')"
|
||||
/>
|
||||
<SpFormPlus
|
||||
ref="form"
|
||||
v-model="form"
|
||||
|
||||
Reference in New Issue
Block a user