现状
目前的商服平台,加载了扫码点单和慧加油两个产品,对于公共页面的文案势必会因为产品不同而产生个性需求,如下:
对于慧加油,此处标题为周油量交易情况,对于慧点单为周菜品交易情况。
目前的做法是,在每个页面里,采用硬编码,采用三元运算符修改文案
{{openHuiJiaYou? '周油品交易情况':"周菜品交易情况"}}
当前的弊端
- 对于同时开通两个产品的商户,逻辑复杂
- 重复代码多
- 如果再添加新的产品,则又需要全局修改文案
优雅的解决方案
- 借用i18n方案,在入口判断商户开通产品情况,在具体页面中写入类似
$t('search')
的动态字符串。 - 解决同时开通多个产品的情况,目前想到的方法如下,产品名按字母序,加分隔符,如下:
["DianDan","HuiJiaYou","xxx","DianDan|HuiJiaYou","HuiJiaYou|xxx","DianDan|xxx","DianDan|HuiJiaYou|xxx"]
- 全局暴露xx个变量,openDianDan,openHuiJiaYou…(注意不是only Open),用于一些逻辑判断。
- 对于公共部分,写在fallbackLocale里(找不到对应文案的兜底方案)
规定
- 产品名:慧点单 DianDan 慧加油 HuiJiaYou