dialogs.vue 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  1. <template>
  2. <div class="dialog">
  3. <div>
  4. <button class="btn" @click="dialogVisible = true">日信息对比</button>
  5. <button class="btn" @click="dialog2Visible = true">消缺跟踪弹窗</button>
  6. <button class="btn" @click="dialog3Visible = true">指标排行弹窗</button>
  7. <button class="btn" @click="dialog4Visible = true">故障诊断弹窗</button>
  8. <button class="btn" @click="showDet">消缺跟踪</button>
  9. <el-dialog title="日信息对比" v-model="dialogVisible" width="70%" top="10vh" custom-class="modal" :close-on-click-modal="false">
  10. <dayinfo />
  11. </el-dialog>
  12. <el-dialog title="消缺跟踪" v-model="dialog2Visible" width="1400px" top="10vh" custom-class="modal" :close-on-click-modal="false">
  13. <Track />
  14. </el-dialog>
  15. <el-dialog title="风功率曲线" v-model="dialog3Visible" width="1400px" top="10vh" custom-class="modal" :close-on-click-modal="false">
  16. <ranking-pop />
  17. </el-dialog>
  18. <el-dialog title="故障诊断" v-model="dialog4Visible" width="1400px" top="10vh" custom-class="modal hide-header" :close-on-click-modal="false">
  19. <fault-diagnosis />
  20. </el-dialog>
  21. <defect-elimination-tracking ref="det" :show="showDefectEliminationTracking"></defect-elimination-tracking>
  22. </div>
  23. </div>
  24. </template>
  25. <script>
  26. import Dayinfo from "../HealthControl/dayinfo.vue";
  27. import DefectEliminationTracking from "../HealthControl/defect-elimination-tracking.vue";
  28. import FaultDiagnosis from "../malfunctionRecall/components/fault-diagnosis.vue";
  29. import RankingPop from "../HealthControl/ranking-pop.vue";
  30. import Track from "../HealthControl/track.vue";
  31. export default {
  32. setup() {},
  33. components: {
  34. Dayinfo,
  35. RankingPop,
  36. FaultDiagnosis,
  37. Track,
  38. DefectEliminationTracking,
  39. },
  40. data() {
  41. return {
  42. tabIndex: 0,
  43. dialogVisible: false,
  44. dialog2Visible: false,
  45. dialog3Visible: false,
  46. dialog4Visible: false,
  47. showDefectEliminationTracking: false,
  48. };
  49. },
  50. methods: {
  51. showDet() {
  52. this.$refs.det.show();
  53. },
  54. tabSelect(state) {
  55. this.tabIndex = state;
  56. },
  57. showMessage() {
  58. this.$alert("这是一段内容", "标题名称", {
  59. confirmButtonText: "确定",
  60. callback: (action) => {
  61. this.$message({
  62. type: "info",
  63. message: `action: ${action}`,
  64. });
  65. // this.$message({
  66. // type: "warning",
  67. // message: `action: ${action}`,
  68. // });
  69. // this.$message({
  70. // type: "success",
  71. // message: `action: ${action}`,
  72. // });
  73. // this.$message({
  74. // type: "error",
  75. // message: `action: ${action}`,
  76. // });
  77. },
  78. });
  79. },
  80. showComfirm() {
  81. this.$confirm("此操作将永久删除该文件, 是否继续?", "提示", {
  82. confirmButtonText: "确定",
  83. cancelButtonText: "取消",
  84. type: "warning",
  85. center: true,
  86. })
  87. .then(() => {
  88. this.$message({
  89. type: "success",
  90. message: "删除成功!",
  91. });
  92. })
  93. .catch(() => {
  94. this.$message({
  95. type: "info",
  96. message: "已取消删除",
  97. });
  98. });
  99. },
  100. },
  101. };
  102. </script>
  103. <style lang="less">
  104. .health-1 {
  105. .selections {
  106. display: flex;
  107. .item {
  108. flex: 0 0 128px;
  109. text-align: center;
  110. height: 33px;
  111. line-height: 33px;
  112. margin-right: 8px;
  113. color: @font-color;
  114. font-size: @fontsize-s;
  115. background: fade(@gray, 20);
  116. border: 1px solid fade(@gray, 20);
  117. &:hover,
  118. &.active {
  119. background: fade(@green, 20);
  120. border: 1px solid @green;
  121. color: @green;
  122. cursor: pointer;
  123. }
  124. }
  125. }
  126. .power-info {
  127. display: flex;
  128. .info-tab {
  129. flex: 0 0 156px;
  130. display: flex;
  131. flex-direction: column;
  132. height: 350px;
  133. margin-right: 1.4815vh;
  134. .tab {
  135. position: relative;
  136. flex: 0 0 auto;
  137. text-align: center;
  138. height: 33px;
  139. line-height: 33px;
  140. margin-right: 8px;
  141. color: @gray-l;
  142. font-size: 12px;
  143. background: fade(@gray, 20);
  144. border: 1px solid fade(@gray, 20);
  145. display: flex;
  146. align-items: center;
  147. i {
  148. margin: 0 1.4815vh;
  149. svg use {
  150. fill: @gray-l;
  151. }
  152. }
  153. &:hover,
  154. &.active {
  155. background: fade(@green, 20);
  156. border: 1px solid @green;
  157. color: @green;
  158. cursor: pointer;
  159. i svg use {
  160. fill: @green;
  161. }
  162. }
  163. &.active::after {
  164. box-sizing: content-box;
  165. width: 0px;
  166. height: 0px;
  167. position: absolute;
  168. right: -19px;
  169. padding: 0;
  170. border-bottom: 9px solid @green;
  171. border-top: 9px solid transparent;
  172. border-left: 9px solid transparent;
  173. border-right: 9px solid transparent;
  174. display: block;
  175. content: "";
  176. z-index: 10;
  177. transform: rotate(90deg);
  178. }
  179. &.active::before {
  180. box-sizing: content-box;
  181. width: 0px;
  182. height: 0px;
  183. position: absolute;
  184. right: -17px;
  185. padding: 0;
  186. border-bottom: 9px solid #063319;
  187. border-top: 9px solid transparent;
  188. border-left: 9px solid transparent;
  189. border-right: 9px solid transparent;
  190. display: block;
  191. content: "";
  192. z-index: 12;
  193. transform: rotate(90deg);
  194. }
  195. & + .tab {
  196. margin-top: 0.7407vh;
  197. }
  198. &:last-child {
  199. text-align: center;
  200. justify-content: center;
  201. }
  202. }
  203. .empty {
  204. flex: 1 0 auto;
  205. }
  206. }
  207. .info-chart {
  208. flex: 1 0 auto;
  209. }
  210. }
  211. .health-report {
  212. // 健康报告 按钮样式
  213. .actions {
  214. display: flex;
  215. .item {
  216. flex: 0 0 102px;
  217. text-align: center;
  218. line-height: 33px;
  219. margin-right: 8px;
  220. color: fade(@white, 75);
  221. font-size: @fontsize-s;
  222. &.green {
  223. background: @green;
  224. }
  225. &.purple {
  226. background: @purple;
  227. }
  228. &.gray {
  229. background: @gray;
  230. }
  231. }
  232. }
  233. .report-items {
  234. display: flex;
  235. flex-wrap: wrap;
  236. height: calc(100vh - 592px);
  237. .item {
  238. flex: 0 0 calc(100% / 6 - 16px);
  239. margin-bottom: 16px;
  240. & + .item {
  241. margin-left: 16px;
  242. }
  243. &:nth-child(6n + 1) {
  244. margin-left: 0px;
  245. }
  246. .title {
  247. background: fade(@gray, 40);
  248. // color: fade(@white, 75);
  249. color: @gray-l;
  250. line-height: 37px;
  251. padding-left: 16px;
  252. font-size: @fontsize-s;
  253. }
  254. .info {
  255. background: fade(@gray, 20);
  256. padding: 16px;
  257. font-size: @fontsize-s;
  258. color: @font-color;
  259. line-height: 1.5;
  260. p {
  261. margin: 0;
  262. line-height: 2;
  263. }
  264. .actions {
  265. display: flex;
  266. align-items: center;
  267. justify-content: center;
  268. .success {
  269. border-color: #05bb4c;
  270. color: #05bb4c;
  271. background: rgba(5, 187, 76, 0.2);
  272. }
  273. }
  274. }
  275. }
  276. }
  277. }
  278. }
  279. </style>