opendb-feedback.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. // 表单校验规则由 schema2code 生成,不建议直接修改校验规则,而建议通过 schema2code 生成, 详情: https://uniapp.dcloud.net.cn/uniCloud/schema
  2. const validator = {
  3. "content": {
  4. "rules": [
  5. {
  6. "required": true
  7. },
  8. {
  9. "format": "string"
  10. }
  11. ],
  12. "label": "留言内容/回复内容"
  13. },
  14. "imgs": {
  15. "rules": [
  16. {
  17. "format": "array"
  18. },
  19. {
  20. "arrayType": "file"
  21. },
  22. {
  23. "maxLength": 6
  24. }
  25. ],
  26. "label": "图片列表"
  27. },
  28. "contact": {
  29. "rules": [
  30. {
  31. "format": "string"
  32. }
  33. ],
  34. "label": "联系人"
  35. },
  36. "mobile": {
  37. "rules": [
  38. {
  39. "format": "string"
  40. },
  41. {
  42. "pattern": "^\\+?[0-9-]{3,20}$"
  43. }
  44. ],
  45. "label": "联系电话"
  46. }
  47. }
  48. const enumConverter = {}
  49. function filterToWhere(filter, command) {
  50. let where = {}
  51. for (let field in filter) {
  52. let { type, value } = filter[field]
  53. switch (type) {
  54. case "search":
  55. if (typeof value === 'string' && value.length) {
  56. where[field] = new RegExp(value)
  57. }
  58. break;
  59. case "select":
  60. if (value.length) {
  61. let selectValue = []
  62. for (let s of value) {
  63. selectValue.push(command.eq(s))
  64. }
  65. where[field] = command.or(selectValue)
  66. }
  67. break;
  68. case "range":
  69. if (value.length) {
  70. let gt = value[0]
  71. let lt = value[1]
  72. where[field] = command.and([command.gte(gt), command.lte(lt)])
  73. }
  74. break;
  75. case "date":
  76. if (value.length) {
  77. let [s, e] = value
  78. let startDate = new Date(s)
  79. let endDate = new Date(e)
  80. where[field] = command.and([command.gte(startDate), command.lte(endDate)])
  81. }
  82. break;
  83. case "timestamp":
  84. if (value.length) {
  85. let [startDate, endDate] = value
  86. where[field] = command.and([command.gte(startDate), command.lte(endDate)])
  87. }
  88. break;
  89. }
  90. }
  91. return where
  92. }
  93. export { validator, enumConverter, filterToWhere }