index.vue 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
  1. <template>
  2. <div class="home">
  3. <div class="second">
  4. <div class="topPanel">
  5. <div class="tPanel">
  6. <el-table size="mini" :data="tableData">
  7. <el-table-column prop="date" label="数据">
  8. </el-table-column>
  9. <el-table-column prop="name" label="状态">
  10. </el-table-column>
  11. </el-table>
  12. </div>
  13. <div class="tPanel"></div>
  14. <div class="tPanel"></div>
  15. <div class="tPanel"></div>
  16. </div>
  17. <div class="step">
  18. <div class="yuan">
  19. <div class="img yuanBg odd">
  20. <div class="tag">原始数据</div>
  21. </div>
  22. </div>
  23. <div class="one">
  24. <div class="img oneBg even" @click="handelDenoising">
  25. <div class="tag">去噪</div>
  26. </div>
  27. </div>
  28. <div class="two">
  29. <div class="img twoBg odd" @click="handelCompletion">
  30. <div class="tag">扩充</div>
  31. </div>
  32. </div>
  33. <div class="three">
  34. <div class="img threeBg even" @click="handelExpansion">
  35. <div class="tag">补全</div>
  36. </div>
  37. </div>
  38. <div class="four">
  39. <div class="img fourBg odd" @click="handelFeatureExtraction">
  40. <div class="tag">特征提取</div>
  41. </div>
  42. </div>
  43. <div class="five">
  44. <div class="img fiveBg even" @click="handelAssessment">
  45. <div class="tag">退化评估</div>
  46. </div>
  47. </div>
  48. <div class="six">
  49. <div class="img sixBg odd" @click="handelFaultPrediction">
  50. <div class="tag">故障预测</div>
  51. </div>
  52. </div>
  53. <div class="final">
  54. </div>
  55. </div>
  56. <div class="bottomPanel">
  57. <div class="bPanel">
  58. <el-table size="mini" :data="tableData">
  59. <el-table-column prop="date" label="数据">
  60. </el-table-column>
  61. <el-table-column prop="name" label="状态">
  62. </el-table-column>
  63. </el-table>
  64. </div>
  65. <div class="bPanel"></div>
  66. <div class="bPanel"></div>
  67. <div class="bPanel"></div>
  68. </div>
  69. </div>
  70. <div class="first">
  71. <h4 style="margin:13px 0px 0px 20px;color: #fff;">算法统计</h4>
  72. <div class="chart">
  73. <RingChart />
  74. <BarChart width="700px" />
  75. </div>
  76. </div>
  77. <el-dialog title="选择数据" :visible.sync="dialogVisible" width="30%">
  78. <span>这是一段信息</span>
  79. <span slot="footer" class="dialog-footer">
  80. <el-button @click="dialogVisible = false">取 消</el-button>
  81. <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
  82. </span>
  83. </el-dialog>
  84. </div>
  85. </template>
  86. <script>
  87. import CountTo from 'vue-count-to'
  88. import RingChart from '@/views/homePage/ringChart'
  89. import BarChart from '@/views/dashboard/BarChart'
  90. export default {
  91. name: 'Index',
  92. components: {
  93. CountTo,
  94. RingChart,
  95. BarChart,
  96. },
  97. data() {
  98. return {
  99. // 版本号
  100. version: '3.8.6',
  101. imageSrc: '/流程图.png',
  102. dialogVisible: false,
  103. tableData: [{
  104. date: 'xxxxxxx',
  105. name: '已完成'
  106. }, {
  107. date: 'xxxxx',
  108. name: '进行中'
  109. }, {
  110. date: 'xxxxx',
  111. name: '已完成'
  112. }, {
  113. date: 'xxxx',
  114. name: '已完成'
  115. }]
  116. }
  117. },
  118. methods: {
  119. goTarget(href) {
  120. window.open(href, '_blank')
  121. },
  122. handleSetLineChartData(type) {
  123. this.$emit('handleSetLineChartData', type)
  124. },
  125. handelDenoising() {
  126. this.dialogVisible = true
  127. },
  128. handelCompletion() {
  129. this.dialogVisible = true
  130. },
  131. handelExpansion() {
  132. this.dialogVisible = true
  133. },
  134. handelFeatureExtraction() {
  135. this.dialogVisible = true
  136. },
  137. handelAssessment() {
  138. this.dialogVisible = true
  139. },
  140. handelFaultPrediction() {
  141. this.dialogVisible = true
  142. }
  143. },
  144. }
  145. </script>
  146. <style scoped lang="scss">
  147. .home {
  148. width: 100%;
  149. /* 设置宽度为100%,以充满父 div 的宽度 */
  150. min-height: calc(100vh - 84px);
  151. /* 设置高度为100%,以充满父 div 的高度 */
  152. // background-color: #f4f4f4;
  153. overflow: hidden;
  154. }
  155. .first {
  156. width: 97%;
  157. height: 210px;
  158. margin: 20px;
  159. // background-color: white;
  160. border-radius: 15px;
  161. overflow: hidden;
  162. // box-shadow: 0 0 10px rgba(63, 155, 255, 0.5);
  163. // background: url("../assets/images/msgBg3.png") no-repeat center / contain;
  164. }
  165. .chart {
  166. display: flex;
  167. justify-content: space-around;
  168. margin-left: 30px;
  169. }
  170. .second {
  171. width: 97%;
  172. height: 440px;
  173. margin: 50px 20px;
  174. // overflow: hidden;
  175. display: flex;
  176. flex-direction: column;
  177. .step {
  178. width: 100%;
  179. height: 120px;
  180. display: flex;
  181. justify-content: space-around;
  182. .yuan,
  183. .one,
  184. .two,
  185. .three,
  186. .four,
  187. .five,
  188. .six,
  189. .final {
  190. width: 12%;
  191. height: 100%;
  192. text-align: center;
  193. }
  194. .item {
  195. margin-top: 10px;
  196. margin-right: 40px;
  197. }
  198. .img {
  199. width: 40%;
  200. height: 95%;
  201. margin: 0 auto;
  202. position: relative;
  203. }
  204. .img::after {
  205. content: "";
  206. position: absolute;
  207. top: 50%;
  208. transform: translateX(24%);
  209. width: 180%;
  210. height: 1px;
  211. // background-color: #546882;
  212. background-color: #00aaff;
  213. box-shadow: 0 5px 15px rgba(0, 170, 255, 0.5);
  214. }
  215. .odd::before {
  216. content: "";
  217. position: absolute;
  218. transform: translateY(-80%);
  219. width: 1px;
  220. height: 50%;
  221. // background-color: #546882;
  222. background-color: #00aaff;
  223. box-shadow: 0 5px 15px rgba(0, 170, 255, 0.5);
  224. }
  225. .even::before {
  226. content: "";
  227. position: absolute;
  228. bottom: 0;
  229. transform: translateY(60%);
  230. width: 1px;
  231. height: 50%;
  232. // background-color: #546882;00aaff
  233. background-color: #00aaff;
  234. box-shadow: 0 5px 15px rgba(0, 170, 255, 0.5);
  235. }
  236. .yuanBg {
  237. background: url("../assets/images/yuan.png") no-repeat center / contain;
  238. }
  239. .oneBg {
  240. background: url("../assets/images/one.png") no-repeat center / contain;
  241. }
  242. .twoBg {
  243. background: url("../assets/images/two.png") no-repeat center / contain;
  244. }
  245. .threeBg {
  246. background: url("../assets/images/three.png") no-repeat center / contain;
  247. }
  248. .fourBg {
  249. background: url("../assets/images/four.png") no-repeat center / contain;
  250. }
  251. .fiveBg {
  252. background: url("../assets/images/five.png") no-repeat center / contain;
  253. }
  254. .sixBg {
  255. background: url("../assets/images/six.png") no-repeat center / contain;
  256. }
  257. .tag {
  258. color: #fff;
  259. background: linear-gradient(to right, rgba(8, 200, 236, 0), rgba(8, 200, 236, 0.8), rgba(8, 200, 236, 0.8), rgba(8, 200, 236, 0));
  260. position: absolute;
  261. top: -15px;
  262. left: 100%;
  263. }
  264. }
  265. .topPanel {
  266. width: 90%;
  267. height: 37%;
  268. display: flex;
  269. justify-content: space-between;
  270. margin-bottom: 1.5%;
  271. }
  272. .bottomPanel {
  273. width: 90%;
  274. height: 37%;
  275. display: flex;
  276. justify-content: space-between;
  277. margin-left: 11%;
  278. margin-top: 1%;
  279. }
  280. .tPanel,
  281. .bPanel {
  282. // position: relative;
  283. width: 18%;
  284. height: 95%;
  285. overflow: auto;
  286. // background: url("../assets/images/msgBg3.png") no-repeat center / contain;
  287. // background: rgba(0, 0, 0, 0.15);
  288. border: 2px solid transparent;
  289. background-clip: padding-box;
  290. box-shadow: 0 0 10px rgba(63, 155, 255, 0.5);
  291. border-radius: 5%;
  292. }
  293. }
  294. .square {
  295. width: 90px;
  296. height: 50px;
  297. line-height: 50px;
  298. text-align: center;
  299. border-radius: 12px;
  300. font-size: 14px;
  301. border: 2px solid grey;
  302. }
  303. .diamond {
  304. height: 100px;
  305. width: 100px;
  306. transform: rotateZ(45deg) skew(-20deg, -20deg);
  307. position: relative;
  308. border: 2px solid grey;
  309. .diamond-p {
  310. position: absolute;
  311. width: 140px;
  312. top: 14%;
  313. left: -17%;
  314. transform: skew(20deg, 20deg) rotateZ(-45deg);
  315. }
  316. }
  317. ::-webkit-scrollbar {
  318. display: none;
  319. }
  320. </style>