build-template-data.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. module.exports = (templateData, user) => {
  2. const data = {}
  3. for (const template of templateData) {
  4. // 检查模板是否包含动态值
  5. const isDynamic = /\{.*?\}/.test(template.value)
  6. // 仅支持uni-id-users
  7. if (isDynamic) {
  8. // 从模板中提取出集合和字段名
  9. const [collection, field] = template.value.replace(/\{|\}/g, '').split('.')
  10. // 如果是uni-id-users,提取相应字段的值
  11. // 否则使用模板值本身
  12. data[template.field] = collection === 'uni-id-users' ? user[field] || template.value: template.value
  13. } else {
  14. // 如果没有动态值,则使用模板值本身
  15. data[template.field] = template.value
  16. }
  17. // 下面是一些注释的代码
  18. // switch (template.type) {
  19. // case 'static':
  20. // // 对于静态值,直接使用模板值本身
  21. // data[template.field] = template.value
  22. // break
  23. // case 'dynamic':
  24. // // 对于动态值,使用用户对象中的相应字段
  25. // data[template.field] = user[template.value] || ''
  26. // break
  27. // default:
  28. // // 抛出不支持的模板类型错误
  29. // throw new Error(`template type [${template.type}] not supported`)
  30. // }
  31. }
  32. return data
  33. }