YaolongHan 5 роки тому
батько
коміт
808c50ab66

+ 8 - 1
config/index.js

@@ -88,7 +88,14 @@ module.exports = {
                 ws: true,
                 ws: true,
                 // 将主机标头的原点更改为目标URL
                 // 将主机标头的原点更改为目标URL
                 changeOrigin: false
                 changeOrigin: false
-            }
+            },
+            '/modelapi': {
+                target: 'http://192.168.20.225:8082',
+                changeOrigin: true,
+                pathRewrite: {
+                    "^/modelapi": "/"
+                }
+            },
         },
         },
 
 
         // Various Dev Server settings
         // Various Dev Server settings

+ 116 - 0
src/api/model/file.js

@@ -0,0 +1,116 @@
+/**
+ * @author hanyaolong
+ * @date 2019/08/12
+ * @info 模型管理/模型文件管理
+ */
+import httputils from '@/utils/httputils'
+const baseUrl = '/modelapi'
+
+let api = {
+    // 新建模型文件夹
+    /**
+     * 
+     * @param {Name:string,ProjectId:string} params 
+     */
+    createModel(params) {
+        let data = {
+            Content: [params]
+        };
+        let Name = params.Name;
+        // 查询是否有该模型文件夹
+        return new Promise((reslove, reject) => {
+            if(!Name){
+                reslove('文件夹不能为空!')
+            };
+            this.queryModel(Name).then((res) => {
+                if (res.Total == 0) {
+                    // 创建
+                    httputils.postJson(`${baseUrl}/model-folder/create`, data).then((res) => {
+                        reslove(res.EntityList[0])
+                    }).catch((err) => {
+                        reject(err)
+                    })
+                } else {
+                    reject('该文件夹已经创建!')
+                }
+            }).catch((err) => {
+                reject(err)
+            })
+        })
+
+    },
+    //删除模型文件夹
+    /**
+     * 
+     * @param {Id:string} params 
+     */
+    deleteModel(params) {
+        let Content = [params]
+        return new Promise((reslove,reject)=>{
+            httputils.postJson(`${baseUrl}/model-folder/delete`,Content).then(res=>{
+                reslove(res.Result)
+            }).catch((err)=>{
+                reject(err)
+            })
+        })
+    },
+    //修改模型文件夹名称
+     /**
+     * 
+     * @param {Name:string,ProjectId:string} params 
+     */
+    updateModelName(params) {
+        let data = {
+            Content: [params]
+        };
+        let Name = params.Name;
+        // 查询是否有该模型文件夹
+        return new Promise((reslove, reject) => {
+            if(!Name){
+                reslove('文件夹名称不能为空!')
+            };
+            this.queryModel(Name).then((res) => {
+                if (res.Total == 0) {
+                    // 创建
+                    httputils.postJson(`${baseUrl}/model-folder/update`, data).then((res) => {
+                        reslove(res.Result)
+                    }).catch((err) => {
+                        reject(err)
+                    })
+                } else {
+                    reject('该文件夹名称已存在!')
+                }
+            }).catch((err) => {
+                reject(err)
+            })
+        })
+    },
+    //查询模型文件夹
+    /** 
+     * @param Name string  注:查询多个 Name = '' 
+    */
+    queryModel(Name) {
+        let data = null;
+        if(Name){
+            // 单个查询
+            data = {
+                Filters: `Name='${Name}'` 
+            }
+        }else{
+            // 多个查询
+            data = {}
+        }
+        return httputils.postJson(`${baseUrl}/model-folder/query`, data)
+    },
+
+    //一下是楼层文件接口
+    // 查询模型文件夹下的所有模型文件
+    queryFloor(){
+        return httputils.postJson(`${baseUrl}/model-floor/query`, data)
+    },
+    // 创建楼层文件
+    createFloor(){
+        return httputils.postJson(`${baseUrl}/model-floor/create`, data)
+    }
+}
+export default api

+ 2 - 2
src/components/model/file/addFloorDialog.vue

@@ -4,10 +4,10 @@
     <el-dialog
     <el-dialog
       title="新增楼层"
       title="新增楼层"
       :visible.sync="addFloorFileVisible"
       :visible.sync="addFloorFileVisible"
-      width="30%"
+      width="40%"
       :before-close="handleClose"
       :before-close="handleClose"
     >
     >
-      <el-form ref="form" :model="form" label-width="100px">
+      <el-form ref="form" :model="form" label-width="120px">
         <el-form-item label="模型文件:">
         <el-form-item label="模型文件:">
           <el-upload
           <el-upload
             class="upload-demo"
             class="upload-demo"

+ 35 - 8
src/components/model/file/addFolder.vue

