Browse Source

多语言配置

master
xh-pan1 1 year ago
parent
commit
4b7982ef1f
  1. 8
      canvas-container/components/canvasShow/basics/header/pc/index.vue
  2. 10
      canvas-container/styles/theme/index.css
  3. 17
      src/App.vue
  4. 10
      src/api/privacy.js
  5. 11
      src/components/Breadcrumb/index.vue
  6. 3
      src/components/Tinymce/index.vue
  7. 7
      src/layout/components/Navbar.vue
  8. 9
      src/layout/components/Sidebar/Logo.vue
  9. 6
      src/layout/components/Sidebar/SidebarItem.vue
  10. 676
      src/locales/en.json
  11. 684
      src/locales/zh-CN.json
  12. 84
      src/permission.js
  13. 3
      src/router/index.js
  14. 13
      src/styles/elDialog.scss
  15. 39
      src/views/commodity/commdityClass/Edit.vue
  16. 16
      src/views/commodity/commdityClass/index.vue
  17. 2
      src/views/commodity/commodityList/commodityGroup.vue
  18. 635
      src/views/commodity/commoditySystem/addCommodity.vue
  19. 569
      src/views/commodity/commoditySystem/editSkuAttr.vue
  20. 2
      src/views/commodity/commoditySystem/index.vue
  21. 2
      src/views/customer/addClustering.vue
  22. 2
      src/views/customer/clusteringList/index.vue
  23. 2
      src/views/customer/customerList/customerDetail.vue
  24. 2
      src/views/customer/customerList/index.vue
  25. 2
      src/views/customer/operate/index.vue
  26. 4
      src/views/customer/tagList.vue
  27. 2
      src/views/liveMenu/liveProduct/index.vue
  28. 20
      src/views/liveMenu/liveRoom/index.vue
  29. 81
      src/views/login/index.vue
  30. 2
      src/views/marketing/channelActivity/selectChannelCoupons.vue
  31. 2
      src/views/marketing/channelManage/index.vue
  32. 2
      src/views/marketing/compose/index.vue
  33. 2
      src/views/marketing/coupon/index.vue
  34. 2
      src/views/marketing/discount/index.vue
  35. 2
      src/views/marketing/group/index.vue
  36. 2
      src/views/marketing/price/index.vue
  37. 2
      src/views/marketing/scene/index.vue
  38. 2
      src/views/marketing/spike/index.vue
  39. 2
      src/views/setup/tabs/index.vue
  40. 6
      src/views/shop/material/index.vue

8
canvas-container/components/canvasShow/basics/header/pc/index.vue

@ -15,17 +15,17 @@
<div class="search">
<div class="searchSelect">
<el-dropdown trigger="click">
<span class="el-dropdown-link">宝贝
<span class="el-dropdown-link">{{ $t('common.beautiproduct') }}
<i class="el-icon-arrow-down cur-poi el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="宝贝">宝贝</el-dropdown-item>
<el-dropdown-item command="店铺">店铺</el-dropdown-item>
<el-dropdown-item command="宝贝">{{ $t('common.beautiproduct') }}</el-dropdown-item>
<el-dropdown-item command="店铺">{{ $t('common.beautishop') }}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<div class="searchRight">
<input type="text" maxlength="20" placeholder="请输入搜索商品">
<input type="text" maxlength="20" :placeholder="$t('common.searchproducthint')">
</div>
<span class="btn cur-poi">
<i class="icon el-icon-search"></i>

10
canvas-container/styles/theme/index.css

@ -9719,9 +9719,9 @@
border: 1px dashed #c0ccda;
border-radius: 6px;
box-sizing: border-box;
width: 148px;
height: 148px;
line-height: 146px;
width: 120px;
height: 120px;
line-height: 118px;
vertical-align: top
}
@ -9949,8 +9949,8 @@
border-radius: 6px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
width: 148px;
height: 148px;
width: 120px;
height: 120px;
margin: 0 8px 8px 0;
display: inline-block
}

17
src/App.vue

