sunyanqiang 2 жил өмнө
parent
commit
3b587c3771

+ 9 - 0
src/api/workingArrangements/workCalendar.js

@@ -22,4 +22,13 @@ export function queryTask(workId) {
     url: `/jobTaskRecord/jobTask/queryTask/${workId}`,
     method: 'get',
   })
+}
+
+// 日历导出
+export function exportCurrentUserTask(query) {
+  return request({
+    url: `/jobTaskRecord/jobTask/exportCurrentUserTask`,
+    method: 'get',
+    params: query
+  })
 }

+ 102 - 41
src/views/workingArrangements/workCalendar/index.vue

@@ -2,7 +2,9 @@
   <div class="box">
     <el-calendar id="calendar">
       <template slot="dateCell" slot-scope="{ date, data }">
-        <div class="calendar-day">{{ data.day.split("-").slice(2).join("-") }}</div>
+        <div class="calendar-day">
+          {{ data.day.split("-").slice(2).join("-") }}
+        </div>
         <div @click="chooseDay(data.day)">
           <div>
             <!-- <p v-for="(item,n) in attendanceDetailsData" :key="item.id" style="color: red">
@@ -16,16 +18,18 @@
               </span>
             </p>-->
             <div
-              v-for="(item,n) in attendanceDetailsData2"
-              :key="item.workStartTime+n"
+              v-for="(item, n) in attendanceDetailsData2"
+              :key="item.workStartTime + n"
               v-if="item.workStartTime == data.day"
             >
               <p
-                v-for="(a,b) in item.data"
-                :key="a.workStartTime+b"
-                v-if="b<='2'"
+                v-for="(a, b) in item.data"
+                :key="a.workStartTime + b"
+                v-if="b <= '2'"
                 style="color: red"
-              >{{a.workDetail}}</p>
+              >
+                {{ a.workDetail }}
+              </p>
             </div>
           </div>
         </div>
@@ -41,7 +45,15 @@
       :close-on-click-modal="false"
       @close="closes"
     >
-      <div class="jiben">任务详情</div>
+      <el-button
+        type="warning"
+        plain
+        icon="el-icon-download"
+        size="mini"
+        @click="handleExport"
+        >导出</el-button
+      >
+      <div class="jiben" style="margin-top:30px">任务详情</div>
       <el-table
         :data="worktaskplanList"
         :header-cell-style="{ background: '#2a6b9a', color: 'white' }"
@@ -51,21 +63,29 @@
           <template scope="scope">
             <span>
               {{
-              (queryParams.pageNum - 1) * queryParams.pageSize +
-              scope.$index +
-              1
+                (queryParams.pageNum - 1) * queryParams.pageSize +
+                scope.$index +
+                1
               }}
             </span>
           </template>
         </el-table-column>
         <el-table-column label="任务名称" prop="workName" />
         <el-table-column label="任务类型" prop="workType" />
-        <el-table-column label="任务描述" prop="workDetail" width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column
+          label="任务描述"
+          prop="workDetail"
+          width="100"
+          show-overflow-tooltip
+        ></el-table-column>
         <el-table-column label="开始时间" prop="workStartTime" />
         <el-table-column label="结束时间" prop="workEndTime" />
         <el-table-column label="任务优先级" prop="taskStatus">
           <template slot-scope="scope">
-            <dict-tag :options="dict.type.work_priority" :value="scope.row.workPriority" />
+            <dict-tag
+              :options="dict.type.work_priority"
+              :value="scope.row.workPriority"
+            />
           </template>
         </el-table-column>
         <el-table-column label="进度" prop="workRate">
@@ -85,7 +105,8 @@
               type="text"
               @click="handleUpdateCha(scope.row)"
               v-hasPermi="['workingArrangements:worktaskplan:add']"
-            >查看</el-button>
+              >查看</el-button
+            >
             <el-button
               size="btlook"
               type="text"
