dk-dropdown-date.js 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  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.formatDayTime(new Date()).substring(0, 10), util.formatDayTime(new Date()).substring(0, 10)]
  74. }
  75. else if (item.value + '' == '2') {
  76. date = [util.formatDayTime(util.getCurrentWeek(0)).substring(0, 10), util.formatDayTime(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.formatDayTime(new Date(this.data.dateSearch[0])).substring(0, 10),
  89. util.formatDayTime(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.formatDayTime(new Date()).substring(0, 10), util.formatDayTime(new Date()).substring(0, 10)]
  166. }
  167. else if (defVal == 2) {
  168. date = [util.formatDayTime(util.getCurrentWeek(0)).substring(0, 10), util.formatDayTime(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.formatDayTime(new Date(startYear)).substring(0, 10),
  177. util.formatDayTime(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. * @desc : 设置默认值
  198. * @author : 王英杰
  199. * @date : 2024/1/26 11:46
  200. */
  201. setChooseDefault(defaultValue){
  202. let defVal = defaultValue
  203. if (defVal != -2) {
  204. let date = []
  205. if (defVal == 1) {
  206. date = [util.formatDayTime(new Date()).substring(0, 10), util.formatDayTime(new Date()).substring(0, 10)]
  207. }
  208. else if (defVal == 2) {
  209. date = [util.formatDayTime(util.getCurrentWeek(0)).substring(0, 10), util.formatDayTime(util.getCurrentWeek(-6)).substring(0, 10)]
  210. }
  211. else if (defVal == 3) {
  212. date = util.getCurrentMonth();
  213. } else if (defVal == 4) {
  214. let startYear = util.getYear("s", 0)
  215. let endYear = util.getYear("e", 0)
  216. //本年
  217. date = [util.formatDayTime(new Date(startYear)).substring(0, 10),
  218. util.formatDayTime(new Date(endYear)).substring(0, 10)]
  219. }
  220. else if (defVal == 6) {
  221. //近7天
  222. date = util.timeForMat(7)
  223. }
  224. else if (defVal == 5) {
  225. //近30天
  226. date = util.timeForMat(30)
  227. }
  228. let filters = Constant.searchDateSource.filter(it=>it.value == defVal);
  229. if(filters && filters.length > 0){
  230. this.setData({
  231. dateDefault:filters[0]
  232. })
  233. this.triggerEvent('dateCommit', {code:this.data.code, date: date, dateDefault: this.data.dateDefault,initFlag:true })
  234. }
  235. }
  236. },
  237. /**
  238. * 日期变化 查询数据
  239. * @param {*} e
  240. */
  241. changeDate(e) {
  242. let dateSearch = this.data.dateSearch;
  243. dateSearch[e.currentTarget.dataset.index] = e.detail
  244. this.setData({
  245. dateSearch: dateSearch
  246. })
  247. },
  248. /**
  249. * 日期变化 查询数据
  250. * @param {*} e
  251. */
  252. onCloseChooseDate() {
  253. this.setData({
  254. show: false
  255. })
  256. this.setData({
  257. dateSearch: [new Date().getTime(), new Date().getTime()],
  258. })
  259. },
  260. /**
  261. * 日期变化 查询
  262. * @param {*} e
  263. */
  264. onConfirmChooseDate() {
  265. this.setData({
  266. show: false,
  267. dateDefault: this.data.dateTypeList[this.data.dateTypeList.length - 1]
  268. })
  269. let date = [util.formatDayTime(new Date(this.data.dateSearch[0])).substring(0, 10),
  270. util.formatDayTime(new Date(this.data.dateSearch[1])).substring(0, 10)]
  271. this.setData({
  272. dataDefaultSearch: date
  273. })
  274. this.triggerEvent('dateCommit', {code:this.data.code, date: date, dateDefault: this.data.dateDefault })
  275. },
  276. }
  277. })