dk-dropdown-date-month.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. /*******************************************************************************
  2. * Copyright(c) 2021 dongke All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:
  5. * 2.功能描述:一览界面日期下拉组件-年月
  6. * 注意:值是value
  7. * 编辑履历:
  8. * 作者 日期 版本 修改内容
  9. * admin 2021-5-5 1.00 新建
  10. *******************************************************************************/
  11. const util = require('../../../utils/util.js')
  12. Component({
  13. /**
  14. * 组件的属性列表
  15. */
  16. properties: {
  17. dateType: {
  18. type: String,
  19. default: 'createtime'
  20. },
  21. defaultValue: {
  22. type: String,
  23. default: '-1'
  24. },
  25. // 是否有
  26. blankFlag: {
  27. type: Boolean,
  28. default: true
  29. }
  30. },
  31. /**
  32. * 组件的初始数据
  33. */
  34. data: {
  35. show: false,
  36. active: null,
  37. dateDefault: {},
  38. dateTypeList: [],
  39. // dateSearch: [ new Date().toISOString().substring(0, 7), new Date().toISOString().substring(0, 7)],
  40. dateSearch: [new Date().getTime() + 100, new Date().getTime() + 100],
  41. // 往组件外返回值
  42. dataDefaultSearch: [],
  43. createTimeType: {
  44. text: '计提月',
  45. value: -1
  46. },
  47. createTimeTypeList: [
  48. {
  49. text: '自定义',
  50. value: -2
  51. },
  52. ],
  53. },
  54. lifetimes: {
  55. attached: function () {
  56. let dateTypeList = []
  57. let dateType = this.data.dateType
  58. // 创建日期
  59. if (dateType === 'createtime') {
  60. if (this.data.blankFlag) {
  61. dateTypeList.push(this.data.createTimeType)
  62. }
  63. dateTypeList = dateTypeList.concat(this.data.createTimeTypeList)
  64. }
  65. let dateDefault = {}
  66. let date = []
  67. // 默认值
  68. if (dateTypeList != null) {
  69. dateTypeList.forEach(item => {
  70. if (item.value + '' === this.data.defaultValue + '') {
  71. dateDefault.value = item.value
  72. dateDefault.text = item.text
  73. if (item.value + ''== '3') {
  74. date = [this.js_date_time(new Date()), this.js_date_time(new Date())]
  75. }
  76. else if(item.value + ''== '-2'){
  77. date = [this.js_date_time(new Date(this.data.dateSearch[0])),
  78. this.js_date_time(new Date(this.data.dateSearch[1]))]
  79. }
  80. }
  81. })
  82. }
  83. this.setData({
  84. dateTypeList: dateTypeList,
  85. dateDefault: dateDefault,
  86. dataDefaultSearch: date
  87. })
  88. },
  89. detached: function () {
  90. // 在组件实例被从页面节点树移除时执行
  91. },
  92. },
  93. /**
  94. * 组件的方法列表
  95. */
  96. methods: {
  97. /**
  98. * 日期变化 查询
  99. * @param {*} e
  100. */
  101. choose(e) {
  102. let _this = this
  103. let item = e.currentTarget.dataset.item
  104. if (item.value == -2) {
  105. _this.setData({
  106. show: true
  107. })
  108. setTimeout(function () {
  109. _this.setData({
  110. active: 0
  111. })
  112. }, 100)
  113. } else {
  114. _this.setData({
  115. dateDefault: item
  116. })
  117. let date = []
  118. if (item.value == 3) {
  119. date = [this.js_date_time(new Date()), this.js_date_time(new Date())]
  120. }
  121. this.setData({
  122. dataDefaultSearch: date
  123. })
  124. this.triggerEvent('dateCommit', {
  125. date: date,
  126. dateType: this.data.dateType,
  127. dateDefault: this.data.dateDefault
  128. })
  129. }
  130. },
  131. /**
  132. * 日期变化 查询数据
  133. * @param {*} e
  134. */
  135. changeDate(e) {
  136. let dateSearch = this.data.dateSearch;
  137. dateSearch[e.currentTarget.dataset.index] = e.detail
  138. this.setData({
  139. dateSearch: dateSearch
  140. })
  141. },
  142. /**时间戳转化时间 */
  143. js_date_time(unixtime) {
  144. var date = new Date(unixtime);
  145. var y = date.getFullYear();
  146. var m = date.getMonth() + 1;
  147. m = m < 10 ? ('0' + m) : m;
  148. var d = date.getDate();
  149. d = d < 10 ? ('0' + d) : d;
  150. var h = date.getHours();
  151. h = h < 10 ? ('0' + h) : h;
  152. var minute = date.getMinutes();
  153. var second = date.getSeconds();
  154. minute = minute < 10 ? ('0' + minute) : minute;
  155. second = second < 10 ? ('0' + second) : second;
  156. // return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;//年月日时分秒
  157. // return y + '-' + m + '-' + d + ' ' + h + ':' + minute;
  158. return y + '-' + m;
  159. },
  160. /**
  161. * 日期变化 查询数据
  162. * @param {*} e
  163. */
  164. onCloseChooseDate() {
  165. this.setData({
  166. show: false
  167. })
  168. this.setData({
  169. dateSearch: [new Date().getTime(), new Date().getTime()],
  170. })
  171. },
  172. /**
  173. * 日期变化 查询
  174. * @param {*} e
  175. */
  176. onConfirmChooseDate() {
  177. this.setData({
  178. show: false,
  179. dateDefault: this.data.dateTypeList[this.data.dateTypeList.length - 1]
  180. })
  181. let date = [this.js_date_time(new Date(this.data.dateSearch[0])),
  182. this.js_date_time(new Date(this.data.dateSearch[1]))
  183. ]
  184. this.setData({
  185. dataDefaultSearch: date
  186. })
  187. this.triggerEvent('dateCommit', {
  188. date: date,
  189. dateType: this.data.dateType,
  190. dateDefault: this.data.dateDefault
  191. })
  192. },
  193. }
  194. })