region.js 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. "use strict";
  2. var select = [];
  3. var app = getApp();
  4. Component({
  5. data: {},
  6. ready: function () {
  7. if(app.globalData.oriList.length) this.init();
  8. },
  9. methods: {
  10. init(){
  11. var _this = this;
  12. select = [];
  13. var list = [
  14. {
  15. date: "2021-04-07",
  16. title: "大唐不夜城",
  17. id: 0,
  18. chirld: []
  19. }
  20. ];
  21. for (let i = 0; i < app.globalData.oriList.length; i++) {
  22. const ele = app.globalData.oriList[i];
  23. let sList = ele.clips.map((v, o) => {
  24. return {
  25. id: i + '-' + o,
  26. selectIndex: -1,
  27. duration: _this.format(v.duration),
  28. secDuration: v.duration,
  29. videoWidth: v.videoWidth,
  30. videoHeight: v.videoHeight,
  31. name: v.name,
  32. snaps: v.snaps,
  33. video: v.video,
  34. thumbUrl: v.thumbUrl,
  35. voice: ele.voice
  36. };
  37. })
  38. list[0].chirld.push(...sList)
  39. }
  40. _this.setData({ list: list });
  41. },
  42. selectItem: function () {
  43. var data = arguments[0].currentTarget.dataset;
  44. var list = JSON.parse(JSON.stringify(this.data.list));
  45. var selectItem = list[data.pindex].chirld[data.index];
  46. this.downFile(selectItem).then(res => {
  47. selectItem.type = "video";
  48. var selectList = [];
  49. var push = true;
  50. for (var i = 0; i < select.length; i++) {
  51. var v = select[i];
  52. if (v.id !== data.id)
  53. continue;
  54. list[v.pindex].chirld[v.index].selectIndex = -1;
  55. select.splice(i, 1);
  56. push = false;
  57. break;
  58. }
  59. select.length < 11 && push && select.push(data);
  60. for (var i = 0; i < select.length; i++) {
  61. var v = select[i];
  62. list[v.pindex].chirld[v.index].selectIndex = i + 1;
  63. selectList.push(list[v.pindex].chirld[v.index])
  64. }
  65. this.setData({
  66. list: list
  67. });
  68. this.triggerEvent('select', selectList);
  69. });
  70. },
  71. format(s) {
  72. let sco = Math.floor(s % 60);
  73. let min = Math.floor(s / 60);
  74. let hour = Math.floor(min / 60);
  75. let time = hour > 9 ? hour : "0" + hour;
  76. time += min > 9 ? ":" + min : ":0" + min;
  77. time += sco > 9 ? ":" + sco : ":0" + sco;
  78. return time
  79. },
  80. downFile(v) {
  81. return new Promise((resolve, reason) => {
  82. resolve(v);
  83. })
  84. }
  85. }
  86. });