Flight.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340
  1. <template>
  2. <div class="XFpdding" style="height: 470px;">
  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: 24px;margin-top: -8px;"/>
  12. {{ tab.name }}
  13. </li>
  14. </ul>
  15. <div v-show="currentTab1 == '0'" class="eldesign classtable" style="margin-top: 10px">
  16. <el-collapse v-model="activeNames">
  17. <el-collapse-item name="1">
  18. <template #title>
  19. <span class="collapse-title">飞行包线</span>
  20. </template>
  21. <el-table :data="fxbxtable" border style="width: 100%; " :header-cell-class-name="headerCellClassName">
  22. <el-table-column type="index" width="70" label="编号" />
  23. <el-table-column prop="name" label="参数名称" >
  24. <!-- <template #default="{ row }">
  25. <el-input v-model="row.name" @change="handleEdit(row)" />
  26. </template> -->
  27. </el-table-column>
  28. <el-table-column prop="value" label="参数值">
  29. <template #default="{ row }">
  30. <el-input v-model="row.value" type="number" />
  31. </template>
  32. </el-table-column>
  33. <el-table-column prop="flag" label="启用" width="100">
  34. <template v-slot="scope">
  35. <el-checkbox
  36. :false-label="0"
  37. :true-label="1"
  38. :label="false"
  39. v-model="scope.row.flag"
  40. />
  41. </template>
  42. </el-table-column>
  43. </el-table>
  44. </el-collapse-item>
  45. <el-collapse-item name="2">
  46. <template #title>
  47. <span class="collapse-title">起飞着陆</span>
  48. </template>
  49. <el-table :data="qfzltable" border style="width: 100%; " :header-cell-class-name="headerCellClassName">
  50. <el-table-column type="index" width="70" label="编号" />
  51. <el-table-column prop="name" label="参数名称">
  52. <!-- <template #default="{ row }">
  53. <el-input v-model="row.name" @change="handleEdit(row)" />
  54. </template> -->
  55. </el-table-column>
  56. <el-table-column prop="value" label="参数值">
  57. <template #default="{ row }">
  58. <el-input v-model="row.value" type="number" />
  59. </template>
  60. </el-table-column>
  61. <el-table-column prop="flag" label="启用" width="100">
  62. <template v-slot="scope">
  63. <el-checkbox
  64. :false-label="0"
  65. :true-label="1"
  66. :label="false"
  67. v-model="scope.row.flag"
  68. />
  69. </template>
  70. </el-table-column>
  71. </el-table>
  72. </el-collapse-item>
  73. </el-collapse>
  74. </div>
  75. <div v-show="currentTab1 == '1'" class="eldesign classtable" style="margin-top: 10px">
  76. <el-collapse v-model="activeNames1">
  77. <el-collapse-item title="静稳定性" name="1">
  78. <template #title>
  79. <span class="collapse-title">静稳定性</span>
  80. </template>
  81. <el-form-item label="纵向静稳定导数:" :label-width="formLabelWidth1">
  82. <el-input></el-input>
  83. </el-form-item>
  84. <el-form-item label="航向静稳定导数:" :label-width="formLabelWidth1">
  85. <el-input></el-input>
  86. </el-form-item>
  87. </el-collapse-item >
  88. <el-collapse-item title="动稳定性" name="2">
  89. <!-- <el-form-item label="纵向" :label-width="formLabelWidth1">
  90. </el-form-item> -->
  91. <template #title>
  92. <span class="collapse-title">动稳定性</span>
  93. </template>
  94. <span style="padding-left: 20px;">纵向</span>
  95. <el-form>
  96. <el-form-item label="长周期模态" :label-width="formLabelWidth1">
  97. </el-form-item>
  98. <el-form-item label="阻尼比:" :label-width="formLabelWidth1">
  99. <el-input></el-input>
  100. </el-form-item>
  101. <el-form-item label="频率:" :label-width="formLabelWidth1">
  102. <el-input></el-input>
  103. </el-form-item>
  104. </el-form>
  105. <el-form>
  106. <el-form-item label="短周期模态" :label-width="formLabelWidth1">
  107. </el-form-item>
  108. <el-form-item label="阻尼比:" :label-width="formLabelWidth1">
  109. <el-input></el-input>
  110. </el-form-item>
  111. <el-form-item label="频率:" :label-width="formLabelWidth1">
  112. <el-input></el-input>
  113. </el-form-item>
  114. </el-form>
  115. <el-form-item label="横航向" :label-width="formLabelWidth1"></el-form-item>
  116. <el-form>
  117. <el-form-item label="螺旋模态" :label-width="formLabelWidth1"></el-form-item>
  118. <el-form-item label="时间常数:" :label-width="formLabelWidth1">
  119. <el-input></el-input>
  120. </el-form-item>
  121. <el-form-item label="运动周期:" :label-width="formLabelWidth1">
  122. <el-input></el-input>
  123. </el-form-item>
  124. <el-form-item label="滚转模态" :label-width="formLabelWidth1"></el-form-item>
  125. <el-form-item label="时间常数:" :label-width="formLabelWidth1">
  126. <el-input></el-input>
  127. </el-form-item>
  128. <el-form-item label="荷兰滚模态" :label-width="formLabelWidth1"></el-form-item>
  129. <el-form-item label="阻尼比:" :label-width="formLabelWidth1">
  130. <el-input></el-input>
  131. </el-form-item>
  132. <el-form-item label="固有频率:" :label-width="formLabelWidth1">
  133. <el-input></el-input>
  134. </el-form-item>
  135. </el-form>
  136. </el-collapse-item>
  137. </el-collapse>
  138. </div>
  139. <div v-show="currentTab1 == '2'" class="eldesign classtable" style="margin-top: 10px">
  140. <el-table :data="zltxtable" border style="width: 100%; height: 400px" :header-cell-class-name="headerCellClassName">
  141. <el-table-column type="index" width="70" label="编号" />
  142. <el-table-column prop="name" label="参数名称">
  143. <!-- <template #default="{ row }">
  144. <el-input v-model="row.name" @change="handleEdit(row)" />
  145. </template> -->
  146. </el-table-column>
  147. <el-table-column prop="value" label="参数值">
  148. <template #default="{ row }">
  149. <el-input v-model="row.value" type="number" />
  150. </template>
  151. </el-table-column>
  152. <el-table-column prop="flag" label="启用" width="100">
  153. <template v-slot="scope">
  154. <el-checkbox
  155. :false-label="0"
  156. :true-label="1"
  157. :label="false"
  158. v-model="scope.row.flag"
  159. />
  160. </template>
  161. </el-table-column>
  162. </el-table>
  163. </div>
  164. <div v-show="currentTab1 == '3'" class="eldesign classtable" style="margin-top: 10px">
  165. <el-table :data="tltxtable" border style="width: 100%; height: 400px" :header-cell-class-name="headerCellClassName">
  166. <el-table-column type="index" width="70" label="编号" />
  167. <el-table-column prop="name" label="参数名称">
  168. <!-- <template #default="{ row }">
  169. <el-input v-model="row.name" @change="handleEdit(row)" />
  170. </template> -->
  171. </el-table-column>
  172. <el-table-column prop="value" label="参数值">
  173. <template #default="{ row }">
  174. <el-input v-model="row.value" type="number" />
  175. </template>
  176. </el-table-column>
  177. <el-table-column prop="flag" label="启用" width="100">
  178. <template v-slot="scope">
  179. <el-checkbox
  180. :false-label="0"
  181. :true-label="1"
  182. :label="false"
  183. v-model="scope.row.flag"
  184. />
  185. </template>
  186. </el-table-column>
  187. </el-table>
  188. </div>
  189. </div>
  190. </template>
  191. <script setup>
  192. import { ref, onMounted, reactive, provide, nextTick } from "vue"
  193. import { ElMessage, ElButton, ElDialog, ElSelect } from "element-plus"
  194. import { request, uploadFile } from "@/utils/request"
  195. import configParams from "@/assets/img/configParams.png";
  196. import flight1 from "@/assets/img/flight1.png";
  197. import flight2 from "@/assets/img/flight2.png";
  198. import flight3 from "@/assets/img/flight3.png";
  199. import flight4 from "@/assets/img/flight4.png";
  200. let currentTab1 = ref(0)
  201. let formLabelWidth1 = ref(176)
  202. let activeNames = ref(['1','2'])
  203. let activeNames1 = ref(['1','2'])
  204. let fsi = ref({
  205. maxIter: 2,
  206. result: 1,
  207. interpolation: "MELD",
  208. aeroRegion: "wall",
  209. })
  210. let tabslist1 = ref([
  211. { id: "0", name: "飞行性能", imgSrc: flight1 },
  212. { id: "1", name: "操稳特性", imgSrc: flight2 },
  213. { id: "2", name: "重量特性", imgSrc: flight3 },
  214. { id: "3", name: "推力特性", imgSrc: flight4 },
  215. ])
  216. const selectTab1 = (index) => {
  217. console.log('dayin',index)
  218. currentTab1.value = index
  219. console.log('currentTab1',currentTab1.value)
  220. }
  221. let fxbxtable = ref([
  222. {
  223. value: 80,
  224. name: "最小平飞速度",
  225. flag: 1
  226. },
  227. {
  228. value: 270,
  229. name: "最大平飞速度",
  230. flag: 1
  231. },
  232. {
  233. value: 0,
  234. name: "升限",
  235. flag: 1
  236. },
  237. {
  238. value: 0,
  239. name: "爬升率",
  240. flag: 1
  241. }
  242. ])
  243. let qfzltable = ref([
  244. {
  245. value: 1353.5816,
  246. name: "航程",
  247. flag: 1
  248. },
  249. {
  250. value: 2.4344,
  251. name: "航时",
  252. flag: 1
  253. },
  254. {
  255. value: 2600,
  256. name: "起飞场长",
  257. flag: 1
  258. },
  259. {
  260. value: 2000,
  261. name: "着陆场长",
  262. flag: 1
  263. }
  264. ])
  265. let zltxtable = ref([
  266. {
  267. value: 16700,
  268. name: "空重",
  269. flag: 1
  270. },
  271. {
  272. value: 18600,
  273. name: "最大起飞重量",
  274. flag: 1
  275. },
  276. ])
  277. let tltxtable = ref([
  278. {
  279. value: 0.000001298,
  280. name: "耗油率",
  281. flag: 1
  282. },
  283. {
  284. value: 0.85,
  285. name: "螺旋桨效率",
  286. flag: 1
  287. },
  288. ])
  289. const headerCellClassName = ({ column }) => {
  290. // console.log('列:',column.property)
  291. if (column.property === 'name') {
  292. console.log('yanse',column.property)
  293. return 'header-blue';
  294. } else if (column.property === 'value') {
  295. return 'header-green';
  296. } else if (column.property === 'flag') {
  297. return 'header-yellow';
  298. }
  299. return '';
  300. };
  301. </script>
  302. <style scoped>
  303. :deep(.collapse-title) {
  304. flex: 1 0 90%;
  305. order: 1;
  306. text-align: left;
  307. }
  308. :deep(.collapse-title) .el-collapse-item__header {
  309. flex: 1 0 auto;
  310. order: -1;
  311. }
  312. </style>