MathFunc.vue 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <template>
  2. <div class="XFpdding" style="height: 350px;">
  3. <ul>
  4. <li
  5. class="item"
  6. v-for="(tab, index) in tabslist1"
  7. :key="index"
  8. :class="{ active: currentTab1 === index }"
  9. @click="selectTab1(index)"
  10. >
  11. <img :src="tab.imgSrc" style="width: 22px;"/>
  12. {{ tab.name }}
  13. </li>
  14. </ul>
  15. <div v-show="currentTab1 == '0'" class="eldesign classtable" style="margin-top: 10px">
  16. <el-table :data="xvaluelist" border style="width: 100%; " :header-cell-class-name="headerCellClassName">
  17. <el-table-column type="index" width="70" label="编号"/>
  18. <el-table-column prop="name" label="参数名称">
  19. <!-- <template #default="{ row }">
  20. <el-input v-model="row.name" />
  21. </template> -->
  22. </el-table-column>
  23. <el-table-column prop="value" label="参数值">
  24. <template #default="{ row }">
  25. <el-input v-model="row.value" type="number" />
  26. </template>
  27. </el-table-column>
  28. <el-table-column prop="flag" label="启用" width="100">
  29. <template v-slot="scope">
  30. <el-checkbox
  31. :false-label="-1"
  32. :true-label="1"
  33. :label="false"
  34. v-model="scope.row.flag"
  35. />
  36. </template>
  37. </el-table-column>
  38. </el-table>
  39. </div>
  40. <div v-show="currentTab1 == '1'" style="margin-top: 10px">
  41. <PythonEdit :value="textarea" language="python" />
  42. </div>
  43. <div v-show="currentTab1 == '2'" class="eldesign classtable" style="margin-top: 10px">
  44. <el-table :data="yvaluelist" border style="width: 100%; height: 280px" :header-cell-class-name="headerCellClassName">
  45. <el-table-column type="index" width="70" label="编号" />
  46. <el-table-column prop="name" label="参数名称">
  47. <!-- <template #default="{ row }">
  48. <el-input v-model="row.name" @change="handleEdit(row)" />
  49. </template> -->
  50. </el-table-column>
  51. <el-table-column prop="value" label="参数值">
  52. <template #default="{ row }">
  53. <el-input v-model="row.value" type="number" />
  54. </template>
  55. </el-table-column>
  56. <el-table-column prop="flag" label="启用" width="100">
  57. <template v-slot="scope">
  58. <el-checkbox
  59. :false-label="0"
  60. :true-label="1"
  61. :label="false"
  62. v-model="scope.row.flag"
  63. />
  64. </template>
  65. </el-table-column>
  66. </el-table>
  67. </div>
  68. </div>
  69. </template>
  70. <script setup>
  71. import { ref, onMounted, reactive, provide, nextTick } from "vue"
  72. import { ElMessage, ElButton, ElDialog, ElSelect } from "element-plus"
  73. import { request, uploadFile } from "@/utils/request"
  74. import PythonEdit from '@/components/PythonEditor/index.vue';
  75. import configParams from "@/assets/img/configParams.png";
  76. import MathFuncX from "@/assets/img/MathFuncX.png";
  77. import MathFuncFx from "@/assets/img/MathFuncFx.png";
  78. import MathFuncY from "@/assets/img/MathFuncY.png";
  79. let currentTab1 = ref(0)
  80. let tabslist1 = ref([
  81. { id: "0", name: "自变量x", imgSrc: MathFuncX },
  82. { id: "1", name: "表达式y=F(x)", imgSrc: MathFuncFx },
  83. { id: "2", name: "因变量y", imgSrc: MathFuncY },
  84. ])
  85. let xvaluelist = ref([
  86. { name: "00", value: 0, flag: 1 },
  87. { name: "00", value: 0, flag: 1 },
  88. { name: "00", value: 0, flag: 1 },
  89. ])
  90. let textarea = ref(`import os
  91. import numpy as np
  92. from surromdao.solver import BaseSolver
  93. class Branin(BaseSolver):
  94. def __init__(self, filename=os.path):
  95. super().__init__(filename)
  96. def compute(self, xdict):
  97. x = np.zeros(2)
  98. # x[1] = x[2]`);
  99. let yvaluelist = ref([
  100. { name: "00", value: 0, flag: 1 },
  101. { name: "00", value: 0, flag: 1 },
  102. { name: "00", value: 0, flag: 1 },
  103. { name: "00", value: 0, flag: 1 },
  104. { name: "00", value: 0, flag: 1 },
  105. { name: "00", value: 0, flag: 1 },
  106. ])
  107. let emit = defineEmits(['selectTab']);
  108. const selectTab1 = (index) => {
  109. // console.log('dayin',index);
  110. currentTab1.value = index;
  111. // console.log('currentTab1',currentTab1.value);
  112. emit('selectTab', index);
  113. }
  114. const headerCellClassName = ({ column }) => {
  115. // console.log('列:',column.property)
  116. if (column.property === 'name') {
  117. console.log('yanse',column.property)
  118. return 'header-blue';
  119. } else if (column.property === 'value') {
  120. return 'header-green';
  121. } else if (column.property === 'flag') {
  122. return 'header-yellow';
  123. }
  124. return '';
  125. };
  126. </script>