index.js 2.8 KB

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