@ -1,6 +1,6 @@
<template>
<div id="app">
<el-dialog title="$t('common.notice_dialog_title')" top="30vh" :visible.sync="tipShow" width="30%" center>
<el-dialog :title="$t('common.notice_dialog_title')" top="30vh" :visible.sync="tipShow" width="30%" center>
<span
>为保护个人隐私信息系统自动对敏感数据进行脱敏如需编辑查看完整信息可通过用户隐私二次认证功能进行验证验证通过之后24小时内可查看完整信息</span
>
@ -13,7 +13,7 @@
</template>
<script>
import { getPrivacySwitch } from "@/api/privacy";
import { getPrivacySwitch, getAllLangInfo } from "@/api/privacy";
export default {
name: "App",
data() {
@ -23,12 +23,19 @@ export default {
},
created() {
this.initLanguage();
if (this.$store.state.user.token) {
// this.getPrivacySwitch();
}
},
methods: {
initLanguage(){
getAllLangInfo().then((res) => {
console.log(res)
i18n.mergeLocaleMessage('en',res.data.en);
i18n.mergeLocaleMessage('zh', res.data.zh);
if (this.$store.state.user.token) {
this.getPrivacySwitch();
}
});
// this.$i18n.mergeLocaleMessage('en',
// {
// "permission" : {

10
src/api/privacy.js

@ -61,4 +61,12 @@ export function getPrivacySwitch(data) {
method: 'post',
data
})
}
}
export function getAllLangInfo(data) {
return request({
url: 'cerePlatformLangInfo/getAllForMap',
method: 'post',
data
})
}

11
src/components/Breadcrumb/index.vue

@ -2,7 +2,7 @@
<el-breadcrumb class="app-breadcrumb" separator="/">
<transition-group name="breadcrumb">
<el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path">
<span v-if="item.redirect==='noRedirect'||index==levelList.length-1" class="no-redirect">{{ item.meta.title }}</span>
<span v-if="item.redirect==='noRedirect' || index==levelList.length-1" class="no-redirect">{{ item.meta.title }}</span>
<a v-else class="no-redirect" @click.prevent="handleLink(item)">{{ item.meta.title }}</a>
</el-breadcrumb-item>
</transition-group>
@ -35,7 +35,6 @@ export default {
if (!this.isDashboard(first)) {
matched = [{ path: '/dashboard', meta: { title: 'Dashboard' }}].concat(matched)
}
this.levelList = matched.filter(item => item.meta && item.meta.title && item.meta.breadcrumb !== false)
console.log(this.levelList)
},
@ -46,6 +45,14 @@ export default {
}
return name.trim().toLocaleLowerCase() === 'Dashboard'.toLocaleLowerCase()
},
isRootPath(route) {
const name = route && route.name
if (!name) {
return false
}
return name.trim().toLocaleLowerCase() === 'Dashboard'.toLocaleLowerCase() ||
name.trim().toLocaleLowerCase() === '首页'.toLocaleLowerCase() || 'homedashboard'.toLocaleLowerCase()
},
pathCompile(path) {
// To solve this problem https://github.com/PanJiaChen/vue-element-admin/issues/561
const { params } = this.$route

3
src/components/Tinymce/index.vue

@ -27,6 +27,7 @@ import editorImage from './components/EditorImage'
import plugins from './plugins'
import toolbar from './toolbar'
import load from './dynamicLoadScript'
import {getLanguage } from '@/utils/auth'
// why use this cdn, detail see https://github.com/PanJiaChen/tinymce-all-in-one
// const tinymceCDN = 'https://cdn.jsdelivr.net/npm/tinymce-all-in-one@4.9.3/tinymce.min.js'
@ -85,7 +86,7 @@ export default {
computed: {
language() {
// return this.languageTypeList[this.$store.getters.language]
return this.languageTypeList['zh']
return this.languageTypeList[getLanguage() || 'zh']
},
containerWidth() {
const width = this.width

7
src/layout/components/Navbar.vue

@ -86,7 +86,7 @@
width="30%"
:before-close="handleClose"
>
<el-form ref="ruleForm" :model="ruleForm" status-icon :rules="rules" label-width="100px" class="demo-ruleForm">
<el-form ref="ruleForm" :model="ruleForm" status-icon :rules="rules" label-width="120px" class="demo-ruleForm">
<el-form-item :label="$t('navbar.password')" prop="password">
<el-input v-model="ruleForm.password" maxlength="16" type="password" autocomplete="off" />
</el-form-item>
@ -196,8 +196,9 @@ export default {
methods: {
handleCommand(command){
setLanguage(command)
this.languaueName = (getLanguage() === 'en' ? "English" : "中文")
this.$i18n.locale = command
// this.languaueName = (getLanguage() === 'en' ? "English" : "")
// this.$i18n.locale = command
this.$router.go(0)
},
changeBusinessMode(){
console.log("changeBusinessMode:" + this.isBusinessMode)

9
src/layout/components/Sidebar/Logo.vue

@ -7,7 +7,7 @@
class="sidebar-logo-link"
to="/"
>
<img src="../../../assets/images/logo.png" class="sidebar-logo">
<img src="../../../assets/images/login_logo.png" class="sidebar-logo-small">
<h1 class="sidebar-title">{{ title }}</h1>
</router-link>
<router-link v-else key="expand" class="sidebar-logo-link" to="/">
@ -65,6 +65,13 @@ export default {
margin-right: 12px;
}
& .sidebar-logo-small {
width: 30px;
height: 30px;
vertical-align: middle;
margin-right: 12px;
}
& .sidebar-title {
display: none;
margin: 0;

6
src/layout/components/Sidebar/SidebarItem.vue

@ -10,15 +10,17 @@
>
<item
:icon="onlyOneChild.meta.icon||(item.meta&&item.meta.icon)"
:title="$t('permission.' + onlyOneChild.meta.title)"
:title="onlyOneChild.meta.title"
/>
<!-- :title="$t('permission.' + onlyOneChild.meta.title)" -->
</el-menu-item>
</app-link>
</template>
<el-submenu v-else ref="subMenu" :index="resolvePath(item.path)" popper-append-to-body>
<template slot="title">
<item v-if="item.meta" :icon="item.meta && item.meta.icon" :title="$t('permission.' + item.meta.title)" />
<item v-if="item.meta" :icon="item.meta && item.meta.icon" :title="item.meta.title" />
<!-- :title="$t('permission.' + item.meta.title)" -->
</template>
<sidebar-item
v-for="child in item.children"

676
src/locales/en.json

@ -1,189 +1,489 @@
{
"main": {
"message": "message",
"display": "display",
"todaydata": "Today's Data",
"yonghufangwenqushi": "User Access Trends",
"fangwenyonghushu": "Users Reach",
"zhuanhualv": "Conversion rate",
"dingdanzhuanhuanloudou": "Order conversion funnel",
"remaishangpin": "Best Sellers"
},
"navbar": {
"changePwd": "change password",
"changeAvatar": "change avatar",
"logout": "Logout",
"chinese": "中文",
"english": "English",
"businessMode": "Merchant platform",
"password": "password",
"newPassword": "newPassword",
"confirmPassword": "onfirmPassword"
},
"common": {
"sure": "OK",
"cancle": "Cancle",
"export": "Export",
"view": "View",
"seemore": "See More",
"seeall": "See All",
"save": "Save",
"submit": "Submit",
"edit": "Edit",
"delete": "Delete",
"choose": "Please choose",
"query": "Query",
"reset": "Reset",
"operate": "Operate",
"createTIme": "CreateTime",
"contactPerson": "ContactPerson",
"contactPhone": "ContactPhone",
"nodata": "No Data",
"set": "reset",
"notice_dialog_title": "Tips",
"deletedialogtitle": "The selected data will be permanently deleted. Do you want to continue?",
"deletesuccess": "Delete Success!",
"content": "Content",
"styles": "Styles",
"bannersetting": "Banner Setting",
"onepicturetip": "This is a picture",
"all": "All",
"allow": "Allow",
"notallow": "Not Allow",
"uploadnow": "Upload",
"baseinfo": "BaseInfo",
"yes": "Yes",
"no": "No"
},
"permission.概括":"Summarize",
"shop": {
"dianpuzhuangxiu": "ShopDecoration",
"newShop": "New Shop",
"shopCode": "ShopCode",
"shopName": "shopName",
"shopNameHint": "Please input the shop name",
"shopCodeHint": "Please input the shop code",
"shopContactPersonHint": "Please input the shop contact person",
"editShop": "Edit Shop",
"shopDetail": "Shop Detail",
"shopAddress": "SHop Address",
"returnContact": "Return Contact",
"returnPhone": "Return Phone",
"returnAddress": "Return Address",
"crossborderornot": "Cross-border",
"ebpname": "Ebpname",
"ebpcode": "Ebpcode"
},
"order": {
"orderId": "Order Id",
"trackingnumber": "Tracking number",
"expresscompany": "Express Company",
"logisticsinfo": "Logistics Info",
"orderinfo": "Order Info",
"amountlabel": "Payment Amount"
},
"business": {
"businessLogo": "Logo",
"businessInfo": "Business Info",
"businessAddress": "Business Address",
"businessBrief": "Business Brief",
"businessContactMobilePhone": "Business ContactPhone",
"payinfoauth": "Payment information authentication",
"payauth": "Authentication",
"businessAuth": "Business Authentication",
"chooseLedgerPeriod": "Please choose ledger period",
"payinfoId": "Payment information ID"
},
"logistics": {
"planname": "Plan Name",
"newplan": "New Plan",
"plannamehint": "Please enter the plan name",
"storehouse": "Storehouse",
"deliverablerange": "Deliverable Range",
"bypiece": "By piece",
"byweight": "By weight",
"freeshipping": "Free Shipping",
"billingtype": "Billing Type",
"storehousehint": "Please select a specific storehouse"
},
"storehouse": {
"storehousetype": "Storehouse Type",
"storehousekind": "Storehouse Kind",
"selfsupportstorehouse": "Self-support Storehouse",
"outsourcingstorehouse": "Outsourcing Storehouse",
"internalhouse": "Internal Storehouse",
"bondedstorehouse": "Bonded Storehouse",
"overseasstorehouse": "Overseas Storehouse",
"storehousename": "Storehouse Name"
},
"material": {
"picture": "Picture",
"video": "Video",
"link": "Link",
"tag": "Tag",
"taghit": "Please enter the tag name",
"upload": "Upload"
},
"product": {
"productname": "Product Name",
"productnamehint": "Please enter the product name",
"productclassify": "Product Classify",
"shelvestate": "Shelvestate",
"shelvestatehint": "Please choose the shelvestate",
"shelveson": "Shelves on",
"shelvesoff": "Shelves off",
"addproduct": "New Product",
"batchexport": "Batch export",
"batchimport": "Batch import",
"productexport": "Product export",
"productId": "Product ID",
"mainpicture": "Product main picture",
"pricerange": "Price Range",
"memberprice": "Member price",
"creditsexchange": "Credits exchange",
"salesvolume": "Sales volume",
"inventory": "Inventory",
"notlistedyet": "Not listed yet",
"alreadylisted": "Already listed",
"tobereviewed": "To be reviewed",
"auditfailure": "Audit failure",
"causeofrejection": "Cause of rejection",
"brand": "Brand",
"setmemberprice": "Set Member Price",
"batchimportproduct": "Batch Import Product",
"productuploadtips": "Only xlsx files can be uploaded, and the size does not exceed 10 MB.",
"importproducttips1": "If you do not know the excel template before uploading, please click",
"importproducttips2": "Download the template",
"importproducttips3": " ",
"preferentialmode": "Preferential mode",
"discount": "Discount",
"specifiedprice": "Specified price",
"specification": "Specification",
"price": "Price",
"clearalloldmembershipprices": "Clear all old membership prices",
"pricediscount": "discount",
"priceyuan": "yuan",
"ownedshop": "Owned shop",
"productbrief": "Product brief",
"productbriefhint": "Pelease enter product brief",
"platformproductclassify": "Platform product classify",
"businessproductclassify": "Business Product Classify",
"productgroup": "Product Group",
"productgrouphint": "Please enter product group",
"brandhint": "Please choose brand",
"supplierhint": "Please enter the supplier name",
"stylesetting": "Style Setting",
"multistyle": "Multi-style",
"originalprice": "Original price",
"rate": "taxRate",
"weight": "weight",
"Internationalbarcode": "International bar code",
"skuname": "Sku name",
"skuvalue": "Sku value",
"needimage": "Need Image",
"newsku": "New Sku",
"productdetail": "Product Details",
"needlogitics": "Need Logistics",
"allowoversold": "Allow Oversold"
}
}
"main.message":"Message",
"main.display":"Display",
"main.todaydata":"Today's Data",
"main.yonghufangwenqushi":"Visitor Data",
"main.renci":"Times",
"main.fangwenyonghushu":"Visitors",
"main.zhuanhualv":"Total Rate",
"main.dingdanzhuanhuanloudou":"Order Conversion Rate",
"main.remaishangpin":"Best Sellers",
"navbar.changePwd":"Password",
"navbar.changeAvatar":"Avatar",
"navbar.logout":"Logout",
"navbar.chinese":"Chinese",
"navbar.english":"English",
"navbar.businessMode":"Merchant",
"navbar.password":"Current Password",
"navbar.newPassword":"New Password",
"navbar.confirmPassword":"Confirm Password",
"common.sure":"OK",
"common.cancle":"Cancle",
"common.export":"Export",
"common.view":"View",
"common.seemore":"More",
"common.seeall":"All",
"common.save":"Save",
"common.submit":"Submit",
"common.edit":"Edit",
"common.delete":"Delete",
"common.choose":"Please select",
"common.query":"Query",
"common.reset":"Reset",
"common.operate":"Operate",
"common.createTIme":"Created Time",
"common.contactPhone":"Phone",
"common.contactPerson":"Contact",
"common.nodata":"No Data",
"common.set":"Reset",
"common.notice_dialog_title":"Tips",
"common.deletedialogtitle":"The selected data will be permanently deleted. Do you want to continue?",
"common.deletesuccess":"Deleted Successfully!",
"common.content":"Content",
"common.styles":"Styles",
"common.bannersetting":"Banner Setting",
"common.onepicturetip":"This is a picture",
"common.all":"All",
"common.allow":"Yes",
"common.notallow":"No",
"common.uploadnow":"Upload",
"common.baseinfo":"BaseInfo",
"common.yes":"Yes",
"common.no":"No",
"permission.概括":"Dashboard",
"shop.dianpuzhuangxiu":"Decoration",
"shop.newShop":"New Shop",
"shop.shopCode":"ShopCode",
"shop.shopName":"Shop",
"shop.shopNameHint":"Please input the shop name",
"shop.shopCodeHint":"Please input the shop code",
"shop.shopContactPersonHint":"Please input the shop contact person",
"shop.editShop":"Edit Shop",
"shop.shopDetail":"Shop Detail",
"shop.shopAddress":"Shop Address",
"shop.returnContact":"Return Contact",
"shop.returnPhone":"Return Phone",
"shop.returnAddress":"Return Address",
"shop.crossborderornot":"Cross-border",
"shop.ebpname":"Customs Record Name",
"shop.ebpcode":"Customs Record Code",
"order.orderId":"Order Id",
"order.trackingnumber":"Logistic No.",
"order.send":"deliver",
"order.expresscompany":"Logistic Company",
"order.logisticsinfo":"Logistic Info",
"order.orderinfo":"Order Info",
"order.payunit":"",
"order.amountlabel":"Total Amount",
"business.businessName":"Shop Name",
"business.businessLogo":"Logo",
"business.businessInfo":"Shop Info",
"business.businessAddress":"Address",
"business.businessBrief":"Introduction",
"business.businessContactMobilePhone":"Mobile",
"business.payinfoauth":"Payment information authentication",
"business.payauth":"Verify Now",
"business.businessAuth":"Authentication Info",
"business.ledgerperiod":"Payment Days",
"business.chooseLedgerPeriod":"Select",
"business.payinfoId":"Account ID",
"logistics.planname":"Plan Name",
"logistics.newplan":"New Plan",
"logistics.plannamehint":"Enter the plan name",
"logistics.storehouse":"Warehouse",
"logistics.deliverablerange":" Including Areas",
"logistics.bypiece":"Packages",
"logistics.byweight":"Weights",
"logistics.freeshipping":"Post-Free",
"logistics.billingtype":"Caculation",
"logistics.storehousehint":"Select warehouse",
"storehouse.storehousetype":"Type",
"storehouse.storehousekind":"Location",
"storehouse.selfsupportstorehouse":"Self-owned warehouse",
"storehouse.outsourcingstorehouse":"Leasehold Warehouse",
"storehouse.internalhouse":"Domestic",
"storehouse.bondedstorehouse":"Domestic Bonded",
"storehouse.overseasstorehouse":"Overseas",
"storehouse.storehousename":"Name",
"material.picture":"Picture",
"material.video":"Video",
"material.link":"Link",
"material.tag":"Tag",
"material.taghit":"Enter the tag",
"material.upload":"Upload",
"product.productname":"Product",
"product.productnamehint":"Enter the product name",
"product.productclassify":"Category",
"product.shelvestate":"Status",
"product.shelvestatehint":"Select the status",
"product.shelveson":"Available",
"product.shelvesoff":"Unavailable",
"product.addproduct":"ADD",
"product.batchexport":"Batch export",
"product.batchimport":"Import",
"product.productexport":"Export",
"product.productId":"ID",
"product.mainpicture":"Picture",
"product.pricerange":"Price",
"product.memberprice":"Member Price",
"product.creditsexchange":"Credits",
"product.salesvolume":"Sold",
"product.inventory":"Quantities",
"product.notlistedyet":"Off",
"product.alreadylisted":"On",
"product.tobereviewed":"Under Review",
"product.auditfailure":"Rejected",
"product.causeofrejection":"Reason",
"product.brand":"Brand",
"product.setmemberprice":"Set VIP Price",
"product.batchimportproduct":"Import Products",
"product.productuploadtips":"Only xlsx files allowed, and not exceed 10 MB.",
"product.importproducttips1":"Please",
"product.importproducttips2":"Download Template",
"product.importproducttips3":"before uploading the file.",
"product.preferentialmode":"Type",
"product.discount":"Percent",
"product.specifiedprice":"Fixed Price",
"product.specification":"Product",
"product.price":"Price",
"product.clearalloldmembershipprices":"Clear All Prices",
"product.pricediscount":"Percent",
"product.priceyuan":"Yuan",
"product.editproduct":"Edit",
"product.ownedshop":"Owner",
"product.productbrief":"Highlights",
"product.productbriefhint":"Pelease enter the selling points",
"product.platformproductclassify":"Category",
"product.businessproductclassify":"Self-Category",
"product.productgroup":"Group",
"product.productgrouphint":"Select group",
"product.brandhint":"Select brand",
"product.supplier":"Supplier",
"product.supplierhint":"Enter supplier name",
"product.productimg":"Pictures",
"product.stylesetting":"Types",
"product.singlestyle":"Single-Type",
"product.multistyle":"Multi-Types",
"product.originalprice":"Price",
"product.rate":"Tax",
"product.weight":"Weight",
"product.Internationalbarcode":"Barcode",
"product.skuname":"Type",
"product.skuvalue":"Description",
"product.needimage":"Upload Picture",
"product.newsku":"Add Type",
"product.productdetail":"Details",
"product.needlogitics":"Logistics",
"product.allowoversold":"Oversell",
"client.shoppingcard":"Cart",
"client.gouwucheemptytips":"Your shopping cart is empty. Enjoy your shopping now.",
"client.login":"Log in",
"client.unlogin":"Log in to get better experience",
"client.my":"My",
"client.loginaccount":"Login",
"client.MemberValue":"Member Growth Value",
"client.ShippingAddress":"Shipping address",
"client.couponwallet":"CouponWallet",
"client.shouhoudingdan":"Post-Sales",
"client.homepage":"Home",
"common.beautiproduct":"Product",
"common.beautishop":"Shop",
"common.searchproducthint":"Search a product",
"common.searchshophint":"Search a shop",
"page.language":"Multi-Language",
"page.classify":"Categories",
"page.shoppingcart":"Cart",
"page.my":"My",
"page.secondkillzone":"Second kill zone",
"page.groupzone":"Group zone",
"page.limitedtimediscountsection":"Limited-time Offer",
"page.memberzone":"Member zone",
"page.myintegral":"My Points",
"page.pointexchange":"Point exchange",
"page.signintoearnpoints":"Sign in to earn points",
"page.coupon":"Coupons",
"page.availablegoods":"Available goods",
"page.combinationpreference":"Combination preference",
"page.hotrecommendation":"Recommends",
"page.search":"Search",
"page.goodslist":"Product List",
"page.goodsdetail":"Details",
"page.couponlistofavailableitems":"Coupon List",
"page.qadetail":"Q&A Details",
"page.allquestionsandanswers":"All Q&A",
"page.ask":"Ask",
"page.myassessment":"My Reviews",
"page.evaluatesuccess":"Review Successfully",
"page.evaluationdetails":"Reviews",
"page.goodsevaluation":"Reviews",
"page.additionalevaluation":"Extra Review",
"page.evaluate":"Review",
"page.ordercenter":"Order center",
"page.purchasegoods":"Purchase goods",
"page.orderdetail":"Order detail",
"page.applyforarefund":"Apply for a refund",
"page.applyforreturnofgoods":"Apply for return of goods",
"page.selectgoods":"Select goods",
"page.platformintervention":"Platform intervention",
"page.paymentsuccess":"Payment success",
"page.fillinthereturnlogistics":"Fill in the return logistics",
"page.distributioncenter":"Distributors",
"page.distributionclerkrecruitmentorder":"Distribution clerk recruitment order",
"page.share":"Share",
"page.cumulativedistributor":"Cumulative distributor",
"page.cumulativereward":"Cumulative reward",
"page.cumulativecustomer":"Cumulative customer",
"page.unbilledincentive":"Unbilled incentive",
"page.promotionshop":"Promote shop",
"page.promotegoods":"Promote goods",
"page.mydistributionorder":"My distribution order",
"page.invitesubordinates":"Invite subordinates",
"page.logisticsinformation":"Logistics information",
"page.thematicclassification":"Thematic classification",
"page.generateinvitationposters":"Generate invitation posters",
"page.invitefriendstoorder":"Invite friends to order",
"page.business":"Business",
"page.membercheckin":"Member check-in",
"page.login":"Log in",
"page.addressmanager":"Addresses",
"page.bankcard":"Bankcard",
"page.mycollection":"Collections",
"page.browsingfootprint":"Browsed",
"page.myquestionsandanswers":"Q&A",
"page.personalinformation":"Profile",
"page.mycardcoupon":"My Coupon",
"page.myaftersales":"Post-Sales",
"page.returndetails":"Return details",
"page.refunddetails":"Refund details",
"page.malluseragreement":"《Thee》Mall user agreement",
"page.register":"Sign Up",
"page.myaccount":"Account",
"page.withdraw":"Withdraw",
"page.messagecenter":"Messages",
"page.announcementdetails":"Announcement",
"page.bingphone":"Bind phone",
"page.mobilenumberauthorization":"Mobile number authorization",
"page.liverecommendation":"Live recommendation",
"page.accountcancellation":"Account cancel lation",
"page.cancelaccountmobileauthentication":"Cancel account mobile authentication",
"page.index":"Home",
"page.merchantsettlement":"Join in",
"page.platformcustomerservice":"Service",
"page.signin":"Check in",
"page.membercenter":"Member",
"page.due":"To Pay",
"page.goodswaitingtobesent":"To Ship",
"page.waittobereceived":"To Receive",
"page.fullorder":"All Orders",
"client.shenqingruzhu":"Join Us",
"client.myorder":"My Orders",
"client.pzbz":"Quality Guarantee",
"client.pzbzdesc":"Quality escort shopping hassle-free",
"client.jswl":"Fast Delevery",
"client.jswldesc":"Delivery as scheduled",
"client.shwy":"Worry free after sale",
"client.shwydesc":"Return or Exchange in 7 Days",
"client.bzzx":"Help Center",
"client.bzzxdesc":"Your shopping guide",
"common.totalresult":"Total result",
"common.sort":"Sort",
"common.default":"Default",
"common.price":"Price",
"common.clear":"Clear",
"common.networkerror":"Network error",
"common.searchproductempty":"No result, try another word.",
"common.searchshopempty":"No result, try another word.",
"common.classifyproductempty":"It's empty here.",
"common.location":"Location",
"common.entershop":"View the shop",
"client.logindesc":"We can serve you better",
"client.logindesc1":"when you login",
"client.loginbyphone":"Login with Phone Number",
"client.loginbywx":"Login with WeChat",
"client.loginbywxphone":"WeChat MobilePhone Login",
"client.loginbyzfb":"Login with AliPay",
"client.noaccount":"Don't have an account? ",
"client.gotoregister":"Register",
"client.gotohomepage":"Back to home",
"common.entermobilephone":"Enter your phone number",
"common.enterverificationcode":"Enter the Code",
"common.unsubscribe":"Unsubscribe",
"common.verificationcodetip":"Get Code",
"common.verificationcodetip1":"%d seconds left",
"common.verificationcodetip2":"X seconds left",
"common.verificationcodetip3":"Reacquire",
"common.payticktip":"sold",
"common.addtocart":"Add to Cart",
"common.buynow":"Buy Now",
"common.spyxj":"Unavailable",
"common.ddgm":"Buy Directly",
"common.wykt":"Lauch a Group",
"common.service":"Service",
"common.synthesis":"Comprehensive",
"common.searchproduct_hint":"Enter the product name you want.",
"client.searchproductempty_short":"Can't find the product.",
"client.searchemptyswitchword":"Try another word~",
"common.load":"Loading...",
"common.alldataloadfinish":"Here is the end ~",
"common.add":"ADD",
"product.productname_en":"Product Name",
"product.productnamehint_en":"Please enter the product name in english",
"product.productbrief_en":"Highlights",
"product.productbriefhint_en":"Pelease enter product english brief",
"product.productdetail_en":"Product English Details",
"client.alreadyhasaccount":"Already has Account.",
"client.tologin":"Login",
"client.registermeansagree":"Registration means agree",
"client.appuserservice":"《APP User Service Agreement》",
"client.appsafeservice":"《APP Personal privacy Agreement》",
"common.and":"and",
"common.validity":"Expiry Date",
"common.collectnow":"Get It Now",
"common.collected":"Got It",
"common.used":"Used",
"common.expired":"Expired",
"common.fail":"Failed",
"common.orderno":"Order Number",
"common.commission":"Commission",
"common.productnum":"Quantities",
"Synthesis":"Actual Payment",
"common.buyer":"Buyer",
"common.status":"Status",
"common.unsettled":"未结算",
"common.settled":"已结算",
"client.emptydata":"It's empty here.",
"common.refund":"Refund",
"common.return":"Return",
"common.shz":"Under Review",
"common.tkz":"In Progress",
"common.tkwc":"Refund Complete",
"common.tksb":"Refund Failed",
"common.shbtg":"Rejected",
"common.psz":"评审中",
"common.cxsq":"Withdraw",
"common.shtg":"Approved",
"common.thshz":"退货审核中",
"common.thz":"退货中",
"common.ytk":"Refunded",
"common.thwc":"退货完成,拒绝退款",
"common.deleterecord":"Delete",
"common.viewdetail":"View",
"common.cxth":"Cancel",
"common.cxtk":"撤销退款",
"common.zwxsjl":"It's empty here.",
"common.sfsccjl":"Are you sure to delete it?",
"common.reason":"Reason",
"product.language":"Language",
"product.ownedshop_hint":"Please select your shop",
"product.skuname_en":"Sku Name(English)",
"product.skuvalue_en":"Sku Value(English)",
"common.hotsearch":"Popular Searches",
"client.hotsearchhide":"Hide Popular Searches",
"common.historysearch":"HIstory Search",
"common.manager":"Manager",
"common.finish":"Finish",
"common.totalitemnum":"{number} Items",
"common.refundtotalamount":"Total Refund",
"common.refundwaitbusiness":"Your application has been submitted, please be patient.",
"common.refundbusinessagree":"Seller has agreed or timed out, your payment will be refunded.",
"common.refundbusinessreject":"If rejected, you can resubmit the refund application after making modifications.",
"common.refundsuccess":"The payment has been refunded back to the original method.",
"common.platforminterventionfail":"平台介入申请失败",
"common.tkcxsuccess":"This refundment has been cancelled because of your revocation.",
"common.tkinfo":"Refund Info",
"common.tkamount":"Refund Amount",
"common.tkno":"Refund No.",
"common.tkapplytime":"Created Time",
"common.tkxshistory":"Negotiations",
"common.platforminterventionwait":"Platform has received your application, please be patient.",
"common.chooseall":"All",
"client.deletefootprinttips":"Are you sure to delete it?",
"common.head":"Avatar",
"common.nickname":"Nick Name",
"common.sex":"Gender",
"common.birthday":"Birthday",
"common.realname":"Real Name",
"common.idcard":"ID Number",
"common.mobilephone":"Mobile Phone",
"common.yhysxy":"Privacy Agreement",
"common.yhfwxy":"Service Agreement",
"common.cancelaccount":"Close Account",
"common.modifysex":"Gender",
"common.modifybirthday":"Birthday",
"page.mallusersafement":"Privacy protections",
"common.ask":"Q",
"common.answer":"A",
"common.replycount":"{number} Replys",
"common.replycountempty":"No reply",
"common.askcountempty":"No questions yet",
"common.answercount":"{number} Answers",
"common.answercountempty":"No answers",
"common.deleteanswertitle":"删除回答?",
"common.deleteanswercontent":"删除回答后无法恢复",
"common.deleteanswerbtn":"继续删除",
"common.applywithdraw":"Apply for withdrawal",
"common.historyrecord":"History",
"common.agree":"Agree",
"common.reject":"Reject",
"common.bankaccount":"Bank Account Number",
"common.time":"Time",
"common.unreadmsgcount":"{number} unread messages",
"common.ordermsg":"Order message",
"common.systemnotice":"System message",
"common.msgempty":"No message",
"common.balance":"Balance",
"common.withdraw":"Withdraw",
"common.bankaccountempty":"You have to add your bank card first.",
"common.addressempty":"You have to add your address first.",
"common.name":"Full Name",
"common.mobilephone":"Phone Number",
"common.bankname":"Bank Name",
"common.cardnum":"Bank Account",
"common.collect":"Like",
"common.fans":"Followers",
"client.tobedistributor":"Join as a distributor",
"common.collectsuccess":"Congratulation!",
"common.canclecollectsuccess":"Hope you will come back.",
"common.express":"Express",
"common.choosesimple":"Select",
"client.commodityqa":"Q&A",
"common.goodsdetail":"Details",
"common.classifynum":"Classifys",
"common.soldnum":"Sold:{number}",
"common.stocknum":"Stock {number}",
"common.understock":"Insufficient",
"common.mobilephone_hint":"Please Enter the Phone Number",
"common.autologin":"Automatic login",
"common.forgetpassword":"Forget Password",
"common.sjdl":"Business Login",
"common.account_hint":"Please Enter the username",
"common.password_hint":"Please Enter the password",
"common.login_max":"Login",
"common.logining":"Logining...",
"common.resetpassword":"Reset password",
"common.backtologin":"Back to login",
"common.ensure_edit":"Confirm",
"common.submit_max":"Submit...",
"common.login_pssword_mode":"Account",
"common.login_phone_mode":"Phone",
"common.returnperson":"Return Person",
"common.address":"Address",
"common.home":"Home",
"common.company":"Company",
"common.school":"School",
"common.returnperson_empty":"Please Enter the Return person!",
"common.phonenumber_empty":"Please Enter the Phone Number!",
"common.phonenumber_error":"Please Enter the Right Phone Number!",
"common.location_empty":"Please Enter the Address!",
"common.location_detail_empty":"Please Enter the Address Detail!",
"common.removeaddress_tips":"Whether to delete this address?",
"common.addresstag":"Address tag",
"common.addressdefault":"Default",
"common.deleteaddress":"Delete the shipping address",
"common.location_detail_hint":"Detailed address: such as road, house number, community, building number, unit, etc",
"common.deleteproducttips":"Are you sure to delete the selected item?",
"common.cartzuhetips":"Have met {price} yuan optional {number} pieces!",
"common.clicktologin":"Click To Login",
"common.clicklogintips":"Log in to enjoy more benefits ~"
}

684
src/locales/zh-CN.json

@ -1,198 +1,488 @@
{
"main": {
"message": "消息",
"display": "展示",
"todaydata": "今日数据",
"yonghufangwenqushi": "用户访问趋势",
"renci": "人次",
"fangwenyonghushu": "访问用户数",
"zhuanhualv": "总转化率",
"dingdanzhuanhuanloudou": "订单转换漏斗",
"remaishangpin": "热卖商品"
},
"navbar": {
"changePwd": "修改密码",
"changeAvatar": "修改头像",
"logout": "退出登录",
"chinese": "中文",
"english": "英文",
"businessMode": "商家终端",
"password": "密码",
"newPassword": "新密码",
"confirmPassword": "确认密码"
},
"common": {
"sure": "确定",
"cancle": "取消",
"export": "导出",
"view": "查看",
"seemore": "查看更多",
"seeall": "查看全部",
"save": "保存",
"submit": "提交",
"edit": "编辑",
"delete": "删除",
"choose": "请选择",
"query": "查询",
"reset": "重置",
"operate": "操作",
"createTIme": "创建时间",
"contactPhone": "联系电话",
"contactPerson": "负责人",
"nodata": "暂无数据",
"set": "重置",
"notice_dialog_title": "温馨提示",
"deletedialogtitle": "选中数据将被永久删除, 是否继续?",
"deletesuccess": "删除成功!",
"content": "内容",
"styles": "样式",
"bannersetting": "banner设置",
"onepicturetip": "这是一张图片",
"all": "全部",
"allow": "允许",
"notallow": "不允许",
"uploadnow": "立即上传",
"baseinfo": "基础信息",
"yes": "是",
"no": "否"
},
"permission.概括":"概括",
"shop": {
"dianpuzhuangxiu": "店铺装修",
"newShop": "新增店铺",
"shopCode": "店铺编码",
"shopName": "店铺名称",
"shopNameHint": "请输入店铺名称",
"shopCodeHint": "请输入店铺编码",
"shopContactPersonHint": "请输入负责人",
"editShop": "修改店铺",
"shopDetail": "店铺详情",
"shopAddress": "店铺地址",
"returnContact": "退货联系人",
"returnPhone": "退货联系电话",
"returnAddress": "退货地址",
"crossborderornot": "是否跨境",
"ebpname": "电商企业名称",
"ebpcode": "电商企业代码"
},
"order": {
"orderId": "订单ID",
"trackingnumber": "快递单号",
"send": "发货",
"expresscompany": "快递公司",
"logisticsinfo": "物流信息",
"orderinfo": "订单信息",
"payunit": "(元)",
"amountlabel": "支付金额(元)"
},
"business": {
"businessName": "商家名称",
"businessLogo": "商家logo",
"businessInfo": "商家信息",
"businessAddress": "商家地址",
"businessBrief": "商家简介",
"businessContactMobilePhone": "负责人手机号",
"payinfoauth": "支付信息认证",
"payauth": "立即认证",
"businessAuth": "商家认证",
"ledgerperiod": "分账账期",
"chooseLedgerPeriod": "请选择分账账期",
"payinfoId": "支付信息Id"
},
"logistics": {
"planname": "方案名称",
"newplan": "新增物流方案",
"plannamehint": "请输入方案名称",
"storehouse": "仓库",
"deliverablerange": "可配送范围",
"bypiece": "按件数",
"byweight": "按重量",
"freeshipping": "包邮",
"billingtype": "计费方式",
"storehousehint": "请选择具体仓库"
},
"storehouse": {
"storehousetype": "仓库类型",
"storehousekind": "仓库种类",
"selfsupportstorehouse": "自营仓",
"outsourcingstorehouse": "委外仓",
"internalhouse": "国内仓",
"bondedstorehouse": "保税仓",
"overseasstorehouse": "海外仓",
"storehousename": "仓库名称"
},
"material": {
"picture": "图片",
"video": "视频",
"link": "链接",
"tag": "标签",
"taghit": "请输入标签名称",
"upload": "点击上传"
},
"product": {
"productname": "商品名称",
"productnamehint": "请输入商品名称",
"productclassify": "商品分类",
"shelvestate": "上架状态",
"shelvestatehint": "请选择上架状态",
"shelveson": "上架",
"shelvesoff": "下架",
"addproduct": "新增商品",
"batchexport": "批量导入",
"batchimport": "批量导入",
"productexport": "导出商品",
"productId": "商品id",
"mainpicture": "商品主图",
"pricerange": "售价区间",
"memberprice": "会员价",
"creditsexchange": "积分兑换",
"salesvolume": "销量",
"inventory": "库存",
"notlistedyet": "未上架",
"alreadylisted": "已上架",
"tobereviewed": "待审核",
"auditfailure": "审核失败",
"causeofrejection": "驳回原因",
"brand": "品牌",
"setmemberprice": "设置会员价",
"batchimportproduct": "批量导入商品",
"productuploadtips": "只能上传xlsx文件,且不超过10M",
"importproducttips1": "上传前不知道excel模板的,请点击",
"importproducttips2": "点我下载模板",
"importproducttips3": "去下载",
"preferentialmode": "优惠方式",
"discount": "折扣",
"specifiedprice": "指定价格",
"specification": "规格",
"price": "售价",
"clearalloldmembershipprices": "清除所有旧会员价",
"pricediscount": "折",
"priceyuan": "元",
"editproduct": "编辑商品",
"ownedshop": "所属店铺",
"productbrief": "卖点简介",
"productbriefhint": "请输入卖点简介",
"platformproductclassify": "平台商品分类",
"businessproductclassify": "商家商品分类",
"productgroup": "商品分组",
"productgrouphint": "请选择商品分组",
"brandhint": "请选择品牌",
"supplier": "供应商",
"supplierhint": "请输入供应商名称",
"productimg": "商品图片",
"stylesetting": "款式设置",
"singlestyle": "单款式",
"multistyle": "多款式",
"originalprice": "原价",
"rate": "税率",
"weight": "重量",
"Internationalbarcode": "国际条码",
"skuname": "规格名",
"skuvalue": "规格值",
"needimage": "需要配图",
"newsku": "添加规格",
"productdetail": "商品详情",
"needlogitics": "需要物流",
"allowoversold": "允许超卖"
}
}
"main.message":"消息",
"main.display":"展示",
"main.todaydata":"今日数据",
"main.yonghufangwenqushi":"用户访问趋势",
"main.renci":"人次",
"main.fangwenyonghushu":"访问用户数",
"main.zhuanhualv":"总转化率",
"main.dingdanzhuanhuanloudou":"订单转换漏斗",
"main.remaishangpin":"热卖商品",
"navbar.changePwd":"修改密码",
"navbar.changeAvatar":"修改头像",
"navbar.logout":"退出登录",
"navbar.chinese":"中文",
"navbar.english":"英文",
"navbar.businessMode":"商家终端",
"navbar.password":"密码",
"navbar.newPassword":"新密码",
"navbar.confirmPassword":"确认密码",
"common.sure":"确定",
"common.cancle":"取消",
"common.export":"导出",
"common.view":"查看",
"common.seemore":"查看更多",
"common.seeall":"查看全部",
"common.save":"保存",
"common.submit":"提交",
"common.edit":"编辑",
"common.delete":"删除",
"common.choose":"请选择",
"common.query":"查询",
"common.reset":"重置",
"common.operate":"操作",
"common.createTIme":"创建时间",
"common.contactPhone":"联系电话",
"common.contactPerson":"负责人",
"common.nodata":"暂无数据",
"common.set":"重置",
"common.notice_dialog_title":"温馨提示",
"common.deletedialogtitle":"选中数据将被永久删除",
"common.deletesuccess":"删除成功!",
"common.content":"内容",
"common.styles":"样式",
"common.bannersetting":"banner设置",
"common.onepicturetip":"这是一张图片",
"common.all":"全部",
"common.allow":"允许",
"common.notallow":"不允许",
"common.uploadnow":"立即上传",
"common.baseinfo":"基础信息",
"common.yes":"是",
"common.no":"否",
"permission.概括":"概括",
"shop.dianpuzhuangxiu":"店铺装修",
"shop.newShop":"新增店铺",
"shop.shopCode":"店铺编码",
"shop.shopName":"店铺名称",
"shop.shopNameHint":"请输入店铺名称",
"shop.shopCodeHint":"请输入店铺编码",
"shop.shopContactPersonHint":"请输入负责人",
"shop.editShop":"修改店铺",
"shop.shopDetail":"店铺详情",
"shop.shopAddress":"店铺地址",
"shop.returnContact":"退货联系人",
"shop.returnPhone":"退货联系电话",
"shop.returnAddress":"退货地址",
"shop.crossborderornot":"是否跨境",
"shop.ebpname":"电商企业名称",
"shop.ebpcode":"电商企业代码",
"order.orderId":"订单ID",
"order.trackingnumber":"快递单号",
"order.send":"发货",
"order.expresscompany":"快递公司",
"order.logisticsinfo":"物流信息",
"order.orderinfo":"订单信息",
"order.payunit":"(元)",
"order.amountlabel":"支付金额(元)",
"business.businessName":"商家名称",
"business.businessLogo":"商家logo",
"business.businessInfo":"商家信息",
"business.businessAddress":"商家地址",
"business.businessBrief":"商家简介",
"business.businessContactMobilePhone":"负责人手机号",
"business.payinfoauth":"支付信息认证",
"business.payauth":"立即认证",
"business.businessAuth":"商家认证",
"business.ledgerperiod":"分账账期",
"business.chooseLedgerPeriod":"请选择分账账期",
"business.payinfoId":"支付信息Id",
"logistics.planname":"方案名称",
"logistics.newplan":"新增物流方案",
"logistics.plannamehint":"请输入方案名称",
"logistics.storehouse":"仓库",
"logistics.deliverablerange":"可配送范围",
"logistics.bypiece":"按件数",
"logistics.byweight":"按重量",
"logistics.freeshipping":"包邮",
"logistics.billingtype":"计费方式",
"logistics.storehousehint":"请选择具体仓库",
"storehouse.storehousetype":"仓库类型",
"storehouse.storehousekind":"仓库种类",
"storehouse.selfsupportstorehouse":"自营仓",
"storehouse.outsourcingstorehouse":"委外仓",
"storehouse.internalhouse":"国内仓",
"storehouse.bondedstorehouse":"保税仓",
"storehouse.overseasstorehouse":"海外仓",
"storehouse.storehousename":"仓库名称",
"material.picture":"图片",
"material.video":"视频",
"material.link":"链接",
"material.tag":"标签",
"material.taghit":"请输入标签名称",
"material.upload":"点击上传",
"product.productname":"商品名称",
"product.productnamehint":"请输入商品名称",
"product.productclassify":"商品分类",
"product.shelvestate":"上架状态",
"product.shelvestatehint":"请选择上架状态",
"product.shelveson":"上架",
"product.shelvesoff":"下架",
"product.addproduct":"新增商品",
"product.batchexport":"批量导入",
"product.batchimport":"批量导入",
"product.productexport":"导出商品",
"product.productId":"商品ID",
"product.mainpicture":"商品主图",
"product.pricerange":"售价区间",
"product.memberprice":"会员价",
"product.creditsexchange":"积分兑换",
"product.salesvolume":"销量",
"product.inventory":"库存",
"product.notlistedyet":"未上架",
"product.alreadylisted":"已上架",
"product.tobereviewed":"待审核",
"product.auditfailure":"审核失败",
"product.causeofrejection":"驳回原因",
"product.brand":"品牌",
"product.setmemberprice":"设置会员价",
"product.batchimportproduct":"批量导入商品",
"product.productuploadtips":"只能上传xlsx文件,且不超过10M",
"product.importproducttips1":"上传前不知道excel模板的,请点击",
"product.importproducttips2":"点我下载模板",
"product.importproducttips3":"去下载",
"product.preferentialmode":"优惠方式",
"product.discount":"折扣",
"product.specifiedprice":"指定价格",
"product.specification":"规格",
"product.price":"售价",
"product.clearalloldmembershipprices":"清除所有旧会员价",
"product.pricediscount":"折",
"product.priceyuan":"元",
"product.editproduct":"编辑商品",
"product.ownedshop":"所属店铺",
"product.productbrief":"卖点简介",
"product.productbriefhint":"请输入卖点简介",
"product.platformproductclassify":"平台商品分类",
"product.businessproductclassify":"商家商品分类",
"product.productgroup":"商品分组",
"product.productgrouphint":"请选择商品分组",
"product.brandhint":"请选择品牌",
"product.supplier":"供应商",
"product.supplierhint":"请输入供应商名称",
"product.productimg":"商品图片",
"product.stylesetting":"款式设置",
"product.singlestyle":"单款式",
"product.multistyle":"多款式",
"product.originalprice":"原价",
"product.rate":"税率",
"product.weight":"重量",
"product.Internationalbarcode":"国际条码",
"product.skuname":"规格名",
"product.skuvalue":"规格值",
"product.needimage":"需要配图",
"product.newsku":"添加规格",
"product.productdetail":"商品详情",
"product.needlogitics":"需要物流",
"product.allowoversold":"允许超卖",
"client.shoppingcard":"购物车",
"client.gouwucheemptytips":"购物车还没有商品赶紧选购吧!",
"client.login":"登录",
"client.unlogin":"登录后查看商品",
"client.my":"我的",
"client.loginaccount":"登录账号",
"client.MemberValue":"会员成长值",
"client.ShippingAddress":"收货地址",
"client.couponwallet":"券包",
"client.shouhoudingdan":"售后订单",
"client.homepage":"首页",
"common.beautiproduct":"宝贝",
"common.beautishop":"店铺",
"common.searchproducthint":"请输入搜索商品",
"common.searchshophint":"请输入搜索店铺",
"page.language":"多语言",
"page.classify":"分类",
"page.shoppingcart":"购物车",
"page.my":"我的",
"page.secondkillzone":"秒杀专区",
"page.groupzone":"拼团专区",
"page.limitedtimediscountsection":"限时折扣专区",
"page.memberzone":"会员专区",
"page.myintegral":"我的积分",
"page.pointexchange":"积分兑换",
"page.signintoearnpoints":"签到领积分",
"page.coupon":"优惠券",
"page.availablegoods":"可用商品",
"page.combinationpreference":"组合优惠",
"page.hotrecommendation":"热门推荐",
"page.search":"搜索",
"page.goodslist":"商品列表",
"page.goodsdetail":"详情",
"page.couponlistofavailableitems":"优惠券可用商品列表",
"page.qadetail":"问答详情",
"page.allquestionsandanswers":"全部问答",
"page.ask":"提问",
"page.myassessment":"我的评价",
"page.evaluatesuccess":"评价成功",
"page.evaluationdetails":"评价详情",
"page.goodsevaluation":"宝贝评价",
"page.additionalevaluation":"追加评价",
"page.evaluate":"评价",
"page.ordercenter":"订单中心",
"page.purchasegoods":"购买宝贝",
"page.orderdetail":"订单详情",
"page.applyforarefund":"申请退款",
"page.applyforreturnofgoods":"申请退货",
"page.selectgoods":"选择商品",
"page.platformintervention":"平台介入",
"page.paymentsuccess":"支付成功",
"page.fillinthereturnlogistics":"填写退货物流",
"page.distributioncenter":"分销中心",
"page.distributionclerkrecruitmentorder":"分销员招募令",
"page.share":"分享",
"page.cumulativedistributor":"累计分销员",
"page.cumulativereward":"累计奖励",
"page.cumulativecustomer":"累计客户",
"page.unbilledincentive":"未结算奖励",
"page.promotionshop":"推广店铺",
"page.promotegoods":"推广商品",
"page.mydistributionorder":"我的分销订单",
"page.invitesubordinates":"邀请下级",
"page.logisticsinformation":"物流信息",
"page.thematicclassification":"专题分类",
"page.generateinvitationposters":"生成邀请海报",
"page.invitefriendstoorder":"邀请好友拼单",
"page.business":"商家",
"page.membercheckin":"会员签到",
"page.login":"登录",
"page.addressmanager":"地址管理",
"page.bankcard":"银行卡",
"page.mycollection":"我的收藏",
"page.browsingfootprint":"浏览足迹",
"page.myquestionsandanswers":"我的问答",
"page.personalinformation":"个人信息",
"page.mycardcoupon":"我的卡券",
"page.myaftersales":"我的售后",
"page.returndetails":"退货详情",
"page.refunddetails":"退款详情",
"page.malluseragreement":"《Thee》商城用户协议",
"page.register":"注册",
"page.myaccount":"我的账户",
"page.withdraw":"提现",
"page.messagecenter":"消息中心",
"page.announcementdetails":"公告详情",
"page.bingphone":"绑定手机号",
"page.mobilenumberauthorization":"手机号授权",
"page.liverecommendation":"直播推荐",
"page.accountcancellation":"账户注销",
"page.cancelaccountmobileauthentication":"注销账户手机认证",
"page.index":"首页",
"page.merchantsettlement":"商家入驻",
"page.platformcustomerservice":"平台客服",
"page.signin":"签到",
"page.membercenter":"会员中心",
"page.due":"待付款",
"page.goodswaitingtobesent":"待发货",
"page.waittobereceived":"待收货",
"page.fullorder":"全部订单",
"client.shenqingruzhu":"申请入驻",
"client.myorder":"我的订单",
"client.pzbz":"品质保障",
"client.pzbzdesc":"品质护航购物无忧",
"client.jswl":"极速物流",
"client.jswldesc":"如约送货送货入户",
"client.shwy":"售后无忧",
"client.shwydesc":"七天无理由退换货",
"client.bzzx":"帮助中心",
"client.bzzxdesc":"您的购物指南",
"common.totalresult":"全部结果",
"common.sort":"排序",
"common.default":"默认",
"common.price":"价格",
"common.clear":"清空",
"common.networkerror":"哎呀网络开小差了~",
"common.searchproductempty":"搜索不到你要找的宝贝呢换个词试试吧~",
"common.searchshopempty":"搜索不到你要找的店铺呢换个词试试吧~",
"common.classifyproductempty":"该分类没有商品~",
"common.location":"所在地",
"common.entershop":"进入店铺",
"client.logindesc":"为了给您提供更好的服务",
"client.logindesc1":"我们需要您的授权哦~",
"client.loginbyphone":"手机号登录",
"client.loginbywx":"微信登录",
"client.loginbywxphone":"微信手机号授权",
"client.loginbyzfb":"支付宝登录",
"client.noaccount":"还没有账号",
"client.gotoregister":"去注册",
"client.gotohomepage":"去首页逛逛",
"common.entermobilephone":"请输入您的手机号",
"common.enterverificationcode":"请输入验证码",
"common.unsubscribe":"立即注销",
"common.verificationcodetip":"获取验证码",
"common.verificationcodetip1":"剩余%ds",
"common.verificationcodetip2":"X秒重新获取",
"common.verificationcodetip3":"重新获取",
"common.payticktip":"人付款",
"common.addtocart":"加入购物车",
"common.buynow":"立即购买",
"common.spyxj":"商品已下架",
"common.ddgm":"单独购买",
"common.wykt":"我要开团",
"common.service":"客服",
"common.synthesis":"综合",
"common.searchproduct_hint":"请输入您想要的宝贝",
"client.searchproductempty_short":"搜索不到你要找的宝贝呢",
"client.searchemptyswitchword":"换个词试试吧~",
"common.load":"加载中...",
"common.alldataloadfinish":"已经到达底部了~",
"common.add":"添加",
"product.productname_en":"商品英文名称",
"product.productnamehint_en":"请输入商品英文名称",
"product.productbrief_en":"卖点英文简介",
"product.productbriefhint_en":"请输入卖点英文简介",
"product.productdetail_en":"商品英文详情",
"client.alreadyhasaccount":"已有账号,",
"client.tologin":"去登录",
"client.registermeansagree":"注册即代表同意",
"client.appuserservice":"《APP用户服务协议》",
"client.appsafeservice":"《APP个人隐私协议》",
"common.and":"和",
"common.validity":"有效期",
"common.collectnow":"立即领取",
"common.collected":"已领取",
"common.used":"已使用",
"common.expired":"已过期",
"common.fail":"失败",
"common.orderno":"订单号",
"common.commission":"佣金",
"common.productnum":"商品数",
"Synthesis":"实付金额",
"common.buyer":"下单人",
"common.status":"状态",
"common.unsettled":"未结算",
"common.settled":"已结算",
"client.emptydata":"这里空空如也~",
"common.refund":"退款",
"common.return":"退货",
"common.shz":"审核中",
"common.tkz":"退款中",
"common.tkwc":"退款完成",
"common.tksb":"退款失败",
"common.shbtg":"审核不通过",
"common.psz":"评审中",
"common.cxsq":"撤销申请",
"common.shtg":"审核通过",
"common.thshz":"退货审核中",
"common.thz":"退货中",
"common.ytk":"已退款",
"common.thwc":"退货完成,拒绝退款",
"common.deleterecord":"删除记录",
"common.viewdetail":"查看详情",
"common.cxth":"撤销退货",
"common.cxtk":"撤销退款",
"common.zwxsjl":"暂无售后记录~",
"common.sfsccjl":"是否删除此记录",
"common.reason":"原因",
"product.language":"语言",
"product.ownedshop_hint":"请选择所属店铺",
"product.skuname_en":"规格名(英文)",
"product.skuvalue_en":"规格值(英文)",
"common.hotsearch":"热门搜索",
"client.hotsearchhide":"当前热门搜索已隐藏",
"common.historysearch":"历史搜素",
"common.manager":"管理",
"common.finish":"完成",
"common.totalitemnum":"共{number}件宝贝",
"common.refundtotalamount":"退款总金额",
"common.refundwaitbusiness":"您已成功发起退款申请,请耐心等待商家处理。",
"common.refundbusinessagree":"卖家同意或超时未处理,系统将退款给您",
"common.refundbusinessreject":"如果卖家拒绝,您可以修改退款申请后再次发起,卖家会重新处理",
"common.refundsuccess":"已原路退回金额",
"common.platforminterventionfail":"平台介入申请失败",
"common.tkcxsuccess":"因您撤销退款申请,退款已关闭",
"common.tkinfo":"退款信息",
"common.tkamount":"退款金额",
"common.tkno":"退款编号",
"common.tkapplytime":"申请时间",
"common.tkxshistory":"协商历史",
"common.platforminterventionwait":"你已申请平台介入正在审核中...",
"common.chooseall":"全选",
"client.deletefootprinttips":"是否删除该浏览足迹?",
"common.head":"头像",
"common.nickname":"昵称",
"common.sex":"性别",
"common.birthday":"生日",
"common.realname":"真实姓名",
"common.idcard":"身份证",
"common.mobilephone":"手机号",
"common.yhysxy":"用户隐私协议",
"common.yhfwxy":"用户服务协议",
"common.cancelaccount":"注销账号",
"common.modifysex":"修改性别",
"common.modifybirthday":"修改生日",
"page.mallusersafement":"《Thee》商城隐私协议",
"common.ask":"问",
"common.answer":"答",
"common.replycount":"{number}条回复",
"common.replycountempty":"暂无回复",
"common.askcountempty":"暂无提问内容",
"common.answercount":"{number}条回答",
"common.answercountempty":"暂无回答",
"common.deleteanswertitle":"删除回答?",
"common.deleteanswercontent":"删除回答后无法恢复",
"common.deleteanswerbtn":"继续删除",
"common.applywithdraw":"提现申请",
"common.historyrecord":"历史记录",
"common.agree":"通过",
"common.reject":"拒绝",
"common.bankaccount":"银行卡号",
"common.time":"时间",
"common.unreadmsgcount":"未读消息{number}条",
"common.ordermsg":"订单消息",
"common.systemnotice":"系统消息",
"common.msgempty":"暂无消息",
"common.balance":"余额",
"common.withdraw":"提现",
"common.bankaccountempty":"你还没有添加银行卡哦~",
"common.addressempty":"你还没有添加地址哦~",
"common.name":"姓名",
"common.mobilephone":"手机号码",
"common.bankname":"银行名称",
"common.cardnum":"卡号",
"common.collect":"收藏",
"common.fans":"粉丝数",
"client.tobedistributor":"成为分销员",
"common.collectsuccess":"收藏成功",
"common.canclecollectsuccess":"取消收藏成功",
"common.express":"快递",
"common.choosesimple":"选择",
"client.commodityqa":"商品问答",
"common.goodsdetail":"宝贝详情",
"common.classifynum":"商品总类",
"common.soldnum":"已售:{number}件",
"common.stocknum":"库存 {number}件",
"common.understock":"库存不足",
"common.mobilephone_hint":"请输入手机号码",
"common.autologin":"自动登录",
"common.forgetpassword":"忘记密码",
"common.sjdl":"商家登录",
"common.account_hint":"请输入账户",
"common.password_hint":"请输入密码",
"common.login_max":"登 录",
"common.logining":"登 录 中...",
"common.resetpassword":"找回密码",
"common.backtologin":"返回登录",
"common.ensure_edit":"确 认 修 改",
"common.submit_max":"提 交 中...",
"common.login_pssword_mode":"账户密码",
"common.login_phone_mode":"手机号码",
"common.returnperson":"收货人",
"common.address":"地址",
"common.home":"家",
"common.company":"公司",
"common.school":"学校",
"common.returnperson_empty":"请输入收货人!",
"common.phonenumber_empty":"请输入手机号!",
"common.phonenumber_error":"请输入正确的手机号!",
"common.location_empty":"所在地不能为空!",
"common.location_detail_empty":"请输入详细地址!",
"common.removeaddress_tips":"是否删除此地址?",
"common.addresstag":"地址标签",
"common.addressdefault":"设为默认地址",
"common.deleteaddress":"删除收货地址",
"common.location_detail_hint":"详细地址:如道路、门牌号、小区、楼栋号、单元等",
"common.deleteproducttips":"您确定删除选中的商品吗?",
"common.cartzuhetips":"已满足【{price}元任选{number}件】!",
"common.clicktologin":"点击登录",
"common.clicklogintips":"登录后享受更多权益~"
}

84
src/permission.js

@ -85,49 +85,63 @@ export const loadMenus = (next, to) => {
adminBuild({ platformUserId: getUserId() }).then(res => {
//整理多语言资源
let menuList = res.data;
let enDataMap={}
let zhCNDataMap={}
menuList.forEach(item => {
let enDataItem = ""
let zhCNDataItem = ""
if(item.permissionNameMap){
enDataItem = item.permissionNameMap["en"]
zhCNDataItem = item.permissionNameMap["zh"]
}
if(enDataItem && enDataItem.length > 0){
enDataMap["permission."+item.permissionName]=enDataItem;
}
if(zhCNDataItem && zhCNDataItem.length > 0){
zhCNDataMap["permission."+item.permissionName]=zhCNDataItem;
}
if(item.children){
item.children.forEach(childItem => {
let enDataChildItem = ""
let zhCNDataChildItem = ""
if(childItem.permissionNameMap){
enDataChildItem = childItem.permissionNameMap["en"]
zhCNDataChildItem = childItem.permissionNameMap["zh"]
}
if(enDataChildItem && enDataChildItem.length > 0){
enDataMap["permission."+childItem.permissionName]=enDataChildItem;
}
if(zhCNDataChildItem && zhCNDataChildItem.length > 0){
zhCNDataMap["permission."+childItem.permissionName]=zhCNDataChildItem;
}
})
}
// let menuList = res.data;
// let enDataMap={}
// let zhCNDataMap={}
// menuList.forEach(item => {
// let enDataItem = ""
// let zhCNDataItem = ""
// if(item.permissionNameMap){
// enDataItem = item.permissionNameMap["en"]
// zhCNDataItem = item.permissionNameMap["zh"]
// }
// if(enDataItem && enDataItem.length > 0){
// enDataMap["permission."+item.permissionName]=enDataItem;
// }
// if(zhCNDataItem && zhCNDataItem.length > 0){
// zhCNDataMap["permission."+item.permissionName]=zhCNDataItem;
// }
// if(item.children){
// item.children.forEach(childItem => {
// let enDataChildItem = ""
// let zhCNDataChildItem = ""
// if(childItem.permissionNameMap){
// enDataChildItem = childItem.permissionNameMap["en"]
// zhCNDataChildItem = childItem.permissionNameMap["zh"]
// }
// if(enDataChildItem && enDataChildItem.length > 0){
// enDataMap["permission."+childItem.permissionName]=enDataChildItem;
// }
// if(zhCNDataChildItem && zhCNDataChildItem.length > 0){
// zhCNDataMap["permission."+childItem.permissionName]=zhCNDataChildItem;
// }
// })
// }
})
// })
// console.log(enDataMap)
// console.log(i18n.getLocaleMessage('en'))
// console.log(Object.assign(enDataMap,i18n.getLocaleMessage('en')))
// i18n.setLocaleMessage('en', Object.assign(enDataMap,i18n.getLocaleMessage('en')));
// i18n.setLocaleMessage('zh-CN', Object.assign(zhCNDataMap,i18n.getLocaleMessage('zh-CN')));
i18n.mergeLocaleMessage('en',enDataMap);
i18n.mergeLocaleMessage('zh', zhCNDataMap);
// i18n.mergeLocaleMessage('en',enDataMap);
// i18n.mergeLocaleMessage('zh', zhCNDataMap);
// setBtns(JSON.stringify(res.buttons))
router.options.routes.forEach(item => {
if(item && item.meta && item.meta.title && item.meta.title === '概括'){
item.meta.title = i18n.t('permission.概括');
}
if(item && item.children && item.children.length > 0){
item.children.forEach(childItem => {
if(childItem && childItem.meta && childItem.meta.title && childItem.meta.title === '概括'){
childItem.meta.title = i18n.t('permission.概括');
}
});
}
});
const asyncRouter = filterAsyncRouter(res.data)
// 画布设置
asyncRouter.forEach(item => {

3
src/router/index.js

@ -644,7 +644,8 @@ export const constantRoutes = [
component: () => import('@/views/dashboard/index.vue'),
meta: {
title: '概括',
icon: 'el-icon-monitor'
icon: 'el-icon-monitor',
breadcrumb:false
}
}]
}

13
src/styles/elDialog.scss

@ -93,7 +93,7 @@ font-weight: 500;
font-weight: 400;
color: #404F64;
line-height: 36px;
text-align: left;
text-align: right;
}
.el-radio__label {
@ -109,4 +109,15 @@ font-weight: 500;
line-height: 36px;
text-align: left;
margin-left: 8px;
}
.el-upload--picture-card {
background-color: #fbfdff;
border: 1px dashed #c0ccda;
border-radius: 6px;
box-sizing: border-box;
width: 120px;
height: 120px;
line-height: 118px;
vertical-align: top
}

39
src/views/commodity/commdityClass/Edit.vue

@ -285,12 +285,16 @@ export default {
oneClassifyId
})
const resData = res.data
resData.classifyName_ZH = JSON.parse(resData.classifyNameJson)[
"zh"
];
resData.classifyName_EN = JSON.parse(resData.classifyNameJson)[
"en"
];
if(resData && resData.langInfoMap && resData.langInfoMap['zh']){
resData.classifyName_ZH = resData.langInfoMap['zh'].classifyName;
}else{
resData.classifyName_ZH = "";
}
if(resData && resData.langInfoMap && resData.langInfoMap['en']){
resData.classifyName_EN = resData.langInfoMap['en'].classifyName;
}else{
resData.classifyName_EN = "";
}
this.initImageArray(resData)
if (resData) {
this.treeData = [resData]
@ -417,13 +421,17 @@ export default {
this.$message.error('请添加分类')
return
}
console.log(this.params)
for (const index in params) {
let itemParams = params[index]
itemParams.classifyName = itemParams.classifyName_ZH;
itemParams.classifyNameMap = {}
itemParams.classifyNameMap["zh"] = itemParams.classifyName_ZH;
itemParams.classifyNameMap["en"] = itemParams.classifyName_EN;
itemParams.classifyNameJson = JSON.stringify(itemParams.classifyNameMap);
itemParams.langInfoMap = {}
itemParams.langInfoMap["zh"] = {};
itemParams.langInfoMap["zh"].classifyName = itemParams.classifyName_ZH;
itemParams.langInfoMap["zh"].languageType = "zh";
itemParams.langInfoMap["en"] = {};
itemParams.langInfoMap["en"].classifyName = itemParams.classifyName_EN;
itemParams.langInfoMap["en"].languageType = "en";
}
this.resetImage(this.treeData[0])
const obj = {
@ -449,10 +457,13 @@ export default {
for (const index in params) {
let itemParams = params[index]
itemParams.classifyName = itemParams.classifyName_ZH;
itemParams.classifyNameMap = {}
itemParams.classifyNameMap["zh"] = itemParams.classifyName_ZH;
itemParams.classifyNameMap["en"] = itemParams.classifyName_EN;
itemParams.classifyNameJson = JSON.stringify(itemParams.classifyNameMap);
itemParams.langInfoMap = {}
itemParams.langInfoMap["zh"] = {};
itemParams.langInfoMap["zh"].classifyName = itemParams.classifyName_ZH;
itemParams.langInfoMap["zh"].languageType = "zh";
itemParams.langInfoMap["en"] = {};
itemParams.langInfoMap["en"].classifyName = itemParams.classifyName_EN;
itemParams.langInfoMap["en"].languageType = "en";
}
this.resetImage(this.treeData[0])
const obj = {

16
src/views/commodity/commdityClass/index.vue

@ -156,12 +156,16 @@ export default {
const res = await commdityClassGetAll(formParams, {project: getBusinessId()})
let tempData = res.data.list;
tempData.forEach((itemData) => {
itemData.classifyName_ZH = JSON.parse(itemData.classifyNameJson)[
"zh"
];
itemData.classifyName_EN = JSON.parse(itemData.classifyNameJson)[
"en"
];
if(itemData && itemData.langInfoMap && itemData.langInfoMap['zh']){
itemData.classifyName_ZH = itemData.langInfoMap['zh'].classifyName;
}else{
itemData.classifyName_ZH = "";
}
if(itemData && itemData.langInfoMap && itemData.langInfoMap['en']){
itemData.classifyName_EN = itemData.langInfoMap['en'].classifyName;
}else{
itemData.classifyName_EN = "";
}
});
this.tableData = tempData;
this.total = res.data.total;

2
src/views/commodity/commodityList/commodityGroup.vue

@ -184,7 +184,7 @@
</el-select>
</div>
<div class="purchase">
<el-select v-model="item.calculation" placeholder="$t('common.choose')">
<el-select v-model="item.calculation" :placeholder="$t('common.choose')">
<el-option
v-for="calculationItem in calculationList"
:key="calculationItem.value"

635
src/views/commodity/commoditySystem/addCommodity.vue

@ -1,23 +1,40 @@
<template>
<div class="edit_add_page">
<div class="content">
<el-form ref="form" :model="form" :rules="rules" label-width="90px">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<div class="detail_title">{{ $t('common.baseinfo') }}</div>
<el-form-item :label="$t('product.language')">
<el-select v-model="langType">
<el-option :label="$t('navbar.chinese')" value="zh" />
<el-option :label="$t('navbar.english')" value="en" />
</el-select>
</el-form-item>
<el-form-item :label="$t('product.ownedshop')" prop="shopId">
<el-select v-model="form.shopId" placeholder="请选择所属店铺" clearable>
<el-select v-model="form.shopId" :placeholder="$t('product.ownedshop_hint')" clearable>
<el-option v-for="(item, index) in shopList" :key="index" :label="item.shopName"
:value="item.shopId" />
</el-select>
</el-form-item>
<el-form-item :label="$t('product.productname')" v-if="langType == 'zh'" prop="productName_ZH">
<el-input v-model="form.productName_ZH" maxlength="50" class="form-content-item-input" :placeholder="$t('product.productnamehint')" show-word-limit />
</el-form-item>
<el-form-item :label="$t('product.productname')" prop="productName">
<el-input v-model="form.productName" maxlength="50" class="form-content-item-input" :placeholder="$t('product.productnamehint')" show-word-limit />
<el-form-item :label="$t('product.productname_en')" prop="productName_EN" v-if="langType == 'en'">
<el-input v-model="form.productName_EN" maxlength="50" class="form-content-item-input" :placeholder="$t('product.productnamehint_en')" show-word-limit />
</el-form-item>
<el-form-item :label="$t('product.productbrief')" prop="productBrief">
<el-input v-model="form.productBrief" maxlength="50" class="form-content-item-input" :placeholder="$t('product.productbriefhint')" show-word-limit />
<el-form-item :label="$t('product.productbrief')" prop="productBrief_ZH" v-if="langType == 'zh'">
<el-input v-model="form.productBrief_ZH" maxlength="50" class="form-content-item-input" :placeholder="$t('product.productbriefhint')" show-word-limit />
</el-form-item>
<el-form-item :label="$t('product.productbrief_en')" prop="productBrief_EN" v-if="langType == 'en'">
<el-input v-model="form.productBrief_EN" maxlength="50" class="form-content-item-input" :placeholder="$t('product.productbriefhint_en')" show-word-limit />
</el-form-item>
<el-form-item :label="$t('product.platformproductclassify')" prop="classifyId">
@ -58,7 +75,7 @@
</el-select>
</el-form-item>
<el-form-item class="form-item-long" :label="$t('product.supplier')">
<el-input v-model="form.supplierName" maxlength="20" class="form-content-item-input" show-word-limit placeholder="$t('product.supplierhint')" />
<el-input v-model="form.supplierName" maxlength="20" class="form-content-item-input" show-word-limit :placeholder="$t('product.supplierhint')" />
</el-form-item>
<el-form-item :label="$t('product.productimg')">
@ -82,116 +99,18 @@
</div>
</el-form-item>
<el-form-item :label="$t('product.stylesetting')">
<el-radio-group v-model="form.attrStyle" @input="changeAttrStyle">
<el-radio :label="0" key="0">{{$t('product.singlestyle')}}</el-radio>
<el-radio :label="1" key="1">{{ $t('product.multistyle') }}</el-radio>
</el-radio-group>
<el-form-item :label="$t('product.specification')">
<el-button class="add-attr-btn" type="primary" @click="showEditSkuAttr">{{ $t('common.edit') }}</el-button>
</el-form-item>
<div class="style-container">
<div v-if="form.attrStyle === 0" class="single-style">
<el-table :data="skuList" style="width: 100%"
:header-cell-style="{ background: '#EEF3FF', color: '#333333' }">
<el-table-column :label="$t('product.specification')">
<template slot-scope="scope">
<el-input v-model="singleStyle.skuValue" :sss="scope" maxlength="10" />
</template>
</el-table-column>
<el-table-column :label="$t('product.price')">
<template slot-scope="scope">
<el-input-number v-model="scope.row.price" :controls="false" :max="999999999" :min="0" :precision="2"
:step="0.01" />
</template>
</el-table-column>
<el-table-column :label="$t('product.originalprice')">
<template slot-scope="scope">
<!-- <el-input v-model="scope.row.originalPrice" type="number" oninput="value=value.replace(/-/, '')" /> -->
<el-input-number v-model="scope.row.originalPrice" :controls="false" :max="999999999" :min="0"
:precision="2" :step="0.01" />
</template>
</el-table-column>
<el-table-column :label="$t('product.rate')">
<template slot-scope="scope">
<el-input-number v-model="scope.row.rate" :controls="false" :min="0" :precision="2" :step="0.01" />
</template>
</el-table-column>
<el-table-column :label="$t('logistics.storehouse')">
<template slot-scope="scope">
<el-select v-model="scope.row.storehouseId" :placeholder="$t('logistics.storehousehint')" clearable>
<el-option v-for="(item, index) in storehouseList" :key="index" :label="item.storehouseName"
:value="item.storehouseId" />
</el-select>
</template>
</el-table-column>
<el-table-column :label="$t('product.inventory')">
<template slot-scope="scope">
<!-- <el-input v-model="scope.row.stockNumber" type="number" oninput="value=value.replace(/[^\d]/g,'')" /> -->
<el-input-number v-model="scope.row.stockNumber" :disabled="true" :controls="false" :max="999999999"
:min="0" :precision="0" />
</template>
</el-table-column>
<el-table-column :label="$t('product.weight')">
<template slot-scope="scope">
<!-- <el-input v-model="scope.row.weight" type="number" oninput="value=value.replace(/-/, '')" /> -->
<el-input-number v-model="scope.row.weight" :controls="false" :max="999" :min="0" :precision="2"
:step="0.01" />
</template>
</el-table-column>
<el-table-column :label="$t('product.Internationalbarcode')">
<template slot-scope="scope">
<el-input v-model="scope.row.sku" maxlength="20" />
</template>
</el-table-column>
</el-table>
</div>
<div v-else class="multiple-styles">
<div v-for="(skuAttr, index) in form.skuAttrList" :key="index" class="sku-attr-list">
<el-form-item :label="$t('product.skuname')">
<el-input v-model="skuAttr.skuName" maxlength="20" />
<i v-if="index != 0" class="el-icon-close delImg" @click="delSkuAttrList(index)" />
<el-checkbox v-if="index === 0" v-model="skuAttr.needImg" style="margin-left: 20px;">{{ $t('product.needimage') }}</el-checkbox>
</el-form-item>
<el-form-item :label="$t('product.skuvalue')">
<div class="attr-value-list">
<div v-for="(sku, index1) in skuAttr.values" :key="index + '-' + index1" class="main-diagram m-8">
<el-input v-model="sku.skuValue" maxlength="10" />
<i v-if="index === 0 && index1 === 0" />
<i v-else class="el-icon-close delImg" @click="delValue(index, index1)" />
<div v-if="skuAttr.needImg && index === 0" class="upload-wrap diagram-upload">
<div class="span-wrap">
<el-upload list-type="picture-card" :show-file-list="false" :on-preview="handlePictureCardPreview"
:on-remove="handleRemove" :headers="headers" :data="dataObj" :file-list="[sku]"
:multiple="false" :on-success="handleImageSuccess1" :action="action">
<i v-if="!sku.image" slot="trigger" class="el-icon-plus" />
<div v-else class="attr-value-img">
<img class="attr-thumbnail" :src="sku.image">
</div>
</el-upload>
<div v-if="sku.image" class="attr-actions">
<span class="attr-preview" @click="handlePictureCardPreview({ imgPath: sku.image })">
<i class="el-icon-zoom-in" />
</span>
<span class="attr-delete" @click="handleRemove1(sku)">
<i class="el-icon-delete" />
</span>
</div>
</div>
</div>
</div>
<el-button type="text" style="margin-left: 10px;" @click="addAttrValue(index)">{{ $t('permission.添加') }}</el-button>
</div>
</el-form-item>
</div>
<el-button class="add-attr-btn" type="primary" @click="addSkuAttrList">{{ $t('product.newsku') }}</el-button>
<el-table :data="skuList" style="width: 100%"
<div class="multiple-styles">
<el-table :data="form.skus" style="width: 100%"
:header-cell-style="{ background: '#EEF3FF', color: '#333333' }">
<el-table-column v-for="(skuAttr, index) in skuAttrName" :key="index" :label="skuAttr.skuName">
<el-table-column v-for="(skuAttr, index) in form.names" :key="index" :label="langType=='en' ? skuAttr.skuName_EN : skuAttr.skuName_ZH">
<template slot-scope="scope">
{{
scope.row.skuAttrCodeDTOList &&
scope.row.skuAttrCodeDTOList[index]
| attrValueFilter(form.skuAttrList)
scope.row.skuAttrCodeDTOList && scope.row.skuAttrCodeDTOList[index] | attrValueFilter(form.names, langType)
}}
</template>
</el-table-column>
@ -236,7 +155,7 @@
:step="0.01" />
</template>
</el-table-column>
<el-table-column label="$t('product.Internationalbarcode')" width="120">
<el-table-column :label="$t('product.Internationalbarcode')" width="120">
<template slot-scope="scope">
<el-input v-model="scope.row.sku" maxlength="20" />
</template>
@ -250,10 +169,16 @@
</div>
</div>
<el-form-item :label="$t('product.productdetail')" style="margin-bottom: 5px;">
<el-form-item :label="$t('product.productdetail')" v-if="langType == 'zh'" style="margin-bottom: 5px;">
</el-form-item>
<Tinymce v-if="showTinymce && langType == 'zh'" ref="content" v-model="form.productText_ZH" style="width: 99%;" class="tinymce-wrap"
:height="200" />
<el-form-item :label="$t('product.productdetail_en')" v-if="langType == 'en'" style="margin-bottom: 5px;">
</el-form-item>
<Tinymce v-if="showTinymce" ref="content" v-model="form.productText" style="width: 99%;" class="tinymce-wrap"
<Tinymce v-if="showTinymce && langType == 'en'" ref="content" v-model="form.productText_EN" style="width: 99%;" class="tinymce-wrap"
:height="200" />
@ -315,14 +240,25 @@
</div>
<!-- 弹窗 -->
<el-dialog :visible.sync="dialogVisible" class="check-image-dialog" title="查看图片" center="center">
<el-dialog :visible.sync="dialogVisible" class="check-image-dialog" title="查看图片" center append-to-body>
<img width="100%" :src="dialogImageUrl" alt>
</el-dialog>
<el-dialog :visible.sync="editSkuAttrDialogVisible"
title="编辑规格" center append-to-body>
<EditSkuAttr
ref="EditSkuAttr"
:skuAttrList="newSkuAttrList"
@cancle="editSkuAttrCancle"
@sure="editSkuAttrSure"
/>
</el-dialog>
</div>
</template>
<script>
import Tinymce from '@/components/Tinymce'
import EditSkuAttr from '@/views/commodity/commoditySystem/editSkuAttr.vue'
import {
getGroupSelect,
getClassify,
@ -335,42 +271,33 @@ import {
getSelect
} from '@/api/account';
import { uploadUrl } from '@/utils/request'
import { getToken,getBusinessId } from '@/utils/auth'
import { getToken,getBusinessId, getLanguage } from '@/utils/auth'
import { storehouseGetAll } from '@/api/shopSys'
import { shopListGetAll } from '@/api/shop'
export default {
filters: {
attrValueFilter(map, list) {
const hasChilds =
list &&
list.filter(skuAttr => {
const hasChild = skuAttr.values.some(attr => {
return attr.skuValue
})
return skuAttr.skuName && hasChild
})
attrValueFilter(map, list, langType) {
if (!map) {
return ''
}
const { code, valueCode } = map
let codeStr = ''
hasChilds.map(item => {
const { values } = item
values &&
values.some(attr => {
const isSome = item.code === code && attr.valueCode === valueCode
if (isSome) {
codeStr = attr.skuValue
for(let item of list) {
if (item.code === code){
const { values } = item
for(let attr of values){
if (attr.valueCode === valueCode) {
return langType == 'en' ? attr.skuValue_EN : attr.skuValue_ZH
}
return isSome
})
})
return codeStr
}
}
}
return ''
}
},
components: {
Tinymce
Tinymce,
EditSkuAttr
},
props: {
productId: {
@ -385,21 +312,22 @@ export default {
return {
//
brandList: [],
action: uploadUrl,
langType : 'zh',
headers: {
'Authorization-business': getToken()
},
dataObj: {
folderId: 1
},
form: {
shopId: '',
productId: null, //Id
productName: '', //
productBrief: '', //
productName_ZH: '', //
productName_EN: '', //
productBrief_ZH: '', //
productBrief_EN: '', //
shopGroupId: '', // id
classifyId: '', // id
// shopPlatformGroupId: '', // id
@ -413,38 +341,31 @@ export default {
ifCredit: '', // 1- 0-
creditLimit: '', // 使
ifHuabei: 1, // 1- 0-
productText: '', //
attrStyle: 0,//,01
productText_ZH: '', //
productText_EN: '', //
attrStyle: 1,//,01
images: [], // ""
deletes: [], // id
langInfoMap:[],
names: [
{
code: '', //
skuName: '', //
needImg: false,
values: [
{
valueCode: '', //
skuValue: '', //
image: '' //
}
]
}
],
skuAttrList: [
{
code: '', //
skuName: '', //
skuName_ZH: '',
skuName_EN: '', //
needImg: false,
langInfoMap:[],
values: [
{
valueCode: '', //
skuValue: '', //
image: '' //
skuValue_ZH: '', //
skuValue_EN: '', //
image: '', //
langInfoMap:[]
}
]
}
],
skus: [
{
//
@ -460,26 +381,24 @@ export default {
style: '', // 0- 1-
sku: ''
}
]
,
skuList: [
{
//
skuAttrCodeDTOList: [],
price: '', //
originalPrice: '', //
rate: '', //
storehouseId: '',//Id
isCross: 0, //
stockNumber: '', //
weight: '', //
skuImage: '', //
style: '', // 0- 1-
sku: ''
}
]
],
},
newSkuAttrList : [
{
code: '', //
skuName_ZH: '', //
skuName_EN: '', //
needImg: false,
values: [
{
valueCode: '', //
skuValue_ZH: '', //
skuValue_EN: '', //
image: '' //
}
]
}
],
//
imgList: [],
//
@ -497,14 +416,15 @@ export default {
dialogImageUrl: '',
//
dialogVisible: false,
editSkuAttrDialogVisible:false,
//
rules: {
shopId: [{ required: true, message: '请选择所属店铺', trigger: 'change' }],
productName: [{ required: true, message: '请输入商品名称', trigger: 'blur' }],
// productName: [{ required: true, message: '', trigger: 'blur' }],
shopGroupId: [{ required: true, message: '请选择商家商品分组', trigger: 'change' }],
classifyId: [{ required: true, message: '请选择商家商品分类', trigger: 'change' }],
// shopPlatformGroupId: [{ required: true, message: '', trigger: 'change' }],
classifyBusinessId: [{ required: true, message: '请选择平台商品分类', trigger: 'change' }],
// classifyBusinessId: [{ required: true, message: '', trigger: 'change' }],
ifLogistics: [{ required: true, message: '请选择是否需要物流', trigger: 'change' }],
shelveState: [{ required: true, message: '请选择是否上架', trigger: 'change' }],
ifOversold: [{ required: true, message: '请选择是否允许超卖', trigger: 'change' }],
@ -523,23 +443,6 @@ export default {
}
}
},
'form.skuAttrList': {
handler(newVal, oldVal) {
//
const hasChilds =
this.form.skuAttrList &&
this.form.skuAttrList.filter(skuAttr => {
const hasChild = skuAttr.values.some(attr => {
return attr.skuValue
})
return skuAttr.skuName && hasChild
})
if (this.form.attrStyle === 1 && hasChilds.length) {
this.skuFormat()
}
},
deep: true
},
},
mounted() {
// this.headers.tenant = 'MDAwMA=='
@ -555,36 +458,12 @@ export default {
this.getStorehouseList()
//
this.getShopList()
},
computed: {
skuAttrName() {
return (
this.form.skuAttrList &&
this.form.skuAttrList.filter(skuAttr => {
const hasChilds = skuAttr.values.some(attr => {
return attr.skuValue
})
return skuAttr.skuName && hasChilds
})
)
},
singleStyle() {
if (this.form.skuAttrList && this.form.skuAttrList[0]) {
return this.form.skuAttrList && this.form.skuAttrList[0].values[0]
}
return {
skuValue: ''
}
},
skuList() {
if (this.form.attrStyle === 0) {
return this.form.skuList.slice(0, 1)
}
return this.form.skuList
}
this.langType = getLanguage() || 'zh'
},
methods: {
handleChangeCascader() {
console.log(this.form.classifyId)
},
@ -604,96 +483,33 @@ export default {
}
})
},
handlePictureCardPreview(file) {
console.log("imgPath:" + file.imgPath)
this.dialogImageUrl = file.imgPath
this.dialogVisible = true
},
handleImageSuccess(response) {
const url = response.data.url
this.form.images.push({
imgPath: url
})
},
handleImageSuccess1(response, file, fileList) {
const url = response.data.url
fileList[0].image = url
},
handlePictureCardPreview(file) {
console.log("imgPath:" + file.imgPath)
this.dialogImageUrl = file.imgPath
this.dialogVisible = true
},
//
handleRemove(file) {
const { imgPath } = file
this.form.images = this.form.images.filter(item => {
return item.imgPath !== imgPath
})
},
handleRemove1(file) {
file.image = ''
},
addAttrValue(index) {
this.form.skuAttrList[index].values.push({
skuValue: '',
valueCode: '',
image: ''
})
},
//
delValue(index, index1) {
const newList = JSON.parse(JSON.stringify(this.form.skuAttrList[index]))
const valueObj = {
code: newList.code,
skuId: newList.skuId,
valueCode: newList.values[index1].valueCode
}
this.form.deletes.push(valueObj)
this.form.skuAttrList[index].values.splice(index1, 1)
},
//
delSkuAttrList(index) {
const newList = JSON.parse(JSON.stringify(this.form.skuAttrList[index]))
newList.values.forEach(item => {
const valueObj = {
code: newList.code,
skuId: newList.skuId,
valueCode: ''
}
valueObj.valueCode = item.valueCode
this.form.deletes.push(valueObj)
})
this.form.skuAttrList.splice(index, 1)
},
addSkuAttrList() {
this.form.skuAttrList.push({
code: '',
skuName: '',
needImg: false,
values: [
{
skuValue: '',
valueCode: '',
image: '',
isDelete: 0,
sortOrder: 0
}
],
isDelete: 0,
needImg: false,
sortOrder: 0
})
},
changeAttrStyle(index) {
// if (index === 0) {
// this.form.skuAttrList = []
// }
},
//
reset() {
this.form = {
shopId : '',
productId: null, //Id
productName: '', //
productBrief: '', //
productName_ZH: '', //
productName_EN: '', //
productBrief_ZH: '', //
productBrief_EN: '', //
shopGroupId: '', // id
classifyId: '', // id
// shopGroupBusinessId: '', // id
@ -707,33 +523,22 @@ export default {
ifCredit: '', // 1- 0-
creditLimit: '', // 使
ifHuabei: 1, // 1- 0-
productText: '', //
productText_ZH: '', //
productText_EN: '', //
attrStyle: 0,//,01
images: [], // ""
deletes: [], // id
names: [
{
code: '', //
skuName: '', //
skuName_ZH: '', //
skuName_EN: '', //
needImg: false,
values: [
{
valueCode: '', //
skuValue: '', //
image: '' //
}
]
}
],
skuAttrList: [
{
code: '', //
skuName: '', //
needImg: false,
values: [
{
valueCode: '', //
skuValue: '', //
skuValue_ZH: '', //
skuValue_EN: '', //
image: '' //
}
]
@ -758,26 +563,6 @@ export default {
style: '', // 0- 1-
sku: ''
}
],
skuList: [
{
skuAttrCodeDTOList: [
{
code: '',
valueCode: ''
}
],
price: '', //
originalPrice: '', //
rate: '', //
storehouseId: '',//Id
isCross: 0, //
stockNumber: '', //
weight: '', //
skuImage: '', //
style: '', // 0- 1-
sku: ''
}
]
}
this.imgList = []
@ -788,8 +573,20 @@ export default {
//
async save() {
this.$refs['form'].validate((valid) => {
if (valid) {
if (
(this.form.productName_ZH == "" ||
this.form.productName_ZH == undefined) &&
(this.form.productName_EN == "" ||
this.addForm.productName_EN == undefined)
) {
this.$message({
message: "请输入商品名称",
type: "error",
});
return;
}
this.doSave();
} else {
this.$message({
@ -807,30 +604,8 @@ export default {
return objClone
},
async doSave() {
if (this.form.attrStyle === 0) {
//,
// for (let i = 0; i < this.form.skus.length; i++) {
// if (this.form.skus[i].skuName === '') {
// this.$message({
// message: '',
// type: 'warning'
// })
// return false
// }
// }
this.form.names = this.form.skuAttrList.slice(0, 1)
this.form.names[0].values = this.form.skuAttrList[0].values.slice(0, 1)
this.form.skus = this.form.skuList.slice(0, 1)
} else {
this.form.names = this.form.skuAttrList
this.form.skus = this.form.skuList
}
this.form.names = this.deepClone(this.form.names)
this.form.skus = this.deepClone(this.form.skus)
this.form.skus.forEach(element => {
//
//--
element.style = this.form.attrStyle
})
this.form.names.forEach(element => {
@ -838,7 +613,6 @@ export default {
})
for (let i = 0; i < this.form.skus.length; i++) {
let skuItem = this.form.skus[i];
if (skuItem.rate === '' || skuItem.rate === null || skuItem.rate === undefined) {
this.$message({
message: '税率不能为空',
@ -880,12 +654,44 @@ export default {
}
}
//
//
this.form.classifyId = Array.isArray(this.form.classifyId) ? this.form.classifyId[this.form.classifyId.length - 1] : this.form.classifyId
this.form.classifyBusinessId = Array.isArray(this.form.classifyBusinessId) ?
this.form.classifyBusinessId[this.form.classifyBusinessId.length - 1] : this.form.classifyBusinessId
this.form.classifyBusinessId = Array.isArray(this.form.classifyBusinessId) ? this.form.classifyBusinessId[this.form.classifyBusinessId.length - 1] : this.form.classifyBusinessId
//
this.form.langInfoMap = {}
this.form.langInfoMap["zh"] = {};
this.form.langInfoMap["zh"].productName = this.form.productName_ZH;
this.form.langInfoMap["zh"].productBrief = this.form.productBrief_ZH;
this.form.langInfoMap["zh"].productText = this.form.productText_ZH;
this.form.langInfoMap["zh"].languageType = "zh";
this.form.langInfoMap["en"] = {};
this.form.langInfoMap["en"].productName = this.form.productName_EN;
this.form.langInfoMap["en"].productBrief = this.form.productBrief_EN;
this.form.langInfoMap["en"].productText = this.form.productText_EN;
this.form.langInfoMap["en"].languageType = "en";
if(this.form.names){
for(let nameValueParams of this.form.names){
nameValueParams.langInfoMap = {}
nameValueParams.langInfoMap["zh"] = {};
nameValueParams.langInfoMap["zh"].skuName = nameValueParams.skuName_ZH;
nameValueParams.langInfoMap["zh"].languageType = "zh";
nameValueParams.langInfoMap["en"] = {};
nameValueParams.langInfoMap["en"].skuName = nameValueParams.skuName_EN;
nameValueParams.langInfoMap["en"].languageType = "en";
for(let valueParams of nameValueParams.values){
valueParams.langInfoMap = {}
valueParams.langInfoMap["zh"] = {};
valueParams.langInfoMap["zh"].skuValue = valueParams.skuValue_ZH;
valueParams.langInfoMap["zh"].languageType = "zh";
valueParams.langInfoMap["en"] = {};
valueParams.langInfoMap["en"].skuValue = valueParams.skuValue_EN;
valueParams.langInfoMap["en"].languageType = "en";
}
}
}
if (this.productId) {
this.form.productId = this.productId
const res = await getClassifyUpdate(this.form)
@ -931,10 +737,62 @@ export default {
// --
async details() {
const res = await getClassifyGetById({ productId: this.productId })
this.form = { ...res.data, skuAttrList: res.data.names, skuList: res.data.skus, attrStyle: res.data.skus[0].style, deletes: [] }
// this.form = res.data
// this.$set(this.form, res.data)
// this.form.attrStyle = res.data.skus[0].style
let itemData = res.data;
this.initLangInfo(itemData)
this.initSkuLangInfo(itemData)
this.form = { ...itemData, attrStyle: itemData.skus[0].style }
},
initSkuLangInfo(itemData){
if(itemData && itemData.names){
itemData.names.forEach(nameItemData => {
if(nameItemData && nameItemData.langInfoMap && nameItemData.langInfoMap['zh']){
nameItemData.skuName_ZH = nameItemData.langInfoMap['zh'].skuName;
}else{
nameItemData.skuName_ZH = "";
}
if(nameItemData && nameItemData.langInfoMap && nameItemData.langInfoMap['en']){
nameItemData.skuName_EN = itemData.langInfoMap['en'].skuName;
}else{
nameItemData.skuName_EN = "";
}
if(nameItemData && nameItemData.values){
nameItemData.values.forEach(valueItemData => {
if(valueItemData && valueItemData.langInfoMap && valueItemData.langInfoMap['zh']){
valueItemData.skuValue_ZH = valueItemData.langInfoMap['zh'].skuValue;
}else{
valueItemData.skuValue_ZH = "";
}
if(valueItemData && valueItemData.langInfoMap && valueItemData.langInfoMap['en']){
valueItemData.skuValue_EN = valueItemData.langInfoMap['en'].skuValue;
}else{
valueItemData.skuValue_EN = "";
}
})
}
})
}
},
initLangInfo(itemData){
if(itemData && itemData.langInfoMap && itemData.langInfoMap['zh']){
itemData.productName_ZH = itemData.langInfoMap['zh'].productName;
itemData.productBrief_ZH = itemData.langInfoMap['zh'].productBrief;
itemData.productText_ZH = itemData.langInfoMap['zh'].productText;
}else{
itemData.productName_ZH = "";
itemData.productBrief_ZH = "";
itemData.productText_ZH = "";
}
if(itemData && itemData.langInfoMap && itemData.langInfoMap['en']){
itemData.productName_EN = itemData.langInfoMap['en'].productName;
itemData.productBrief_EN = itemData.langInfoMap['en'].productBrief;
itemData.productText_EN = itemData.langInfoMap['en'].productText;
}else{
itemData.productName_EN = "";
itemData.productBrief_EN = "";
itemData.productText_EN = "";
}
},
async selectList() {
@ -957,8 +815,8 @@ export default {
skuFormat() {
const skuListArray = []
const result = {
isDelete: 0,
productId: '',
isDelete: 0,
skuAttrCodeDTOList: [
{
code: '',
@ -999,7 +857,7 @@ export default {
//
const values = []
//
this.form.skuAttrList.map((skuItem, index) => {
this.form.names.map((skuItem, index) => {
const attrList = []
skuItem.code = skuItem.code || 'attr_code_' + index
const { code } = skuItem
@ -1025,8 +883,8 @@ export default {
if (values.length) {
doExchange(values, 0)
}
this.form.skuList = skuListArray.map(sku1 => {
const findSku = this.form.skuList.find(sku2 => {
this.form.skus = skuListArray.map(sku1 => {
const findSku = this.form.skus.find(sku2 => {
if (!sku2.skuAttrCodeDTOList) {
return false
@ -1044,26 +902,21 @@ export default {
} else {
return sku1
}
// const { skuAttrList, skuAttrCodeDTOList } = sku1
// const skuAttrList1 = skuAttrCodeDTOList || skuAttrList
// const skuMap = this.form.skuList.filter(sku2 => {
// const skuAttrList2 = sku2.skuAttrList
// sku2.skuAttrCodeDTOList = skuAttrList2
// if (!skuAttrList2) return false
// const ids = []
// skuAttrList1.filter(item => ids.push(item.id))
// const result = skuAttrList2.every(
// item => ids.indexOf(item.attrValueId) !== -1
// )
// return result
// })
// let selectMap = sku1
// if (skuMap && skuMap.length) {
// selectMap = JSON.parse(JSON.stringify(skuMap[0]))
// selectMap.skuAttrCodeDTOList = skuAttrCodeDTOList
// }
// return selectMap
})
},
showEditSkuAttr(){
this.newSkuAttrList = JSON.parse(JSON.stringify(this.form.names))
this.editSkuAttrDialogVisible = true;
},
editSkuAttrCancle(){
console.log('cancle')
this.editSkuAttrDialogVisible = false;
},
editSkuAttrSure(){
console.log('save')
this.editSkuAttrDialogVisible = false;
this.form.names = JSON.parse(JSON.stringify(this.newSkuAttrList))
this.skuFormat()
}
}
}

569
src/views/commodity/commoditySystem/editSkuAttr.vue

@ -0,0 +1,569 @@
<template>
<div class="edit_add_page_attr">
<div class="content">
<el-form ref="form" label-width="120px">
<div class="multiple-styles">
<div v-for="(skuAttr, index) in skuAttrList" :key="index" class="sku-attr-list">
<el-form-item :label="$t('product.skuname')">
<el-input v-model="skuAttr.skuName_ZH" maxlength="20" />
<i v-if="index != 0" class="el-icon-close delImg" @click="delSkuAttrList(index)" />
<el-checkbox v-if="index === 0" v-model="skuAttr.needImg" style="margin-left: 20px;">{{ $t('product.needimage') }}</el-checkbox>
</el-form-item>
<el-form-item :label="$t('product.skuname_en')">
<el-input v-model="skuAttr.skuName_EN" maxlength="20" />
<i v-if="index != 0" class="el-icon-close delImg" @click="delSkuAttrList(index)" />
</el-form-item>
<el-form-item :label="$t('product.skuvalue')">
<div class="attr-value-list">
<div v-for="(sku, index1) in skuAttr.values" :key="index + '-' + index1" class="main-diagram m-8">
<el-input v-model="sku.skuValue_ZH" maxlength="10" />
<i v-if="index === 0 && index1 === 0" />
<i v-else class="el-icon-close delImg" @click="delValue(index, index1)" />
</div>
<el-button type="text" style="margin-left: 10px;" @click="addAttrValue(index)">{{ $t('common.add') }}</el-button>
</div>
</el-form-item>
<el-form-item :label="$t('product.skuvalue_en')">
<div class="attr-value-list">
<div v-for="(sku, index1) in skuAttr.values" :key="index + '-' + index1" class="main-diagram m-8">
<el-input v-model="sku.skuValue_EN" maxlength="10" />
<i v-if="index === 0 && index1 === 0" />
<i v-else class="el-icon-close delImg" @click="delValue(index, index1)" />
<div v-if="skuAttr.needImg && index === 0" class="upload-wrap diagram-upload">
<div class="span-wrap">
<el-upload list-type="picture-card" :show-file-list="false" :on-preview="handlePictureCardPreview"
:on-remove="handleRemove1" :headers="headers" :data="dataObj" :file-list="[sku]"
:multiple="false" :on-success="handleImageSuccess1" :action="action">
<i v-if="!sku.image" slot="trigger" class="el-icon-plus" />
<div v-else class="attr-value-img">
<img class="attr-thumbnail" :src="sku.image">
</div>
</el-upload>
<div v-if="sku.image" class="attr-actions">
<span class="attr-preview" @click="handlePictureCardPreview({ imgPath: sku.image })">
<i class="el-icon-zoom-in" />
</span>
<span class="attr-delete" @click="handleRemove1(sku)">
<i class="el-icon-delete" />
</span>
</div>
</div>
</div>
</div>
</div>
</el-form-item>
</div>
<el-button class="add-attr-btn" type="primary" @click="addSkuAttrList">{{ $t('product.newsku') }}</el-button>
</div>
</el-form>
</div>
<div class="footer">
<div class="btn_list">
<span @click="back">{{ $t('common.cancle') }}</span>
<span @click="save">{{ $t('common.sure') }}</span>
</div>
</div>
<!-- 弹窗 -->
<el-dialog :visible.sync="dialogVisible" class="check-image-dialog" title="查看图片" center append-to-body>
<img width="100%" :src="dialogImageUrl" alt>
</el-dialog>
</div>
</template>
<script>
import { uploadUrl } from '@/utils/request'
import { getToken } from '@/utils/auth'
export default {
props: {
skuAttrList: {
type: Array,
default() {
return [
{
code: '', //
skuName_ZH: '', //
skuName_EN: '', //
needImg: false,
values: [
{
valueCode: '', //
skuValue_ZH: '', //
skuValue_EN: '', //
image: '' //
}
]
}
]
}
}
},
// watch:{
// 'skuAttr': {
// handler(newVal, oldVal) {
// console.log("newVal:"+newVal)
// this.skuAttrList = newVal;
// }
// }
// },
data() {
return {
action: uploadUrl,
//
dialogImageUrl: '',
//
dialogVisible: false,
headers: {
'Authorization-business': getToken()
},
dataObj: {
folderId: 1
},
// skuAttrList : [
// {
// code: '', //
// skuName_ZH: '', //
// skuName_EN: '', //
// needImg: false,
// values: [
// {
// valueCode: '', //
// skuValue_ZH: '', //
// skuValue_EN: '', //
// image: '' //
// }
// ]
// }
// ]
}
},
mounted() {
},
computed: {
},
methods: {
addAttrValue(index) {
this.skuAttrList[index].values.push({
skuValue: '',
valueCode: '',
image: ''
})
},
//
delValue(index, index1) {
this.skuAttrList[index].values.splice(index1, 1)
},
//
delSkuAttrList(index) {
this.skuAttrList.splice(index, 1)
},
addSkuAttrList() {
this.skuAttrList.push({
code: '',
skuName_ZH: '',
skuName_EN: '',
needImg: false,
values: [
{
skuValue_ZH: '',
skuValue_EN: '',
valueCode: '',
image: '',
sortOrder: 0
}
],
sortOrder: 0
})
},
handlePictureCardPreview(file) {
console.log("imgPath:" + file.imgPath)
this.dialogImageUrl = file.imgPath
this.dialogVisible = true
},
handleImageSuccess1(response, file, fileList) {
const url = response.data.url
fileList[0].image = url
},
handleRemove1(file) {
file.image = ''
},
back() {
this.$emit('cancel')
},
save(){
//code
this.$emit('sure')
},
reset(){
this.skuAttrList = [
{
code: '', //
skuName_ZH: '', //
skuName_EN: '', //
needImg: false,
values: [
{
valueCode: '', //
skuValue_ZH: '', //
skuValue_EN: '', //
image: '' //
}
]
}
]
}
}
}
</script>
<style scoped lang='scss'>
@import url("../../../styles/elDialog.scss");
.edit_add_page_attr {
padding: 0px;
.content {
overflow: hidden;
.detail_title {
font-size: 16px;
font-weight: 500;
padding-left: 10px;
line-height: 16px;
margin-bottom: 15px;
margin-top: 10px;
position: relative;
&::before {
content: "";
height: 16px;
width: 4px;
background-color: #183ECD;
position: absolute;
left: 0px;
display: block;
font-weight: 500;
}
}
::v-deep .el-form-item__label {
vertical-align: middle;
float: left;
padding: 0 12px 0 0;
-webkit-box-sizing: border-box;
box-sizing: border-box;
font-size: 14px;
font-family: PingFang SC;
font-weight: 400;
color: #404F64;
line-height: 36px;
text-align: right;
}
::v-deep .el-input-number.is-without-controls .el-input__inner {
padding-left: 15px;
padding-right: 15px;
}
::v-deep .el-input-number .el-input__inner {
padding-left: 10px;
padding-right: 50px;
text-align: center;
}
::v-deep .el-input-number{
width: 120px;
}
.el-form {
.el-form-item {
label.el-form-item__label {
font-size: 16px !important;
color: red !important;
}
}
.lastitem {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
align-content: flex-start;
justify-content: flex-start;
align-items: flex-start;
margin-top: 22px;
.hitem {
flex: 1;
display: flex;
flex-direction: column;
flex-wrap: nowrap;
align-content: flex-start;
justify-content: flex-start;
align-items: flex-start;
}
}
}
.photo {
padding: 70px 120px;
.avatar-uploader {
width: 180px;
.el-icon-plus,
img {
width: 180px;
height: 180px;
line-height: 180px;
border: 1px #bbb solid;
border-radius: 4px 4px 0px 4px;
margin-bottom: 10px;
text-align: center;
}
img {
border: none;
}
}
}
.attr-value-list {
display: flex;
flex-wrap: wrap;
.main-diagram {
width: 120px;
.span-wrap {
position: relative;
display: inline-block;
margin-top: 10px;
.attr-actions {
line-height: 120px;
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
cursor: default;
text-align: center;
color: #fff;
opacity: 0;
font-size: 20px;
background-color: rgba(0, 0, 0, 0.5);
-webkit-transition: opacity 0.3s;
transition: opacity 0.3s;
z-index: 1;
&:hover {
opacity: 1;
.attr-preview {
display: inline-block;
}
i {
color: #fff;
font-size: 20px;
}
}
}
.attr-preview {
display: none;
cursor: pointer;
font-size: 20px;
color: #fff;
}
.attr-delete {
margin-left: 15px;
color: #fff;
}
}
.attr-value-img {
width: 100%;
height: 100%;
img {
width: 100%;
height: 100%;
object-fit: contain;
}
}
}
}
.m-8 {
margin-right: 8px;
}
.upload-btn {
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 110px;
cursor: pointer;
border: 2px dashed #2e60f8;
border-radius: 2px;
background-color: #f8f9fb;
text-align: center;
font-size: 20px;
color: #2e60f8;
i {
color: #2e60f8;
font-size: 20px;
}
.upload-title {
margin-left: 10px;
font-size: 14px;
}
}
.upload-wrap {
margin-bottom: 25px;
.el-upload-list__item {
transition: none !important;
}
.el-upload,
.el-upload-list__item {
width: 120px;
height: 120px;
line-height: 120px;
}
.el-progress,
.el-progress-circle {
width: 80px !important;
height: 80px !important;
}
}
.sku-attr-list {
.el-input {
width: 120px;
}
}
.single-style {
.el-input {
max-width: 120px;
}
}
.add-attr-btn {
margin-bottom: 25px;
}
.check-image-dialog {
.el-dialog {
margin-top: 25px;
.el-dialog__body {
img {
max-width: 100%;
max-height: 100%;
height: 500px;
object-fit: contain;
}
}
}
}
.delImg {
position: absolute;
top: 12px;
margin-left: -24px
}
.delImg:hover {
border-radius: 50%;
color: #ffffff;
background: #2e60f8;
cursor: pointer;
}
}
.footer {
height: 80px;
line-height: 80px;
font-size: 24px;
position: relative;
border-top: 1px solid #e0e5eb;
display: flex;
flex-direction: row;
align-content: center;
justify-content: center;
align-items: center;
flex-wrap: nowrap;
.btn_list {
position: absolute;
top: 0;
height: 36px;
span {
padding: 0;
margin: 0;
width: 68px;
height: 36px;
line-height: 36px;
text-align: center;
display: inline-block;
/* font-size: 16px; */
border-radius: 4px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
font-size: 14px;
font-family: PingFang SC;
font-weight: 400;
&:hover {
cursor: pointer;
}
&:nth-child(1) {
background: rgba(255, 255, 255, 1);
order: 1px solid rgba(224, 229, 235, 1);
margin-right: 10px;
border: 1px solid rgba(224, 229, 235, 1);
}
&:nth-child(2) {
background: #183ECD;
color: #fff;
}
}
}
}
.timeInfo {
font-size: 12px;
color: #999999;
}
.form-content-item-input{
width:400px
}
}
</style>

2
src/views/commodity/commoditySystem/index.vue

@ -6,7 +6,7 @@
<div class="formSearch">
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item :label="$t('product.productname')">
<el-input v-model="formInline.search" maxlength="20" placeholder="$t('product.productnamehint')" />
<el-input v-model="formInline.search" maxlength="20" :placeholder="$t('product.productnamehint')" />
</el-form-item>
<el-form-item :label="$t('product.shelvestate')">
<el-select v-model="formInline.shelveState" :placeholder="$t('product.shelvestatehint')">

2
src/views/customer/addClustering.vue

@ -3,7 +3,7 @@
<div class="pending">
<div class="addClustering pending">
<div class="addCrowd">
<el-form class="demo-form-inline" label-width="100px">
<el-form class="demo-form-inline" label-width="120px">
<el-form-item class="inputWide" label="人群名称">
<el-input v-model.trim="crowdData.crowdName" placeholder="请输入2-10个中文字符" maxlength="10" onblur="value=value.replace(/(^\s*)|(\s*$)/g, '')" show-word-limit />
</el-form-item>

2
src/views/customer/clusteringList/index.vue

@ -216,7 +216,7 @@ export default {
deleteCrowd({ ids }).then(res => {
if (res.code === '') {
this.$message({
message: '删除成功',
message: t('common.deletesuccess'),
type: 'success'
})
this.formInline.page = 1

2
src/views/customer/customerList/customerDetail.vue

@ -53,7 +53,7 @@
:modal="false"
>
<div class="changeCustomer">
<el-form ref="form" :model="basicInfo" label-width="100px">
<el-form ref="form" :model="basicInfo" label-width="120px">
<el-form-item label="客户手机号">
<span>{{ basicInfo.phone }}</span>
</el-form-item>

2
src/views/customer/customerList/index.vue

@ -397,7 +397,7 @@ export default {
deleteLabel({ labelId: id }).then(res => {
if (res.code === '') {
this.$message({
message: '删除成功',
message: t('common.deletesuccess'),
type: 'success'
})
this.formInline.page = 1

2
src/views/customer/operate/index.vue

@ -248,7 +248,7 @@ export default {
deleteOperate({ ids }).then(res => {
if (res.code === '') {
this.$message({
message: '删除成功',
message: t('common.deletesuccess'),
type: 'success'
})
this.formInline.page = 1

4
src/views/customer/tagList.vue

@ -69,7 +69,7 @@
class="group-dialog"
>
<div class="addTagBox">
<el-form :inline="true" :model="addForm" :rules="addFormRules" label-width="90px">
<el-form :inline="true" :model="addForm" :rules="addFormRules" label-width="120px">
<el-form-item label="标签名称" prop="labelName">
<el-input v-model="addForm.labelName" placeholder="请输入内容" maxlength="10" onblur="value=value.replace(/(^\s*)|(\s*$)/g, '')" show-word-limit />
</el-form-item>
@ -244,7 +244,7 @@ export default {
deleteLabel({ ids }).then(res => {
if (res.code === '') {
this.$message({
message: '删除成功',
message: t('common.deletesuccess'),
type: 'success'
})
this.formInline.page = 1

2
src/views/liveMenu/liveProduct/index.vue

@ -477,7 +477,7 @@ export default {
delLiveProduct(row)
.then((res) => {
this.closeDialogVisible = false;
this.$message.success('删除成功');
this.$message.success($t('common.deletesuccess'));
this.getList();
})
.catch(err => {

20
src/views/liveMenu/liveRoom/index.vue

@ -714,7 +714,7 @@ export default {
deleteLive(row)
.then((res) => {
this.closeDialogVisible = false;
this.$message.success('删除成功');
this.$message.success($t('common.deletesuccess'));
this.getList();
})
.catch((err) => {
@ -917,12 +917,13 @@ export default {
<style lang="scss" scpoed>
@import url("../../../styles/elDialog.scss");
img {
width: 100px;
height: 100px;
}
.liveRoomPage {
.liveRoomPage{
background: #FFFFFF;
border-radius: 10px;
padding: 30px;
nav {
.search {
line-height: 40px;
@ -945,6 +946,13 @@ img {
margin-top: 30px;
}
}
}
img {
width: 100px;
height: 100px;
}
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;

81
src/views/login/index.vue

@ -4,7 +4,19 @@
<div v-if="getPassword" class="loginBox">
<div class="rightBox">
<el-row><img src="../../assets/images/login_logo.png" class=" loginBox-logo"/></el-row>
<div class="topText">商家登录</div>
<div class="topText">
{{$t('common.sjdl')}}
<el-dropdown class="lang-container" @command="handleCommand">
<span class="el-dropdown-link">
{{ languaueName }}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="zh">{{ $t('navbar.chinese') }}</el-dropdown-item>
<el-dropdown-item command="en">{{ $t('navbar.english') }}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<div class="tabTouch">
<div class="tabTouch"
v-for="(item, index) in activeList"
@ -30,7 +42,7 @@
type="text"
maxlength="11"
auto-complete="off"
placeholder="请输入账户"
:placeholder="$t('common.account_hint')"
class="iptHeight username"
>
<i slot="prefix" class="el-input__icon icon-usericon"></i>
@ -43,15 +55,15 @@
type="password"
class="iptHeight"
auto-complete="off"
placeholder="请输入密码"
:placeholder="$t('common.password_hint')"
@keyup.enter.native="handleAccountLogin"
>
<i slot="prefix" class="el-input__icon icon-password"></i>
</el-input>
</el-form-item>
<div class="boxBottom">
<el-checkbox v-model="loginForm.rememberMe" style="margin: 0 0 25px 0; font-size: 14px;">自动登录</el-checkbox>
<div class="forgetPsd" @click="runForgetPassord">忘记密码</div>
<el-checkbox v-model="loginForm.rememberMe" style="margin: 0 0 25px 0; font-size: 14px;">{{$t('common.autologin')}}</el-checkbox>
<div class="forgetPsd" @click="runForgetPassord">{{$t('common.forgetpassword')}}</div>
</div>
<el-form-item style="width: 100%">
@ -62,8 +74,8 @@
class="btn-login"
@click.native.prevent="handleAccountLogin"
>
<span v-if="!loading"> </span>
<span v-else> 中...</span>
<span v-if="!loading">{{ $t('common.login_max') }}</span>
<span v-else>{{$t('common.logining')}}</span>
</el-button>
</el-form-item>
</el-form>
@ -84,7 +96,7 @@
type="text"
maxlength="11"
auto-complete="off"
placeholder="请输入手机号码"
:placeholder="$t('common.mobilephone_hint')"
class="iptHeight"
>
<i slot="prefix" class="el-input__icon icon-phone"></i>
@ -98,7 +110,7 @@
class="iptHeight"
auto-complete="off"
style="width: 63%"
placeholder="请输入验证码"
:placeholder="$t('common.enterverificationcode')"
@keyup.enter.native="handlePhoneLogin"
>
<i slot="prefix" class="el-input__icon icon-code"></i>
@ -110,13 +122,13 @@
:loading="codeloading"
@click="getCode(anthorForm.username)"
>
<span v-if="!codeloading">获取验证码</span>
<span v-if="!codeloading">{{$t('common.verificationcodetip')}}</span>
<span v-else>{{ count }} s</span>
</el-button>
</div>
</el-form-item>
<div class="boxBottom">
<el-checkbox v-model="loginForm.rememberMe" style="margin: 0 0 25px 0">自动登录</el-checkbox>
<el-checkbox v-model="loginForm.rememberMe" style="margin: 0 0 25px 0">{{$t('common.autologin')}}</el-checkbox>
</div>
<el-form-item style="width: 100%">
@ -127,8 +139,8 @@
class="btn-login"
@click.native.prevent="handlePhoneLogin"
>
<span v-if="!loading"> </span>
<span v-else> 中...</span>
<span v-if="!loading">{{ $t('common.login_max') }}</span>
<span v-else>{{$t('common.logining')}}</span>
</el-button>
</el-form-item>
</el-form>
@ -139,12 +151,12 @@
<div v-else class="loginBox">
<div class="box-card">
<div slot="header" class="clearfix">
<span>找回密码</span>
<span>{{$t('common.resetpassword')}}</span>
<el-button
style="float: right; padding: 0px 0"
type="text"
@click="getPassword=true"
>返回登录</el-button>
>{{$t('common.backtologin')}}</el-button>
<div class="cardBox">
<el-form
ref="retrievePwd"
@ -160,7 +172,7 @@
type="text"
maxlength="11"
auto-complete="off"
placeholder="请输入手机号码"
:placeholder="$t('common.mobilephone_hint')"
class="iptHeight"
>
<i slot="prefix" class="el-input__icon icon-phone"></i>
@ -174,7 +186,7 @@
class="iptHeight"
auto-complete="off"
style="width: 63%"
placeholder="请输入验证码"
:placeholder="$t('common.enterverificationcode')"
@keyup.enter.native="forgetPwdFn"
>
<i slot="prefix" class="el-input__icon icon-code"></i>
@ -186,7 +198,7 @@
:loading="codeloading"
@click="getCode(retrievePwdForm.username)"
>
<span v-if="!codeloading">获取验证码</span>
<span v-if="!codeloading">{{$t('common.verificationcodetip')}}}</span>
<span v-else>{{ count }} s</span>
</el-button>
</div>
@ -197,7 +209,7 @@
type="password"
maxlength="11"
auto-complete="off"
placeholder="新密码"
:placeholder="$t('navbar.newPassword')"
class="iptHeight"
>
<i slot="prefix" class="el-input__icon icon-password"></i>
@ -209,7 +221,7 @@
type="password"
maxlength="11"
auto-complete="off"
placeholder="确认密码"
:placeholder="$t('navbar.confirmPassword')"
class="iptHeight"
>
<i slot="prefix" class="el-input__icon icon-password"></i>
@ -223,8 +235,8 @@
class="btn-login"
@click.native.prevent="forgetPwdFn"
>
<span v-if="!loading"> </span>
<span v-else> 中...</span>
<span v-if="!loading">{{$t('common.ensure_edit')}}</span>
<span v-else>{{$t('common.submit_max')}}</span>
</el-button>
</el-form-item>
</el-form>
@ -241,7 +253,7 @@
// import { validUsername } from '@/utils/validate'
import { adminBuild, forgetPassword } from '@/api/user'
import {
getUserId
getUserId,setLanguage,getLanguage
} from '@/utils/auth' // get token from cookie
const TIME_COUNT = 60 //
import Background from '@/assets/images/login_bg.png'
@ -286,11 +298,11 @@ export default {
tabIndex: 0,
activeList: [
{
name: '账户密码',
name: this.$t('common.login_pssword_mode'),
id: 0
},
{
name: '手机号码',
name: this.$t('common.login_phone_mode'),
id: 1
}
],
@ -325,7 +337,8 @@ export default {
count: '',
timer: null,
redirect: undefined,
getPassword: true
getPassword: true,
languaueName:"中文"
}
},
watch: {
@ -336,7 +349,21 @@ export default {
immediate: true
}
},
created() {
let initLanguage = getLanguage();
if(!initLanguage || initLanguage === '' ){
initLanguage = 'zh'
}
// this.$i18n.locale = initLanguage
this.languaueName = (initLanguage === 'en' ? "English" : "中文")
},
methods: {
handleCommand(command){
setLanguage(command)
// this.languaueName = (getLanguage() === 'en' ? "English" : "")
// this.$i18n.locale = command
this.$router.go(0)
},
// tab
touchTab(index) {
console.log(index)
@ -506,6 +533,8 @@ export default {
font-weight: 400;
color: #183ECD;
line-height: 43px;
display: flex;
justify-content: space-between;
}
.icon-usericon{

2
src/views/marketing/channelActivity/selectChannelCoupons.vue

@ -263,7 +263,7 @@ export default {
delCouponFn(data) {
delCoupon({ shopCouponId: data.shopCouponId }).then(res => {
if (res.code === '') {
this.$message.success('删除成功')
this.$message.success($t('common.deletesuccess'))
this.formInline.page = 1
this.getAll(this.formInline)
} else {

2
src/views/marketing/channelManage/index.vue

@ -396,7 +396,7 @@ export default {
delCouponFn(data) {
delCoupon({ shopCouponId: data.shopCouponId }).then(res => {
if (res.code === '') {
this.$message.success('删除成功')
this.$message.success($t('common.deletesuccess'))
this.formInline.page = 1
this.getAll(this.formInline)
} else {

2
src/views/marketing/compose/index.vue

@ -171,7 +171,7 @@ export default {
delCompose(data) {
composeDelete({ composeId: data.composeId }).then(res => {
if (res.code === '') {
this.$message.success('删除成功')
this.$message.success($t('common.deletesuccess'))
this.formInline.page = 1
this.getAll(this.formInline)
} else {

2
src/views/marketing/coupon/index.vue

@ -257,7 +257,7 @@ export default {
delCouponFn(data) {
delCoupon({ shopCouponId: data.shopCouponId }).then(res => {
if (res.code === '') {
this.$message.success('删除成功')
this.$message.success($t('common.deletesuccess'))
this.formInline.page = 1
this.getAll(this.formInline)
} else {

2
src/views/marketing/discount/index.vue

@ -239,7 +239,7 @@ export default {
delDiscountFn(id) {
deleteDiscount({ shopDiscountId: id }).then(res => {
if (res.code === '') {
this.$message.success('删除成功')
this.$message.success($t('common.deletesuccess'))
this.formInline.page = 1
this.getAll(this.formInline)
} else {

2
src/views/marketing/group/index.vue

@ -241,7 +241,7 @@ export default {
delGroupBuyFn(data) {
deleteGroup({ shopGroupWorkId: data.shopGroupWorkId }).then(res => {
if (res.code === '') {
this.$message.success('删除成功')
this.$message.success($t('common.deletesuccess'))
this.formInline.page = 1
this.getAll(this.formInline)
} else {

2
src/views/marketing/price/index.vue

@ -169,7 +169,7 @@ export default {
delPrice(data) {
priceDelete({ priceId: data.priceId }).then(res => {
if (res.code === '') {
this.$message.success('删除成功')
this.$message.success($t('common.deletesuccess'))
this.formInline.page = 1
this.getAll(this.formInline)
} else {

2
src/views/marketing/scene/index.vue

@ -147,7 +147,7 @@ export default {
delScene(data) {
sceneDelete({ sceneId: data.sceneId }).then(res => {
if (res.code === '') {
this.$message.success('删除成功')
this.$message.success($t('common.deletesuccess'))
this.formInline.page = 1
this.getAll(this.formInline)
} else {

2
src/views/marketing/spike/index.vue

@ -240,7 +240,7 @@ export default {
deleteSeckillFn(data) {
deleteSeckill({ shopSeckillId: data.shopSeckillId }).then(res => {
if (res.code === '') {
this.$message.success('删除成功')
this.$message.success($t('common.deletesuccess'))
this.formInline.page = 1
this.getAll(this.formInline)
} else {

2
src/views/setup/tabs/index.vue

@ -350,7 +350,7 @@ export default {
const res = await tabsDelete({ permissionId: row.permissionId })
if (res.code === '') {
this.$message({
message: '删除成功',
message: t('common.deletesuccess'),
type: 'success'
})
}

6
src/views/shop/material/index.vue

@ -64,7 +64,7 @@
:close-on-click-modal="false"
>
<div>
<el-input v-model="tipsName" maxlength="10" placeholder="$t('material.taghit')" />
<el-input v-model="tipsName" maxlength="10" :placeholder="$t('material.taghit')" />
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="addtips.show = false">{{ $t('common.cancle') }}</el-button>
@ -291,7 +291,7 @@ export default {
labelId: this.tipsList[this.findIndex].labelId
})
if (res.code === '') {
this.$message.success('删除成功')
this.$message.success($t('common.deletesuccess'))
this.getAllTips()
this.tipsShow = false
}
@ -342,7 +342,7 @@ export default {
link: arr.link
})
if (res.code === '') {
this.$message.success('删除成功')
this.$message.success($t('common.deletesuccess'))
this.getAllTips()
this.getTips(this.findIndex, {
labelName: this.tipsName,

Loading…
Cancel
Save