modelLog.vue 4.6 KB

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