sceneContent.vue 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  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="350px"
  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. ![SceneType.SWSSMX, SceneType.SWYDMX].includes(row.type) &&
  77. row.status !== QuoteSceneStatus.RUN
  78. "
  79. class="oper-span delBtn"
  80. v-pdscene="row"
  81. @click="delSceneHandler(row)"
  82. v-pdpath="'del'"
  83. >
  84. 删除
  85. </span>
  86. <span
  87. class="oper-span"
  88. @click="sceneDownloadHandler(row)"
  89. v-pdpath="['download']"
  90. v-if="row.num && row.status === QuoteSceneStatus.SUCCESS"
  91. >
  92. 下载
  93. </span>
  94. </el-table-column>
  95. </el-table>
  96. </template>
  97. <script setup lang="ts">
  98. import {
  99. QuoteScene,
  100. QuoteSceneStatus,
  101. delQuoteScene,
  102. SceneType,
  103. genMeshScene,
  104. LocationEnum,
  105. copyQuoteScene,
  106. downQuoteSceneHash,
  107. } from "@/store/scene";
  108. import { ScenePagging } from "./pagging";
  109. import { QuoteSceneStatusDesc } from "@/constant/scene";
  110. import { OpenType, openSceneUrl } from "../case/help";
  111. import { confirm } from "@/helper/message";
  112. import { sceneDownload } from "./quisk";
  113. import { downSceneHash } from "@/request";
  114. const props = defineProps<{ pagging: ScenePagging }>();
  115. const delSceneHandler = async (scene: QuoteScene) => {
  116. if (await confirm("确定要删除当前场景吗?")) {
  117. await delQuoteScene(scene);
  118. props.pagging.refresh();
  119. }
  120. };
  121. const copySceneHandler = async (scene: QuoteScene) => {
  122. await copyQuoteScene(scene);
  123. props.pagging.refresh();
  124. };
  125. const downHash = async (scene: QuoteScene) => {
  126. downQuoteSceneHash(scene);
  127. };
  128. const sceneDownloadHandler = (scene: QuoteScene) => {
  129. sceneDownload({ scene });
  130. };
  131. </script>