index.js 2.9 KB

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