replaceModelDialog.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <!-- 替换模型弹窗 -->
  2. <template>
  3. <!-- 新增楼层 -->
  4. <div id="replaceModel">
  5. <el-dialog
  6. title="替换模型"
  7. :visible.sync="repliceModelVisible"
  8. width="650px"
  9. :before-close="handleClose"
  10. >
  11. <el-form ref="form" :model="form" label-width="170px">
  12. <el-form-item label="模型文件:">
  13. <el-upload
  14. class="upload-demo"
  15. ref="upload"
  16. action="/modelapi/model-file/upload"
  17. :on-preview="handlePreview"
  18. :on-remove="handleRemove"
  19. :file-list="fileList"
  20. :auto-upload="false"
  21. :on-change="onChangeUpLoad"
  22. :limit="1"
  23. >
  24. <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
  25. </el-upload>
  26. </el-form-item>
  27. <el-form-item label="revit版本:">
  28. <el-select v-model="form.revitVersion" placeholder="请选择">
  29. <el-option
  30. v-for="item in revitVersionList"
  31. :key="`revit-${item.value}`"
  32. :label="item.label"
  33. :value="item.value"
  34. ></el-option>
  35. </el-select>
  36. </el-form-item>
  37. <el-form-item label="选择模型文件替换原因:">
  38. <ul>
  39. <li>
  40. <el-radio :disabled="isChioce" v-model="form.ReplaceReason" label="0">之前模型画错要修改</el-radio>
  41. </li>
  42. <li>
  43. <el-radio :disabled="isChioce" v-model="form.ReplaceReason" label="1">因工程改造,更新模型文件</el-radio>
  44. </li>
  45. </ul>
  46. </el-form-item>
  47. <el-form-item>
  48. <div class="dateTime" v-show="form.ReplaceReason == '1'">
  49. <p>工程改造竣工时间:</p>
  50. <el-date-picker v-model="form.finishTime" type="date" placeholder="选择日期"></el-date-picker>
  51. </div>
  52. </el-form-item>
  53. </el-form>
  54. <span slot="footer" class="dialog-footer">
  55. <el-button type="primary" @click="onSubmit">确认</el-button>
  56. <el-button @click="handleClose">取消</el-button>
  57. </span>
  58. </el-dialog>
  59. </div>
  60. </template>
  61. <script>
  62. import { mapGetters } from "vuex";
  63. export default {
  64. props: {
  65. repliceModelVisible: Boolean,
  66. replaceModelItem: Object
  67. },
  68. data() {
  69. return {
  70. form: {
  71. // revitVersion: this.replaceModelItem.RevitVersion?this.replaceModelItem.RevitVersion:"2017", //revit默认版本
  72. revitVersion: "2017", //revit默认版本
  73. file: null, //上传文件
  74. ReplaceReason: "0",
  75. finishTime: ""
  76. },
  77. revitVersionList: [
  78. {
  79. value: "2016",
  80. label: "2016"
  81. },
  82. {
  83. value: "2017",
  84. label: "2017"
  85. },
  86. {
  87. value: "2018",
  88. label: "2018"
  89. }
  90. ],
  91. isChioce: true, //是否可以选择替换原因
  92. fileList: []
  93. };
  94. },
  95. computed: {
  96. ...mapGetters("layout", ["uploaderList"])
  97. },
  98. methods: {
  99. onSubmit() {
  100. if (this.form.file == null) {
  101. this.$message.error("模型文件不能为空!");
  102. } else if (!this.form.revitVersion) {
  103. this.$message.error("revit版本不能为空!");
  104. } else {
  105. this.$emit("updataModel", {
  106. file: this.form.file,
  107. revitVersion: this.form.revitVersion,
  108. replaceModelItem: this.replaceModelItem
  109. });
  110. this.handleClose();
  111. }
  112. },
  113. handleClose() {
  114. this.$emit("closeReplaceModelDia");
  115. },
  116. handleRemove(file, fileList) {
  117. this.form.file = null;
  118. this.fileList = []
  119. },
  120. handlePreview(file) {
  121. console.log(file);
  122. },
  123. handleChange() {},
  124. // 获取上传文件
  125. onChangeUpLoad(file, fileList) {
  126. if (fileList.length) {
  127. this.form.file = file;
  128. }
  129. }
  130. },
  131. watch: {
  132. repliceModelVisible(val) {
  133. if (val) {
  134. this.handleRemove();
  135. }
  136. }
  137. }
  138. };
  139. </script>
  140. <style lang="less">
  141. #addFloorDialog {
  142. .floorModle {
  143. display: flex;
  144. justify-content: left;
  145. }
  146. .dialog-footer {
  147. text-align: right;
  148. }
  149. }
  150. </style>