index.js 2.9 KB

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