dk-dropdown-date.js 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  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. if (item.value + '' == '1') {
  73. date = [util.formatTime(new Date()).substring(0, 10), util.formatTime(new Date()).substring(0, 10)]
  74. }
  75. else if (item.value + '' == '2') {
  76. date = [util.formatTime(util.getCurrentWeek(0)).substring(0, 10), util.formatTime(util.getCurrentWeek(-6)).substring(0, 10)]
  77. }
  78. else if (item.value + '' == '3') {
  79. date = util.getCurrentMonth();
  80. }
  81. else if (item.value + '' == '6') {
  82. date = util.timeForMat(7)
  83. }
  84. else if (item.value + '' == '5') {
  85. date = util.timeForMat(30)
  86. }
  87. else if (item.value + '' == '-2') {
  88. date = [util.formatTime(new Date(this.data.dateSearch[0])).substring(0, 10),
  89. util.formatTime(new Date(this.data.dateSearch[1])).substring(0, 10)]
  90. }
  91. }
  92. })
  93. }
  94. this.setData({
  95. dateTypeList: dateTypeList,
  96. dateDefault: dateDefault,
  97. dataDefaultSearch: date,
  98. dateSearch: [new Date(this.data.dateSearch[0]).getTime(), new Date(this.data.dateSearch[1]).getTime()]
  99. })
  100. // 如果有默认值 ,需要传递出去
  101. if(this.data.defaultValue){
  102. this.chooseDefault();
  103. }
  104. },
  105. /**
  106. * 日期变化 查询
  107. * @param {*} e
  108. */
  109. choose(e) {
  110. let _this = this
  111. let item = e.currentTarget.dataset.item
  112. if (item.value == -2) {
  113. _this.setData({
  114. show: true
  115. })
  116. setTimeout(function () {
  117. _this.setData({
  118. active: 0
  119. })
  120. }, 100)
  121. } else {
  122. _this.setData({
  123. dateDefault: item
  124. })
  125. let date = []
  126. if (item.value == 1) {
  127. date = [util.formatDataTime(new Date()).substring(0, 10), util.formatDataTime(new Date()).substring(0, 10)]
  128. }
  129. else if (item.value == 2) {
  130. date = [util.formatDataTime(util.getCurrentWeek(0)).substring(0, 10), util.formatDataTime(util.getCurrentWeek(-6)).substring(0, 10)]
  131. }
  132. else if (item.value == 3) {
  133. date = util.getCurrentMonth();
  134. } else if (item.value == 4) {
  135. let startYear = util.getYear("s", 0)
  136. let endYear = util.getYear("e", 0)
  137. //本年
  138. date = [util.formatDataTime(new Date(startYear)).substring(0, 10),
  139. util.formatDataTime(new Date(endYear)).substring(0, 10)]
  140. }
  141. else if (item.value == 6) {
  142. //近30天
  143. date = util.timeForMat(7)
  144. }
  145. else if (item.value == 5) {
  146. //近30天
  147. date = util.timeForMat(30)
  148. }
  149. this.setData({
  150. dataDefaultSearch: date
  151. })
  152. this.triggerEvent('dateCommit', {code:this.data.code, date: date, dateDefault: this.data.dateDefault })
  153. }
  154. },
  155. /**
  156. * @desc : 设置默认值
  157. * @author : 周兴
  158. * @date : 2024/1/26 11:46
  159. */
  160. chooseDefault(){
  161. let defVal = this.data.defaultValue
  162. if (defVal != -2) {
  163. let date = []
  164. if (defVal == 1) {
  165. date = [util.formatTime(new Date()).substring(0, 10), util.formatTime(new Date()).substring(0, 10)]
  166. }
  167. else if (defVal == 2) {
  168. date = [util.formatTime(util.getCurrentWeek(0)).substring(0, 10), util.formatTime(util.getCurrentWeek(-6)).substring(0, 10)]
  169. }
  170. else if (defVal == 3) {
  171. date = util.getCurrentMonth();
  172. } else if (defVal == 4) {
  173. let startYear = util.getYear("s", 0)
  174. let endYear = util.getYear("e", 0)
  175. //本年
  176. date = [util.formatTime(new Date(startYear)).substring(0, 10),
  177. util.formatTime(new Date(endYear)).substring(0, 10)]
  178. }
  179. else if (defVal == 6) {
  180. //近7天
  181. date = util.timeForMat(7)
  182. }
  183. else if (defVal == 5) {
  184. //近30天
  185. date = util.timeForMat(30)
  186. }
  187. let filters = Constant.searchDateSource.filter(it=>it.value == defVal);
  188. if(filters && filters.length > 0){
  189. this.setData({
  190. dateDefault:filters[0]
  191. })
  192. this.triggerEvent('dateCommit', {code:this.data.code, date: date, dateDefault: this.data.dateDefault,initFlag:true })
  193. }
  194. }
  195. },
  196. /**
  197. * 日期变化 查询数据
  198. * @param {*} e
  199. */
  200. changeDate(e) {
  201. let dateSearch = this.data.dateSearch;
  202. dateSearch[e.currentTarget.dataset.index] = e.detail
  203. this.setData({
  204. dateSearch: dateSearch
  205. })
  206. },
  207. /**
  208. * 日期变化 查询数据
  209. * @param {*} e
  210. */
  211. onCloseChooseDate() {
  212. this.setData({
  213. show: false
  214. })
  215. this.setData({
  216. dateSearch: [new Date().getTime(), new Date().getTime()],
  217. })
  218. },
  219. /**
  220. * 日期变化 查询
  221. * @param {*} e
  222. */
  223. onConfirmChooseDate() {
  224. this.setData({
  225. show: false,
  226. dateDefault: this.data.dateTypeList[this.data.dateTypeList.length - 1]
  227. })
  228. let date = [util.formatTime(new Date(this.data.dateSearch[0])).substring(0, 10),
  229. util.formatTime(new Date(this.data.dateSearch[1])).substring(0, 10)]
  230. this.setData({
  231. dataDefaultSearch: date
  232. })
  233. this.triggerEvent('dateCommit', {code:this.data.code, date: date, dateDefault: this.data.dateDefault })
  234. },
  235. }
  236. })