Ver código fonte

分类修改

ysc 1 ano atrás
pai
commit
300fb97194
1 arquivos alterados com 21 adições e 18 exclusões
  1. 21 18
      src/views/task/components/project.vue

+ 21 - 18
src/views/task/components/project.vue

@@ -14,14 +14,15 @@
         style="margin-left: 20px"/>
     </div>
     <div class="head-container">
+      <div style="height:calc(100vh - 158px);overflow: auto">
       <el-tree
         :data="projectData"
         :props="defaultProps"
         :expand-on-click-node="false"
         :filter-node-method="filterNode"
+        default-expand-all
         ref="projectTree"
         node-key="id"
-        default-expand-all
         highlight-current
         @node-click="handleNodeClick">
             <span class="custom-tree-node" slot-scope="{ node, data }">
@@ -29,8 +30,7 @@
               <div v-if="data.type!='模块'" style="font-size: 12px;color: #1c84c6">({{ data.type }})</div>
               <el-popover
                 placement="right"
-                trigger="hover"
-              >
+                trigger="hover">
                 <el-button size="mini" type="primary" @click="handleAdd(data)"
                            v-hasPermi="['task:project:add']">新增</el-button>
                 <el-button size="mini" @click="handleUpdate(data)" v-hasPermi="['task:project:edit']">修改</el-button>
@@ -43,6 +43,7 @@
                </el-popover>
             </span>
       </el-tree>
+      </div>
     </div>
 
     <!-- 添加或修改项目配置对话框 -->
@@ -55,13 +56,6 @@
           <treeselect v-model="form.parentId" :options="projectOptions" :normalizer="normalizer"
                       @select="treeSelectChange" placeholder="请选择"/>
         </el-form-item>
-        <!--        <el-form-item label="类型" prop="type">-->
-        <!--          <el-radio-group v-model="form.type" :disabled="typeDisable">-->
-        <!--            <el-radio label="1">分类</el-radio>-->
-        <!--            <el-radio label="2">项目</el-radio>-->
-        <!--            <el-radio label="3">模块</el-radio>-->
-        <!--          </el-radio-group>-->
-        <!--        </el-form-item>-->
         <el-form-item label="状态" prop="status">
           <el-radio-group v-model="form.status">
             <el-radio label="0">正常</el-radio>
@@ -120,7 +114,7 @@ export default {
       },
       // 表单参数
       form: {},
-      typeDisable: false,
+
       // 表单校验
       rules: {
         projectName: [
@@ -177,7 +171,7 @@ export default {
         status: "0",
         viewable: undefined
       };
-      this.typeDisable = false
+
       this.resetForm("form");
     },
     /** 转换项目数据结构 */
@@ -192,6 +186,10 @@ export default {
       };
     },
     treeSelectChange(val) {
+      if (val.id === this.form.parentId) {
+        this.$message.error("上级结构不能自身节点")
+        return
+      }
       if (val.type === '1') {
         this.form.type = '2'
       } else {
@@ -211,7 +209,7 @@ export default {
       } else {
         this.form.type = '1'
       }
-      this.typeDisable = true
+
 
       this.open = true;
       this.title = "添加项目";
@@ -229,18 +227,19 @@ export default {
     async handleUpdate(row) {
       this.reset();
       let arr = []
-      arr.push(listProject().then(response => {
-        this.projectOptions = this.handleTree(response.data, "id");
-      }))
-
+      if (row.parentId != '0') {
+        arr.push(listProject().then(response => {
+          this.projectOptions = this.handleTree(response.data, "id");
+        }))
+      }
       arr.push(getDeptUserTree('1').then(res => {
         this.userList = res.data
       }))
       arr.push(getProject(row.id).then(res => {
         this.form = res.data;
+        this.form.id = this.form.id
         this.open = true;
         this.title = "修改项目";
-        this.typeDisable = true
       }))
       await Promise.all(arr)
       this.$refs.dut.setCheckedNode(this.form.viewable)
@@ -251,6 +250,10 @@ export default {
       this.$refs["form"].validate(valid => {
         if (valid) {
           if (this.form.id != undefined) {
+            if (this.form.id === this.form.parentId) {
+              this.$message.error("上级结构不能自身节点")
+              return
+            }
             updateProject(this.form).then(res => {
               this.$message.success("修改成功");
               this.open = false;