index.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <template>
  2. <div class="app-container model-container">
  3. <search :addText="addText" @handle="handleSearch">
  4. <el-input v-model="params.name" style="width: 240px;margin-right: 10px" placeholder="请输入指标名称"/>
  5. <el-select v-model="params.type" style="margin-right: 10px">
  6. <el-option v-for="item in typeOption" :key="item.value" :label="item.name" :value="item.value"/>
  7. </el-select>
  8. </search>
  9. <div class="table-content">
  10. <el-table
  11. ref="multipleTableRef"
  12. :data="tableData"
  13. border
  14. style="width: 100%"
  15. >
  16. <el-table-column type="index" width="55" align="center" label="#"/>
  17. <el-table-column label="Date" width="120">
  18. <template #default="scope">{{ scope.row.date }}</template>
  19. </el-table-column>
  20. <el-table-column property="name" label="Name" width="120"/>
  21. <el-table-column property="address" label="Address"/>
  22. <el-table-column label="edit" width="120">
  23. <template #default="scope">
  24. <el-button link type="primary">编辑</el-button>
  25. <el-button link type="info">删除</el-button>
  26. </template>
  27. </el-table-column>
  28. </el-table>
  29. </div>
  30. <pagination :total="total" :size="params.size" @size-change="sizeChange"/>
  31. </div>
  32. <el-dialog
  33. v-model="dialogVisible"
  34. :title="title"
  35. width="600"
  36. top="30vh"
  37. >
  38. <add-definition />
  39. <template #footer>
  40. <div class="dialog-footer">
  41. <el-button type="primary" @click="dialogVisible = false">
  42. 提交
  43. </el-button>
  44. <el-button @click="dialogVisible = false">取消</el-button>
  45. </div>
  46. </template>
  47. </el-dialog>
  48. </template>
  49. <script setup lang="ts">
  50. import search from "../../component/search.vue"
  51. import pagination from "../../component/pagination.vue"
  52. import addDefinition from "./component/addDefinition.vue"
  53. import {reactive, ref} from "vue";
  54. import {ElTable} from "element-plus"
  55. const title = ref<string>('添加指标')
  56. const dialogVisible = ref<boolean>(false)
  57. const total = ref<number>(100)
  58. const params = reactive({
  59. name: '',
  60. page: 1,
  61. size: 10,
  62. type: 0
  63. })
  64. const typeOption = [
  65. {name: "全部", value: 0},
  66. {name: "CPU指标", value: 1},
  67. {name: "内存指标", value: 2},
  68. {name: "磁盘指标", value: 3}
  69. ]
  70. const addText = "新建指标"
  71. const handleSearch = (event) => {
  72. switch (event) {
  73. case "add":
  74. dialogVisible.value = true
  75. title.value = "新建指标定义"
  76. break;
  77. }
  78. }
  79. interface User {
  80. date: string
  81. name: string
  82. address: string
  83. }
  84. const sizeChange = (event) => {
  85. }
  86. const multipleTableRef = ref<InstanceType<typeof ElTable>>()
  87. const tableData: User[] = [
  88. {
  89. date: '2016-05-03',
  90. name: 'Tom',
  91. address: 'No. 189, Grove St, Los Angeles',
  92. },
  93. {
  94. date: '2016-05-02',
  95. name: 'Tom',
  96. address: 'No. 189, Grove St, Los Angeles',
  97. },
  98. {
  99. date: '2016-05-04',
  100. name: 'Tom',
  101. address: 'No. 189, Grove St, Los Angeles',
  102. },
  103. {
  104. date: '2016-05-01',
  105. name: 'Tom',
  106. address: 'No. 189, Grove St, Los Angeles',
  107. },
  108. {
  109. date: '2016-05-08',
  110. name: 'Tom',
  111. address: 'No. 189, Grove St, Los Angeles',
  112. },
  113. {
  114. date: '2016-05-06',
  115. name: 'Tom',
  116. address: 'No. 189, Grove St, Los Angeles',
  117. },
  118. {
  119. date: '2016-05-07',
  120. name: 'Tom',
  121. address: 'No. 189, Grove St, Los Angeles',
  122. },
  123. ]
  124. </script>
  125. <style lang="scss">
  126. @import "../css/css.scss";
  127. </style>