Ver código fonte

调整接口

humingbo 1 ano atrás
pai
commit
640ac659e6

+ 63 - 7
src/views/meeting/weekly.vue

@@ -20,13 +20,27 @@
           border
           stripe
           size="mini"
-          style="width: 65%" v-model="workContents" :data="workContents"
-          @row-click="rowClick">
-          <el-table-column type="index" label="序号" width="60">
+          style="width: 80%" v-model="workContents" :data="workContents"
+          @row-click="rowClick" :span-method="objectSpanMethod" :highlight-current-row="true">
+          <el-table-column label="分类" prop="classifyName" width="80">
+          </el-table-column>
+          <el-table-column label="项目" prop="projectName" width="120">
+          </el-table-column>
+          <el-table-column label="模块" prop="moduleName" width="150">
           </el-table-column>
           <el-table-column label="任务名称" prop="taskName" width="250">
           </el-table-column>
           <el-table-column label="工作反馈" prop="description">
+            <template slot-scope="scope">
+              <span v-if="scope.row.description!==''" v-for="(item,index) in scope.row.description.split(',') ">
+                {{index+1}}. {{ item }}<br/>
+              </span>
+            </template>
+          </el-table-column>
+          <el-table-column label="最新进度" prop="scheduleValue" width="100">
+            <template slot-scope="scope">
+              {{scope.row.scheduleValue}}%
+            </template>
           </el-table-column>
         </el-table>
       </div>
@@ -36,7 +50,7 @@
           border
           stripe
           size="mini"
-          style="width: 65%" :data="workPlans">
+          style="width: 80%" :data="workPlans">
           <el-table-column type="index" label="序号" width="60">
           </el-table-column>
           <el-table-column label="工作计划" prop="workPlan">
@@ -121,7 +135,9 @@ export default {
       currentWeek: null,
       meetingId: null,
       taskOpen: false,
-      taskForm:{}
+      taskForm:{},
+      mergeObj: {}, // 用来记录需要合并行的下标
+      mergeArr: ['classifyName','projectName','moduleName'], // 表格中的列名
     }
   },
   mounted() {
@@ -136,7 +152,7 @@ export default {
         const date = new Date();
         // 获取当前第几周
         let week = this.getYearWeek(date.getFullYear(), Number(date.getMonth()) + 1, date.getDate());
-        let currentWeek = week + 1;
+        let currentWeek = week ;
         this.meetingWeek = currentWeek
         this.getMeetingsAndWorkPlansByWeeksData(currentWeek)
       })
@@ -148,6 +164,7 @@ export default {
       let weekss = currentWeek
       getMeetingsAndWorkPlansByWeeks(currentWeek).then(response => {
         this.workContents = response.data.workContent
+        this.getSpanArr(this.workContents);
         if (response.data.workPlan != null && response.data.workPlan.length > 0) {
           this.workPlans = response.data.workPlan
         }
@@ -156,7 +173,7 @@ export default {
         // 获取当前第几周
         let week = this.getYearWeek(date.getFullYear(), Number(date.getMonth()) + 1, date.getDate());
 
-        let currentWeek = week + 1;
+        let currentWeek = week ;
         this.currentWeek = currentWeek;
         if (weekss !== currentWeek) {
           this.workPlans = response.data.workPlan
@@ -253,6 +270,45 @@ export default {
         this.taskOpen = true;
       })
     },
+    objectSpanMethod({row, column, rowIndex, columnIndex}) {
+      if (this.mergeArr.indexOf(column.property) !== -1) {
+        // 判断其值是不是为0
+        if (this.mergeObj[column.property][rowIndex]) {
+          return [this.mergeObj[column.property][rowIndex], 1]
+        } else {
+          // 如果为0则为需要合并的行
+          return [0, 0];
+        }
+      }
+    },
+
+    getSpanArr(data) {
+      this.mergeArr.forEach((key, index1) => {
+        let count = 0; // 用来记录需要合并行的起始位置
+        this.mergeObj[key] = []; // 记录每一列的合并信息
+
+        data.forEach((item, index) => {
+          // index == 0表示数据为第一行,直接 push 一个 1
+          if (index === 0) {
+            this.mergeObj[key].push(1);
+            //item.group=index;
+          } else {
+            // 判断当前行是否与上一行其值相等 如果相等 在 count 记录的位置其值 +1 表示当前行需要合并 并push 一个 0 作为占位
+            if (item[key] === data[index - 1][key]) {
+              this.mergeObj[key][count] += 1;
+              this.mergeObj[key].push(0);
+              //item.group = this.tableData[index - 1].group;
+            } else {
+              // 如果当前行和上一行其值不相等
+              count = index; // 记录当前位置
+              this.mergeObj[key].push(1); // 重新push 一个 1
+              // item.group = this.tableData[index - 1].group + 1; //如果不一样 将组号设置为上一个数据的组号加1
+            }
+          }
+        })
+
+      })
+    },
   }
 }
 </script>

+ 1 - 1
src/views/task/components/taskDetail.vue

@@ -41,7 +41,7 @@
       <el-table-column width="60" property="userName" label="反馈人"></el-table-column>
       <el-table-column width="60" label="完成度">
         <template slot-scope="scope">
-          <div>{{ scope.row.value + '%' }}</div>
+          <div v-if="scope.row.value!==undefined">{{ scope.row.value + '%' }}</div>
         </template>
       </el-table-column>
       <el-table-column width="140" property="createTime" label="反馈时间"></el-table-column>