@@ -5,7 +5,7 @@
         <el-form
         <el-form
           :model="ruleForm"
           :model="ruleForm"
           :rules="rules"
           :rules="rules"
-          ref="ruleForm"
+          ref="addFolderModel"
           label-width="100px"
           label-width="100px"
           class="demo-ruleForm"
           class="demo-ruleForm"
         >
         >
@@ -22,7 +22,12 @@
   </div>
   </div>
 </template>
 </template>
 <script>
 <script>
+import request from "@/api/model/file.js";
+import { mapGetters } from "vuex";
 export default {
 export default {
+  computed: {
+    ...mapGetters("layout", ["projectId", "userId", "secret"])
+  },
   props: {
   props: {
     addFolderVisible: Boolean,
     addFolderVisible: Boolean,
     folderName: String
     folderName: String
@@ -30,7 +35,7 @@ export default {
   data() {
   data() {
     return {
     return {
       ruleForm: {
       ruleForm: {
-        name: ''
+        name: ""
       },
       },
       rules: {
       rules: {
         name: [
         name: [
@@ -41,20 +46,42 @@ export default {
   },
   },
   methods: {
   methods: {
     closeDiaLog() {
     closeDiaLog() {
-      this.resetForm()
+      this.resetForm();
       this.$emit("closeAddFolderVisible");
       this.$emit("closeAddFolderVisible");
     },
     },
     addFolder() {
     addFolder() {
-      this.closeDiaLog();
+      this.$refs["addFolderModel"].validate(valid => {
+        if (valid) {
+          this.createModel(this.ruleForm.name)
+            .then(res => {
+              this.$message({
+                message: "模型文件夹创建成功",
+                type: "success"
+              });
+              // 重新获取文件夹列表
+              this.$emit('getfolderModel')
+              this.closeDiaLog();
+            })
+            .catch(err => {
+              this.$message.error(err);
+              this.closeDiaLog();
+            });
+        } else {
+          return false;
+        }
+      });
     },
     },
     resetForm() {
     resetForm() {
-      this.$refs['ruleForm'].resetFields();
+      this.$refs["addFolderModel"].resetFields();
+    },
+    createModel(Name) {
+      return request.createModel({ ProjectId: this.projectId, Name });
     }
     }
   },
   },
   watch: {
   watch: {
-    folderName:function(val,oldVal){
-         this.ruleForm.name = val
+    folderName: function(val, oldVal) {
+      this.ruleForm.name = val;
     }
     }
-  },
+  }
 };
 };
 </script>
 </script>

+ 94 - 0
src/components/model/file/changeFolderName.vue

@@ -0,0 +1,94 @@
+<template>
+  <div id="changeFolderName">
+    <el-dialog
+      title="提示"
+      :visible.sync="changeFolderNameVisible"
+      width="30%"
+      :before-close="closeDiaLog"
+    >
+      <div>
+        <el-form
+          :model="ruleForm"
+          :rules="rules"
+          ref="changeFolderModelName"
+          label-width="100px"
+          class="demo-ruleForm"
+        >
+          <el-form-item label="文件夹名称" prop="name">
+            <el-input v-model="ruleForm.name" focus></el-input>
+          </el-form-item>
+        </el-form>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="closeDiaLog">取 消</el-button>
+        <el-button type="primary" @click="changeFolder">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import request from "@/api/model/file.js";
+import { mapGetters } from "vuex";
+export default {
+  computed: {
+    ...mapGetters("layout", ["projectId", "userId", "secret"])
+  },
+  props: {
+    changeFolderNameVisible: Boolean,
+    folderName: String,
+    currentFolderId:String
+  },
+  data() {
+    return {
+      ruleForm: {
+        name: ""
+      },
+      rules: {
+        name: [
+          { required: true, message: "文件夹名称不能为空!", trigger: "blur" }
+        ]
+      }
+    };
+  },
+  methods: {
+    closeDiaLog() {
+      this.resetForm();
+      this.$emit("closeChangeFolderVisible");
+    },
+    changeFolder() {
+      this.$refs["changeFolderModelName"].validate(valid => {
+        if (valid) {
+            console.log(valid,'vals')
+          this.updateModelName(this.ruleForm.name)
+            .then(res => {
+              this.$message({
+                message: "模型文件夹创建成功",
+                type: "success"
+              });
+              // 重新获取文件夹列表
+              this.$emit("finishChangeFolderName");
+              this.closeDiaLog();
+            })
+            .catch(err => {
+              this.closeDiaLog();
+              this.$message.error(err);
+            });
+        } else {
+          return false;
+        }
+      });
+    },
+    resetForm() {
+      this.$refs["changeFolderModelName"].resetFields();
+    },
+    updateModelName(Name) {
+      return request.updateModelName({Name,Id:this.currentFolderId});
+    }
+  },
+  watch: {
+    folderName: function(val, oldVal) {
+      this.ruleForm.name = val;
+    }
+  }
+};
+</script>

+ 77 - 62
src/views/model/file/index.vue

@@ -1,6 +1,5 @@
 <template>
 <template>
-
-  <div id="file_moddle_manage">
+  <div id="file_moddle_manage" v-loading="loading">
     <!-- 左边模型文件夹列表 -->
     <!-- 左边模型文件夹列表 -->
     <el-col :span="5">
     <el-col :span="5">
       <div class="grid-content grid-left">
       <div class="grid-content grid-left">
@@ -25,7 +24,7 @@
             <ul class="lists">
             <ul class="lists">
               <li
               <li
                 @click="openFolder(index,item)"
                 @click="openFolder(index,item)"
-                v-for="(item,index) in navigationBar"
+                v-for="(item,index) in navigationModel"
                 :key="index"
                 :key="index"
                 :class="[choiceIndex == index + 1 ? 'li-active' : '']"
                 :class="[choiceIndex == index + 1 ? 'li-active' : '']"
               >
               >
@@ -34,7 +33,7 @@
                   width="40"
                   width="40"
                   height="40"
                   height="40"
                 ></i>
                 ></i>
-                <span>{{item.name}}</span>
+                <span>{{item.Name}}</span>
               </li>
               </li>
             </ul>
             </ul>
           </div>
           </div>
@@ -57,8 +56,8 @@
         >
         >
           <el-table-column prop="date" label="模型文件" width="180">
           <el-table-column prop="date" label="模型文件" width="180">
             <template slot-scope="scope">
             <template slot-scope="scope">
-                <i class="el-icon-document-checked icon_font"></i>
-                <span style="margin-left: 10px">{{ scope.row.date }}</span>
+              <i class="el-icon-document-checked icon_font"></i>
+              <span style="margin-left: 10px">{{ scope.row.date }}</span>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
           <el-table-column prop="name" label="备注" width="180"></el-table-column>
           <el-table-column prop="name" label="备注" width="180"></el-table-column>
@@ -104,25 +103,40 @@
       :addFolderVisible="addFolderVisible"
       :addFolderVisible="addFolderVisible"
       @closeAddFolderVisible="addFolderVisible=false;folderName=''"
       @closeAddFolderVisible="addFolderVisible=false;folderName=''"
       :folderName="folderName"
       :folderName="folderName"
+      @getfolderModel="queryModel"
     ></addFolder>
     ></addFolder>
+    <!-- 编辑文件夹名字 -->
+    <changeFolderName
+      :currentFolderId="currentFolderId"
+      :changeFolderNameVisible="changeFolderNameVisible"
+      :folderName="folderName"
+      @finishChangeFolderName="queryModel"
+      @closeChangeFolderVisible="changeFolderNameVisible=false;folderName=''"
+    ></changeFolderName>
     <!-- 弹窗 结束-->
     <!-- 弹窗 结束-->
   </div>
   </div>
-
 </template>
 </template>
-
 <script>
 <script>
+import { mapGetters } from "vuex";
+import request from "@/api/model/file.js";
+
 import dasBoard from "@/views/dasboard/index";
 import dasBoard from "@/views/dasboard/index";
 import modelLog from "@/components/model/file/modelLog"; //模型日志弹窗
 import modelLog from "@/components/model/file/modelLog"; //模型日志弹窗
 import repliceModel from "@/components/model/file/replaceModelDialog"; //替换模型弹窗
 import repliceModel from "@/components/model/file/replaceModelDialog"; //替换模型弹窗
 import addFloorDialog from "@/components/model/file/addFloorDialog"; //新增楼层弹窗
 import addFloorDialog from "@/components/model/file/addFloorDialog"; //新增楼层弹窗
 import addFolder from "@/components/model/file/addFolder"; //新增文件夹
 import addFolder from "@/components/model/file/addFolder"; //新增文件夹
+import changeFolderName from "@/components/model/file/changeFolderName"; //编辑名字
 export default {
 export default {
+  computed: {
+    ...mapGetters("layout", ["projectId", "userId", "secret"])
+  },
   components: {
   components: {
     dasBoard,
     dasBoard,
     modelLog,
     modelLog,
     repliceModel,
     repliceModel,
     addFloorDialog,
     addFloorDialog,
-    addFolder
+    addFolder,
+    changeFolderName
   },
   },
   data() {
   data() {
     return {
     return {
@@ -130,57 +144,26 @@ export default {
       addFloorFileVisible: false, //是否显示增加楼层文件弹窗
       addFloorFileVisible: false, //是否显示增加楼层文件弹窗
       repliceModelVisible: false, //是否显示替换楼层模型弹窗
       repliceModelVisible: false, //是否显示替换楼层模型弹窗
       modelLogVisible: false, //是否显示模型日志弹窗
       modelLogVisible: false, //是否显示模型日志弹窗
-      folderName: "", //文件夹名称
-      currentFolderName: "",
-      navigationBar: [
+      changeFolderNameVisible: false, //是否显示编辑文件夹弹窗
+      folderName: "", //新建文件夹名称
+      navigationModel: [
         {
         {
-          name: "文件夹1",
-          tableData: [
-            {
-              date: "2016-05-02",
-              name: "王小虎",
-              address: "上海市普陀区金沙江路 1518 弄"
-            },
-            {
-              date: "2016-05-04",
-              name: "王小虎",
-              address: "上海市普陀区金沙江路 1517 弄"
-            },
-            {
-              date: "2016-05-04",
-              name: "王小虎",
-              address: "上海市普陀区金沙江路 1517 弄"
-            }
-          ],
-          id: "1"
-        },
-        {
-          name: "文件夹2",
-          tableData: [
-            {
-              date: "2016-05-02",
-              name: "王小虎",
-              address: "上海市普陀区金沙江路 1518 弄"
-            },
-            {
-              date: "2016-05-04",
-              name: "王小虎",
-              address: "上海市普陀区金沙江路 1517 弄"
-            }
-          ],
-          id: "2"
+          Name: ""
         }
         }
-      ],
-      choiceIndex: 0,
-      tableData: []
+      ], //文件夹模型list
+      choiceIndex: 0, //当前文件夹index
+      currentFolderId: "", //当前选择的文件夹id
+      currentFolderName: "", //当前选择文件夹的Name
+      tableData: [],
+      loading: false //加载loading
     };
     };
   },
   },
   methods: {
   methods: {
     // 打开模型文件夹
     // 打开模型文件夹
     openFolder(index, item) {
     openFolder(index, item) {
       this.choiceIndex = index + 1;
       this.choiceIndex = index + 1;
-      this.tableData = item.tableData;
-      this.folderName = item.name;
+      this.currentFolderId = item.Id;
+      this.currentFolderName = item.Name;
     },
     },
     //新增模型文件夹
     //新增模型文件夹
     addFolder() {
     addFolder() {
@@ -189,21 +172,42 @@ export default {
     },
     },
     //删除模型文件夹
     //删除模型文件夹
     removeFolder() {
     removeFolder() {
-      this.$alert("确定要删除文件夹吗?", "提示", {
+      this.$alert(`确定要删除文件夹 <${this.currentFolderName}> 吗?`, "提示", {
         confirmButtonText: "确定",
         confirmButtonText: "确定",
         callback: action => {
         callback: action => {
-          this.$message({
-            type: "info",
-            message: `action: ${action}`
-          });
-
+          if (action == "confirm") {
+            let params = { Id:this.currentFolderId,ProjectId:this.projectId};
+            request
+              .deleteModel(params)
+              .then(res => {
+                this.$message({
+                  message: "删除成功!",
+                  type: "success"
+                });
+                this.queryModel();
+              })
+              .catch(err => {
+                this.$message.error(err);
+              });
+          } else {
+            this.$message({
+              type: "info",
+              message: `取消操作`
+            });
+          }
         }
         }
       });
       });
     },
     },
     //编辑文件夹
     //编辑文件夹
     editFolder() {
     editFolder() {
       this.folderName = this.currentFolderName;
       this.folderName = this.currentFolderName;
-      this.addFolderVisible = true;
+      this.changeFolderNameVisible = true;
+    },
+
+    ///一下是楼层文件
+    //获取楼层文件
+    queryFloorFile(){
+
     },
     },
     //添加楼层文件
     //添加楼层文件
     addFloorFile() {
     addFloorFile() {
@@ -216,12 +220,23 @@ export default {
     //查看模型日志
     //查看模型日志
     queryModelLog() {
     queryModelLog() {
       this.modelLogVisible = true;
       this.modelLogVisible = true;
+    },
+
+    // 查询所有文件夹模型
+    queryModel() {
+      this.loading = true;
+      request.queryModel("").then(res => {
+        this.navigationModel = res.Content;
+        //默认选择第一个文件夹
+        this.choiceIndex = 1;
+        this.currentFolderName = this.navigationModel[0].Name;
+        this.currentFolderId = this.navigationModel[0].Id;
+        this.loading = false;
+      });
     }
     }
   },
   },
   mounted() {
   mounted() {
-    this.choiceIndex = 1;
-    this.tableData = this.navigationBar[0].tableData;
-    this.currentFolderName = this.navigationBar[0].name;
+    this.queryModel();
   }
   }
 };
 };
 </script>
 </script>