sceneContent.vue 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <template>
  2. <div class="body-head">
  3. <h3 style="visibility: hidden">场景管理</h3>
  4. </div>
  5. <el-table
  6. :data="pagging.state.table.rows"
  7. tooltip-effect="dark"
  8. style="width: 100%"
  9. size="large"
  10. >
  11. <!-- -1 计算失败 0 计算中 1 计算成功并可以外网访问,不能编辑 2计算成功只能内网,能编辑 -->
  12. <el-table-column label="序号" width="70" v-slot:default="{ $index }">
  13. <div style="text-align: center">
  14. {{ pagging.state.pag.size * (pagging.state.pag.currentPage - 1) + $index + 1 }}
  15. </div>
  16. </el-table-column>
  17. <el-table-column label="场景标题" prop="name"></el-table-column>
  18. <el-table-column label="S/N码" prop="snCode"></el-table-column>
  19. <!-- <el-table-column label="浏览数量" prop="viewCount"></el-table-column> -->
  20. <el-table-column label="拍摄时间" prop="createTime" v-slot:default="{ row }">
  21. {{ row.createTime.substr(0, 16) }}
  22. </el-table-column>
  23. <el-table-column label="状态" v-slot:default="{ row }: { row: QuoteScene }">
  24. {{ QuoteSceneStatusDesc[row.status] }}
  25. </el-table-column>
  26. <el-table-column label="所属架构" prop="deptName"></el-table-column>
  27. <el-table-column
  28. label="操作"
  29. v-slot:default="{ row }: { row: QuoteScene }"
  30. width="400px"
  31. >
  32. <span
  33. class="oper-span"
  34. @click="downHash(row)"
  35. v-if="row.status === QuoteSceneStatus.SUCCESS"
  36. >
  37. Hash
  38. </span>
  39. <span
  40. class="oper-span"
  41. @click="copySceneHandler(row)"
  42. v-if="row.status === QuoteSceneStatus.SUCCESS"
  43. >
  44. 复制
  45. </span>
  46. <span
  47. class="oper-span"
  48. v-pdpath="['view']"
  49. @click="openSceneUrl(row, OpenType.query)"
  50. v-if="row.status === QuoteSceneStatus.SUCCESS"
  51. >
  52. 查看
  53. </span>
  54. <span
  55. class="oper-span"
  56. v-pdpath="['edit']"
  57. @click="openSceneUrl(row, OpenType.edit)"
  58. v-if="row.status === QuoteSceneStatus.SUCCESS"
  59. >
  60. 编辑
  61. </span>
  62. <span
  63. v-if="
  64. [SceneType.SWSS, SceneType.SWYDSS].includes(row.type) &&
  65. [QuoteSceneStatus.SUCCESS].includes(row.status) &&
  66. row.location === LocationEnum.Scene_Location_PointCloud
  67. "
  68. v-pdpath="['gen']"
  69. class="oper-span"
  70. @click="genMeshScene(row)"
  71. >
  72. 生成obj
  73. </span>
  74. <span
  75. v-if="
  76. ![QuoteSceneStatus.RUN, QuoteSceneStatus.QUEUE].includes(row.status) &&
  77. ![SceneType.SWSSMX, SceneType.SWYDMX].includes(row.type)
  78. "
  79. class="oper-span delBtn"
  80. @click="delSceneHandler(row)"
  81. v-pdpath="'del'"
  82. >
  83. 删除
  84. </span>
  85. <span
  86. class="oper-span"
  87. @click="sceneDownloadHandler(row)"
  88. v-pdpath="['download']"
  89. v-if="row.num && row.status === QuoteSceneStatus.SUCCESS"
  90. >
  91. 下载
  92. </span>
  93. </el-table-column>
  94. </el-table>
  95. </template>
  96. <script setup lang="ts">
  97. import {
  98. QuoteScene,
  99. QuoteSceneStatus,
  100. delQuoteScene,
  101. SceneType,
  102. genMeshScene,
  103. LocationEnum,
  104. copyQuoteScene,
  105. downQuoteSceneHash,
  106. } from "@/store/scene";
  107. import { ScenePagging } from "./pagging";
  108. import { QuoteSceneStatusDesc } from "@/constant/scene";
  109. import { OpenType, openSceneUrl } from "../case/help";
  110. import { confirm } from "@/helper/message";
  111. import { sceneDownload } from "./quisk";
  112. import { downSceneHash } from "@/request";
  113. const props = defineProps<{ pagging: ScenePagging }>();
  114. const delSceneHandler = async (scene: QuoteScene) => {
  115. if (await confirm("确定要删除当前场景吗?")) {
  116. await delQuoteScene(scene);
  117. props.pagging.refresh();
  118. }
  119. };
  120. const copySceneHandler = async (scene: QuoteScene) => {
  121. await copyQuoteScene(scene);
  122. props.pagging.refresh();
  123. };
  124. const downHash = async (scene: QuoteScene) => {
  125. downQuoteSceneHash(scene);
  126. };
  127. const sceneDownloadHandler = (scene: QuoteScene) => {
  128. sceneDownload({ scene });
  129. };
  130. </script>