Blacked 2 лет назад
Родитель
Сommit
c74a32ebf9
3 измененных файлов с 439 добавлено и 527 удалено
  1. 2 4
      .env.development
  2. 341 442
      src/i18n/langs/zh_CN.js
  3. 96 81
      src/views/modules/prod/prodComm-add-or-update.vue

+ 2 - 4
.env.development

@@ -2,10 +2,8 @@
 ENV = 'development'
 
 // api接口请求地址
-// VUE_APP_BASE_API = 'https://llong-platform.yunxan.com/apis'
-VUE_APP_BASE_API = 'http://192.168.1.176:8088'
-//VUE_APP_BASE_API = 'https://llong-platform.yunxan.com/apis'
-VUE_APP_BASE_API = 'http://127.0.0.1:8088'
+VUE_APP_BASE_API = 'https://llong-platform.yunxan.com/apis'
+// VUE_APP_BASE_API = 'http://192.168.1.176:8088'
 
 // 客服api接口请求地址
 //VUE_APP_IM_API = 'https://b2b2c-im.mall4j.com'

+ 341 - 442
src/i18n/langs/zh_CN.js

@@ -308,164 +308,387 @@ const zhCn = {
     goodsPrice: '单价(元)'
   },
   product: {
+    doNotEnterSpecialCharacters: '请勿输入特殊字符',
     ExpressDistribution: '快递配送',
     isTop: '是否置顶',
     seq: '排序号',
-    remark: '备注',
-    merchantDelivery: '商家配送',
-    userMention: '用户自提',
-    oneInARow: '一列一个',
-    twoInARow: '一列两个',
-    threeInARow: '一列三个',
-    video: '产品视频',
+    brandId: '品牌id',
+    brandName: '品牌名称',
+    basicInformation: '基本信息',
+    productCategories: '商品分类',
+    priceAndInventory: '价格及库存',
+    brandImg: '品牌图片',
     prodName: '商品名称',
-    emptyProdName: '商品名称不能为空',
-    pleComAndEnName: '请完善中文名称',
-    pleeliveryMethod: '请选择配送方式',
-    pleShgTlate: '请选择运费模板',
+    prodStatus: '商品状态',
+    prodNameCn: '商品sku中文名称',
+    prodNameEn: '商品sku英文名称',
+    prodInfo: '商品信息',
     oriPrice: '商品原价',
     price: '商品现价',
-    scorePrice: '积分价',
-    deliveryArea: '配送区域',
-    freeShipping: '包邮',
-    pleaEntBraName: '请输入品牌名称',
-    further: '且',
-    freeShiullAmount: '满金额包邮',
-    pwvFree: '件/重量/体积包邮',
-    emptyPrice: '销售价不能为空',
-    emptyMarketValue: '市场价不能为空',
-    emptyScorePrice: '积分价不能为空',
-    emptyStocks: '库存不能为空',
+    prices: '价格',
     pic: '商品图片',
     status: '状态',
-    totalStocks: '商品总库存',
-    waterSoldNum: '注水销量',
-    stocks: '商品库存',
+    totalStocks: '商品库存',
+    prodType: '商品类型',
+    prodMold: '商品类别',
+    ordProd: '普通商品',
+    groupProd: '团购商品',
+    limitedTimeProd: '秒杀商品',
+    pointsProduct: '积分商品',
+    comProd: '组合商品',
+    activeProd: '活动商品',
+    delType: '配送方式',
+    sameCityDelivery: '同城配送',
+    shopDelivery: '店铺配送',
+    userPickUp: '用户自提',
+    pleaseSelectTheProduct: '请先选择商品分类再填写以下商品信息',
+    pleaseSelectCategoryAgainSelectBrand: '请先选择商品分类,再选择品牌',
     deletes: '你确定要删除此商品吗?',
+    saveTip: '该商品的库存为0,确定继续发布吗?',
     select: '选择商品',
     violation: '违规下架',
+    batchUp: '批量上架',
+    batchDown: '批量下架',
     pendingReview: '待审核',
     violationPendingReview: '违规下架待审核',
+    auditHistory: '审核历史',
+    reviewStatus: '审核状态',
     prod: '商品',
-    delType: '配送方式',
-    category: '分类',
-    sameCityDelivery: '同城配送',
-    shopDelivery: '店铺配送',
-    userPickUp: '用户自提',
-    belongsBrand: '所属品牌',
-    chooseBrand: '选择品牌',
     atributeID: '属性ID',
     attributeName: '属性名称',
+    attributeNameEn: '属性英文名称',
     attributeNameNoNull: '属性名称不能为空',
+    attributeNameEnNoNull: '属性英文名称不能为空',
     attributeValue: '属性值',
+    attributeValueEn: '英文属性值',
+    attributeValueEnTips: '英文属性值,为空时默认使用中文属性值',
+    attributeValueEditTips: '点击以修改对应属性值',
     attributeValueNoNull: '属性值不能为空',
     content: '请输入内容',
     same: '不能添加相同的属性值',
+    appliedAmount: '申请金额',
+    debitCard: '到账银行卡',
     uploadTips: '请选择操作,同时只能上传一个文件',
     selectFile: '选取文件',
     downloadTemplate: '下载模板',
     fileSuccess: '文件导入成功',
-    enableSpec: '至少要启用一种商品规格',
     fileFail: '文件导入失败',
     fileUploadFail: '文件上传失败!',
     downloadTemplateTips1: '上传模板只能是 xls、xlsx格式!',
     downloadTemplateTips2: '上传模板大小不能超过 10MB!',
-    downloadTemplateTips3: '上传图片不能大于9张',
-    choosePicUpload: '请选择图片上传',
-    picUploadTips: '可拖动排序,首图为主图,最多上传9张。',
-    PicMaxQuantity: '图片最大数量为:',
-    recPicSize: '建议图片尺寸为:',
     fileName: '商品信息模板.xlsx',
-    prodCode: '商品编码',
-    chineseInf: '中文信息',
+    templateName: '模板.xlsx',
+    merAddProdTime: '商家添加商品时间',
+    meSubRevTime: '商家提交审核时间',
+    proApprTime: '商品审核通过时间',
+    uploadProdTip: '上传的规格编码若为空或与已有的编码重复,系统将会自动生成新的编码值。',
+    maxNum: '限购数量',
+    maxCancelTime: '取消订单时间',
+    offViol: '违规下线',
+    pleaEntBraName: '请输入品牌名称',
+    branls: '品牌首字母',
+    pletials: '请输入品牌首字母',
+    pleaemarks: '请输入备注内容',
+    brandNaBeEmpty: '品牌名称不能为空',
+    brandNameErrorTips: '品牌名称长度在1-50字之间',
+    brandInitBeEmpty: '品牌首字母不能为空',
+    firstLetterErrorTips: '请输入一位大写字母',
+    brandLogoNotEmpty: '请上传品牌logo',
+    sortValmpty: '顺序值不能为空',
+    shippinngs: '运费设置',
+    parameterSetting: '参数设置',
+    parameter: '参数',
+    shippingtBeEmpty: '运费模板不能为空',
+    deliveryArea: '配送区域',
+    freeShipping: '包邮',
+    further: '且',
+    freeShiullAmount: '满金额包邮',
+    freeippingR: '元金额包邮',
+    pwvFree: '件/重量/体积包邮',
+    import: '导入',
+    productVideo: '商品视频',
+    draggableSort: '可拖动排序,首图为主图,最多上传',
+    platforation: '平台分类',
+    shopCategory: '本店分类',
+    thisPlatformEmpty: '平台分类不能为空',
+    thisShopeEmpty: '本店分类不能为空',
+    thisProduCategroy: '请选择商品分类',
+    thisShopCategroy: '请选择本店分类',
+    thisProductImg: '请选择至少一张图片作为商品主图',
+    brand: '所属品牌',
+    whetPreSale: '是否开启预售',
+    chooseABrand: '选择品牌',
+    preSaleTime: '预售发货时间',
+    thePreSaleDtBeEmpty: '预售发货时间不能为空',
+    choosengDate: '选择发货日期',
+    userMention: '用户自提',
+    chinenInput: '中文信息',
     prodellingPoint: '产品卖点',
+    plePictureToUpload: '请选择图片上传',
+    pleeliveryMethod: '请选择配送方式',
+    pleShgTlate: '请选择运费模板',
+    zhpleComAndEnName: '请完善中文名称名称',
+    violatingGoods: '违规商品',
+    refuseToPass: '拒绝通过',
+    other: '其他',
+    importGoods: '导入商品',
+    offlineManagement: '下线管理',
+    reportsToCond: '导出报表只根据搜索条件的状态导出',
+    exportProduct: '导出筛选出的商品信息',
+    oneInARow: '一列一个',
+    twoInARow: '一列两个',
+    threeInARow: '一列三个',
+    pleaseEnterALabelName: '请输入标签名称',
+    addNew: '新增',
+    singleProductBar: '单品条码',
+    noBarcode: '如无条形码系统将自动生成',
+    usedToQuickItem: '用于快速识别该单品',
+    item: '单品',
+    itemName: '单品名称',
+    singleProdPic: '单品图片',
+    singleProdSpe: '单品规格',
+    specificationStock: '规格库存',
+    singleProdClas: '单品分类',
+    singleProdUnit: '单品单位',
+    singleProdInve: '单品库存',
+    supplier: '首选供应商',
+    supplierStatus: '供应商状态',
+    chooseSupplier: '选择供应商',
+    itemNameCanEmpty: '单品名称不能为空',
+    pleaseUploadApicture: '请上传单品图片',
+    chooseProdCateg: '选择商品分类',
+    productSecondaryClassification: '商品二级分类',
+    productThreeClassification: '商品三级分类',
+    currCho: '你当前的选择是',
+    isItAComtionPro: '是否为组合商品',
+    combinationGoods: '组合商品',
+    quantityInCom: '组合内数量',
+    singleProd: '单品成本',
+    total: '合计',
+    skuPictures: 'sku图片',
+    sellingPrice: '销售价(元)',
+    marketPrice: '市场价(元)',
+    eventPrice: '活动售价',
+    commodityCode: '商品编码',
+    productBarcode: '商品条形码',
+    haveReadFol: '我已阅读以下规则,现在发布',
+    releaseNotice: '发布须知',
+    commodityWeight: '商品重量(kg)',
+    commodityVolume: '商品体积(m³)',
+    productSpecifi: '商品规格',
+    addSpecifications: '添加商品规格',
+    specificationValue: '规格值',
+    pleaseerTheSpName: '请输入规格名',
+    pleaseEntValue: '请输入规格值',
+    rule: '规则',
+    merchantDelivery: '商家配送',
+    comInfoSorXls: '商品信息整理.xlsx',
+    pleaseSelectAUnit: '请选择单位',
+    isExistsPleaReEn: '已存在,请重新输入',
+    specificationy: '规格项不能为空',
+    banInf: '禁止发布侵犯他人知识产权的商品,请确认商品符合知识产权保护的规定',
+    userMustFollRule: '用户应遵守国家法律、行政法规、部门规章等规范性文件。对任何涉嫌违反国家法律、行政法规、部门规章等规范性文件的行为, 本平台有权酌情处理。但平台对用户的处理不免除其应尽的法律责任。 用户在平台的任何行为,应同时遵守与平台及其关联公司所签订的各项协议。 平台有权随时变更本规则并在网站上予以公告。 若用户不同意相关变更,应立即停止使用平台的相关服务或产品。平台有权对用户行为及应适用的规则进行单方认定,并据此处理。',
+    relatedItems: '关联单品',
+    chooSingPro: '选择单品',
+    specTip: '属性值 第 N 行有空值',
     selOnlineCustomer: '选择在线客服',
     customersNotInYourCharge: '不是你负责的客户',
     pendingPayment: '待付款',
     pendingDelivery: '待发货',
     pendingReceipt: '待收货',
     pendinEvaluation: '待评价',
-    canceled: '已取消',
     evaluated: '已评价',
     shipped: '已发货',
     completed: '已完成',
+    canceled: '已取消',
     grouping: '拼团中',
-    search: '搜索',
-    reset: '重置',
-    stockBillReason: '出入库原因',
-    stockBillReasonInputTips: '请输入出入库原因',
-    stockType: '出入库类别',
-    sysSet: '系统内置',
-    sendStock: '出库',
-    receiveStock: '入库',
-    viewRemark: '查看备注',
-    prodType: '商品类型',
-    ordProd: '普通商品',
-    comProd: '组合商品',
-    limitedTimeProd: '秒杀商品',
-    groupProd: '团购商品',
-    prodMold: '商品类别',
+    priceTip: '销售价不得高于市场价',
+    noContractedCategories: '暂无已签约分类,请前往',
+    noShopCategories: '暂无店铺分类,请前往',
+    applyContracting: '申请签约分类',
+    createShopCategory: '创建',
+    shopInfo: '店铺信息',
+    propEditingDelTips: '当前正在修改该属性,',
+    propDelTips: '确定要删除该属性值吗?',
+    productSort: '商品排序',
+    selectFirstCategory: '请先选择第一级类目',
+    selectSecondCategory: '请先选择第二级类目',
+
+    // 发布商品
+    selectProductCategory: '选择商品类目',
+    editProductInfo: '编辑商品信息',
+    editProductDetails: '编辑商品详情',
     physicalGoods: '实物商品',
+    logisticsDelivery: '(物流发货)',
     virtualGoods: '虚拟商品',
-    activeProd: '活动商品',
-    availableInventory: '现有库存'
-  },
-  video: {
-    notSupport: '您的浏览器不支持视频播放',
-    delVideo: '删除视频',
-    notExceed: '视频大小不能超过',
-    formatError: '请上传正确的视频格式'
-  },
-  prodSku: {
-    prodSku: '商品规格',
-    addSku: '添加规格',
-    add: '添加',
-    skuName: '规格名',
-    choose: '请选择',
-    skuValue: '规格值',
-    inputSkuName: '请输入规格名',
-    enterInput: '按回车键可输入多个规格值',
-    inputSkuValue: '请输入规格值',
-    repeatWarning: '该规格值已存在,请重新输入',
-    reEnter: '已存在,请重新输入',
-    skuPic: 'sku图片',
-    chineseName: '商品中文名称',
-    englishName: '商品英文名称',
-    specNameLengthLimit: '规格名称不超过10个字符',
-    specValueLengthLimit: '规格值长度不超过20个字符',
-    specName: '规格名',
-    specValue: '规格值',
-    specialWordSymbolTips: '不允许包含特殊字符;:'
-  },
-  resource: {
-    newGroup: '新建分组',
-    Delete: '删除',
-    Move: '移动',
-    selectAll: '全选',
-    selectGroup: '选择分组',
-    group: '分组',
-    modifyName: '修改分组名称',
-    update: '修改',
-    groupName: '分组名称',
-    cancel: '取消',
-    confirm: '确定',
-    mobileGroup: '移动分组',
-    CannotBeEmpty: '分组名称不能为空',
-    successTips: '新建分组成功',
-    successTips1: '修改分组成功',
-    tips: '提示',
-    uploadSuccess: '上传成功',
-    updateSuccess: '修改成功'
-  },
-  pictureManager: {
-    picManager: '图片管理器',
-    choosePic: '选择图片',
-    picName: '图片名称',
-    query: '查询',
-    tips1: '请选择图片',
-    tips2: '确定进行[删除]操作?',
-    tips3: '该资源可能已用于活动或商品,确定进行[删除]操作?',
-    uploadPic: '上传图片',
+    noLogisticsRequired: '(无需物流)',
+    productTemplates: '商品模板',
+    templateImport: '(模板导入)',
+    selectPlatformCategory: '选择平台分类',
+    selectShopCategory: '选择店铺分类',
+    selectFirstLevelCategory: '选择第一级分类',
+    selectSecondLevelCategory: '选择第二级分类',
+    selectThirdLevelCategory: '选择第三级分类',
+    selectedPlatformCategories: '已选平台分类',
+    selectedShopCategories: '已选店铺分类',
+    nextStep1: '选好了,下一步',
+    nextStep2: '下一步',
+    prevStep: '上一步',
+    saveBtn1: '保存',
+    saveBtn2: '保存并查看',
+    selectedCategories: '已选分类',
+    platformCategories: '平台分类',
+    shopCategories: '店铺分类',
+    selectLanguage: '选择语言',
+    productSellingPoints: '商品卖点',
+    productBrands: '商品品牌',
+    selectText: '选择',
+    specStock: '规格库存',
+    totalInventory: '库存总和',
+    chineseDetails: '中文详情',
+    englishDetails: '英文详情',
+    detailPagePreviewImage: '详情页预览图',
+    parameteNameAndParameterValue: '参数名和参数值显示在商品详情开头,参数名不超过10字,参数值不超过20字',
+    // 虚拟商品
+    otherSettings: '其他设置',
+    noWriteOffRequired: '无需核销',
+    singleWriteOff: '单次核销',
+    multipleWriteOffs: '多次核销',
+    numberOfWriteOffs: '核销次数',
+    userMessage: '用户留言',
+    expiryDate: '有效期',
+    longTermValidity: '长期有效',
+    validOnTheSameDay: '购买后当天有效',
+    beforeTime: '(每天24点前可以使用)',
+    afterPurchase: '购买后',
+    validDays: '天内有效',
+    validFrom: '在',
+    to: '至',
+    startDate: '开始日期',
+    endDate: '结束日期',
+    requiredField: '必填',
+    addField: '添加字段',
+    msgFieldTips: '购买商品时让买家输入留言,最多可设置 10 条',
+    afterSalesService: '售后服务',
+    supportApplyRefund: '支持买家申请退款',
+    doNotSupportApplyRefund: '不支持买家申请退款',
+    afterSalesServiceTips: '商品详情页将展示“不支持申请退款”的说明,买家如需退款只能主动联系商家处理。',
+    msgCannotBePlainSpace: '不能为纯空格,请重新输入',
+    // 规格
+    addSpecPic: '添加规格图片',
+    specValueCharacterLength: '规格值长度不超过20个字符',
+    specNameNotNull: '规格名不能为空',
+    selectSpecFirst: '请先选择规格',
+    specName: '规格名',
+    specValue: '规格值',
+    specialWordSymbolTips: '不允许包含特殊字符;:',
+    currentlyAdded: '当前已添加',
+    productSpecCount: '组商品规格',
+    groups: '组',
+    cannotAddUnderThisSpec: '该规格名下不可添加',
+    createNewSpecNameManually: '支持手动输入创建新规格名',
+    // 提示
+    postProductTips1: '选择准确分类,方便用户搜索,提高下单率',
+    postProductTips2: '默认中文,选择多语言需编辑多个商品卖点和商品详情',
+    postProductTips3: '商品名称建议:商品描述+属性,长度不超过60个字符',
+    postProductTips4: '商品卖点展示在商品详情标题下面,长度不超过100个字符',
+    postProductTips5: '建议尺寸800*800像素,可拖动排序,最多上传9张,首图为主图',
+    postProductTips6: '主图视频建议时长9-30秒,视频宽高和商品图保持一致',
+    postProductTips7: '每个规格库存的总和',
+    postProductTips8: '“同城配送”需在配送管理设置后才能生效',
+    postProductTips9: '运费模板支持按地区、购买件数、按重量计算运费等',
+    postProductTips10: '需要核销的商品会生成核销码,可提供给商家线下核销',
+    postProductTips11: '规格名称不超过10个字符',
+    postProductTips12: '仅支持为第一组规格设置规格值图片,建议尺寸:800 x 800像素,规格值长度不超过20个字符',
+    postProductTips13: '第一个规格的规格值可以添加图片',
+    postProductTips14: '选择内容进行批量填充',
+    postProductTips15: '如无编码系统将自动生成',
+    postProductTips16: '商品编码不能重复',
+    postProductTips17: '商品中文名称不能为空',
+    postProductTips18: '商品英文名称不能为空',
+    postProductTips19: '商品中文卖点不能为空',
+    postProductTips20: '商品英文卖点不能为空',
+    postProductTips21: '请上传商品图片',
+    postProductTips22: '商品发布成功后不可更改',
+    selectPlatformCategoryTips: '请选择平台分类',
+    selectShopCategoryTips: '请选择店铺分类',
+    enableSpec: '至少要启用一种商品规格',
+    specValueCannotBeEmpty: '规格值不能为空',
+    completeTheAddedSpec: '请先完善已添加的规格',
+    dateErrTips1: '开始时间不能大于或等于结束时间',
+    dateErrTips2: '结束时间不能少于或等于当前时间',
+    dateErrTips3: '结束时间不能少于或等于开始时间',
+    msgMaxLength: '最多可设置10条',
+    validDaysEmptyTips: '请填写核销有效天数',
+    validDateEmptyTips: '请选择核销有效日期',
+    msgEmptyTips: '请填写已添加的留言',
+    cannotModifyProdType: '已发布的商品不允许修改商品类型',
+    uploadDetailPicTips: '为了保证图片清晰,请上传宽度大于940px的图',
+    parameterTips: '请输入正确的参数',
+    notAvailableSeparatePurchase: '活动商品不可以单买,仅用于套装和赠品的非主商品',
+    fillInTheNecessaryInfo: '请先完善商品必填信息!',
+    chooseLanguage: '选择语言',
+    skuLangTips: '默认中文,选择多语言需编辑多个属性名称和属性值',
+    attributeTips: '属性名称长度不超过10个字,英文不填写则默认使用中文',
+    attributeValueTips: '属性值不超过20个字,英文若不填写则默认中文',
+    availableInventory: '现有库存'
+  },
+  video: {
+    notSupport: '您的浏览器不支持视频播放',
+    delVideo: '删除视频',
+    notExceed: '视频大小不能超过',
+    formatError: '请上传正确的视频格式'
+  },
+  prodSku: {
+    prodSku: '商品规格',
+    addSku: '添加规格',
+    add: '添加',
+    skuName: '规格名',
+    choose: '请选择',
+    skuValue: '规格值',
+    inputSkuName: '请输入规格名',
+    enterInput: '按回车键可输入多个规格值',
+    inputSkuValue: '请输入规格值',
+    repeatWarning: '该规格值已存在,请重新输入',
+    reEnter: '已存在,请重新输入',
+    skuPic: 'sku图片',
+    chineseName: '商品中文名称',
+    englishName: '商品英文名称',
+    specNameLengthLimit: '规格名称不超过10个字符',
+    specValueLengthLimit: '规格值长度不超过20个字符',
+    specName: '规格名',
+    specValue: '规格值',
+    specialWordSymbolTips: '不允许包含特殊字符;:'
+  },
+  resource: {
+    newGroup: '新建分组',
+    Delete: '删除',
+    Move: '移动',
+    selectAll: '全选',
+    selectGroup: '选择分组',
+    group: '分组',
+    modifyName: '修改分组名称',
+    update: '修改',
+    groupName: '分组名称',
+    cancel: '取消',
+    confirm: '确定',
+    mobileGroup: '移动分组',
+    CannotBeEmpty: '分组名称不能为空',
+    successTips: '新建分组成功',
+    successTips1: '修改分组成功',
+    tips: '提示',
+    uploadSuccess: '上传成功',
+    updateSuccess: '修改成功'
+  },
+  pictureManager: {
+    picManager: '图片管理器',
+    choosePic: '选择图片',
+    picName: '图片名称',
+    query: '查询',
+    tips1: '请选择图片',
+    tips2: '确定进行[删除]操作?',
+    tips3: '该资源可能已用于活动或商品,确定进行[删除]操作?',
+    uploadPic: '上传图片',
     selectLocalPic: '请选择本地图片上传:',
     confirmUpload: '确定上传',
     revisePicName: '修改图片名称',
@@ -532,7 +755,9 @@ const zhCn = {
     noPass: '审核不通过',
     pass: '审核通过',
     waitPass: '等待审核',
-    audit: '审核'
+    audit: '审核',
+    platformAudit: '平台审核',
+    no: '无'
   },
   prodTag: {
     prodManage: '管理分组商品',
@@ -4099,332 +4324,6 @@ const zhCn = {
     promotionVideoId: '关联视频ID',
     promotionVideo: '关联视频链接',
     videoUrl: '视频链接'
-  },
-  product: {
-    doNotEnterSpecialCharacters: '请勿输入特殊字符',
-    ExpressDistribution: '快递配送',
-    isTop: '是否置顶',
-    seq: '排序号',
-    brandId: '品牌id',
-    brandName: '品牌名称',
-    basicInformation: '基本信息',
-    productCategories: '商品分类',
-    priceAndInventory: '价格及库存',
-    brandImg: '品牌图片',
-    prodName: '商品名称',
-    prodStatus: '商品状态',
-    prodNameCn: '商品sku中文名称',
-    prodNameEn: '商品sku英文名称',
-    prodInfo: '商品信息',
-    oriPrice: '商品原价',
-    price: '商品现价',
-    prices: '价格',
-    pic: '商品图片',
-    status: '状态',
-    totalStocks: '商品库存',
-    prodType: '商品类型',
-    prodMold: '商品类别',
-    ordProd: '普通商品',
-    groupProd: '团购商品',
-    limitedTimeProd: '秒杀商品',
-    pointsProduct: '积分商品',
-    comProd: '组合商品',
-    activeProd: '活动商品',
-    delType: '配送方式',
-    sameCityDelivery: '同城配送',
-    shopDelivery: '店铺配送',
-    userPickUp: '用户自提',
-    pleaseSelectTheProduct: '请先选择商品分类再填写以下商品信息',
-    pleaseSelectCategoryAgainSelectBrand: '请先选择商品分类,再选择品牌',
-    deletes: '你确定要删除此商品吗?',
-    saveTip: '该商品的库存为0,确定继续发布吗?',
-    select: '选择商品',
-    violation: '违规下架',
-    batchUp: '批量上架',
-    batchDown: '批量下架',
-    pendingReview: '待审核',
-    violationPendingReview: '违规下架待审核',
-    auditHistory: '审核历史',
-    reviewStatus: '审核状态',
-    prod: '商品',
-    atributeID: '属性ID',
-    attributeName: '属性名称',
-    attributeNameEn: '属性英文名称',
-    attributeNameNoNull: '属性名称不能为空',
-    attributeNameEnNoNull: '属性英文名称不能为空',
-    attributeValue: '属性值',
-    attributeValueEn: '英文属性值',
-    attributeValueEnTips: '英文属性值,为空时默认使用中文属性值',
-    attributeValueEditTips: '点击以修改对应属性值',
-    attributeValueNoNull: '属性值不能为空',
-    content: '请输入内容',
-    same: '不能添加相同的属性值',
-    appliedAmount: '申请金额',
-    debitCard: '到账银行卡',
-    uploadTips: '请选择操作,同时只能上传一个文件',
-    selectFile: '选取文件',
-    downloadTemplate: '下载模板',
-    fileSuccess: '文件导入成功',
-    fileFail: '文件导入失败',
-    fileUploadFail: '文件上传失败!',
-    downloadTemplateTips1: '上传模板只能是 xls、xlsx格式!',
-    downloadTemplateTips2: '上传模板大小不能超过 10MB!',
-    fileName: '商品信息模板.xlsx',
-    templateName: '模板.xlsx',
-    merAddProdTime: '商家添加商品时间',
-    meSubRevTime: '商家提交审核时间',
-    proApprTime: '商品审核通过时间',
-    uploadProdTip: '上传的规格编码若为空或与已有的编码重复,系统将会自动生成新的编码值。',
-    maxNum: '限购数量',
-    maxCancelTime: '取消订单时间',
-    offViol: '违规下线',
-    pleaEntBraName: '请输入品牌名称',
-    branls: '品牌首字母',
-    pletials: '请输入品牌首字母',
-    pleaemarks: '请输入备注内容',
-    brandNaBeEmpty: '品牌名称不能为空',
-    brandNameErrorTips: '品牌名称长度在1-50字之间',
-    brandInitBeEmpty: '品牌首字母不能为空',
-    firstLetterErrorTips: '请输入一位大写字母',
-    brandLogoNotEmpty: '请上传品牌logo',
-    sortValmpty: '顺序值不能为空',
-    shippinngs: '运费设置',
-    parameterSetting: '参数设置',
-    parameter: '参数',
-    shippingtBeEmpty: '运费模板不能为空',
-    deliveryArea: '配送区域',
-    freeShipping: '包邮',
-    further: '且',
-    freeShiullAmount: '满金额包邮',
-    freeippingR: '元金额包邮',
-    pwvFree: '件/重量/体积包邮',
-    import: '导入',
-    productVideo: '商品视频',
-    draggableSort: '可拖动排序,首图为主图,最多上传',
-    platforation: '平台分类',
-    shopCategory: '本店分类',
-    thisPlatformEmpty: '平台分类不能为空',
-    thisShopeEmpty: '本店分类不能为空',
-    thisProduCategroy: '请选择商品分类',
-    thisShopCategroy: '请选择本店分类',
-    thisProductImg: '请选择至少一张图片作为商品主图',
-    brand: '所属品牌',
-    whetPreSale: '是否开启预售',
-    chooseABrand: '选择品牌',
-    preSaleTime: '预售发货时间',
-    thePreSaleDtBeEmpty: '预售发货时间不能为空',
-    choosengDate: '选择发货日期',
-    userMention: '用户自提',
-    chinenInput: '中文信息',
-    prodellingPoint: '产品卖点',
-    plePictureToUpload: '请选择图片上传',
-    pleeliveryMethod: '请选择配送方式',
-    pleShgTlate: '请选择运费模板',
-    zhpleComAndEnName: '请完善中文名称名称',
-    violatingGoods: '违规商品',
-    refuseToPass: '拒绝通过',
-    other: '其他',
-    importGoods: '导入商品',
-    offlineManagement: '下线管理',
-    reportsToCond: '导出报表只根据搜索条件的状态导出',
-    exportProduct: '导出筛选出的商品信息',
-    oneInARow: '一列一个',
-    twoInARow: '一列两个',
-    threeInARow: '一列三个',
-    pleaseEnterALabelName: '请输入标签名称',
-    addNew: '新增',
-    singleProductBar: '单品条码',
-    noBarcode: '如无条形码系统将自动生成',
-    usedToQuickItem: '用于快速识别该单品',
-    item: '单品',
-    itemName: '单品名称',
-    singleProdPic: '单品图片',
-    singleProdSpe: '单品规格',
-    specificationStock: '规格库存',
-    singleProdClas: '单品分类',
-    singleProdUnit: '单品单位',
-    singleProdInve: '单品库存',
-    supplier: '首选供应商',
-    supplierStatus: '供应商状态',
-    chooseSupplier: '选择供应商',
-    itemNameCanEmpty: '单品名称不能为空',
-    pleaseUploadApicture: '请上传单品图片',
-    chooseProdCateg: '选择商品分类',
-    productSecondaryClassification: '商品二级分类',
-    productThreeClassification: '商品三级分类',
-    currCho: '你当前的选择是',
-    isItAComtionPro: '是否为组合商品',
-    combinationGoods: '组合商品',
-    quantityInCom: '组合内数量',
-    singleProd: '单品成本',
-    total: '合计',
-    skuPictures: 'sku图片',
-    sellingPrice: '销售价(元)',
-    marketPrice: '市场价(元)',
-    eventPrice: '活动售价',
-    commodityCode: '商品编码',
-    productBarcode: '商品条形码',
-    haveReadFol: '我已阅读以下规则,现在发布',
-    releaseNotice: '发布须知',
-    commodityWeight: '商品重量(kg)',
-    commodityVolume: '商品体积(m³)',
-    productSpecifi: '商品规格',
-    addSpecifications: '添加商品规格',
-    specificationValue: '规格值',
-    pleaseerTheSpName: '请输入规格名',
-    pleaseEntValue: '请输入规格值',
-    rule: '规则',
-    merchantDelivery: '商家配送',
-    comInfoSorXls: '商品信息整理.xlsx',
-    pleaseSelectAUnit: '请选择单位',
-    isExistsPleaReEn: '已存在,请重新输入',
-    specificationy: '规格项不能为空',
-    banInf: '禁止发布侵犯他人知识产权的商品,请确认商品符合知识产权保护的规定',
-    userMustFollRule: '用户应遵守国家法律、行政法规、部门规章等规范性文件。对任何涉嫌违反国家法律、行政法规、部门规章等规范性文件的行为, 本平台有权酌情处理。但平台对用户的处理不免除其应尽的法律责任。 用户在平台的任何行为,应同时遵守与平台及其关联公司所签订的各项协议。 平台有权随时变更本规则并在网站上予以公告。 若用户不同意相关变更,应立即停止使用平台的相关服务或产品。平台有权对用户行为及应适用的规则进行单方认定,并据此处理。',
-    relatedItems: '关联单品',
-    chooSingPro: '选择单品',
-    specTip: '属性值 第 N 行有空值',
-    selOnlineCustomer: '选择在线客服',
-    customersNotInYourCharge: '不是你负责的客户',
-    pendingPayment: '待付款',
-    pendingDelivery: '待发货',
-    pendingReceipt: '待收货',
-    pendinEvaluation: '待评价',
-    evaluated: '已评价',
-    shipped: '已发货',
-    completed: '已完成',
-    canceled: '已取消',
-    grouping: '拼团中',
-    priceTip: '销售价不得高于市场价',
-    noContractedCategories: '暂无已签约分类,请前往',
-    noShopCategories: '暂无店铺分类,请前往',
-    applyContracting: '申请签约分类',
-    createShopCategory: '创建',
-    shopInfo: '店铺信息',
-    propEditingDelTips: '当前正在修改该属性,',
-    propDelTips: '确定要删除该属性值吗?',
-    productSort: '商品排序',
-    selectFirstCategory: '请先选择第一级类目',
-    selectSecondCategory: '请先选择第二级类目',
-
-    // 发布商品
-    selectProductCategory: '选择商品类目',
-    editProductInfo: '编辑商品信息',
-    editProductDetails: '编辑商品详情',
-    physicalGoods: '实物商品',
-    logisticsDelivery: '(物流发货)',
-    virtualGoods: '虚拟商品',
-    noLogisticsRequired: '(无需物流)',
-    productTemplates: '商品模板',
-    templateImport: '(模板导入)',
-    selectPlatformCategory: '选择平台分类',
-    selectShopCategory: '选择店铺分类',
-    selectFirstLevelCategory: '选择第一级分类',
-    selectSecondLevelCategory: '选择第二级分类',
-    selectThirdLevelCategory: '选择第三级分类',
-    selectedPlatformCategories: '已选平台分类',
-    selectedShopCategories: '已选店铺分类',
-    nextStep1: '选好了,下一步',
-    nextStep2: '下一步',
-    prevStep: '上一步',
-    saveBtn1: '保存',
-    saveBtn2: '保存并查看',
-    selectedCategories: '已选分类',
-    platformCategories: '平台分类',
-    shopCategories: '店铺分类',
-    selectLanguage: '选择语言',
-    productSellingPoints: '商品卖点',
-    productBrands: '商品品牌',
-    selectText: '选择',
-    specStock: '规格库存',
-    totalInventory: '库存总和',
-    chineseDetails: '中文详情',
-    englishDetails: '英文详情',
-    detailPagePreviewImage: '详情页预览图',
-    parameteNameAndParameterValue: '参数名和参数值显示在商品详情开头,参数名不超过10字,参数值不超过20字',
-    // 虚拟商品
-    otherSettings: '其他设置',
-    noWriteOffRequired: '无需核销',
-    singleWriteOff: '单次核销',
-    multipleWriteOffs: '多次核销',
-    numberOfWriteOffs: '核销次数',
-    userMessage: '用户留言',
-    expiryDate: '有效期',
-    longTermValidity: '长期有效',
-    validOnTheSameDay: '购买后当天有效',
-    beforeTime: '(每天24点前可以使用)',
-    afterPurchase: '购买后',
-    validDays: '天内有效',
-    validFrom: '在',
-    to: '至',
-    startDate: '开始日期',
-    endDate: '结束日期',
-    requiredField: '必填',
-    addField: '添加字段',
-    msgFieldTips: '购买商品时让买家输入留言,最多可设置 10 条',
-    afterSalesService: '售后服务',
-    supportApplyRefund: '支持买家申请退款',
-    doNotSupportApplyRefund: '不支持买家申请退款',
-    afterSalesServiceTips: '商品详情页将展示“不支持申请退款”的说明,买家如需退款只能主动联系商家处理。',
-    msgCannotBePlainSpace: '不能为纯空格,请重新输入',
-    // 规格
-    addSpecPic: '添加规格图片',
-    specValueCharacterLength: '规格值长度不超过20个字符',
-    specNameNotNull: '规格名不能为空',
-    selectSpecFirst: '请先选择规格',
-    specName: '规格名',
-    specValue: '规格值',
-    specialWordSymbolTips: '不允许包含特殊字符;:',
-    currentlyAdded: '当前已添加',
-    productSpecCount: '组商品规格',
-    groups: '组',
-    cannotAddUnderThisSpec: '该规格名下不可添加',
-    createNewSpecNameManually: '支持手动输入创建新规格名',
-    // 提示
-    postProductTips1: '选择准确分类,方便用户搜索,提高下单率',
-    postProductTips2: '默认中文,选择多语言需编辑多个商品卖点和商品详情',
-    postProductTips3: '商品名称建议:商品描述+属性,长度不超过60个字符',
-    postProductTips4: '商品卖点展示在商品详情标题下面,长度不超过100个字符',
-    postProductTips5: '建议尺寸800*800像素,可拖动排序,最多上传9张,首图为主图',
-    postProductTips6: '主图视频建议时长9-30秒,视频宽高和商品图保持一致',
-    postProductTips7: '每个规格库存的总和',
-    postProductTips8: '“同城配送”需在配送管理设置后才能生效',
-    postProductTips9: '运费模板支持按地区、购买件数、按重量计算运费等',
-    postProductTips10: '需要核销的商品会生成核销码,可提供给商家线下核销',
-    postProductTips11: '规格名称不超过10个字符',
-    postProductTips12: '仅支持为第一组规格设置规格值图片,建议尺寸:800 x 800像素,规格值长度不超过20个字符',
-    postProductTips13: '第一个规格的规格值可以添加图片',
-    postProductTips14: '选择内容进行批量填充',
-    postProductTips15: '如无编码系统将自动生成',
-    postProductTips16: '商品编码不能重复',
-    postProductTips17: '商品中文名称不能为空',
-    postProductTips18: '商品英文名称不能为空',
-    postProductTips19: '商品中文卖点不能为空',
-    postProductTips20: '商品英文卖点不能为空',
-    postProductTips21: '请上传商品图片',
-    postProductTips22: '商品发布成功后不可更改',
-    selectPlatformCategoryTips: '请选择平台分类',
-    selectShopCategoryTips: '请选择店铺分类',
-    enableSpec: '至少要启用一种商品规格',
-    specValueCannotBeEmpty: '规格值不能为空',
-    completeTheAddedSpec: '请先完善已添加的规格',
-    dateErrTips1: '开始时间不能大于或等于结束时间',
-    dateErrTips2: '结束时间不能少于或等于当前时间',
-    dateErrTips3: '结束时间不能少于或等于开始时间',
-    msgMaxLength: '最多可设置10条',
-    validDaysEmptyTips: '请填写核销有效天数',
-    validDateEmptyTips: '请选择核销有效日期',
-    msgEmptyTips: '请填写已添加的留言',
-    cannotModifyProdType: '已发布的商品不允许修改商品类型',
-    uploadDetailPicTips: '为了保证图片清晰,请上传宽度大于940px的图',
-    parameterTips: '请输入正确的参数',
-    notAvailableSeparatePurchase: '活动商品不可以单买,仅用于套装和赠品的非主商品',
-    fillInTheNecessaryInfo: '请先完善商品必填信息!',
-    chooseLanguage: '选择语言',
-    skuLangTips: '默认中文,选择多语言需编辑多个属性名称和属性值',
-    attributeTips: '属性名称长度不超过10个字,英文不填写则默认使用中文',
-    attributeValueTips: '属性值不超过20个字,英文若不填写则默认中文',
-    availableInventory: '现有库存'
   }
 }
 export default zhCn

+ 96 - 81
src/views/modules/prod/prodComm-add-or-update.vue

@@ -1,98 +1,93 @@
 <template>
-  <el-dialog :title="!dataForm.prodCommId ? '新增' : '修改'"
-             :close-on-click-modal="false"
-             :visible.sync="visible">
-    <el-form :model="dataForm"
-             :rules="dataRule"
-             ref="dataForm"
-             @keyup.enter.native="dataFormSubmit()"
-             label-width="80px">
-
+  <el-dialog
+    :title="!isEdit ? this.$i18n.t('live.view') : this.$i18n.t('groups.edit')"
+    :close-on-click-modal="false"
+    :visible.sync="visible"
+    width="700px">
+    <el-form
+      :model="dataForm"
+      :rules="dataRule"
+      size="small"
+      ref="dataForm"
+      @keyup.enter.native="dataFormSubmit()"
+      label-width="80px"
+    >
       <div v-if="!isEdit">
-        <el-form-item label="评论内容"
-                      prop="userName">
-          <el-input type="textarea"
-                    :readonly='true'
-                    v-model="dataForm.content"></el-input>
-        </el-form-item>
-
-        <el-form-item label="评论图片"
-                      prop="userName">
-          <div v-if="dataForm.pics==null || dataForm.pics.length>0">
-            无
-          </div>
-          <img max-width="100%"
-               v-else
-               v-for="item in dataForm.pics"
-               :key="item"
-               :src="dialogImageUrl + item">
-        </el-form-item>
-
-        <el-form-item label="记录时间"
-                      prop="userName">
-          <el-input v-model="dataForm.recTime"
-                    :readonly='true'></el-input>
-        </el-form-item>
-        <el-form-item label="回复时间"
-                      prop="userName"
-                      :readonly='true'>
-          <el-input v-model="dataForm.replyTime"
-                    :readonly='true'></el-input>
+        <el-row>
+          <el-col :span="12">
+            <!-- 记录时间 -->
+            <el-form-item :label="this.$i18n.t('productComm.recTime')" prop="userName">
+              <el-input v-model="dataForm.recTime" :readonly="true" :disabled="!isEdit"></el-input>
+            </el-form-item>
+            <!-- IP来源 -->
+            <el-form-item :label="this.$i18n.t('productComm.postip')" prop="userName">
+              <el-input v-model="dataForm.postip" :readonly="true" :disabled="!isEdit"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <!-- 回复时间 -->
+            <el-form-item :label="this.$i18n.t('productComm.replyTime')" prop="userName" :readonly="true">
+              <el-input v-model="dataForm.replyTime" :readonly="true" :disabled="!isEdit"></el-input>
+            </el-form-item>
+            <!-- 评价得分 -->
+            <el-form-item :label="this.$i18n.t('productComm.score')" prop="score">
+              <el-input v-model="dataForm.score" :readonly="true" :disabled="!isEdit"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <!-- 评论内容 -->
+        <el-form-item :label="this.$i18n.t('productComm.content')" prop="userName">
+          <el-input type="textarea" :rows="4" :readonly="true" v-model="dataForm.content" :disabled="!isEdit" maxlength="500" show-word-limit></el-input>
         </el-form-item>
-        <el-form-item label="IP来源"
-                      prop="userName">
-          <el-input v-model="dataForm.postip"
-                    :readonly='true'></el-input>
+        <!-- 掌柜回复 -->
+        <el-form-item :label="this.$i18n.t('productComm.replyContent')" type="textarea" prop="userName">
+          <el-input type="textarea" :rows="4" v-model="dataForm.replyContent" :readonly="!isEdit" :disabled="!isEdit" maxlength="480" show-word-limit></el-input>
         </el-form-item>
-        <el-form-item label="得分"
-                      prop="score">
-          <el-input v-model="dataForm.score"
-                    :readonly='true'></el-input>
+        <!-- 评论图片 -->
+        <el-form-item :label="this.$i18n.t('productComm.pics')" prop="userName">
+          <div v-if="!pics">{{$t("productComm.no")}}</div>
+          <imgs-upload v-model="pics" :disabled="true" :modal="false" :prompt="false" />
         </el-form-item>
-
-        <el-form-item label="是否匿名"
-                      size="mini"
-                      prop="isAnonymous">
-          <el-radio-group v-model="dataForm.isAnonymous"
-                          :disabled='true'>
-            <el-radio :label="1">是</el-radio>
-            <el-radio :label="0">不是</el-radio>
+        <!-- 是否匿名 -->
+        <el-form-item :label="this.$i18n.t('productComm.isAnonymous')" size="mini" prop="isAnonymous">
+          <el-radio-group v-model="dataForm.isAnonymous" :disabled="true">
+            <el-radio :label="1">{{$t("publics.yes")}}</el-radio>
+            <el-radio :label="0">{{$t("publics.no")}}</el-radio>
           </el-radio-group>
         </el-form-item>
       </div>
-
-      <el-form-item label="掌柜回复"
-                    type="textarea"
-                    prop="userName">
-        <el-input v-model="dataForm.replyContent"
-                  :readonly='!isEdit'></el-input>
-      </el-form-item>
-
-      <el-form-item label="审核"
-                    size="mini"
-                    prop="status"
-                    v-if="isEdit">
-        <el-radio-group v-model="dataForm.status"
-                        :readonly='true'>
-          <el-radio :label="1">审核通过</el-radio>
-          <el-radio :label="-1">不通过</el-radio>
-          <el-radio :label="0">等待审核</el-radio>
-        </el-radio-group>
-      </el-form-item>
+      <div v-if="isEdit">
+        <el-form-item :label="this.$i18n.t('productComm.replyContent')" type="textarea" prop="replyContent" class="textarea-right">
+          <el-input type="textarea" :rows="5" v-model="dataForm.replyContent" :readonly="!isEdit" :disabled="!isEdit" maxlength="480" show-word-limit></el-input>
+        </el-form-item>
+        <!-- 审核 -->
+        <!--        <el-form-item :label="this.$i18n.t('productComm.status')" size="mini" prop="status">-->
+        <!--          <el-radio-group v-model="dataForm.status" :readonly="true">-->
+        <!--            <el-radio :label="1">{{$t("productComm.pass")}}</el-radio>-->
+        <!--            <el-radio :label="-1">{{$t("productComm.noPass")}}</el-radio>-->
+        <!--          </el-radio-group>-->
+        <!--        </el-form-item>-->
+      </div>
     </el-form>
-    <span slot="footer"
-          class="dialog-footer">
-      <el-button @click="visible = false">取消</el-button>
-      <el-button type="primary"
-                 v-if="isEdit"
-                 @click="dataFormSubmit()">确定</el-button>
+    <span slot="footer" class="dialog-footer">
+      <div class="default-btn" @click="visible = false">{{$t("crud.filter.cancelBtn")}}</div>
+      <div class="default-btn primary-btn" v-if="isEdit" @click="dataFormSubmit()">{{$t("crud.filter.submitBtn")}}</div>
     </span>
   </el-dialog>
 </template>
 
 <script>
+import { validNoEmptySpace } from '@/utils/validate'
+import ImgsUpload from '@/components/imgs-upload'
 export default {
   data () {
+    const validateReplyContent = (rule, value, callback) => {
+      if (validNoEmptySpace(value)) {
+        callback(new Error(this.$i18n.t('shopProcess.inputAllSpace')))
+      } else {
+        callback()
+      }
+    }
     return {
       isEdit: false,
       visible: false,
@@ -111,18 +106,24 @@ export default {
         usefulCounts: null,
         photoJson: null,
         isAnonymous: null,
-        status: null
+        status: 1
       },
+      pics: '',
       dataRule: {
+        replyContent: [{validator: validateReplyContent}]
       },
       resourcesUrl: process.env.VUE_APP_RESOURCES_URL
     }
   },
+  components: {
+    ImgsUpload
+  },
   methods: {
     init (prodCommId, isEdit) {
       this.isEdit = isEdit
       this.dataForm.prodCommId = prodCommId || 0
       this.visible = true
+      this.pics = ''
       this.$nextTick(() => {
         this.$refs['dataForm'].resetFields()
         if (this.dataForm.prodCommId) {
@@ -132,6 +133,12 @@ export default {
             params: this.$http.adornParams()
           }).then(({ data }) => {
             this.dataForm = data
+            var imgs = ''
+            this.dataForm.picsArray.forEach(element => {
+              imgs = imgs + element + ','
+            })
+            this.pics = imgs.substr(0, imgs.length - 1)
+            this.$forceUpdate()
           })
         }
       })
@@ -146,7 +153,7 @@ export default {
             data: this.$http.adornData(this.dataForm)
           }).then(({ data }) => {
             this.$message({
-              message: this.$i18n.t('remindPop.success'),
+              message: this.$i18n.t('publics.operation'),
               type: 'success',
               duration: 1500,
               onClose: () => {
@@ -161,3 +168,11 @@ export default {
   }
 }
 </script>
+<style scoped>
+.textarea-right >>> .el-textarea__inner{
+  padding-right: 50px;
+}
+.textarea-right >>> .el-textarea .el-input__count {
+  right: 21px;
+}
+</style>