index.vue 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. <template>
  2. <!-- 备份 -->
  3. <div
  4. :style="{ height: height + 'px' }"
  5. :class="cls" :data-id="copyDetail.id">
  6. <div class="v-widget-item-header"><img
  7. :src="copyDetail.titleImgUrl"
  8. class="v-widget-item-header-icon">
  9. <div class="v-widget-item-header-title"><span
  10. class="v-widget-item-header-title-text">
  11. {{copyDetail.title}}
  12. </span></div>
  13. <div class="v-widget-item-header-tools">
  14. <div
  15. class="v-widget-item-header-tool-icon minimize"
  16. @click="minWidgetItem"
  17. v-if="maxHeight"
  18. ></div>
  19. <div
  20. class="v-widget-item-header-tool-icon maximize"
  21. @click="maxWidgetItem"
  22. v-else
  23. ></div>
  24. <div class="v-widget-item-header-tool-icon close" @click="closeWidgetItem(copyDetail.title)"></div>
  25. </div>
  26. </div>
  27. <div class="v-widget-item-content">
  28. <div class=" x-panel sds-widget-gridpanel syno-sds-backupapp-widget-panel x-panel-noborder x-grid-panel"
  29. style="width: 318px;">
  30. <div class="x-panel-bwrap">
  31. <div class="x-panel-body x-panel-body-noheader x-panel-body-noborder"
  32. style="width: 318px; height: 168px;">
  33. <div class="x-grid3" hidefocus="true"
  34. style="width: 318px; height: 168px;">
  35. <div class="x-grid3-viewport">
  36. <div class="x-grid3-scroller"
  37. style="overflow: hidden; width: 318px; height: 168px;">
  38. <div class="x-grid3-body" style="width:290px;">
  39. <div class="x-grid3-row x-grid3-row-first"
  40. style="width:290px;" v-for="detailMessageList in copyDetail.detailMessageList" :key="detailMessageList.id">
  41. <table class="x-grid3-row-table"
  42. border="0" cellspacing="0"
  43. cellpadding="0"
  44. style="width:290px;">
  45. <tbody>
  46. <tr>
  47. <td class="x-grid3-col x-grid3-cell x-grid3-td-bkpstatus x-grid3-cell-first x-grid3-cell-first-visible x-grid3-cell-last-visible "
  48. style="width: 288px;"
  49. tabindex="0">
  50. <div
  51. class="x-grid3-cell-inner x-grid3-col-bkpstatus x-unselectable">
  52. <div
  53. class="syno-sds-backupapp-scedule-enable">
  54. <div
  55. class="syno-sds-backupapp-scedule-icon" :class="detailMessageList.cls">
  56. </div>
  57. <div
  58. class="syno-sds-backupapp-scedule-content">
  59. <div
  60. class="syno-sds-backupapp-scedule-title-bar">
  61. <div
  62. class="syno-sds-backupapp-scedule-title">
  63. {{detailMessageList.title}}
  64. </div>
  65. <div
  66. class="syno-sds-backupapp-scedule-time">
  67. {{detailMessageList.text}}
  68. </div>
  69. </div>
  70. <div
  71. class="">
  72. <div
  73. class="syno-sds-backupapp-scedule-task">
  74. {{detailMessageList.text}}
  75. </div>
  76. </div>
  77. </div>
  78. </div>
  79. </div>
  80. </td>
  81. </tr>
  82. </tbody>
  83. </table>
  84. </div>
  85. </div><a href="#" class="x-grid3-focus"
  86. tabindex="-1"
  87. style="left: 0px; top: 0px;"></a>
  88. </div>
  89. <div class="arrow-scroller">
  90. <div class="up arrow-disabled">
  91. <div class="arrow-up"></div>
  92. </div>
  93. <div class="down arrow-disabled">
  94. <div class="arrow-down"></div>
  95. </div>
  96. </div>
  97. </div>
  98. <div class="x-grid3-resize-marker">
  99. &nbsp;</div>
  100. <div class="x-grid3-resize-proxy">&nbsp;
  101. </div>
  102. </div>
  103. </div>
  104. </div>
  105. </div>
  106. </div>
  107. </div>
  108. </template>
  109. <script>
  110. export default {
  111. mounted() {
  112. this.$bus.on("showOrHiddenWidgetItem", this.showOrHiddenWidgetItem);
  113. },
  114. data() {
  115. return {
  116. height: 208,
  117. cls: "v-widget-item sds-window-v5 syno-sds-widget-item",
  118. maxHeight: true,
  119. copyDetail:{
  120. id: 7,
  121. title: '备份',
  122. titleImgUrl: '../../../../../public/image/index/fileCopy.png',
  123. detailMessageList: [
  124. {
  125. id: 10,
  126. title: '备份结果',
  127. text: '--:--:--',
  128. task: ` 任务名称: 无任何备份结果`,
  129. cls: 'no-result',
  130. },
  131. {
  132. id: 11,
  133. title: '备份计划管理',
  134. text: '--:--:--',
  135. task: `任务名称: 没有计划备份`,
  136. cls: 'schedule-inactive',
  137. }
  138. ]
  139. }
  140. }
  141. },
  142. methods: {
  143. // 高度变小
  144. minWidgetItem() {
  145. this.height = 122;
  146. this.maxHeight = false;
  147. },
  148. // 恢复高度
  149. maxWidgetItem() {
  150. this.height = 208;
  151. this.maxHeight = true;
  152. },
  153. // 关闭widgetItem
  154. closeWidgetItem(title) {
  155. this.cls = "v-widget-item sds-window-v5 syno-sds-widget-item";
  156. this.$bus.emit("closeWidgetItem", title);
  157. let widgetItemArray = document.querySelectorAll(
  158. ".v-widget-window .v-widget-item.active"
  159. );
  160. this.$bus.emit("changeThumbHeight", widgetItemArray.length - 1);
  161. },
  162. // 显示或隐藏本页面
  163. showOrHiddenWidgetItem(obj) {
  164. if (obj.title === this.copyDetail.title) {
  165. this.cls = obj.cls;
  166. this.height = 208
  167. }
  168. },
  169. },
  170. components:{
  171. },
  172. name:'Copy',
  173. }
  174. </script>