Browse Source

新增推荐表单

duy 2 ngày trước cách đây
mục cha
commit
5ba6c0ab2b
1 tập tin đã thay đổi với 127 bổ sung42 xóa
  1. 127 42
      src/views/manager/projectinfo/tree.vue

+ 127 - 42
src/views/manager/projectinfo/tree.vue

@@ -2616,7 +2616,7 @@
                     lazy
                     :load="loadNode"
                    @node-click="handleNodeClick"
-                    :default-expanded-keys="defaultExpandedKeys"
+                
                     :props="defaultProps"
                     :expand-on-click-node="false"
                     highlight-current
@@ -2629,41 +2629,85 @@
         </el-card>
         <el-card class="box-card-2">
          
-            <div class="table-box">
-              <h4 style="margin-left: 4px;">表单预览</h4>
-              <el-table
-              size="small"
-              ref="proTable1"
-                  :data="preTableData1"
-                  stripe
-                  style="width: 100%"
-                  max-height="300"
-                  @selection-change="handleSelectionChange1"
-                  
-                  >
-                  <el-table-column
-                    type="selection"
-                    width="55">
-                  </el-table-column>
-                  <el-table-column
-                    prop="tableName"
-                    label="表单名称"
-                  >
-                  </el-table-column>
-                  <el-table-column
-                   prop="tableType"
-                  :formatter="formatTableType"
-                    label="表单类型"
-                    width="100">
-                  </el-table-column>
-                  <el-table-column
-                      prop="tableOwner"
-                       width="100"
-                     :formatter="formatOwner"
-                    label="所属方">
-                  </el-table-column>
-                   
-                </el-table>
+            <div >
+             
+              <el-tabs type="border-card" v-model="activeName" >
+                <el-tab-pane label="表单预览" name="表单预览">
+                  <el-table
+                                  size="small"
+                                  ref="proTable1"
+                                      :data="preTableData1"
+                                      stripe
+                                      style="width: 100%"
+                                     
+                                      @selection-change="handleSelectionChange1"
+                                      
+                                      >
+                                      <el-table-column
+                                        type="selection"
+                                        width="55">
+                                      </el-table-column>
+                                      <el-table-column
+                                        prop="tableName"
+                                        label="表单名称"
+                                      >
+                                      </el-table-column>
+                                      <el-table-column
+                                      prop="tableType"
+                                      :formatter="formatTableType"
+                                        label="表单类型"
+                                        width="100">
+                                      </el-table-column>
+                                      <el-table-column
+                                          prop="tableOwner"
+                                          width="100"
+                                        :formatter="formatOwner"
+                                        label="所属方">
+                                      </el-table-column>
+                                      
+                  </el-table> 
+                </el-tab-pane>
+                <el-tab-pane label="推荐表单" name="推荐表单">
+                                <el-table
+                                  size="small"
+                                  ref="proTable2"
+                                      :data="recomandData"
+                                      stripe
+                                      style="width: 100%"
+                                    
+                                      @selection-change="handleSelectionChange2"
+                                      
+                                      >
+                                      <el-table-column
+                                        type="selection"
+                                        width="55">
+                                      </el-table-column>
+                                      <el-table-column
+                                        prop="tableName"
+                                        label="表单名称"
+                                      >
+                                      </el-table-column>
+                                      <el-table-column
+                                      prop="tableType"
+                                      :formatter="formatTableType"
+                                        label="表单类型"
+                                        width="100">
+                                      </el-table-column>
+                                      <el-table-column
+                                          prop="tableOwner"
+                                          width="100"
+                                        :formatter="formatOwner"
+                                        label="所属方">
+                                      </el-table-column>
+                                      <el-table-column
+                                        prop="parentName"
+                                        label="父节点"
+                                      >
+                                      </el-table-column>
+                                  </el-table> 
+                </el-tab-pane>
+                
+              </el-tabs>
             </div>
         </el-card>
       </div>
@@ -3225,6 +3269,8 @@ export default {
       saveProTagLoading:false,
       syncTableDialog:false,
       preTableData1:[],
+      recomandData:[],
+      activeName:'表单预览',
       formIds:'',
       saveTableSyncLoad:false,
       checkRow:null,
@@ -6401,11 +6447,18 @@ async saveLinkTab() {
         
         this.syncTableDialog=true
         this.isShowLeft=true
-
+    
+        this.activeName='表单预览'
         if(this.$refs.proTable1){
           this.$refs.proTable1.clearSelection()
         }
-        
+             if(this.$refs.proTable2){
+          this.$refs.proTable2.clearSelection()
+        }
+        this.recomandData = [];
+   
+        this.formIds=''
+        this.getRecommendTableData()
       }
       
     },
@@ -6426,6 +6479,7 @@ async saveLinkTab() {
                     this.$message.success(res.data.msg)
                     this.syncTableDialog=false
                     this.$refs.proTable1.clearSelection()
+                     this.$refs.proTable2.clearSelection()
                     this.updateNodeTable()
                    
                     }else{
@@ -6436,16 +6490,33 @@ async saveLinkTab() {
     },
     handleNodeClick(data) {
    
-         
-      selectByNodeTable(data.id, this.projectid, this.id).then((res) => {
-          if (res.data.data.length) {
+      selectByNodeTable(
+        data.id, this.projectid, this.id
+      ).then((res) => {
+          if (res.data.data&&res.data.data.length) {
             this.preTableData1 = res.data.data;
           } else {
             this.preTableData1 = [];
           }
-        });
+       });
      
     },
+    getRecommendTableData(){
+      getRecommendTable(
+        {
+          parentId:0,
+          projectId:this.projectid,
+          wbsId:this.id,
+          pKeyId:this.checkRow.pkeyId
+        }
+      ).then((res) => {
+          if (res.data.data&&res.data.data.length) {
+            this.recomandData = res.data.data;
+          } else {
+            this.recomandData = [];
+          }
+       });
+    },
     handleSelectionChange1(val) {
 
       
@@ -6464,6 +6535,20 @@ async saveLinkTab() {
        
   
     },
+    handleSelectionChange2(val) {
+        if (val.length > 1) {
+          // 如果选择了多个,只保留最后一个
+          this.$nextTick(() => {
+            this.$refs.proTable2.clearSelection();
+            this.$refs.proTable2.toggleRowSelection(val.pop());
+          });
+      }
+      if(val.length>0){
+        this.formIds=val[0].pkeyId
+      }else{
+        this.formIds=''
+      }
+    },
    async refreshData(){
     this.refreshLoading=true
       getNodeStatus({ id:this.curTreeData.primaryKeyId}).then((res) => {