Преглед на файлове

修订新增下周工作计划页面不刷新bug

humingbo преди 2 години
родител
ревизия
fdbcd38771
променени са 2 файла, в които са добавени 162 реда и са изтрити 14 реда
  1. 28 0
      src/api/meeting/work.js
  2. 134 14
      src/views/meeting/weeklyRecords.vue

+ 28 - 0
src/api/meeting/work.js

@@ -14,6 +14,34 @@ export function saveWorkPlans(data){
   )
 }
 
+/**
+ * 更新工作计划
+ * @param data
+ * @returns {*}
+ */
+export function updateWorkPlan(data){
+  return request({
+      url: "/workPlan/updateWorkPlan",
+      method: "POST",
+      data: data
+    }
+  )
+}
+
+/**
+ * 添加工作计划
+ * @param data
+ * @returns {*}
+ */
+export function addWorkPlan(data){
+  return request({
+      url: "/workPlan/addWorkPlan",
+      method: "POST",
+      data: data
+    }
+  )
+}
+
 /**
  * 获取登录用户某周工作内容
  * @param weeks

+ 134 - 14
src/views/meeting/weeklyRecords.vue

@@ -128,15 +128,47 @@
       </span>
     </el-dialog>
 
-    <el-dialog>
-      <el-table :data="workPlanDatas" stripe  style="width: 100%;margin-top: 15px;">
+    <el-dialog :title="workPlanTitle"  :visible.sync="workPlanVisible"  width="60%" center  @close="closeWorkPlanWin">
+      <el-button type="primary" size="mini"  @click="addWorkPlan">添加</el-button>
+      <el-table :data="workPlanDatas" stripe  style="width: 100%;margin-top: 5px;" size="mini">
         <el-table-column type="index" label="序号" width="60"></el-table-column>
-        <el-table-column prop="name" label="任务名称" width="180"></el-table-column>
-        <el-table-column prop="s" label="所属项目" width="180"></el-table-column>
-        <el-table-column prop="address" label="截止时间"></el-table-column>
-        <el-table-column prop="op" label="操作">
-          <el-button type="primary" size="mini">修改</el-button>
-          <el-button type="primary" size="mini">删除</el-button>
+        <el-table-column prop="planContent" label="任务名称" min-width="180" >
+          <template slot-scope="scope">
+            <el-input v-model="scope.row.planContent" placeholder="请输入任务名称"  size="mini"></el-input>
+          </template>
+        </el-table-column>
+        <el-table-column prop="projectId" label="所属项目" width="150">
+          <template  slot-scope="scope">
+            <el-select v-model="scope.row.projectId" placeholder="请选择" size="mini">
+              <el-option
+                v-for="item in projects"
+                :key="item.id"
+                :label="item.projectName"
+                :value="item.id">
+              </el-option>
+            </el-select>
+          </template>
+        </el-table-column>
+        <el-table-column prop="completionTime" label="截止时间" width="150">
+          <template slot-scope="scope">
+            <el-date-picker
+              v-model="scope.row.completionTime"
+              type="date"
+              size="mini"
+              value-format="yyyy-MM-dd"
+              format="yyyy-MM-dd"
+              placeholder="选择日期" style="width: 140px">
+            </el-date-picker>
+          </template>
+        </el-table-column>
+        <el-table-column prop="op" label="操作" width="180">
+          <template slot-scope="scope">
+            <el-button type="primary" v-if="scope.row.id!==null" size="mini"  @click="updateWorkPlan(scope.row)">修改</el-button>
+            <el-button type="primary" v-if="scope.row.id===null" size="mini"  @click="addWorkPlanData(scope.row)">新增</el-button>
+            <el-button type="danger"  v-if="scope.row.id!==null" size="mini"  @click="deleteWorkPlanByIds(scope.row)">删除</el-button>
+            <el-button type="danger"  v-if="scope.row.id===null" size="mini"  @click="deleteRow(scope.$index, scope.row)">移除</el-button>
+          </template>
+
         </el-table-column>
       </el-table>
     </el-dialog>
@@ -154,6 +186,8 @@ import {
 } from '@/api/meeting/meeting'
 
 import {downloadPdf} from "@/api/meeting/meeting";
+import { addWorkPlan, deleteWorkPlanById, getProjects, getWorkPlanByWeeks, updateWorkPlan } from '@/api/meeting/work'
+import { editEnforceRemind } from '@/api/meeting/enforceRemind'
 
 export default {
   name: 'weeklyRecords',
@@ -191,7 +225,11 @@ export default {
       },
       mergeObj: {}, // 用来记录需要合并行的下标
       mergeArr: ['group', 'userName', 'planContent', 'scores', 'remarks', 'workComments'], // 表格中的列名
-      workPlanDatas:[]
+      workPlanDatas:[],
+      workPlanTitle:'',
+      workPlanVisible:false,
+      projects:[],
+      row:null,
     }
   },
   created() {
@@ -276,7 +314,6 @@ export default {
       })
     },
     workComment(row) {
-
       let planContent=row.planContent;
       if(planContent.includes('下周暂无工作安排')){
         let userName=row.userName;
@@ -325,7 +362,6 @@ export default {
     },
     getTaskScheduleRemarks(row) {
       this.taskFeedbackTitle = row.userName + ":" + row.taskName
-
       getTaskScheduleRemark(row.taskId).then(res => {
         let content = res.data;
         let feedbackContent = '';
@@ -363,13 +399,97 @@ export default {
     addWorkPlanWin(row, column, cell, event){
       let label=column.label
       if(label==='工作内容与完成时间'){
+        getProjects().then(res=>{
+          this.projects=res.data
+        });
+        let meetingId=this.meetingId
+        let weeks=this.weeks
         let userId=row.executor
-        console.log(JSON.stringify(row))
+        this.workPlanTitle=row.userName+'下周工作计划'
+        getWorkPlanByWeeks(weeks,userId).then(res=>{
+          this.workPlanDatas=res.data
+          console.log(JSON.stringify(res))
+        })
+        this.row=row
+        this.workPlanVisible=true
+      }
+    },
+    addWorkPlan(){
+      let row={
+        planContent: '',
+        id: null,
+        meetingId: null,
+        completionTimes: null,
+        completionTime: null,
+        projectId: null,
+        userId:null
+      }
+      this.workPlanDatas.push(row)
+    },
+    deleteRow(index, row){
+      this.workPlanDatas.splice(index, 1)
+    },
+    addWorkPlanData(row){
+      let content=row.planContent;
+      if(content===null || content===''){
+        this.$message.warning("请输入工作内容!")
+        return
+      }
+      let completionTime=row.completionTime
+      if(completionTime===null || completionTime===''){
+        this.$message.warning("请选择截止时间!")
+        return
       }
+      let userId=this.row.executor
+      let weeks=this.weeks
+      let data={
+        planContent:row.planContent,
+        projectId:row.projectId,
+        completionTime:new Date(completionTime).getTime(),
+        meetingId:this.meetingId,
+        userId:userId,
+        weeks:weeks
+      }
+      addWorkPlan(data).then(res=>{
+        this.$message.success("操作成功!")
+        getWorkPlanByWeeks(weeks,userId).then(res=>{
+          this.workPlanDatas=res.data
+        })
+      })
+      console.log(JSON.stringify(data))
+    },
+    updateWorkPlan(row){
+      let id=row.id;
+      let completionTime=row.completionTime
+      if(completionTime===null || completionTime===''){
+        this.$message.warning("请选择截止时间!")
+        return
+      }
+      let data={
+        id:id,
+        planContent:row.planContent,
+        projectId:row.projectId,
+        completionTime:new Date(completionTime).getTime()
+      }
+      updateWorkPlan(data).then(res=>{
+        this.$message.success("操作成功!")
+      })
+    },
+    deleteWorkPlanByIds(row){
+      let id=row.id
+      let userId=row.userId
+      let weeks=row.weeks
+      deleteWorkPlanById(id).then(res=>{
+        this.$message.success("操作成功!")
+        getWorkPlanByWeeks(weeks,userId).then(res=>{
+          this.workPlanDatas=res.data
+        })
+      })
+    },
+    closeWorkPlanWin(){
+      this.getData()
     }
-
   }
-
 }
 </script>