detail.vue 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <template>
  2. <el-card class="system-dic-container" style="position: relative;">
  3. <el-tabs v-model="activeName" class="demo-tabs" @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: 34px;">
  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. </el-card>
  16. </template>
  17. <script lang="ts">
  18. import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue';
  19. // import { Delete, Edit, Search, Share, Upload } from '@element-plus/icons-vue';
  20. import { ElMessage } from 'element-plus';
  21. import type { TabsPaneContext } from 'element-plus'
  22. import serverDetail from './component/serverDetail.vue'
  23. import { useRoute, useRouter } from 'vue-router';
  24. import api from '/@/api/network';
  25. interface TableDataState {
  26. resourceModalPro: {
  27. mode: string,
  28. content: string,
  29. },
  30. detail: {}
  31. }
  32. export default defineComponent({
  33. name: 'tunnelDetail',
  34. components: { serverDetail },
  35. props: {
  36. type: {
  37. type: String,
  38. default: ''
  39. }
  40. },
  41. setup(props, context) {
  42. const route = useRoute();
  43. const router = useRouter();
  44. const state = reactive<TableDataState>({
  45. resourceModalPro: {
  46. mode: '',
  47. content: ''
  48. },
  49. detail:{}
  50. });
  51. const activeName = ref('first')
  52. const getDetail = () => {
  53. const id = route.params && route.params.id;
  54. api.server.getDetail({"id": id}).then((res: any) => {
  55. state.detail = res
  56. })
  57. };
  58. const freshData = () => {
  59. getDetail()
  60. ElMessage.success('刷新成功');
  61. };
  62. const toEdit = () => {
  63. router.push(`/iotmanager/network/server/edit/${route.params && route.params.id}`)
  64. };
  65. onMounted(() => {
  66. getDetail()
  67. });
  68. const handleClick = (tab: TabsPaneContext, event: Event) => {
  69. // console.log(tab, event)
  70. }
  71. return {
  72. toEdit,
  73. activeName,
  74. freshData,
  75. getDetail,
  76. handleClick,
  77. ...toRefs(props),
  78. ...toRefs(state),
  79. };
  80. },
  81. });
  82. </script>
  83. <style scoped>
  84. .CodeMirror {
  85. width: 100%;
  86. height: 600px;
  87. font-size: 16px;
  88. }
  89. </style>