ysc 2 vuotta sitten
vanhempi
commit
d40202f81f
1 muutettua tiedostoa jossa 133 lisäystä ja 113 poistoa
  1. 133 113
      src/views/meeting/weekly.vue

+ 133 - 113
src/views/meeting/weekly.vue

@@ -1,137 +1,150 @@
 <template>
   <div class="app-container">
-    <el-form   size="mini" :inline="true">
+    <el-form size="mini" :inline="true">
       <el-form-item label="关联会议">
-        <el-select size="small"   placeholder="关联会议" clearable filterable v-model="meetingWeek" @change="changeWeekData()">
-          <el-option  v-for="(item,index) in meetingData" :label="item.meetingName" :key="item.id" :value="item.weeks"></el-option>
+        <el-select size="small" placeholder="关联会议" clearable filterable v-model="meetingWeek"
+                   @change="changeWeekData()">
+          <el-option v-for="(item,index) in meetingData" :label="item.meetingName" :key="item.id"
+                     :value="item.weeks"></el-option>
         </el-select>
 
       </el-form-item>
-      <el-form-item >
-        <el-button  type="primary" icon="el-icon-download" @click="generateWeekly()" v-show="false">周报生成</el-button>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-download" @click="generateWeekly()" v-show="false">周报生成</el-button>
       </el-form-item>
     </el-form>
     <div ref="exportPdf" id="exportPdf">
-    <div>
-      <h3>本周工作内容</h3>
-      <el-table
-        border
-        stripe
-        size="mini"
-        style="width: 65%" v-model="workContents" :data="workContents">
-        <el-table-column  type="index" label="序号" width="60">
-        </el-table-column>
-        <el-table-column label="任务名称" prop="taskName" width="250">
-        </el-table-column>
-        <el-table-column label="工作反馈" prop="description" >
-        </el-table-column>
-      </el-table>
-    </div>
-    <div>
-      <h3>下周工作计划</h3>
-      <el-table
-        border
-        stripe
-        size="mini"
-        style="width: 65%" :data="workPlans">
-        <el-table-column  type="index" label="序号" width="60">
-        </el-table-column>
-        <el-table-column label="工作计划" prop="workPlan">
-          <template slot-scope="scope">
-            <el-input size="mini" type="textarea" autosize v-model="scope.row.planContent" ></el-input>
-          </template>
-        </el-table-column>
-        <el-table-column label="预计完成时间" prop="completionTimes">
-          <template slot-scope="scope">
-            <el-date-picker
-              v-model="scope.row.completionTimes"
-              type="date"
-              size="mini"
-              value-format="yyyy-MM-dd"
-              format="yyyy-MM-dd"
-              placeholder="选择日期">
-            </el-date-picker>
-          </template>
-        </el-table-column>
-        <el-table-column label="操作" prop="op" width="150" v-if="currentWeek===weeks">
-          <template slot-scope="scope">
-            <el-button size="mini" type="primary" @click="addRow()">添加</el-button>
-            <el-button size="mini" type="danger" @click="deleteRow(scope.$index, scope.row)">删除</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-    </div>
+      <div>
+        <h3>本周工作内容</h3>
+        <el-table
+          border
+          stripe
+          size="mini"
+          style="width: 65%" v-model="workContents" :data="workContents"
+          @row-click="rowClick">
+          <el-table-column type="index" label="序号" width="60">
+          </el-table-column>
+          <el-table-column label="任务名称" prop="taskName" width="250">
+          </el-table-column>
+          <el-table-column label="工作反馈" prop="description">
+          </el-table-column>
+        </el-table>
+      </div>
+      <div>
+        <h3>下周工作计划</h3>
+        <el-table
+          border
+          stripe
+          size="mini"
+          style="width: 65%" :data="workPlans">
+          <el-table-column type="index" label="序号" width="60">
+          </el-table-column>
+          <el-table-column label="工作计划" prop="workPlan">
+            <template slot-scope="scope">
+              <el-input size="mini" type="textarea" autosize v-model="scope.row.planContent"></el-input>
+            </template>
+          </el-table-column>
+          <el-table-column label="预计完成时间" prop="completionTimes">
+            <template slot-scope="scope">
+              <el-date-picker
+                v-model="scope.row.completionTimes"
+                type="date"
+                size="mini"
+                value-format="yyyy-MM-dd"
+                format="yyyy-MM-dd"
+                placeholder="选择日期">
+              </el-date-picker>
+            </template>
+          </el-table-column>
+          <el-table-column label="操作" prop="op" width="150" v-if="currentWeek===weeks">
+            <template slot-scope="scope">
+              <el-button size="mini" type="primary" @click="addRow()">添加</el-button>
+              <el-button size="mini" type="danger" @click="deleteRow(scope.$index, scope.row)">删除</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
 
     </div>
     <div style="margin-top: 50px;margin-right: 150px;  width: 65%;text-align: center">
       <el-button size="mini" type="primary" @click="saveWorkPlan()" v-if="currentWeek===weeks">保存工作计划</el-button>
     </div>
