modelLog.vue 4.7 KB

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