123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- <!-- 替换模型弹窗 -->
- <template>
- <!-- 新增楼层 -->
- <div id="replaceModel">
- <el-dialog title="替换模型" :visible.sync="repliceModelVisible" width="650px" :before-close="handleClose">
- <el-form ref="form" :model="form" label-width="170px">
- <el-form-item label="模型文件:">
- <el-upload
- class="upload-demo"
- ref="upload"
- accept=".rvt"
- :multiple="false"
- action="/revit-algorithm/model-file/upload"
- :on-preview="handlePreview"
- :on-remove="handleRemove"
- :file-list="fileList"
- :auto-upload="false"
- :on-change="onChangeUpLoad"
- :limit="1"
- >
- <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
- </el-upload>
- </el-form-item>
- <el-form-item label="revit版本:">
- <el-select v-model="form.revitVersion" placeholder="请选择">
- <el-option v-for="item in revitVersionList" :key="`revit-${item.value}`" :label="item.label" :value="item.value"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="选择模型文件替换原因:">
- <ul>
- <li>
- <el-radio :disabled="isChioce" v-model="form.ReplaceReason" label="0">之前模型画错要修改</el-radio>
- </li>
- <li>
- <el-radio :disabled="isChioce" v-model="form.ReplaceReason" label="1">因工程改造,更新模型文件</el-radio>
- </li>
- </ul>
- </el-form-item>
- <el-form-item>
- <div class="dateTime" v-show="form.ReplaceReason == '1'">
- <p>工程改造竣工时间:</p>
- <el-date-picker v-model="form.finishTime" type="date" placeholder="选择日期"></el-date-picker>
- </div>
- </el-form-item>
- </el-form>
- <div slot="footer" class="dialog-footer">
- <el-button type="primary" @click="onSubmit">确认</el-button>
- <el-button @click="handleClose">取消</el-button>
- <div style="width: 100%; margin-top: 5px; color: #aaaaaa">目前只可识别标准字典定义的设备、部件</div>
- </div>
- </el-dialog>
- </div>
- </template>
- <script>
- import { mapGetters } from "vuex";
- export default {
- props: {
- repliceModelVisible: Boolean,
- replaceModelItem: Object,
- },
- data() {
- return {
- form: {
- // revitVersion: this.replaceModelItem.RevitVersion?this.replaceModelItem.RevitVersion:"2017", //revit默认版本
- revitVersion: "2017", //revit默认版本
- file: null, //上传文件
- ReplaceReason: "0",
- finishTime: "",
- },
- revitVersionList: [
- {
- value: "2016",
- label: "2016",
- },
- {
- value: "2017",
- label: "2017",
- },
- {
- value: "2018",
- label: "2018",
- },
- {
- value: "2019",
- label: "2019",
- },
- {
- value: "2020",
- label: "2020",
- },
- ],
- isChioce: true, //是否可以选择替换原因
- fileList: [],
- };
- },
- computed: {
- ...mapGetters("layout", ["uploaderList"]),
- },
- methods: {
- onSubmit() {
- if (this.form.file == null) {
- this.$message.error("模型文件不能为空!");
- } else if (!this.form.revitVersion) {
- this.$message.error("revit版本不能为空!");
- } else {
- // 文件名
- let fileName = this.form.file.name.substring(0, this.form.file.name.lastIndexOf("."));
- // 文件后缀
- let suffix = this.form.file.name.substring(this.form.file.name.lastIndexOf(".") + 1);
- // 文件名不符合命名规则(模型文件名称只可包含中文、英文、数字、_、#。例:龙岗万达广场_A座_B1_20201015.rvt)
- if (suffix !== "rvt") {
- this.$message.error("上传文件只能是.rvt格式!");
- } else if (!/^[\u4E00-\u9FA5A-Za-z0-9_#]+$/.test(fileName)) {
- this.$message({
- showClose: true,
- message: "模型文件名称只可包含中文、英文、数字、_、#。例:龙岗万达广场_A座_B1_20201015.rvt",
- type: "error",
- duration: 5000,
- });
- } else {
- this.$emit("updataModel", {
- file: this.form.file,
- revitVersion: this.form.revitVersion,
- replaceModelItem: this.replaceModelItem,
- });
- this.handleClose();
- }
- }
- },
- handleClose() {
- this.$emit("closeReplaceModelDia");
- },
- handleRemove(file, fileList) {
- this.form.file = null;
- this.fileList = [];
- },
- handlePreview(file) {
- console.log(file);
- },
- handleChange() {},
- // 获取上传文件
- onChangeUpLoad(file, fileList) {
- if (fileList.length) {
- this.fileList = fileList.slice(-1);
- this.form.file = file;
- }
- },
- },
- watch: {
- repliceModelVisible(val) {
- if (val) {
- this.handleRemove();
- }
- },
- },
- };
- </script>
- <style lang="less">
- #replaceModel {
- .dialog-footer {
- text-align: right;
- }
- /deep/ .el-dialog__footer {
- padding: 10px;
- }
- }
- </style>
|