+
+    <!-- 任务详情对话框 -->
+    <el-dialog title="任务详情" :visible.sync="taskOpen" width="680px" append-to-body
+               :close-on-click-modal="false">
+      <task-detail :detail-form="taskForm"></task-detail>
+    </el-dialog>
+
   </div>
 </template>
 
 <script>
 
 import {list} from '@/api/meeting/meeting'
-import { deleteWorkPlanById, getMeetingsAndWorkPlansByWeeks, saveWorkPlans } from '@/api/meeting/work'
-import Vue from "vue";
-import vueToPdf from 'vue-to-pdf';
-Vue.use(vueToPdf);
+import {deleteWorkPlanById, getMeetingsAndWorkPlansByWeeks, saveWorkPlans} from '@/api/meeting/work'
+import {getTask} from "@/api/task/task";
+import TaskDetail from "../task/components/taskDetail"
+
 
 export default {
   name: 'weekly',
+  components: {TaskDetail},
   data() {
     return {
-      meetingWeek:null,
-      meetingData:[],
-      workContents:[],
-      workPlans:[{
-        planContent:'请填写工作计划信息',
-        id:null,
-        meetingId:null,
-        completionTimes:null,
-        completionTime:null
+      meetingWeek: null,
+      meetingData: [],
+      workContents: [],
+      workPlans: [{
+        planContent: '请填写工作计划信息',
+        id: null,
+        meetingId: null,
+        completionTimes: null,
+        completionTime: null
       }],
-      meetingStatus:null,
-      weeks:null,
-      currentWeek:null,
-      meetingId:null
+      meetingStatus: null,
+      weeks: null,
+      currentWeek: null,
+      meetingId: null,
+      taskOpen: false,
+      taskForm:{}
     }
   },
   mounted() {
     this.getData()
   },
-  methods : {
-    getData(){
-      list().then(response =>{
-        this.meetingData=response.data
-        this.meetingId=this.meetingData.id
+  methods: {
+    getData() {
+      list().then(response => {
+        this.meetingData = response.data
+        this.meetingId = this.meetingData.id
         //js 获取当前周
         const date = new Date();
         // 获取当前第几周
         let week = this.getYearWeek(date.getFullYear(), Number(date.getMonth()) + 1, date.getDate());
-        let currentWeek=week+1;
-        this.meetingWeek=currentWeek
+        let currentWeek = week + 1;
+        this.meetingWeek = currentWeek
         this.getMeetingsAndWorkPlansByWeeksData(currentWeek)
       })
     },
-    getMeetingsAndWorkPlansByWeeksData(currentWeek){
-      let weekss=currentWeek
-      getMeetingsAndWorkPlansByWeeks(currentWeek).then(response =>{
-        this.workContents=response.data.workContent
-        if(response.data.workPlan!=null && response.data.workPlan.length>0){
-          this.workPlans=response.data.workPlan
+    getMeetingsAndWorkPlansByWeeksData(currentWeek) {
+      let weekss = currentWeek
+      getMeetingsAndWorkPlansByWeeks(currentWeek).then(response => {
+        this.workContents = response.data.workContent
+        if (response.data.workPlan != null && response.data.workPlan.length > 0) {
+          this.workPlans = response.data.workPlan
         }
-        this.weeks=response.data.weeks
+        this.weeks = response.data.weeks
         const date = new Date();
         // 获取当前第几周
         let week = this.getYearWeek(date.getFullYear(), Number(date.getMonth()) + 1, date.getDate());
 
-        let currentWeek=week+1;
-        this.currentWeek=currentWeek;
-        if(weekss!==currentWeek){
-          this.workPlans=response.data.workPlan
+        let currentWeek = week + 1;
+        this.currentWeek = currentWeek;
+        if (weekss !== currentWeek) {
+          this.workPlans = response.data.workPlan
         }
-        this.meetingId=response.data.meetingId
+        this.meetingId = response.data.meetingId
       })
     },
     getYearWeek(a, b, c) {
@@ -140,11 +153,11 @@ export default {
         d = Math.round((date1.valueOf() - date2.valueOf()) / 86400000);
       return Math.ceil((d + (date2.getDay() + 1 - 1)) / 7);
     },
-    getWorkData(){
+    getWorkData() {
 
     },
-    generateWeekly(){
-      if(this.meetingWeek==null || this.meetingWeek==undefined || this.meetingWeek===''){
+    generateWeekly() {
+      if (this.meetingWeek == null || this.meetingWeek == undefined || this.meetingWeek === '') {
         this.$message({
           message: '请选择会议信息!',
           type: 'warning'
@@ -153,8 +166,8 @@ export default {
       }
       this.$PDFSave(this.$refs.exportPdf, "我的工作周报");
     },
-    saveWorkPlan(){
-      if(this.meetingWeek==null || this.meetingWeek==undefined || this.meetingWeek===''){
+    saveWorkPlan() {
+      if (this.meetingWeek == null || this.meetingWeek == undefined || this.meetingWeek === '') {
         this.$message({
           message: '请选择会议信息!',
           type: 'warning'
@@ -162,17 +175,17 @@ export default {
         return
       }
 
-      let workPlanss=this.workPlans;
-      for(let i=0;i<workPlanss.length;i++){
-        workPlanss[i].completionTime=null;
+      let workPlanss = this.workPlans;
+      for (let i = 0; i < workPlanss.length; i++) {
+        workPlanss[i].completionTime = null;
       }
-      let data={
-        weeks:this.meetingWeek,
-        workPlans:workPlanss,
-        id:this.workPlans.id,
-        meetingId:this.meetingId
+      let data = {
+        weeks: this.meetingWeek,
+        workPlans: workPlanss,
+        id: this.workPlans.id,
+        meetingId: this.meetingId
       }
-      saveWorkPlans(data).then( res => {
+      saveWorkPlans(data).then(res => {
         this.$message({
           message: '操作成功',
           type: 'success'
@@ -181,12 +194,12 @@ export default {
 
       });
     },
-    addRow(){
-      let row={planContent: '','op':'',id:null,completionTimes:null}
+    addRow() {
+      let row = {planContent: '', 'op': '', id: null, completionTimes: null}
       this.workPlans.push(row)
     },
-    deleteRow(index,row){
-      if(index==0){
+    deleteRow(index, row) {
+      if (index == 0) {
         this.$message({
           message: '不能删除此条数据',
           type: 'warning'
@@ -194,18 +207,25 @@ export default {
         return;
       }
       this.workPlans.splice(index, 1)
-      let id=row.id;
-      if(id!=null){
-        deleteWorkPlanById(id).then(res =>{
+      let id = row.id;
+      if (id != null) {
+        deleteWorkPlanById(id).then(res => {
           this.getMeetingsAndWorkPlansByWeeksData(this.meetingWeek)
         });
       }
 
     },
-    changeWeekData(){
+    changeWeekData() {
       this.getMeetingsAndWorkPlansByWeeksData(this.meetingWeek)
 
-    }
+    },
+    /** 查看任务详情*/
+    rowClick(row, column, event) {
+      getTask(row.taskId).then(res => {
+        this.taskForm = res.data;
+        this.taskOpen = true;
+      })
+    },
   }
 }
 </script>