Toptimize.vue 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <template>
  2. <div class="XFpdding">
  3. <div class="numberinput lefttext">
  4. <el-form>
  5. <el-form-item label="优化算法:" :label-width="formLabelWidth1">
  6. <el-select v-model="youhua.algorithm" :suffix-icon="CaretBottom" placeholder="请选择">
  7. <el-option v-for="item in yslist" :key="item.value" :label="item.label" :value="item.value">
  8. </el-option>
  9. </el-select>
  10. </el-form-item>
  11. <el-form-item label="最大外迭代步数:" :label-width="formLabelWidth1">
  12. <el-input v-model="youhua.majoriterationslimit" :step="100" :min="0" :max="1000" controls-position="right" />
  13. </el-form-item>
  14. <el-form-item label="输出精度等级:" :label-width="formLabelWidth1">
  15. <el-input v-model="youhua.majorprintlevel" :step="100" :min="0" :max="1000" controls-position="right" />
  16. </el-form-item>
  17. <el-form-item label="线性约束容差:" :label-width="formLabelWidth1">
  18. <el-input v-model="youhua.linearfeasibilitytolerance" :step="100" :min="0" :max="1000" controls-position="right" />
  19. </el-form-item>
  20. <el-form-item label="非线性约束容差:" :label-width="formLabelWidth1">
  21. <el-input v-model="youhua.nonlinearfeasibilitytolerance" :step="100" :min="0" :max="1000" controls-position="right" />
  22. </el-form-item>
  23. <el-form-item label="最优性度量容差:" :label-width="formLabelWidth1">
  24. <el-input v-model="youhua.optimalitytolerance" :step="100" :min="0" :max="1000" controls-position="right" />
  25. </el-form-item>
  26. <el-form-item label="梯度验证级别:" :label-width="formLabelWidth1">
  27. <el-select v-model="youhua.verifylevel" :suffix-icon="CaretBottom" placeholder="请选择">
  28. <el-option v-for="item in tdlist" :key="item.value" :label="item.label" :value="item.value">
  29. </el-option>
  30. </el-select>
  31. </el-form-item>
  32. </el-form>
  33. </div>
  34. </div>
  35. </template>
  36. <script setup>
  37. import { ref, onMounted, reactive, provide, nextTick } from "vue";
  38. import { ElMessage, ElButton, ElDialog, ElSelect } from 'element-plus'
  39. import { Edit, CaretBottom, Checked } from '@element-plus/icons-vue'
  40. import { request } from "@/utils/request";
  41. let formLabelWidth3=ref(100)
  42. let formLabelWidth1=ref(170)
  43. let formLabelWidth200=ref(200)
  44. let youhua = ref({
  45. algorithm: 'SQP',
  46. majoriterationslimit: 100,
  47. majorprintlevel: 10,
  48. linearfeasibilitytolerance: 1e-6,
  49. nonlinearfeasibilitytolerance: 1e-6,
  50. optimalitytolerance: 1e-4,
  51. verifylevel: '-1'
  52. })
  53. let pid = ref();
  54. let wid = ref();
  55. let grid = ref();
  56. let cstnum=ref('');
  57. let yslist = ref([
  58. { label: 'SQP', value: 'SQP' },
  59. ])
  60. let tdlist= ref([
  61. { label: '不验证', value: '-1' },
  62. { label: '简单验证', value: '0' },
  63. { label: '目标详细验证', value: '1' },
  64. { label: '约束详细验证', value: '2' },
  65. { label: '目标+约束详细验证', value: '3' },
  66. ])
  67. const getToptimize = (id,nowid) => {
  68. pid.value = id;
  69. wid.value = nowid;
  70. const params = {
  71. transCode: 'MDO0033',
  72. pid: pid.value,
  73. wid: wid.value,
  74. }
  75. request(params).then((res) => {
  76. if (res.hasOwnProperty('grid')) {
  77. // grid.value = res.grid;
  78. // youhua.value.algorithm = res.algorithm;
  79. // youhua.value.majoriterationslimit = res.majoriterationslimit;
  80. // youhua.value.majorprintlevel = res.majorprintlevel;
  81. // youhua.value.linearfeasibilitytolerance = res.linearfeasibilitytolerance;
  82. // youhua.value.nonlinearfeasibilitytolerance = res.nonlinearfeasibilitytolerance;
  83. // youhua.value.optimalitytolerance = res.optimalitytolerance;
  84. // youhua.value.verifylevel = res.verifylevel;
  85. getToptimizeAssign(res);
  86. } else {
  87. }
  88. })
  89. .catch((err) => {
  90. ElMessage.error(err.returnMsg)
  91. })
  92. }
  93. const getToptimizeAssign = (data) => {
  94. // pid.value = data.pid;
  95. grid.value = data.grid;
  96. youhua.value.algorithm = data.algorithm;
  97. youhua.value.majoriterationslimit = data.majoriterationslimit;
  98. youhua.value.majorprintlevel = data.majorprintlevel;
  99. youhua.value.linearfeasibilitytolerance = data.linearfeasibilitytolerance;
  100. youhua.value.nonlinearfeasibilitytolerance = data.nonlinearfeasibilitytolerance;
  101. youhua.value.optimalitytolerance = data.optimalitytolerance;
  102. youhua.value.verifylevel = data.verifylevel;
  103. }
  104. //梯度优化器,添加保存
  105. const getaddTsave = (id,nowid) => {
  106. if(nowid){
  107. wid.value = nowid
  108. }
  109. pid.value = id;
  110. const params = {
  111. transCode: 'MDO0034',
  112. pid: pid.value,
  113. wid: wid.value,
  114. grid: grid.value,
  115. algorithm: youhua.value.algorithm,
  116. majoriterationslimit: youhua.value.majoriterationslimit,
  117. majorprintlevel: youhua.value.majorprintlevel,
  118. linearfeasibilitytolerance: youhua.value.linearfeasibilitytolerance,
  119. nonlinearfeasibilitytolerance: youhua.value.nonlinearfeasibilitytolerance,
  120. optimalitytolerance: youhua.value.optimalitytolerance,
  121. verifylevel: youhua.value.verifylevel,
  122. checked:1
  123. }
  124. request(params).then((res) => {
  125. pid.value = res.pid;
  126. ElMessage({
  127. message: '保存成功',
  128. type: 'success'
  129. })
  130. })
  131. .catch((err) => {
  132. ElMessage.error('保存失败')
  133. })
  134. }
  135. defineExpose({
  136. getToptimize,
  137. getToptimizeAssign,
  138. getaddTsave
  139. });
  140. </script>