modelLog.vue 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. <template>
  2. <!-- 模型日志弹窗 -->
  3. <div id="modelLog">
  4. <el-dialog title="模型日志" :visible.sync="modelLogVisible" width="40%" :before-close="handleClose">
  5. <div class="bodys">
  6. <el-button v-show="filterlogData.length == 1" class="delete-model" @click="deleteModel(filterlogData[0])"><i
  7. class="iconfont icon-delete el-icon--left"></i>删除模型
  8. </el-button>
  9. <el-tabs v-model="activeName" type="card" @tab-click="changeModel">
  10. <el-tab-pane label="上传日志" name="first">
  11. <el-table :data="filterlogData" stripe height="300px" style="width: 100%">
  12. <el-table-column label="版本">
  13. <template slot-scope="scope">
  14. <span style="margin-right: 5px">{{ scope.row.version }}</span>
  15. <i v-show="scope.row.version && scope.row.status == 4" class="iconfont icon-warn"
  16. style="cursor:pointer;" title="查看版本更新信息" @click="handleClickVersion(scope.row)"></i>
  17. </template>
  18. </el-table-column>
  19. <el-table-column prop="revitVersion" label="revit版本"></el-table-column>
  20. <el-table-column prop="acceptTime" label="上传时间"></el-table-column>
  21. <el-table-column prop="userName" label="上传人"></el-table-column>
  22. <el-table-column prop="address" label="操作">
  23. <template slot-scope="scope">
  24. <el-button title="下载模型" @click="handleClick(scope.row)" v-if="!scope.row.removed" type='primary'
  25. size="mini" class="iconfont icon-download"></el-button>
  26. <!-- 需求:先不支持删除 -->
  27. <!-- <el-button @click="deleteModel(scope.row)" v-if="!scope.row.Removed" type='danger' plain size="mini">删除</el-button> -->
  28. </template>
  29. </el-table-column>
  30. </el-table>
  31. </el-tab-pane>
  32. <el-tab-pane label="工程改造" name="second"></el-tab-pane>
  33. </el-tabs>
  34. </div>
  35. </el-dialog>
  36. <version-dialog :dialogVisible.sync="dialog" :modelFile="modelFile" ref="addSpaceDialog"></version-dialog>
  37. </div>
  38. </template>
  39. <script>
  40. import request from "@/api/model/file.js";
  41. import versionDialog from "@/components/model/file/versionDialog";
  42. export default {
  43. components: {
  44. versionDialog
  45. },
  46. props: {
  47. modelLogVisible: Boolean,
  48. modelFolderName: String,
  49. logData: Array
  50. },
  51. data() {
  52. return {
  53. dialogVisible: false, //是否显示该弹窗
  54. activeName: "first", //默认选择上传日志
  55. tableData: [], //列表数据
  56. dialog: false,
  57. modelFile: null,
  58. };
  59. },
  60. computed: {
  61. filterlogData: function () {
  62. let newLogData = [];
  63. if (this.logData.length) {
  64. this.logData.forEach(item => {
  65. newLogData.push(item);
  66. });
  67. }
  68. return newLogData
  69. }
  70. },
  71. methods: {
  72. // 查看版本信息
  73. handleClickVersion(item) {
  74. this.modelFile = item;
  75. this.dialog = true;
  76. },
  77. handleClose(done) {
  78. this.$emit("CloseModelLogDia");
  79. },
  80. handleClick(item) {
  81. console.log(item);
  82. let url = item.Url.match(/(\/image-service\S*)$/g) ? item.Url.match(/(\/image-service\S*)$/g)[0] : ''
  83. if (item.Url) {
  84. let a = document.createElement("a");
  85. a.href = url;
  86. a.download = `${this.modelFolderName}${item.FloorName}模型文件v${item.Version}.rvt`;
  87. a.click();
  88. } else {
  89. this.$message({
  90. message: "该文件夹下没有资源",
  91. type: "error"
  92. });
  93. }
  94. },
  95. changeModel() {
  96. },
  97. /**
  98. * 删除模型
  99. *
  100. */
  101. deleteModel(item) {
  102. this.$confirm(
  103. "此操作只可删除楼层模型文件。已经识别的对象及关系等,暂不可删除。确定删除?",
  104. "提示",
  105. {
  106. confirmButtonText: "确定",
  107. cancelButtonText: "取消",
  108. type: "warning"
  109. }
  110. )
  111. .then(() => {
  112. request.deleteModelFileList({ Id: item.Id }, res => {
  113. if (res.result == "success") {
  114. // 刷新页面
  115. this.$emit("deleteFinish");
  116. this.$message({
  117. type: "success",
  118. message: "删除成功!"
  119. });
  120. } else {
  121. this.$message({
  122. type: "error",
  123. message: res.result
  124. });
  125. }
  126. });
  127. })
  128. .catch(() => {
  129. this.$message({
  130. type: "info",
  131. message: "已取消删除"
  132. });
  133. });
  134. }
  135. }
  136. };
  137. </script>
  138. <style lang="less" scoped>
  139. #modelLog {
  140. .bodys {
  141. position: relative;
  142. padding-bottom: 30px;
  143. .delete-model {
  144. position: absolute;
  145. right: 0;
  146. top: 0;
  147. z-index: 10;
  148. }
  149. }
  150. }
  151. </style>