Commit 25226f9f authored by Bill's avatar Bill
parents 8b72e510 994c737a
/** 1.WEB 2.H5 3.小程序 4.APP */
import { getIntl } from "umi";
/** 1.WEB 2.H5 3.小程序 4.APP */
const intl = getIntl();
/** WEB */
export const WEB = 1;
......@@ -15,7 +17,7 @@ export const APP = 4;
export const enumName = {
[WEB]: 'WEB',
[H5]: 'H5',
[APPLETS]: '小程序',
[APPLETS]: intl.formatMessage({ id: 'shop.template.environment.status_3' }),
[APP]: 'APP'
};
......@@ -29,7 +31,7 @@ export const environmentList = [
value: H5,
},
{
label: '小程序',
label: intl.formatMessage({ id: 'shop.template.environment.status_3' }),
value: APPLETS,
},
{
......
......@@ -71,178 +71,178 @@ export default {
'afterService.components.ExchangeDeliverInfo.receive':'Confirm exchange receipt',
'afterService.components.ExchangeDeliverInfo.back':'Confirm exchange receipt',
'afterService.components.ExchangeReceivedInfo.title': '退货发货信息',
'afterService.components.ExchangeReceivedInfo.summaryColumns.deliveryCount': '已退货发货',
'afterService.components.ExchangeReceivedInfo.summaryColumns.unDeliveryCount': '未退货发货',
'afterService.components.ExchangeReceivedInfo.summaryColumns.receiveCount': '已退货收货',
'afterService.components.ExchangeReceivedInfo.detailedColumns.deliveryCount': '退货发货数量',
'afterService.components.ExchangeReceivedInfo.detailedColumns.storageCount': '退货入库数量',
'afterService.components.ExchangeReceivedInfo.tip': '提示',
'afterService.components.ExchangeReceivedInfo.receive.content': '是否确认换货收货?',
'afterService.components.ExchangeReceivedInfo.back.content': '是否确认退货回单?',
'afterService.components.ExchangeReceivedInfo.summary.label1': '退货收货统计',
'afterService.components.ExchangeReceivedInfo.summary.label2': '退货发货统计',
'afterService.components.ExchangeReceivedInfo.detailed.label1': '退货发货明细',
'afterService.components.ExchangeReceivedInfo.detailed.label2': '退货收货明细',
'afterService.components.ExchangeReceivedInfo.deliveryNo': '退货发货单号',
'afterService.components.ExchangeReceivedInfo.storageNo': '退货入库单号',
'afterService.components.ExchangeReceivedInfo.deliver': '确认退货发货',
'afterService.components.ExchangeReceivedInfo.receive': '确认退货收货',
'afterService.components.ExchangeReceivedInfo.back': '确认退货回单',
'afterService.components.FileList.title': '附件',
'afterService.components.FileList.fileList': '相关不良原因举证附件',
'afterService.components.FinishedModal.title': '售后评价',
'afterService.components.FinishedModal.level': '售后满意度',
'afterService.components.FinishedModal.level.5': '5',
'afterService.components.FinishedModal.level.4': '4',
'afterService.components.FinishedModal.level.3': '3',
'afterService.components.FinishedModal.level.2': '2',
'afterService.components.FinishedModal.level.1': '1',
'afterService.components.FinishedModal.content': '售后评价',
'afterService.components.FinishedModal.content.placeholder': '在此输入你的内容,最长120个字符,60个汉字',
'afterService.components.FlowRecords.outerColumns.index': '序号',
'afterService.components.FlowRecords.outerColumns.roleName': '操作角色',
'afterService.components.FlowRecords.outerColumns.status': '状态',
'afterService.components.FlowRecords.outerColumns.operate': '操作',
'afterService.components.FlowRecords.outerColumns.operateTime': '操作时间',
'afterService.components.FlowRecords.outerColumns.opinion': '审核意见',
'afterService.components.FlowRecords.innerColumns.step': '序号',
'afterService.components.FlowRecords.innerColumns.operator': '操作人',
'afterService.components.FlowRecords.innerColumns.department': '部门',
'afterService.components.FlowRecords.innerColumns.jobTitle': '职位',
'afterService.components.FlowRecords.innerColumns.status': '状态',
'afterService.components.FlowRecords.innerColumns.operate': '操作',
'afterService.components.FlowRecords.innerColumns.operateTime': '操作时间',
'afterService.components.FlowRecords.innerColumns.opinion': '审核意见',
'afterService.components.GoodsDrawer.title': '选择维修商品',
'afterService.components.GoodsDrawer.orderNo.placeholder': '搜索',
'afterService.components.GoodsDrawer.orderNo.tip': '输入 订单号 进行搜索',
'afterService.components.GoodsDrawer.digest.placeholder': '订单摘要',
'afterService.components.GoodsDrawer.date.placeholder': '下单时间(全部)',
'afterService.components.GoodsDrawer.query': '查询',
'afterService.components.GoodsDrawer.filter.1': '已过滤掉 合同编号不同 商品',
'afterService.components.GoodsDrawer.filter.2': '已过滤掉 售后工作流不同 商品',
'afterService.components.ManualDeliveryModal.title': '换货发货处理',
'afterService.components.ManualDeliveryModal.deliveryAddress': '发货地址',
'afterService.components.ManualDeliveryModal.deliveryAddress.placeholder': '请选择',
'afterService.components.ManualDeliveryModal.deliveryTime': '发货时间',
'afterService.components.ManualDeliveryModal.deliveryTime.placeholder': '请选择',
'afterService.components.ManualDeliveryModal.logisticsOrderNo': '发货单号',
'afterService.components.ManualDeliveryModal.logisticsOrderNo.placeholder': '请输入',
'afterService.components.ManualDeliveryModal.logisticsName': '物流公司',
'afterService.components.ManualDeliveryModal.logisticsName.placeholder': '请选择',
'afterService.components.OuterCirculation.title': '外部流转',
'afterService.components.RefundModal.title': '退款处理',
'afterService.components.RefundModal.default': '标题',
'afterService.components.RefundModal.nothing': '没有找到 modal 模板',
'afterService.components.RefundModal.okText': '退款',
'afterService.components.RefundModal.refundAmount': '当前退款金额',
'afterService.components.Balance.balance': '账户可用余额',
'afterService.components.COD.title': '货到付款退款确认',
'afterService.components.COD.payType': '支付方式',
'afterService.components.COD': '货到付款',
'afterService.components.COD.tip': '支付方式为货到付款的订单,用户确认退款方式与退款金额后,系统会按照退款流程来完成退款动作,实际资金的退款结算由交易双方线下处理。',
'afterService.components.Credit.canUseQuota': '可用授信额度',
'afterService.components.Credit.useQuota': '已用授信额度',
'afterService.components.Credit.quota': '总授信额度',
'afterService.components.UploadPaymentVoucher.title': '上传支付凭证',
'afterService.components.UploadPaymentVoucher.upload.legal': '图片大小超过200K',
'afterService.components.UploadPaymentVoucher.nothing': '没有收款账户相关信息,无法退款',
'afterService.components.UploadPaymentVoucher.tip': '单个凭证文件大小不能超过 200K',
'afterService.components.UploadPaymentVoucher.name': '还款账户名称',
'afterService.components.UploadPaymentVoucher.bankAccount': '银行账号',
'afterService.components.UploadPaymentVoucher.bankDeposit': '开户行',
'afterService.components.UploadPaymentVoucher.fileList': '上传退款凭证',
'afterService.components.UploadPaymentVoucher.fileList.required': '请上传退款凭证',
'afterService.components.MonthlyStatement.title': '月结支付退款确认',
'afterService.components.MonthlyStatement.payChannel': '支付渠道',
'afterService.components.MonthlyStatement.tip': '支付方式为月结的订单,用户确认退款方式与退款金额后,系统会按照支付流程来完成退款动作,实际资金的退款由交易双方通过结算流程处理。',
'afterService.components.PaymentDays.title': '账期支付退款确认',
'afterService.components.PaymentDays.tip': '支付方式为账期的订单,用户确认退款方式与退款金额后,系统会按照支付流程来完成退款动作,实际资金的退款由交易双方通过结算流程处理。',
'afterService.components.RepairAddressInfo.title': '维修地址',
'afterService.components.ReturnAddressInfo.title': '退货收货地址',
'afterService.components.ReturnAddressInfo.deliveryType': '配送方式',
'afterService.components.ReturnAddressInfo.shippingAddress': '退货收货地址',
'afterService.components.ReturnAddressInfo.shippingAddress.placeholder': '请选择',
'afterService.components.ReturnAddressInfo.shippingAddress.required': '请选择退货收货地址',
'afterService.components.ReturnAddressInfo.deliveryAddress': '退货发货地址',
'afterService.components.ReturnAddressInfo.pickupAddress': '退货自提地址',
'afterService.components.ReturnAnalysis.title': '退货发货信息',
'afterService.components.ReturnAnalysis.summaryColumns.returnCount': '退货数量',
'afterService.components.ReturnAnalysis.detailedColumns.count': '退货数量',
'afterService.components.ReturnDetailInfo.title': '退款明细',
'afterService.components.ReturnDetailInfo.refund.tip': '提示',
'afterService.components.ReturnDetailInfo.refund.okText': '确认',
'afterService.components.ReturnDetailInfo.refund.content': '是否确认退款?',
'afterService.components.ReturnDetailInfo.refund.cancelText': '取消',
'afterService.components.ReturnDetailInfo.payCount': '支付次数',
'afterService.components.ReturnDetailInfo.outerStatus': '状态',
'afterService.components.ReturnDetailInfo.payNode': '支付环节',
'afterService.components.ReturnDetailInfo.payAmount': '已支付金额',
'afterService.components.ReturnDetailInfo.payRatio': '支付比例',
'afterService.components.ReturnDetailInfo.refundAmount': '退款金额',
'afterService.components.ReturnDetailInfo.payWayName': '支付方式',
'afterService.components.ReturnDetailInfo.refundTime': '退款时间',
'afterService.components.ReturnDetailInfo.channelName': '支付渠道',
'afterService.components.ReturnDetailInfo.payTime': '支付时间',
'afterService.components.ReturnDetailInfo.refund': '退款',
'afterService.components.ReturnDetailInfo.confirm': '确认',
'afterService.components.ReturnDetailInfo.check': '查看',
'afterService.components.ReturnDetailInfo.result': '确认还款结果',
'afterService.components.ReturnDetailInfo.result.cancel': '取消',
'afterService.components.ReturnDetailInfo.result.unreceived': '未到账',
'afterService.components.ReturnDetailInfo.result.received': '已到账',
'afterService.components.ReturnInfoDrawer.edit': '编辑退货数量与退款金额',
'afterService.components.ReturnInfoDrawer.check': '查看退货数量与退款金额',
'afterService.components.ReturnInfoDrawer.cancel': '取消',
'afterService.components.ReturnInfoDrawer.close': '关闭',
'afterService.components.ReturnInfoDrawer.confirm': '确定',
'afterService.components.ReturnInfoDrawer.materialName': '物料名称',
'afterService.components.ReturnInfoDrawer.orderInfo': '订单信息',
'afterService.components.ReturnInfoDrawer.orderNo': '订单号',
'afterService.components.ReturnInfoDrawer.productName': '商品名称',
'afterService.components.ReturnInfoDrawer.category': '品类',
'afterService.components.ReturnInfoDrawer.brand': '品牌',
'afterService.components.ReturnInfoDrawer.unit': '单位',
'afterService.components.ReturnInfoDrawer.purchaseCount': '采购数量',
'afterService.components.ReturnInfoDrawer.purchasePrice': '采购单价',
'afterService.components.ReturnInfoDrawer.purchaseAmount': '采购金额',
'afterService.components.ReturnInfoDrawer.returnCount': '退货数量',
'afterService.components.ReturnInfoDrawer.returnCount.required': '请填写退货数量',
'afterService.components.ReturnInfoDrawer.returnCount.legal': '请填写正数,最多保留3位小数',
'afterService.components.ReturnInfoDrawer.returnCount.max': '填写值已超过最大可退货数量,请重新填写',
'afterService.components.ReturnInfoDrawer.payInfo': '支付信息',
'afterService.components.ReturnInfoDrawer.refundInfo': '退款信息',
'afterService.components.ReturnInfoDrawer.returnReason': '退货原因',
'afterService.components.ReturnInfoDrawer.returnReason.required': '请填写退货原因',
'afterService.components.Score.title': '售后评价',
'afterService.components.Score.score': '售后满意度',
'afterService.components.Score.score.unit': '',
'afterService.components.Score.content': '售后评价',
'afterService.components.StopModal.title': '中止原因',
'afterService.components.StopModal.date': '中止时间',
'afterService.components.StopModal.remark': '中止原因',
'afterService.components.StopModal.remark.placeholder': '在此输入你的内容,最长100个字符,50个汉字',
'afterService.components.StopModal.remark.required': '请填写原因',
'afterService.components.VerifyModal.title': '提交审核',
'afterService.components.VerifyModal.agree.pass': '审核通过',
'afterService.components.VerifyModal.agree.noPass': '审核不通过',
'afterService.components.VerifyModal.reason.noPass': '审核不通过原因',
'afterService.components.VerifyModal.reason.pass': '审核通过原因',
'afterService.components.VerifyModal.reason.placeholder': '在此输入你的内容,最长120个字符,60个汉字',
'afterService.components.ExchangeReceivedInfo.title': 'Return shipment Info',
'afterService.components.ExchangeReceivedInfo.summaryColumns.deliveryCount': 'Returned shipment',
'afterService.components.ExchangeReceivedInfo.summaryColumns.unDeliveryCount': 'Unreturned shipment',
'afterService.components.ExchangeReceivedInfo.summaryColumns.receiveCount': 'Refund received',
'afterService.components.ExchangeReceivedInfo.detailedColumns.deliveryCount': 'Return shipment Number',
'afterService.components.ExchangeReceivedInfo.detailedColumns.storageCount': 'Return dock number',
'afterService.components.ExchangeReceivedInfo.tip': 'Prompt',
'afterService.components.ExchangeReceivedInfo.receive.content': 'Do you want to confirm the exchange receipt?',
'afterService.components.ExchangeReceivedInfo.back.content': 'Do you want to confirm the return receipt?',
'afterService.components.ExchangeReceivedInfo.summary.label1': 'Return receipt statistics',
'afterService.components.ExchangeReceivedInfo.summary.label2': 'Return shipment statistics',
'afterService.components.ExchangeReceivedInfo.detailed.label1': 'Details of return shipment',
'afterService.components.ExchangeReceivedInfo.detailed.label2': 'Return receipt details',
'afterService.components.ExchangeReceivedInfo.deliveryNo': 'Return shipment number',
'afterService.components.ExchangeReceivedInfo.storageNo': 'Return order number',
'afterService.components.ExchangeReceivedInfo.deliver': 'Confirm return shipment',
'afterService.components.ExchangeReceivedInfo.receive': 'Confirm return receipt',
'afterService.components.ExchangeReceivedInfo.back': 'Confirm return order',
'afterService.components.FileList.title': 'attachment',
'afterService.components.FileList.fileList': 'Annex to Proof of Related Adverse Causes',
'afterService.components.FinishedModal.title': 'after-sale evaluation',
'afterService.components.FinishedModal.level': 'after-sales satisfaction',
'afterService.components.FinishedModal.level.5': '5 points',
'afterService.components.FinishedModal.level.4': '4 points',
'afterService.components.FinishedModal.level.3': '3 points',
'afterService.components.FinishedModal.level.2': '2 points',
'afterService.components.FinishedModal.level.1': '1 points',
'afterService.components.FinishedModal.content': 'after-sale evaluation',
'afterService.components.FinishedModal.content.placeholder': 'Enter your content here, up to 120 characters, 60 characters',
'afterService.components.FlowRecords.outerColumns.index': 'Serial number',
'afterService.components.FlowRecords.outerColumns.roleName': 'Operation role',
'afterService.components.FlowRecords.outerColumns.status': 'state',
'afterService.components.FlowRecords.outerColumns.operate': 'operate',
'afterService.components.FlowRecords.outerColumns.operateTime': 'Operating time',
'afterService.components.FlowRecords.outerColumns.opinion': 'Audit opinion',
'afterService.components.FlowRecords.innerColumns.step': 'Serial number',
'afterService.components.FlowRecords.innerColumns.operator': 'Operator',
'afterService.components.FlowRecords.innerColumns.department': 'Department',
'afterService.components.FlowRecords.innerColumns.jobTitle': 'Position',
'afterService.components.FlowRecords.innerColumns.status': 'state',
'afterService.components.FlowRecords.innerColumns.operate': 'operate',
'afterService.components.FlowRecords.innerColumns.operateTime': 'Operating time',
'afterService.components.FlowRecords.innerColumns.opinion': 'Audit opinion',
'afterService.components.GoodsDrawer.title': 'Choose a repair product',
'afterService.components.GoodsDrawer.orderNo.placeholder': 'search',
'afterService.components.GoodsDrawer.orderNo.tip': 'Enter order number to search',
'afterService.components.GoodsDrawer.digest.placeholder': 'Order summary',
'afterService.components.GoodsDrawer.date.placeholder': 'Order time (all)',
'afterService.components.GoodsDrawer.query': 'Inquire',
'afterService.components.GoodsDrawer.filter.1': 'Filtered out the contract number is different',
'afterService.components.GoodsDrawer.filter.2': 'Filtered out Different after-sales workflow',
'afterService.components.ManualDeliveryModal.title': 'Exchange delivery processing',
'afterService.components.ManualDeliveryModal.deliveryAddress': 'delivery address',
'afterService.components.ManualDeliveryModal.deliveryAddress.placeholder': 'please choose',
'afterService.components.ManualDeliveryModal.deliveryTime': 'Delivery time',
'afterService.components.ManualDeliveryModal.deliveryTime.placeholder': 'please choose',
'afterService.components.ManualDeliveryModal.logisticsOrderNo': 'shipment number',
'afterService.components.ManualDeliveryModal.logisticsOrderNo.placeholder': 'please enter',
'afterService.components.ManualDeliveryModal.logisticsName': 'Logistics company',
'afterService.components.ManualDeliveryModal.logisticsName.placeholder': 'please choose',
'afterService.components.OuterCirculation.title': 'External circulation',
'afterService.components.RefundModal.title': 'Refund processing',
'afterService.components.RefundModal.default': 'title',
'afterService.components.RefundModal.nothing': 'No modal template found',
'afterService.components.RefundModal.okText': 'Refund',
'afterService.components.RefundModal.refundAmount': 'Current refund amount',
'afterService.components.Balance.balance': 'Account available balance',
'afterService.components.COD.title': 'Cash on delivery refund confirmation',
'afterService.components.COD.payType': 'payment method',
'afterService.components.COD': 'Cash on delivery',
'afterService.components.COD.tip': 'The payment method is a cash on delivery order. After the user confirms the refund method and refund amount, the system will follow the refund process to complete the refund action, and the refund settlement of the actual funds will be processed offline by both parties to the transaction.',
'afterService.components.Credit.canUseQuota': 'Available credit line',
'afterService.components.Credit.useQuota': 'Used credit line',
'afterService.components.Credit.quota': 'Total credit line',
'afterService.components.UploadPaymentVoucher.title': 'Upload payment voucher',
'afterService.components.UploadPaymentVoucher.upload.legal': 'Picture size exceeds 200K',
'afterService.components.UploadPaymentVoucher.nothing': 'There is no information about the receiving account, no refund',
'afterService.components.UploadPaymentVoucher.tip': 'The size of a single voucher file cannot exceed 200K',
'afterService.components.UploadPaymentVoucher.name': 'Repayment account name',
'afterService.components.UploadPaymentVoucher.bankAccount': 'Bank Account',
'afterService.components.UploadPaymentVoucher.bankDeposit': 'Account Bank',
'afterService.components.UploadPaymentVoucher.fileList': 'Upload refund voucher',
'afterService.components.UploadPaymentVoucher.fileList.required': 'Please upload a refund voucher',
'afterService.components.MonthlyStatement.title': 'Confirmation of monthly payment refund',
'afterService.components.MonthlyStatement.payChannel': 'Payment channel',
'afterService.components.MonthlyStatement.tip': 'The payment method is a monthly settlement order. After the user confirms the refund method and refund amount, the system will complete the refund action in accordance with the payment process. The refund of the actual funds will be processed by both parties to the transaction through the settlement process.',
'afterService.components.PaymentDays.title': 'Confirmation of payment refund',
'afterService.components.PaymentDays.tip': 'The payment method is the order of the billing period. After the user confirms the refund method and the refund amount, the system will complete the refund action in accordance with the payment process, and the refund of the actual funds will be processed by the transaction parties through the settlement process.',
'afterService.components.RepairAddressInfo.title': 'Repair address',
'afterService.components.ReturnAddressInfo.title': 'Return shipping address',
'afterService.components.ReturnAddressInfo.deliveryType': 'Delivery Method',
'afterService.components.ReturnAddressInfo.shippingAddress': 'Return shipping address',
'afterService.components.ReturnAddressInfo.shippingAddress.placeholder': 'please choose',
'afterService.components.ReturnAddressInfo.shippingAddress.required': 'Please select the return address',
'afterService.components.ReturnAddressInfo.deliveryAddress': 'Return shipping address',
'afterService.components.ReturnAddressInfo.pickupAddress': 'Return address',
'afterService.components.ReturnAnalysis.title': 'Return shipping information',
'afterService.components.ReturnAnalysis.summaryColumns.returnCount': 'Quantity returned',
'afterService.components.ReturnAnalysis.detailedColumns.count': 'Quantity returned',
'afterService.components.ReturnDetailInfo.title': 'Refund details',
'afterService.components.ReturnDetailInfo.refund.tip': 'hint',
'afterService.components.ReturnDetailInfo.refund.okText': 'confirm',
'afterService.components.ReturnDetailInfo.refund.content': 'Is the refund confirmed?',
'afterService.components.ReturnDetailInfo.refund.cancelText': 'Cancel',
'afterService.components.ReturnDetailInfo.payCount': 'Number of payments',
'afterService.components.ReturnDetailInfo.outerStatus': 'state',
'afterService.components.ReturnDetailInfo.payNode': 'Payment link',
'afterService.components.ReturnDetailInfo.payAmount': 'Amount paid',
'afterService.components.ReturnDetailInfo.payRatio': 'Payment ratio',
'afterService.components.ReturnDetailInfo.refundAmount': 'Refund amount',
'afterService.components.ReturnDetailInfo.payWayName': 'payment method',
'afterService.components.ReturnDetailInfo.refundTime': 'Refund time',
'afterService.components.ReturnDetailInfo.channelName': 'Payment channel',
'afterService.components.ReturnDetailInfo.payTime': 'Payment time',
'afterService.components.ReturnDetailInfo.refund': 'Refund',
'afterService.components.ReturnDetailInfo.confirm': 'confirm',
'afterService.components.ReturnDetailInfo.check': 'Check',
'afterService.components.ReturnDetailInfo.result': 'Confirm the repayment result',
'afterService.components.ReturnDetailInfo.result.cancel': 'Cancel',
'afterService.components.ReturnDetailInfo.result.unreceived': 'Not arrived',
'afterService.components.ReturnDetailInfo.result.received': 'Has arrived',
'afterService.components.ReturnInfoDrawer.edit': 'Edit returned quantity and refund amount',
'afterService.components.ReturnInfoDrawer.check': 'Check the returned quantity and refund amount',
'afterService.components.ReturnInfoDrawer.cancel': 'Cancel',
'afterService.components.ReturnInfoDrawer.close': 'closure',
'afterService.components.ReturnInfoDrawer.confirm': 'Sure',
'afterService.components.ReturnInfoDrawer.materialName': 'Material name',
'afterService.components.ReturnInfoDrawer.orderInfo': 'order information',
'afterService.components.ReturnInfoDrawer.orderNo': 'order number',
'afterService.components.ReturnInfoDrawer.productName': 'product name',
'afterService.components.ReturnInfoDrawer.category': 'Category',
'afterService.components.ReturnInfoDrawer.brand': 'brand',
'afterService.components.ReturnInfoDrawer.unit': 'unit',
'afterService.components.ReturnInfoDrawer.purchaseCount': 'Purchase quantity',
'afterService.components.ReturnInfoDrawer.purchasePrice': 'Purchase prices',
'afterService.components.ReturnInfoDrawer.purchaseAmount': 'Purchase amount',
'afterService.components.ReturnInfoDrawer.returnCount': 'Quantity returned',
'afterService.components.ReturnInfoDrawer.returnCount.required': 'Please fill in the returned quantity',
'afterService.components.ReturnInfoDrawer.returnCount.legal': 'Please fill in a positive number and keep up to 3 decimal places',
'afterService.components.ReturnInfoDrawer.returnCount.max': 'The filled value has exceeded the maximum returnable quantity, please fill in again',
'afterService.components.ReturnInfoDrawer.payInfo': 'Payment Information',
'afterService.components.ReturnInfoDrawer.refundInfo': 'Refund information',
'afterService.components.ReturnInfoDrawer.returnReason': 'reasons for return',
'afterService.components.ReturnInfoDrawer.returnReason.required': 'Please fill in the reason for return',
'afterService.components.Score.title': 'After-sales evaluation',
'afterService.components.Score.score': 'After-sales satisfaction',
'afterService.components.Score.score.unit': 'Minute',
'afterService.components.Score.content': 'After-sales evaluation',
'afterService.components.StopModal.title': 'Reason for suspension',
'afterService.components.StopModal.date': 'Suspension time',
'afterService.components.StopModal.remark': 'Reason for suspension',
'afterService.components.StopModal.remark.placeholder': 'Enter your content here, up to 100 characters, 50 Chinese characters',
'afterService.components.StopModal.remark.required': 'Please fill in the reason',
'afterService.components.VerifyModal.title': 'Submit review',
'afterService.components.VerifyModal.agree.pass': 'examination passed',
'afterService.components.VerifyModal.agree.noPass': 'Audit not passed',
'afterService.components.VerifyModal.reason.noPass': 'Reasons for failing the review',
'afterService.components.VerifyModal.reason.pass': 'Reason for approval',
'afterService.components.VerifyModal.reason.placeholder': 'Enter your content here, up to 120 characters, 60 Chinese characters',
}
......@@ -46,4 +46,4 @@ export default {
"accountSetting.yourVerifyPhone": "Your verified phone:",
"accountSetting.ifLossTochange": "If it is lost or disabled, please change it immediately to avoid account theft",
"accountSetting.pswStartToUpdate": "Your payment password has been turned on. It is recommended that you change your payment password regularly to improve security"
}
\ No newline at end of file
}
......@@ -77,4 +77,4 @@ export default {
'user.qingshuruyanzhengma':'Please enter the verification code',
'user.qingshezhinidexinmima':'Please set your new password',
'user.qingzaicishurumima':'Please enter the password again',
}
\ No newline at end of file
}
......@@ -1249,7 +1249,10 @@ export const repositOutSchema: ISchema = padRequiredMessage({
"foldInventory": {
type: 'number',
"x-component": "CustomSlider",
required: true,
'x-rules': [{
required: true,
message: getIntl().formatMessage({ id: 'common.form.input.placeholder' }),
}],
"x-component-props": {
width: '80%',
isNumber: true,
......
......@@ -5,7 +5,7 @@ import cx from 'classnames'
import { message } from 'antd'
import DetailPage from '@/components/DetailPage'
import UseModal from '../components/useModal'
import { Environment_Status } from '@/constants'
// import { Environment_Status } from '@/constants'
import styles from './index.less'
import { getTemplateWebPageTemplateWebFindShopTemplateDetails, postTemplateWebPageTemplateWebUseShopTemplate } from '@/services/TemplateV2Api'
......@@ -24,7 +24,13 @@ const TemplateDetail: React.FC<TemplateDetailPropsType> = (props) => {
const [useModalVisible, setUseModalVisible] = useState<boolean>(false)
const [confirmLoading, setConfirmLoading] = useState(false)
const intl = useIntl()
const Environment_Status = {
0: intl.formatMessage({ id: 'shop.template.environment.status_0' }),
1: "web",
2: "H5",
3: intl.formatMessage({ id: 'shop.template.environment.status_3' }),
4: "APP"
}
useEffect(() => {
fetchDetail()
}, [])
......@@ -58,10 +64,10 @@ const TemplateDetail: React.FC<TemplateDetailPropsType> = (props) => {
}
const handleLinkEdit = () => {
if(detailInfo?.environment === 1) {
if (detailInfo?.environment === 1) {
// web店铺装修
window.location.href = `/memberCenter/shopAbility/template/edit?id=${detailInfo.id}&template=${detailInfo.fileName}&shopId=${detailInfo.shopId}`
} else if(detailInfo?.environment === 4 || detailInfo?.environment === 3) {
} else if (detailInfo?.environment === 4 || detailInfo?.environment === 3) {
// app店铺装修
window.location.href = `/memberCenter/shopAbility/template/mobile/edit?id=${detailInfo.id}&template=${detailInfo.fileName}&shopId=${detailInfo.shopId}&environment=${detailInfo?.environment}`
} else {
......@@ -70,9 +76,9 @@ const TemplateDetail: React.FC<TemplateDetailPropsType> = (props) => {
}
const handleLinkPreview = () => {
if(detailInfo?.environment === 1) {
if (detailInfo?.environment === 1) {
window.location.href = `/memberCenter/shopAbility/template/preview?id=${detailInfo.id}&template=${detailInfo.fileName}&shopId=${detailInfo.shopId}`
} else if(detailInfo?.environment === 4 || detailInfo?.environment === 3) {
} else if (detailInfo?.environment === 4 || detailInfo?.environment === 3) {
window.location.href = `/memberCenter/shopAbility/template/mobile/preview?id=${detailInfo.id}&template=${detailInfo.fileName}&shopId=${detailInfo.shopId}`
} else {
message.info(intl.formatMessage({ id: 'shop.template.preview.tip' }))
......
......@@ -60,7 +60,10 @@ const basicInfo: ISchema = {
type: 'number',
enum: [],
title: getIntl().formatMessage({id: 'purchaseOrder.orderCollect.schema.shopId'}),
required: true,
'x-rules': [{
required: true,
message: getIntl().formatMessage({id: 'common.bitian'}),
}],
},
digest: {
type: 'string',
......
import React, { useState, useEffect } from 'react';
import {
PageHeader,
Descriptions,
Spin,
Button,
message,
Upload,
} from 'antd';
import { FormOutlined } from '@ant-design/icons';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { history, Prompt } from 'umi';
import moment from 'moment';
import { createFormActions, FormEffectHooks } from '@formily/antd';
import { usePageStatus } from '@/hooks/usePageStatus';
import { getMemberCommentConsumerOrderTradeDetail, GetMemberCommentConsumerOrderTradeDetailResponse, postMemberCommentConsumerOrderTradeSubmit } from '@/services/MemberV2Api';
import AvatarWrap from '@/components/AvatarWrap';
import NiceForm from '@/components/NiceForm';
import { normalizeUnevaluatedList } from '../../utils';
import { evaluateSchema } from '../../common/schemas/evaluateSchema';
import { createEffects } from '../../common/effects';
import EvaluationList from '../../components/EvaluationList';
const formActions = createFormActions();
const {
onFormInputChange$,
} = FormEffectHooks;
interface Unevaluated {
good: {
pic: string,
name: string,
price: string,
desc: string,
};
star: number;
comment: string;
picture: string[];
smile: number;
};
interface OrderInfo extends GetMemberCommentConsumerOrderTradeDetailResponse {
unevaluatedList: Unevaluated[];
};
const EvaluateOrder: React.FC = () => {
const { id } = usePageStatus();
const [orderInfo, setOrderInfo] = useState<OrderInfo>(null);
const [infoLoading, setInfoLoading] = useState(false);
const [submitLoading, setSubmitLoading] = useState(false);
const [unsaved, setUnsaved] = useState(false);
const getOrderInfo = () => {
if (!id) {
return;
}
setInfoLoading(true);
getMemberCommentConsumerOrderTradeDetail({
id,
} as any).then(res => {
if (res.code === 1000) {
const { orderProductCommentList } = res.data;
const unevaluatedList = normalizeUnevaluatedList(orderProductCommentList);
setOrderInfo({
...res.data,
unevaluatedList,
});
unevaluatedList.forEach((item, index) => {
if (item.commentStatus) {
formActions.setFieldState(`comments.${index}.*`, (fieldState) => {
fieldState.editable = false;
});
}
});
}
}).finally(() => {
setInfoLoading(false);
});
};
useEffect(() => {
getOrderInfo();
}, []);
const handleSubmit = values => {
setSubmitLoading(true);
const payload = values.comments.map(item => {
const {
comment,
good,
picture,
star,
} = item;
// 被评价方是 销售会员(订单提供者数据)
return {
star,
comment,
orderProductId: good.orderProductId,
pics: picture.map(item => item.status === 'done' && item.url).filter(Boolean),
};
});
postMemberCommentConsumerOrderTradeSubmit({
orderId: orderInfo.orderId,
commentSubmitDetailList: payload,
}).then(res => {
if (res.code === 1000) {
setUnsaved(false);
setTimeout(() => {
history.goBack();
}, 800);
} else {
setSubmitLoading(false);
}
}).catch(() => {
setSubmitLoading(false);
});
};
const beforeUpload = file => {
if (file.size / 1024 / 1024 > 10) {
message.warning('图片大小超过10M');
return Upload.LIST_IGNORE;
}
return Promise.resolve();
};
const UploadTip = () => (
<div
style={{
lineHeight: '24px',
color: '#909399',
fontWeight: 400,
wordBreak: 'break-all',
position: 'relative',
}}
>
支持JPG/PNG/JPEG <br />每张最大不超过 10M,尺寸不限 <br />最大数量限制 4张
</div>
);
return (
<Spin spinning={infoLoading}>
<PageHeaderWrapper
style={{
padding: 24,
}}
title={
<>
<PageHeader
style={{ padding: '0' }}
onBack={() => history.goBack()}
title={
<AvatarWrap
info={{
aloneTxt: '单',
name: orderInfo?.orderNo,
}}
/>
}
extra={(
<>
<Button
type="primary"
icon={<FormOutlined />}
disabled={!orderInfo}
loading={submitLoading}
onClick={() => formActions.submit()}
>
发布
</Button>
</>
)}
>
<Descriptions
size="small"
column={3}
style={{
padding: '0 32px',
}}
>
<Descriptions.Item label="供应会员">{orderInfo?.memberName}</Descriptions.Item>
<Descriptions.Item label="下单时间" span={2}>
{orderInfo?.createTime}
</Descriptions.Item>
</Descriptions>
</PageHeader>
</>
}
>
<NiceForm
actions={formActions}
previewPlaceholder=" "
initialValues={{
comments: orderInfo ? orderInfo.unevaluatedList : [],
}}
expressionScope={{
beforeUpload,
}}
onSubmit={handleSubmit}
components={{
EvaluationList,
UploadTip,
}}
effects={($, actions) => {
createEffects($, actions);
onFormInputChange$().subscribe(() => {
if (!unsaved) {
setUnsaved(true);
}
});
}}
schema={evaluateSchema}
/>
</PageHeaderWrapper>
<Prompt when={unsaved} message="您还有未保存的内容,是否确定要离开?" />
</Spin>
);
};
export default EvaluateOrder;
\ No newline at end of file
import React, { useState, useEffect } from 'react';
import {
PageHeader,
Descriptions,
Spin,
Button,
message,
Upload,
} from 'antd';
import { FormOutlined } from '@ant-design/icons';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { getIntl, history, Prompt } from 'umi';
import moment from 'moment';
import { createFormActions, FormEffectHooks } from '@formily/antd';
import { usePageStatus } from '@/hooks/usePageStatus';
import { getMemberCommentConsumerOrderTradeDetail, GetMemberCommentConsumerOrderTradeDetailResponse, postMemberCommentConsumerOrderTradeSubmit } from '@/services/MemberV2Api';
import AvatarWrap from '@/components/AvatarWrap';
import NiceForm from '@/components/NiceForm';
import { normalizeUnevaluatedList } from '../../utils';
import { evaluateSchema } from '../../common/schemas/evaluateSchema';
import { createEffects } from '../../common/effects';
import EvaluationList from '../../components/EvaluationList';
const intl = getIntl();
const formActions = createFormActions();
const {
onFormInputChange$,
} = FormEffectHooks;
interface Unevaluated {
good: {
pic: string,
name: string,
price: string,
desc: string,
};
star: number;
comment: string;
picture: string[];
smile: number;
};
interface OrderInfo extends GetMemberCommentConsumerOrderTradeDetailResponse {
unevaluatedList: Unevaluated[];
};
const EvaluateOrder: React.FC = () => {
const { id } = usePageStatus();
const [orderInfo, setOrderInfo] = useState<OrderInfo>(null);
const [infoLoading, setInfoLoading] = useState(false);
const [submitLoading, setSubmitLoading] = useState(false);
const [unsaved, setUnsaved] = useState(false);
const getOrderInfo = () => {
if (!id) {
return;
}
setInfoLoading(true);
getMemberCommentConsumerOrderTradeDetail({
id,
} as any).then(res => {
if (res.code === 1000) {
const { orderProductCommentList } = res.data;
const unevaluatedList = normalizeUnevaluatedList(orderProductCommentList);
setOrderInfo({
...res.data,
unevaluatedList,
});
unevaluatedList.forEach((item, index) => {
if (item.commentStatus) {
formActions.setFieldState(`comments.${index}.*`, (fieldState) => {
fieldState.editable = false;
});
}
});
}
}).finally(() => {
setInfoLoading(false);
});
};
useEffect(() => {
getOrderInfo();
}, []);
const handleSubmit = values => {
setSubmitLoading(true);
const payload = values.comments.map(item => {
const {
comment,
good,
picture,
star,
} = item;
// 被评价方是 销售会员(订单提供者数据)
return {
star,
comment,
orderProductId: good.orderProductId,
pics: picture.map(item => item.status === 'done' && item.url).filter(Boolean),
};
});
postMemberCommentConsumerOrderTradeSubmit({
orderId: orderInfo.orderId,
commentSubmitDetailList: payload,
}).then(res => {
if (res.code === 1000) {
setUnsaved(false);
setTimeout(() => {
history.goBack();
}, 800);
} else {
setSubmitLoading(false);
}
}).catch(() => {
setSubmitLoading(false);
});
};
const beforeUpload = file => {
if (file.size / 1024 / 1024 > 10) {
message.warning(intl.formatMessage({ id: 'purchaserEvaluation.tupiandaxiaochaoguo10M' }));
return Upload.LIST_IGNORE;
}
return Promise.resolve();
};
const UploadTip = () => (
<div
style={{
lineHeight: '24px',
color: '#909399',
fontWeight: 400,
wordBreak: 'break-all',
position: 'relative',
}}
>
{intl.formatMessage({ id: 'purchaserEvaluation.tupiandaxiaochaoguo10M' })} <br />{intl.formatMessage({ id: 'purchaserEvaluation.meizhangzuidabuchaoguo' })} <br />{intl.formatMessage({ id: 'purchaserEvaluation.zuidashuliangxianzhi4' })}
</div>
);
return (
<Spin spinning={infoLoading}>
<PageHeaderWrapper
style={{
padding: 24,
}}
title={
<>
<PageHeader
style={{ padding: '0' }}
onBack={() => history.goBack()}
title={
<AvatarWrap
info={{
aloneTxt: intl.formatMessage({ id: 'purchaserEvaluation.dan' }),
name: orderInfo?.orderNo,
}}
/>
}
extra={(
<>
<Button
type="primary"
icon={<FormOutlined />}
disabled={!orderInfo}
loading={submitLoading}
onClick={() => formActions.submit()}
>
{intl.formatMessage({ id: 'member.memberEvaluate.createEvaluate.index.release' })}
</Button>
</>
)}
>
<Descriptions
size="small"
column={3}
style={{
padding: '0 32px',
}}
>
<Descriptions.Item label={intl.formatMessage({ id: 'purchaserEvaluation.gongyinghuiyuan' })}>{orderInfo?.memberName}</Descriptions.Item>
<Descriptions.Item label={intl.formatMessage({ id: 'purchaserEvaluation.xiadanshijian' })}span={2}>
{orderInfo?.createTime}
</Descriptions.Item>
</Descriptions>
</PageHeader>
</>
}
>
<NiceForm
actions={formActions}
previewPlaceholder=" "
initialValues={{
comments: orderInfo ? orderInfo.unevaluatedList : [],
}}
expressionScope={{
beforeUpload,
}}
onSubmit={handleSubmit}
components={{
EvaluationList,
UploadTip,
}}
effects={($, actions) => {
createEffects($, actions);
onFormInputChange$().subscribe(() => {
if (!unsaved) {
setUnsaved(true);
}
});
}}
schema={evaluateSchema}
/>
</PageHeaderWrapper>
<Prompt when={unsaved} message="您还有未保存的内容,是否确定要离开?" />
</Spin>
);
};
export default EvaluateOrder;
......@@ -157,7 +157,12 @@ export const registerStep1Schema: ISchema = {
properties: {
typeId: {
type: 'string',
required: true,
"x-rules": [
{
required: true,
message: intl.formatMessage({id: 'common.text.pleaseSelect'})
}
],
"x-component": 'CustomRadio',
"x-component-props": {
layout: 'column'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment