index.js 3.6 KB

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