index.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. const getTime = require("../../utils/getTime"),
  2. deleteMark = require("../../utils/deleteMark");
  3. Component({
  4. /**
  5. * 组件的属性列表
  6. */
  7. properties: {
  8. fromList: {
  9. type: Array,
  10. value: []
  11. },
  12. CompletedOrNot: {
  13. type: Function
  14. }, //完成与否回调
  15. },
  16. options: {
  17. multipleSlots: true
  18. },
  19. /**
  20. * 组件的初始数据
  21. */
  22. data: {
  23. endTime: "", //结束时间
  24. selectTime: "", //选择时间
  25. },
  26. lifetimes: {
  27. attached: function () {
  28. this.setData({
  29. endTime: getTime.formatTime(new Date(), '-').split(' ')[0]
  30. })
  31. }
  32. },
  33. /**
  34. * 组件的方法列表
  35. */
  36. methods: {
  37. /* 输入 */
  38. inputChange(e) {
  39. let {
  40. index,
  41. item
  42. } = e.currentTarget.dataset;
  43. item.value = deleteMark.queryStr(e.detail);
  44. item.error = item.required && item.value == '' ? true : false;
  45. let fromList = this.data.fromList;
  46. fromList[index] = item;
  47. if (item.callback) item.callback(item);
  48. this.setData({
  49. fromList
  50. })
  51. this.statistics();
  52. },
  53. /* 日期选择器 */
  54. bindDateChange(e) {
  55. const {
  56. index
  57. } = e.currentTarget.dataset;
  58. let fromList = this.data.fromList;
  59. fromList[index].value = e.detail.value;
  60. fromList[index].error = false;
  61. this.setData({
  62. fromList
  63. })
  64. this.statistics();
  65. },
  66. /* 清空输入框 */
  67. inputClear(e) {
  68. console.log("清空", e.target.dataset.item.label)
  69. this.statistics();
  70. },
  71. /* 统计是否完成全部必填项 */
  72. statistics() {
  73. let list = this.data.fromList,
  74. sumCount = 0,
  75. count = 0;
  76. for (let i = 0; i < list.length; i++) {
  77. if (list[i].required) {
  78. sumCount++;
  79. if (list[i].value != "") count++;
  80. }
  81. }
  82. // console.log("必填总数", sumCount, '已填', count)
  83. this.triggerEvent("CompletedOrNot", sumCount == count)
  84. },
  85. getForm() {
  86. return this.data.fromList
  87. },
  88. /* 提交 */
  89. getData() {
  90. let list = this.data.fromList,
  91. returnData = {},
  92. isReturn = true;
  93. for (let i = 0; i < list.length; i++) {
  94. if (list[i].required && list[i].value == "") {
  95. list[i].error = true;
  96. isReturn = false;
  97. } else {
  98. returnData[list[i].valueName] = list[i].value;
  99. }
  100. }
  101. this.setData({
  102. fromList: list
  103. })
  104. return {
  105. returnData,
  106. isReturn
  107. }
  108. }
  109. }
  110. })