dk-dropdown-date.js 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  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. Component({
  12. /**
  13. * 组件的属性列表
  14. */
  15. properties: {
  16. //类型
  17. dateType: {
  18. type: String,
  19. default: 'createtime'
  20. },
  21. //默认值
  22. defaultValue: {
  23. type: String,
  24. default: '-1'
  25. },
  26. // 是否有
  27. blankFlag: {
  28. type: Boolean,
  29. default: true
  30. }
  31. },
  32. /**
  33. * 组件的初始数据
  34. */
  35. data: {
  36. show: false,
  37. active: null,
  38. dateDefault: {},
  39. dateTypeList: [],
  40. dateSearch: [new Date().getTime() + 100, new Date().getTime() + 100],
  41. // 往组件外返回值
  42. dataDefaultSearch: [],
  43. createTimeType: { text: '时间', value: -1 },
  44. createTimeTypeList: [
  45. { text: '本日', value: 1 },
  46. { text: '本周', value: 2 },
  47. { text: '本月', value: 3 },
  48. { text: '本年', value: 4 },
  49. { text: '近7天', value: 6 },
  50. { text: '近30天', value: 5 },
  51. { text: '自定义', value: -2 },
  52. ],
  53. accountTimeType: { text: '时间', value: -1 },
  54. accountTimeTypeList: [
  55. { text: '本日', value: 1 },
  56. { text: '本周', value: 2 },
  57. { text: '本月', value: 3 },
  58. { text: '自定义', value: -2 },
  59. ],
  60. deliveryDateType: { text: '时间', value: -1 },
  61. deliveryDateTypeList: [
  62. { text: '本日', value: 1 },
  63. { text: '本周', value: 2 },
  64. { text: '本月', value: 3 },
  65. { text: '自定义', value: -2 },
  66. ],
  67. installDateType: { text: '时间', value: -1 },
  68. installDateTypeList: [
  69. { text: '本日', value: 1 },
  70. { text: '本周', value: 2 },
  71. { text: '本月', value: 3 },
  72. { text: '自定义', value: -2 },
  73. ],
  74. repairDateType: { text: '时间', value: -1 },
  75. repairDateTypeList: [
  76. { text: '本日', value: 1 },
  77. { text: '本周', value: 2 },
  78. { text: '本月', value: 3 },
  79. { text: '自定义', value: -2 },
  80. ],
  81. presaleDateType: { text: '时间', value: -1 },
  82. presaleDateTypeList: [
  83. { text: '本日', value: 1 },
  84. { text: '本周', value: 2 },
  85. { text: '本月', value: 3 },
  86. { text: '自定义', value: -2 },
  87. ],
  88. customDateType: { text: '时间', value: -1 },
  89. customDateTypeList: [
  90. { text: '本日', value: 1 },
  91. { text: '本周', value: 2 },
  92. { text: '本月', value: 3 },
  93. { text: '自定义', value: -2 },
  94. ],
  95. },
  96. lifetimes: {
  97. attached: function () {
  98. this.init()
  99. },
  100. detached: function () {
  101. // 在组件实例被从页面节点树移除时执行
  102. },
  103. },
  104. /**
  105. * 组件的方法列表
  106. */
  107. methods: {
  108. init() {
  109. let dateTypeList = []
  110. let dateType = this.data.dateType
  111. // 创建日期
  112. if (dateType === 'createtime') {
  113. if (this.data.blankFlag) {
  114. dateTypeList.push(this.data.createTimeType)
  115. }
  116. dateTypeList = dateTypeList.concat(this.data.createTimeTypeList)
  117. }
  118. // 账务日期
  119. else if (dateType === 'accountdate') {
  120. // dateTypeList = this.data.accountTimeTypeList
  121. if (this.data.blankFlag) {
  122. dateTypeList.push(this.data.accountTimeType)
  123. }
  124. dateTypeList = dateTypeList.concat(this.data.accountTimeTypeList)
  125. }
  126. // 送货日期
  127. else if (dateType === 'deliverydate') {
  128. if (this.data.blankFlag) {
  129. dateTypeList.push(this.data.deliveryDateType)
  130. }
  131. dateTypeList = dateTypeList.concat(this.data.deliveryDateTypeList)
  132. }
  133. // 安装日期
  134. else if (dateType === 'installdate') {
  135. if (this.data.blankFlag) {
  136. dateTypeList.push(this.data.installDateType)
  137. }
  138. dateTypeList = dateTypeList.concat(this.data.installDateTypeList)
  139. }
  140. // 维修日期
  141. else if (dateType === 'repairdate') {
  142. if (this.data.blankFlag) {
  143. dateTypeList.push(this.data.installDateType)
  144. }
  145. dateTypeList = dateTypeList.concat(this.data.presaleDateTypeList)
  146. }
  147. else if (dateType === 'presaledate') {
  148. if (this.data.blankFlag) {
  149. dateTypeList.push(this.data.presaleDateType)
  150. }
  151. dateTypeList = dateTypeList.concat(this.data.presaleDateTypeList)
  152. }
  153. else if (dateType === 'customdate') {
  154. if (this.data.blankFlag) {
  155. dateTypeList.push(this.data.customDateType)
  156. }
  157. dateTypeList = dateTypeList.concat(this.data.customDateTypeList)
  158. }
  159. let dateDefault = {}
  160. let date = []
  161. // debugger
  162. // 默认值
  163. if (dateTypeList != null) {
  164. dateTypeList.forEach(item => {
  165. if (item.value + '' === this.data.defaultValue + '') {
  166. dateDefault.value = item.value
  167. dateDefault.text = item.text
  168. console.log('item', item)
  169. if (item.value + '' == '1') {
  170. date = [util.formatTime(new Date()).substring(0, 10), util.formatTime(new Date()).substring(0, 10)]
  171. }
  172. else if (item.value + '' == '2') {
  173. date = [util.formatTime(util.getCurrentWeek(0)).substring(0, 10), util.formatTime(util.getCurrentWeek(-6)).substring(0, 10)]
  174. }
  175. else if (item.value + '' == '3') {
  176. date = util.getCurrentMonth();
  177. }
  178. else if (item.value + '' == '6') {
  179. date = util.timeForMat(7)
  180. }
  181. else if (item.value + '' == '5') {
  182. date = util.timeForMat(30)
  183. }
  184. else if (item.value + '' == '-2') {
  185. date = [util.formatTime(new Date(this.data.dateSearch[0])).substring(0, 10),
  186. util.formatTime(new Date(this.data.dateSearch[1])).substring(0, 10)]
  187. }
  188. }
  189. })
  190. }
  191. this.setData({
  192. dateTypeList: dateTypeList,
  193. dateDefault: dateDefault,
  194. dataDefaultSearch: date,
  195. dateSearch: [new Date(this.data.dateSearch[0]).getTime(), new Date(this.data.dateSearch[1]).getTime()]
  196. }) },
  197. /**
  198. * 日期变化 查询
  199. * @param {*} e
  200. */
  201. choose(e) {
  202. let _this = this
  203. let item = e.currentTarget.dataset.item
  204. if (item.value == -2) {
  205. _this.setData({
  206. show: true
  207. })
  208. setTimeout(function () {
  209. _this.setData({
  210. active: 0
  211. })
  212. }, 100)
  213. } else {
  214. _this.setData({
  215. dateDefault: item
  216. })
  217. let date = []
  218. if (item.value == 1) {
  219. date = [util.formatTime(new Date()).substring(0, 10), util.formatTime(new Date()).substring(0, 10)]
  220. }
  221. else if (item.value == 2) {
  222. date = [util.formatTime(util.getCurrentWeek(0)).substring(0, 10), util.formatTime(util.getCurrentWeek(-6)).substring(0, 10)]
  223. }
  224. else if (item.value == 3) {
  225. date = util.getCurrentMonth();
  226. } else if (item.value == 4) {
  227. let startYear = util.getYear("s", 0)
  228. let endYear = util.getYear("e", 0)
  229. //本年
  230. date = [util.formatTime(new Date(startYear)).substring(0, 10),
  231. util.formatTime(new Date(endYear)).substring(0, 10)]
  232. }
  233. else if (item.value == 6) {
  234. //近30天
  235. date = util.timeForMat(7)
  236. }
  237. else if (item.value == 5) {
  238. //近30天
  239. date = util.timeForMat(30)
  240. }
  241. this.setData({
  242. dataDefaultSearch: date
  243. })
  244. this.triggerEvent('dateCommit', { date: date, dateType: this.data.dateType, dateDefault: this.data.dateDefault })
  245. }
  246. },
  247. /**
  248. * 日期变化 查询数据
  249. * @param {*} e
  250. */
  251. changeDate(e) {
  252. let dateSearch = this.data.dateSearch;
  253. dateSearch[e.currentTarget.dataset.index] = e.detail
  254. this.setData({
  255. dateSearch: dateSearch
  256. })
  257. },
  258. /**
  259. * 日期变化 查询数据
  260. * @param {*} e
  261. */
  262. onCloseChooseDate() {
  263. this.setData({
  264. show: false
  265. })
  266. this.setData({
  267. dateSearch: [new Date().getTime(), new Date().getTime()],
  268. })
  269. },
  270. /**
  271. * 日期变化 查询
  272. * @param {*} e
  273. */
  274. onConfirmChooseDate() {
  275. this.setData({
  276. show: false,
  277. dateDefault: this.data.dateTypeList[this.data.dateTypeList.length - 1]
  278. })
  279. let date = [util.formatTime(new Date(this.data.dateSearch[0])).substring(0, 10),
  280. util.formatTime(new Date(this.data.dateSearch[1])).substring(0, 10)]
  281. this.setData({
  282. dataDefaultSearch: date
  283. })
  284. this.triggerEvent('dateCommit', { date: date, dateType: this.data.dateType, dateDefault: this.data.dateDefault })
  285. },
  286. }
  287. })