@@ -111,7 +132,13 @@
       class="el-dialog__header"
       :close-on-click-modal="false"
     >
-      <el-form ref="Progress" :model="Progress" :rules="rules1" label-width="100px" :inline="true">
+      <el-form
+        ref="Progress"
+        :model="Progress"
+        :rules="rules1"
+        label-width="100px"
+        :inline="true"
+      >
         <div class="jiben">完成进度</div>
         <el-form-item prop="workRate">
           <div>
@@ -136,7 +163,11 @@
         </el-form-item>
         <div class="jiben">备注</div>
         <el-form-item prop="workFeedbackRemark">
-          <el-input v-model="Progress.workFeedbackRemark" type="textarea" placeholder="请输入内容" />
+          <el-input
+            v-model="Progress.workFeedbackRemark"
+            type="textarea"
+            placeholder="请输入内容"
+          />
         </el-form-item>
         <div class="jiben">完成时间</div>
         <el-form-item prop="workFinishTime">
@@ -196,18 +227,25 @@
               margin-bottom: 20px;
               color: #fff;
             "
-          >{{ moreTable.workStartTime }} 至 {{ moreTable.workEndTime }}</div>
+          >
+            {{ moreTable.workStartTime }} 至 {{ moreTable.workEndTime }}
+          </div>
         </el-form-item>
         <div class="jiben">附件文档</div>
         <el-form-item prop="file">
-          <el-input label="附件名称" v-model="moreTable.fileName" style="width: 820px" />
+          <el-input
+            label="附件名称"
+            v-model="moreTable.fileName"
+            style="width: 820px"
+          />
           <a
             :href="url + moreTable.fileName"
             :download="moreTable.name"
             title="下载"
             style="color: white; margin-left: 10px"
             class="downloadfile"
-          >下载附件</a>
+            >下载附件</a
+          >
         </el-form-item>
         <div class="jiben">任务描述</div>
         <div class="thistext">{{ moreTable.workDetail }}</div>
@@ -220,12 +258,16 @@
           style="width: 100%; background: #004d86"
           class="tabless"
         >
-          <el-table-column prop="executorPeople" label="执行人" width="180"></el-table-column>
+          <el-table-column
+            prop="executorPeople"
+            label="执行人"
+            width="180"
+          ></el-table-column>
           <el-table-column label="任务周期" width="190">
             <template slot-scope="scope">
-              <div
-                v-if="scope.row.workStartTime && scope.row.workEndTime"
-              >{{ scope.row.workStartTime }}至{{ scope.row.workEndTime }}</div>
+              <div v-if="scope.row.workStartTime && scope.row.workEndTime">
+                {{ scope.row.workStartTime }}至{{ scope.row.workEndTime }}
+              </div>
             </template>
           </el-table-column>
           <el-table-column prop="workRate" label="进度">
@@ -239,7 +281,11 @@
               ></el-progress>
             </template>
           </el-table-column>
-          <el-table-column prop="workFinishTime" label="完成时间" width="180"></el-table-column>
+          <el-table-column
+            prop="workFinishTime"
+            label="完成时间"
+            width="180"
+          ></el-table-column>
           <el-table-column label="状态" width="180">
             <template slot-scope="scope">
               <div>{{ scope.row.workRate == 100 ? "完成" : "未完成" }}</div>
@@ -250,7 +296,8 @@
               <a
                 :href="url + scope.row.workFeedbackFileUrl"
                 :download="scope.row.workFeedbackFileName"
-              >下载附件</a>
+                >下载附件</a
+              >
             </template>
           </el-table-column>
         </el-table>
