detail.vue 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <template>
  2. <div class="page bg border padding Ipt-2" style="position: relative;">
  3. <el-tabs v-model="activeName" @tab-click="handleClick">
  4. <el-tab-pane label="服务器详情" name="first">
  5. <serverDetail :detail="detail" />
  6. </el-tab-pane>
  7. <!-- <el-tab-pane label="相关详情" name="second">相关详情</el-tab-pane>
  8. <el-tab-pane label="通道" name="third">通道</el-tab-pane> -->
  9. </el-tabs>
  10. <div style="position: absolute;right:20px;top: 18px;">
  11. <el-icon @click="freshData" style="font-size: 16px;margin-right:6px;"><ele-RefreshRight /></el-icon>
  12. <!-- <el-icon style="font-size: 16px;margin: 0 6px;"><ele-Operation /></el-icon> -->
  13. <el-icon @click="toEdit" style="cursor: pointer;font-size: 16px;"><ele-Edit /></el-icon>
  14. </div>
  15. </div>
  16. </template>
  17. <script lang="ts">
  18. import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue';
  19. import { ElMessage } from 'element-plus';
  20. import type { TabsPaneContext } from 'element-plus';
  21. import serverDetail from './component/serverDetail.vue';
  22. import { useRoute, useRouter } from 'vue-router';
  23. import api from '/@/api/network';
  24. interface TableDataState {
  25. resourceModalPro: {
  26. mode: string,
  27. content: string,
  28. },
  29. detail: {}
  30. }
  31. export default defineComponent({
  32. name: 'tunnelDetail',
  33. components: { serverDetail },
  34. props: {
  35. type: {
  36. type: String,
  37. default: ''
  38. }
  39. },
  40. setup(props) {
  41. const route = useRoute();
  42. const router = useRouter();
  43. const state = reactive<TableDataState>({
  44. resourceModalPro: {
  45. mode: '',
  46. content: ''
  47. },
  48. detail:{}
  49. });
  50. const activeName = ref('first')
  51. const getDetail = () => {
  52. const id = route.params && route.params.id;
  53. api.server.getDetail({"id": id}).then((res: any) => {
  54. state.detail = res
  55. })
  56. };
  57. const freshData = () => {
  58. getDetail()
  59. ElMessage.success('刷新成功');
  60. };
  61. const toEdit = () => {
  62. router.push(`/iotmanager/network/server/edit/${route.params && route.params.id}`)
  63. };
  64. onMounted(() => {
  65. getDetail()
  66. });
  67. const handleClick = (tab: TabsPaneContext, event: Event) => {
  68. // console.log(tab, event)
  69. }
  70. return {
  71. toEdit,
  72. activeName,
  73. freshData,
  74. getDetail,
  75. handleClick,
  76. ...toRefs(props),
  77. ...toRefs(state),
  78. };
  79. },
  80. });
  81. </script>
  82. <style scoped>
  83. .CodeMirror {
  84. width: 100%;
  85. height: 600px;
  86. font-size: 16px;
  87. }
  88. </style>