dk-dropdown-date.js 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. /*******************************************************************************
  2. * Copyright(c) 2022 dongke All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:
  5. * 2.功能描述:一览界面日期下拉组件
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * admin 2021-5-5 1.00 新建
  9. *******************************************************************************/
  10. const util = require('../../../utils/util.js')
  11. const Constant = require('../../../utils/Constants.js')
  12. Component({
  13. /**
  14. * 组件的属性列表
  15. */
  16. properties: {
  17. //默认值
  18. defaultValue: {
  19. type: String,
  20. default: '-1',
  21. },
  22. // 是否有
  23. blankFlag: {
  24. type: Boolean,
  25. default: true
  26. },
  27. // 该组件的编码名称(唯一)
  28. code:{
  29. type:String,
  30. default:''
  31. }
  32. },
  33. /**
  34. * 组件的初始数据
  35. */
  36. data: {
  37. show: false,
  38. active: null,
  39. dateDefault: {},
  40. dateTypeList: [],
  41. dateSearch: [new Date().getTime() + 100, new Date().getTime() + 100],
  42. // 往组件外返回值
  43. dataDefaultSearch: [],
  44. createTimeType: { text: '时间', value: -1 },
  45. },
  46. lifetimes: {
  47. attached: function () {
  48. this.init()
  49. },
  50. detached: function () {
  51. // 在组件实例被从页面节点树移除时执行
  52. },
  53. },
  54. /**
  55. * 组件的方法列表
  56. */
  57. methods: {
  58. init() {
  59. let dateTypeList = []
  60. if (this.data.blankFlag) {
  61. dateTypeList.push(this.data.createTimeType)
  62. }
  63. dateTypeList = dateTypeList.concat(Constant.searchDateSource);
  64. let dateDefault = {}
  65. let date = []
  66. // 默认值
  67. if (dateTypeList != null) {
  68. dateTypeList.forEach(item => {
  69. if (item.value + '' === this.data.defaultValue + '') {
  70. dateDefault.value = item.value
  71. dateDefault.text = item.text
  72. console.log('item', item)
  73. if (item.value + '' == '1') {
  74. date = [util.formatTime(new Date()).substring(0, 10), util.formatTime(new Date()).substring(0, 10)]
  75. }
  76. else if (item.value + '' == '2') {
  77. date = [util.formatTime(util.getCurrentWeek(0)).substring(0, 10), util.formatTime(util.getCurrentWeek(-6)).substring(0, 10)]
  78. }
  79. else if (item.value + '' == '3') {
  80. date = util.getCurrentMonth();
  81. }
  82. else if (item.value + '' == '6') {
  83. date = util.timeForMat(7)
  84. }
  85. else if (item.value + '' == '5') {
  86. date = util.timeForMat(30)
  87. }
  88. else if (item.value + '' == '-2') {
  89. date = [util.formatTime(new Date(this.data.dateSearch[0])).substring(0, 10),
  90. util.formatTime(new Date(this.data.dateSearch[1])).substring(0, 10)]
  91. }
  92. }
  93. })
  94. }
  95. this.setData({
  96. dateTypeList: dateTypeList,
  97. dateDefault: dateDefault,
  98. dataDefaultSearch: date,
  99. dateSearch: [new Date(this.data.dateSearch[0]).getTime(), new Date(this.data.dateSearch[1]).getTime()]
  100. })
  101. // 如果有默认值 ,需要传递出去
  102. if(this.data.defaultValue){
  103. this.chooseDefault();
  104. }
  105. },
  106. /**
  107. * 日期变化 查询
  108. * @param {*} e
  109. */
  110. choose(e) {
  111. let _this = this
  112. let item = e.currentTarget.dataset.item
  113. if (item.value == -2) {
  114. _this.setData({
  115. show: true
  116. })
  117. setTimeout(function () {
  118. _this.setData({
  119. active: 0
  120. })
  121. }, 100)
  122. } else {
  123. _this.setData({
  124. dateDefault: item
  125. })
  126. let date = []
  127. if (item.value == 1) {
  128. date = [util.formatDataTime(new Date()).substring(0, 10), util.formatDataTime(new Date()).substring(0, 10)]
  129. }
  130. else if (item.value == 2) {
  131. date = [util.formatDataTime(util.getCurrentWeek(0)).substring(0, 10), util.formatDataTime(util.getCurrentWeek(-6)).substring(0, 10)]
  132. }
  133. else if (item.value == 3) {
  134. date = util.getCurrentMonth();
  135. } else if (item.value == 4) {
  136. let startYear = util.getYear("s", 0)
  137. let endYear = util.getYear("e", 0)
  138. //本年
  139. date = [util.formatDataTime(new Date(startYear)).substring(0, 10),
  140. util.formatDataTime(new Date(endYear)).substring(0, 10)]
  141. }
  142. else if (item.value == 6) {
  143. //近30天
  144. date = util.timeForMat(7)
  145. }
  146. else if (item.value == 5) {
  147. //近30天
  148. date = util.timeForMat(30)
  149. }
  150. this.setData({
  151. dataDefaultSearch: date
  152. })
  153. this.triggerEvent('dateCommit', {code:this.data.code, date: date, dateDefault: this.data.dateDefault })
  154. }
  155. },
  156. /**
  157. * @desc : 设置默认值
  158. * @author : 周兴
  159. * @date : 2024/1/26 11:46
  160. */
  161. chooseDefault(){
  162. let defVal = this.data.defaultValue
  163. if (defVal != -2) {
  164. let date = []
  165. if (defVal == 1) {
  166. date = [util.formatTime(new Date()).substring(0, 10), util.formatTime(new Date()).substring(0, 10)]
  167. }
  168. else if (defVal == 2) {
  169. date = [util.formatTime(util.getCurrentWeek(0)).substring(0, 10), util.formatTime(util.getCurrentWeek(-6)).substring(0, 10)]
  170. }
  171. else if (defVal == 3) {
  172. date = util.getCurrentMonth();
  173. } else if (defVal == 4) {
  174. let startYear = util.getYear("s", 0)
  175. let endYear = util.getYear("e", 0)
  176. //本年
  177. date = [util.formatTime(new Date(startYear)).substring(0, 10),
  178. util.formatTime(new Date(endYear)).substring(0, 10)]
  179. }
  180. else if (defVal == 6) {
  181. //近7天
  182. date = util.timeForMat(7)
  183. }
  184. else if (defVal == 5) {
  185. //近30天
  186. date = util.timeForMat(30)
  187. }
  188. let filters = Constant.searchDateSource.filter(it=>it.value == defVal);
  189. if(filters && filters.length > 0){
  190. this.setData({
  191. dateDefault:filters[0]
  192. })
  193. this.triggerEvent('dateCommit', {code:this.data.code, date: date, dateDefault: this.data.dateDefault,initFlag:true })
  194. }
  195. }
  196. },
  197. /**
  198. * 日期变化 查询数据
  199. * @param {*} e
  200. */
  201. changeDate(e) {
  202. let dateSearch = this.data.dateSearch;
  203. dateSearch[e.currentTarget.dataset.index] = e.detail
  204. this.setData({
  205. dateSearch: dateSearch
  206. })
  207. },
  208. /**
  209. * 日期变化 查询数据
  210. * @param {*} e
  211. */
  212. onCloseChooseDate() {
  213. this.setData({
  214. show: false
  215. })
  216. this.setData({
  217. dateSearch: [new Date().getTime(), new Date().getTime()],
  218. })
  219. },
  220. /**
  221. * 日期变化 查询
  222. * @param {*} e
  223. */
  224. onConfirmChooseDate() {
  225. this.setData({
  226. show: false,
  227. dateDefault: this.data.dateTypeList[this.data.dateTypeList.length - 1]
  228. })
  229. let date = [util.formatTime(new Date(this.data.dateSearch[0])).substring(0, 10),
  230. util.formatTime(new Date(this.data.dateSearch[1])).substring(0, 10)]
  231. this.setData({
  232. dataDefaultSearch: date
  233. })
  234. this.triggerEvent('dateCommit', {code:this.data.code, date: date, dateDefault: this.data.dateDefault })
  235. },
  236. }
  237. })