qinzhipeng_v 5 лет назад
Родитель
Сommit
68d54c9c46

+ 20 - 14
src/views/projectManage/requirement/list/create.vue

@@ -27,7 +27,7 @@
             </el-radio-group>
           </el-form-item>
           <el-form-item label="需求方向" prop="rqmtOrntIds">
-            <el-cascader v-model="form.rqmtOrntIds" size="medium" clearable collapse-tags :props="{ multiple: true, checkStrictly: true }" :options="demandDirection" style="width:20vw;" placeholder="请选择" />
+            <el-cascader v-model="form.rqmtOrntIds" size="medium" collapse-tags :props="props" :options="demandDirection" style="width:20vw;" placeholder="请选择" />
           </el-form-item>
           <el-form-item label="优先级" prop="priority">
             <el-select v-model="form.priority" size="medium" placeholder="请选择" style="width:20vw">
@@ -156,6 +156,12 @@ export default {
   },
   data() {
     return {
+      props: {
+        value: 'id',
+        label: 'rqmtOrntName',
+        children: 'childRqmtOrnts',
+        multiple: true
+      },
       urgentUrl: urgentUrl,
       all_bizId: '', // 业务线
       iterationList: [], // 所属迭代列表
@@ -174,6 +180,7 @@ export default {
         type: 0,
         name: null,
         rqmtProposer: '',
+        rqmtOrntIds: [],
         belongingProject: '-1',
         priority: null,
         sourceType: null,
@@ -291,21 +298,20 @@ export default {
       })
       const res3 = await settingQueryBizRqmtOrntList(localStorage.getItem('bizId'))
       if (res3.code === 200) { // 需求方向
-        this.demandDirection = res3.data.map(item => ({
-          ...item,
-          value: item.id,
-          label: item.rqmtOrntName,
-          children: item.childRqmtOrnts ? this.objArrtransArr(item.childRqmtOrnts) : ''
-        }))
+        this.demandDirection = this.getTreeData(res3.data)
       }
     },
-    objArrtransArr(olddata) { // 需求方向
-      return olddata.map(item => ({
-        ...item,
-        value: item.id,
-        label: item.rqmtOrntName,
-        children: item.childRqmtOrnts
-      }))
+    getTreeData(data) {
+      for (var i = 0; i < data.length; i++) {
+        if (data[i].childRqmtOrnts.length < 1) {
+          // children若为空数组,则将children设为undefined
+          data[i].childRqmtOrnts = undefined
+        } else {
+          // children若不为空数组,则继续 递归调用 本方法
+          this.getTreeData(data[i].childRqmtOrnts)
+        }
+      }
+      return data
     },
     showRequirementEnum() {
       return showRequirementEnum().then(res => {

+ 19 - 14
src/views/projectManage/requirement/list/index.vue

@@ -21,7 +21,7 @@
             </div>
             <div class="Layout">
               <div class="queryName marginLeft">需求方向</div>
-              <el-cascader v-model="searchForm.rqmtOrntIds" size="small" clearable collapse-tags :props="{ multiple: true, checkStrictly: true }" :options="demandDirection" placeholder="请选择" style="width: 72%" @change="getTableData()" />
+              <el-cascader v-model="searchForm.rqmtOrntIds" size="small" collapse-tags :props="props" :options="demandDirection" placeholder="请选择" style="width: 72%" @change="getTableData()" />
             </div>
           </el-form>
         </div>
@@ -221,6 +221,12 @@ export default {
       FilterItems: {
         name: ''
       },
+      props: {
+        value: 'id',
+        label: 'rqmtOrntName',
+        children: 'childRqmtOrnts',
+        multiple: true
+      },
       stratAndEnd: [], // 创建日期
       searchInfo: {
         belongingProject: [],
@@ -303,21 +309,20 @@ export default {
       }
       const res3 = await settingQueryBizRqmtOrntList(localStorage.getItem('bizId'))
       if (res3.code === 200) { // 需求方向
-        this.demandDirection = res3.data.map(item => ({
-          ...item,
-          value: item.id,
-          label: item.rqmtOrntName,
-          children: item.childRqmtOrnts ? this.objArrtransArr(item.childRqmtOrnts) : ''
-        }))
+        this.demandDirection = this.getTreeData(res3.data)
       }
     },
-    objArrtransArr(olddata) { // 需求方向
-      return olddata.map(item => ({
-        ...item,
-        value: item.id,
-        label: item.rqmtOrntName,
-        children: item.childRqmtOrnts
-      }))
+    getTreeData(data) {
+      for (var i = 0; i < data.length; i++) {
+        if (data[i].childRqmtOrnts.length < 1) {
+          // children若为空数组,则将children设为undefined
+          data[i].childRqmtOrnts = undefined
+        } else {
+          // children若不为空数组,则继续 递归调用 本方法
+          this.getTreeData(data[i].childRqmtOrnts)
+        }
+      }
+      return data
     },
     getArrayList() {
       const arr2 = []

+ 20 - 15
src/views/projectManage/requirement/requirementDetail.vue

@@ -109,7 +109,7 @@
             </el-form>
             <el-form :inline="true" :model="form_query" class="demo-form-inline" label-position="right" label-width="100px">
               <el-form-item label="需求方向:">
-                <el-cascader v-model="form_query.rqmtOrntIds" size="medium" collapse-tags :props="{ multiple: true }" :options="demandDirection" placeholder="请选择" @change="changeArea" />
+                <el-cascader v-model="form_query.rqmtOrntIds" size="medium" collapse-tags :props="props" :options="demandDirection" placeholder="请选择" @change="changeArea" />
               </el-form-item>
               <el-form-item label="需求来源:">
                 <el-select v-model="form_query.sourceType" size="small" filterable placeholder="请选择" @change="changeArea">
@@ -371,6 +371,12 @@ export default {
       showunlock: true,
       textarea2: '',
       HoldTask: '',
+      props: {
+        value: 'id',
+        label: 'rqmtOrntName',
+        children: 'childRqmtOrnts',
+        multiple: true
+      },
       demandDirection: [], // 需求方向option
       optionName: 'first',
       visible: false, // Hold任务
@@ -389,7 +395,7 @@ export default {
       appClient: [], // 跟版客户端列表
       taskScheduleEvent: [], // 排期类型列表
       dependList: [{ msg: '否', code: 0 }, { msg: '是', code: 1 }], // 是否跟版
-      form_query: { pm: {}},
+      form_query: { pm: {}, rqmtOrntIds: [] },
       display: false, // 设置成员弹框
       num: 0, // 成员数量
       availableStatusList: [], // 状态
@@ -500,21 +506,20 @@ export default {
       }
       const res3 = await settingQueryBizRqmtOrntList(localStorage.getItem('bizId'))
       if (res3.code === 200) { // 需求方向
-        this.demandDirection = res3.data.map(item => ({
-          ...item,
-          value: item.id,
-          label: item.rqmtOrntName,
-          children: item.childRqmtOrnts ? this.objArrtransArr(item.childRqmtOrnts) : ''
-        }))
+        this.demandDirection = this.getTreeData(res3.data)
       }
     },
-    objArrtransArr(olddata) { // 需求方向
-      return olddata.map(item => ({
-        ...item,
-        value: item.id,
-        label: item.rqmtOrntName,
-        children: item.childRqmtOrnts
-      }))
+    getTreeData(data) {
+      for (var i = 0; i < data.length; i++) {
+        if (data[i].childRqmtOrnts.length < 1) {
+          // children若为空数组,则将children设为undefined
+          data[i].childRqmtOrnts = undefined
+        } else {
+          // children若不为空数组,则继续 递归调用 本方法
+          this.getTreeData(data[i].childRqmtOrnts)
+        }
+      }
+      return data
     },
     changeBtn() {
       if (this.HoldTask === 'Hold 需求') {