@@ -265,7 +312,8 @@
 import {
   peopleList,
   progressInput,
-  queryTask
+  queryTask,
+  exportCurrentUserTask
 } from "@/api/workingArrangements/workCalendar";
 export default {
   name: "workCalendar",
@@ -287,7 +335,7 @@ export default {
         workFeedbackFileUrl: null,
         workId: null,
         workFeedbackRemark: null,
-        file: [{ name: null, url: null }]
+        file: [{ name: null, url: null }],
       },
       rules1: {},
       form: {},
@@ -298,12 +346,12 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10
+        pageSize: 10,
       },
       // 进度录入
       jinDu: {
         executorPeople: null,
-        id: null
+        id: null,
       },
       // 时间
       day: null,
@@ -314,7 +362,8 @@ export default {
       rulesb: {},
       url: process.env.VUE_APP_BASE_API,
       // 执行人查看进度
-      workProgresses: []
+      workProgresses: [],
+      form1:{}
     };
   },
   created() {
@@ -322,7 +371,7 @@ export default {
   },
   methods: {
     getList() {
-      peopleList().then(res => {
+      peopleList().then((res) => {
         this.worktaskplanList = [];
         let workStartTimedata = [];
         this.attendanceDetailsData2 = [];
@@ -331,11 +380,11 @@ export default {
           if (workStartTimedata.indexOf(item.workStartTime) === -1) {
             this.attendanceDetailsData2.push({
               workStartTime: item.workStartTime,
-              data: [item]
+              data: [item],
             });
             workStartTimedata.push(item.workStartTime);
           } else {
-            this.attendanceDetailsData2.forEach(n => {
+            this.attendanceDetailsData2.forEach((n) => {
               if (n.workStartTime == item.workStartTime) {
                 n.data.push(item);
               }
@@ -345,7 +394,6 @@ export default {
             this.worktaskplanList.push(item);
           }
         });
-        console.log(this.attendanceDetailsData2);
       });
     },
     submitForm2() {},
@@ -377,7 +425,7 @@ export default {
     // 查看
     handleUpdateCha(row) {
       this.workProgresses = [];
-      queryTask(row.id).then(res => {
+      queryTask(row.id).then((res) => {
         this.moreTable = res.data;
         this.moreTable.fileName = res.data.workAnnex;
         this.moreTable.name = res.data.workAnnexName;
@@ -399,7 +447,7 @@ export default {
     },
     // 进度录入
     submitForm() {
-      this.$refs["Progress"].validate(valid => {
+      this.$refs["Progress"].validate((valid) => {
         if (valid) {
           this.Progress.workId = this.jinDu.id;
           this.Progress.executorPeople = this.jinDu.executorPeople;
@@ -407,7 +455,7 @@ export default {
             this.Progress.workFeedbackFileName = this.Progress.file[0].name;
             this.Progress.workFeedbackFileUrl = this.Progress.file[0].url;
           }
-          progressInput(this.Progress).then(res => {
+          progressInput(this.Progress).then((res) => {
             this.$modal.msgSuccess("上传成功");
             this.getList();
             this.open = false;
@@ -423,7 +471,7 @@ export default {
         workFeedbackFileName: null,
         workFeedbackFileUrl: null,
         workId: null,
-        workFeedbackRemark: null
+        workFeedbackRemark: null,
       };
       this.resetForm("Progress");
     },
@@ -440,7 +488,7 @@ export default {
     },
     handleSelected(day) {
       let flag = -1; //默认显示为-1
-      this.attendanceDetailsData.forEach(item => {
+      this.attendanceDetailsData.forEach((item) => {
         //this.attendanceDetailsData是后台返回的数据
         if (item.workStartTime == day) {
           //判断显示数据
@@ -449,8 +497,21 @@ export default {
         }
       });
       return flag;
-    }
-  }
+    },
+    handleExport(){
+      this.form1.nowDate=this.day
+      this.$modal
+            .confirm("是否确认导出数据项?")
+            .then(() => {
+              return exportCurrentUserTask(this.form1);
+            })
+            .then((response) => {
+              this.$download.name(response.msg);
+              this.open = false;
+            })
+            .catch(() => {});
+        }
+  },
 };
 </script>