Min il y a 1 an
Parent
commit
d644a6bb9f

+ 63 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/TaskTypeController.java

@@ -1,10 +1,22 @@
 package com.management.platform.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.management.platform.entity.Plan;
+import com.management.platform.entity.TaskType;
+import com.management.platform.mapper.TaskTypeMapper;
+import com.management.platform.mapper.UserMapper;
+import com.management.platform.service.PlanService;
+import com.management.platform.service.TaskTypeService;
+import com.management.platform.util.HttpRespMsg;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
 /**
  * <p>
  *  前端控制器
@@ -17,5 +29,56 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/task-type")
 public class TaskTypeController {
 
+    @Resource
+    private TaskTypeService taskTypeService;
+    @Resource
+    private UserMapper userMapper;
+    @Resource
+    private HttpServletRequest request;
+    @Resource
+    private PlanService planService;
+
+    @RequestMapping("/merge")
+    public HttpRespMsg merge(TaskType taskType){
+        HttpRespMsg msg=new HttpRespMsg();
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        if(taskType.getId()==null){
+            taskType.setCompanyId(companyId);
+            if(taskTypeService.count(new QueryWrapper<TaskType>().eq("task_type_name",taskType.getTaskTypeName()).eq("company_id",companyId))>0){
+                msg.setError("重复的任务类型名称");
+                return msg;
+            }
+        }
+        if(!taskTypeService.saveOrUpdate(taskType)){
+            msg.setError("验证失败");
+        }
+        return msg;
+    }
+
+    @RequestMapping("/list")
+    public HttpRespMsg list(){
+        HttpRespMsg msg=new HttpRespMsg();
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        List<TaskType> list = taskTypeService.list(new QueryWrapper<TaskType>().eq("company_id", companyId));
+        msg.setData(list);
+        return msg;
+    }
+
+    @RequestMapping("/delete")
+    public HttpRespMsg delete(Integer id){
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        int cut = planService.count(new QueryWrapper<Plan>().eq("company_id", companyId).eq("task_type_id", id));
+        if(cut>0){
+            httpRespMsg.setError("当前类型已被使用,无法删除");
+            return httpRespMsg;
+        }
+        if(!taskTypeService.removeById(id)){
+            httpRespMsg.setError("验证失败");
+            return httpRespMsg;
+        }
+        return httpRespMsg;
+    }
+
 }
 

+ 2 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/Plan.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import java.io.Serializable;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonInclude;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -25,6 +26,7 @@ import org.springframework.format.annotation.DateTimeFormat;
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
+@JsonInclude(JsonInclude.Include.NON_NULL)
 public class Plan extends Model<Plan> {
 
     private static final long serialVersionUID=1L;

+ 1 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/TaskTypeService.java

@@ -2,6 +2,7 @@ package com.management.platform.service;
 
 import com.management.platform.entity.TaskType;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.management.platform.util.HttpRespMsg;
 
 /**
  * <p>

+ 8 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/PlanServiceImpl.java

@@ -81,6 +81,8 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
     private ProdProcedureTeamService prodProcedureTeamService;
     @Resource
     private PlanProcedureTotalService planProcedureTotalService;
+    @Resource
+    private TaskTypeService taskTypeService;
 
     @Value(value = "${upload.path}")
     private String path;
@@ -161,6 +163,10 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
             Product product = productMapper.selectById(plan.getProductId());
             plan.setProductName(product.getName());
         }
+        if(plan.getTaskTypeId()!=null){
+            TaskType taskType = taskTypeMapper.selectById(plan.getTaskTypeId());
+            plan.setTaskTypeName(taskType.getTaskTypeName());
+        }
         List<ProdProcedure> procedureList = prodProcedureMapper.selectList(new QueryWrapper<ProdProcedure>().eq("company_id", companyId).eq("product_id",plan.getProductId()).orderByDesc("id"));
         List<PlanProcedureTotal> planProcedureTotals=new ArrayList<>();
         List<ProdProcedure> list;
@@ -592,13 +598,14 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
                 item.add(plan.getCheckType()==0?"自检":plan.getCheckType()==1?"互检":plan.getCheckType()==2?"专检":"");
                 item.add(plan.getStationName());
                 item.add(plan.getForemanName());
+                item.add(df.format(plan.getStartDate()));
                 item.add(df.format(plan.getEndDate()));
                 item.add(plan.getDescribtion()==null?"":plan.getDescribtion());
             }
             dataList.add(item);
         }
         Company company = companyMapper.selectById(companyId);
-        String fileName=(planType==0?"今日计划":planType==1?"明日计划":planType==1?"插单计划":"")+company.getCompanyName()+System.currentTimeMillis();
+        String fileName=(planType==0?"今日计划":planType==1?"明日计划":planType==2?"插单计划":"")+company.getCompanyName()+System.currentTimeMillis();
         String resp = ExcelUtil.exportGeneralExcelByTitleAndList(fileName, dataList, path);
         msg.setData(resp);
         return msg;

+ 4 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/TaskTypeServiceImpl.java

@@ -1,11 +1,15 @@
 package com.management.platform.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.management.platform.entity.TaskType;
 import com.management.platform.mapper.TaskTypeMapper;
 import com.management.platform.service.TaskTypeService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.management.platform.util.HttpRespMsg;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+
 /**
  * <p>
  *  服务实现类

+ 217 - 56
fhKeeper/formulahousekeeper/timesheet-workshop/src/views/plan/orderInsert.vue

@@ -15,7 +15,7 @@
           </div>
         </div>
         <div class="OutSide_right">
-          <el-link type="primary" :underline="false" @click="(deptSetDialog = true)">{{ "任务类型管理"
+          <el-link type="primary" :underline="false" @click="(taskTypeDialog = true)">{{ "任务类型管理"
           }}</el-link>
           <el-link type="primary" :underline="false" @click="addPlan()">{{
             `新增${titleText}`
@@ -43,15 +43,15 @@
       <el-table :data="tableData" style="width: 100%; flex: 1" v-loading="tableDataLoading"
         @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="55"> </el-table-column>
-        <el-table-column prop="productSchedulingNum" label="通知号" width="180"></el-table-column>
-        <el-table-column prop="productName" label="任务名称" width="180"></el-table-column>
-        <el-table-column prop="projectCode" label="任务类型" width="180"></el-table-column>
-        <el-table-column prop="num" label="计划人数" width="180"> </el-table-column>
-        <el-table-column prop="mainProcess" label="数量" width="180"></el-table-column>
-        <el-table-column prop="stationName" label="计划工时" width="180"></el-table-column>
-        <el-table-column prop="foremanName" label="工钱" width="180"></el-table-column>
-        <el-table-column prop="startDate" label="工长" width="180"></el-table-column>
-        <el-table-column prop="endDate" label="开工时间" width="180"></el-table-column>
+        <el-table-column prop="taskChangeNoticeNum" label="通知号" width="180"></el-table-column>
+        <el-table-column prop="taskName" label="任务名称" width="180"></el-table-column>
+        <el-table-column prop="taskTypeName" label="任务类型" width="180"></el-table-column>
+        <el-table-column prop="planManNum" label="计划人数" width="180"> </el-table-column>
+        <el-table-column prop="num" label="数量" width="180"></el-table-column>
+        <el-table-column prop="planWorkHour" label="计划工时" width="180"></el-table-column>
+        <el-table-column prop="moneyOfJob" label="工钱" width="180"></el-table-column>
+        <el-table-column prop="foremanName" label="工长" width="180"></el-table-column>
+        <el-table-column prop="startDate" label="开工时间" width="180"></el-table-column>
         <el-table-column prop="endDate" label="完工时间" width="180"></el-table-column>
         <el-table-column label="编辑">
           <template slot-scope="scope">
@@ -72,53 +72,49 @@
     <el-dialog :title="titleName" :visible.sync="editPlanDiaLog" width="800px" top="18.5vh" :before-close="handleClose">
       <div class="planDialog">
         <el-form ref="todayPlanForm" :rules="todayPlanFormrules" :model="todayPlanForm" label-width="120px">
-          <el-form-item label="任务变更通知号" style="width: 100%" prop="productSchedulingNum">
-            <el-input v-model="todayPlanForm.productSchedulingNum" placeholder="请输入"></el-input>
+          <el-form-item label="任务变更通知号" style="width: 100%" prop="taskChangeNoticeNum">
+            <el-input v-model="todayPlanForm.taskChangeNoticeNum" placeholder="请输入"></el-input>
           </el-form-item>
-          <el-form-item label="任务名称" style="width: 100%" prop="projectCode">
-            <el-input v-model="todayPlanForm.projectCode" placeholder="请输入"></el-input>
+          <el-form-item label="任务名称" style="width: 100%" prop="taskName">
+            <el-input v-model="todayPlanForm.taskName" placeholder="请输入"></el-input>
           </el-form-item>
-          <el-form-item label="任务类型" prop="productId">
-            <el-select v-model="todayPlanForm.productId" placeholder="请选择" class="w100">
-              <el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id">
+          <el-form-item label="任务类型" prop="taskTypeId">
+            <el-select v-model="todayPlanForm.taskTypeId" placeholder="请选择" class="w100">
+              <el-option v-for="item in taskTypeList" :key="item.id" :label="item.taskTypeName" :value="item.id">
               </el-option>
             </el-select>
           </el-form-item>
-          <el-form-item label="计划人数" prop="projectCode">
-            <el-input v-model="todayPlanForm.projectCode" type="number" placeholder="请输入"></el-input>
+          <el-form-item label="计划人数" prop="planManNum">
+            <el-input v-model="todayPlanForm.planManNum" type="number" placeholder="请输入"></el-input>
           </el-form-item>
-          <el-form-item label="数量" prop="projectCode">
-            <el-input v-model="todayPlanForm.projectCode" type="number" placeholder="请输入"></el-input>
+          <el-form-item label="数量" prop="num">
+            <el-input v-model="todayPlanForm.num" type="number" placeholder="请输入"></el-input>
           </el-form-item>
-          <el-form-item label="计划工时" prop="projectCode">
+          <el-form-item label="计划工时" prop="planWorkHour">
             <div style="display: flex;">
-              <el-input v-model="todayPlanForm.projectCode" type="number" placeholder="请输入" style="flex: 1;"></el-input>
+              <el-input v-model="todayPlanForm.planWorkHour" type="number" placeholder="请输入" style="flex: 1;"></el-input>
               <div style="margin-left: 10px;">小时</div>
             </div>
           </el-form-item>
-          <el-form-item label="单价" prop="projectCode">
+          <el-form-item label="单价" prop="moneyOfJob">
             <div style="display: flex;">
-              <el-input v-model="todayPlanForm.projectCode" type="number" placeholder="请输入" style="flex: 1;"></el-input>
+              <el-input v-model="todayPlanForm.moneyOfJob" type="number" placeholder="请输入" style="flex: 1;"></el-input>
               <div style="margin-left: 10px;">元/小时</div>
             </div>
           </el-form-item>
           <el-form-item label="质检类型" prop="productId">
-            <el-select v-model="todayPlanForm.productId" placeholder="请选择" class="w100">
-              <el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id">
+            <el-select v-model="todayPlanForm.checkType" placeholder="请选择" class="w100">
+              <el-option v-for="item in checkTypeList" :key="item.id" :label="item.name" :value="item.id">
               </el-option>
             </el-select>
           </el-form-item>
-          <el-form-item label="工位" prop="productId">
-            <el-select v-model="todayPlanForm.productId" placeholder="请选择" class="w100">
-              <el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id">
-              </el-option>
-            </el-select>
+          <el-form-item label="工位" prop="stationId">
+            <el-cascader v-model="todayPlanForm.stationId" :options="departmentList" :props="{ checkStrictly: true }"
+              collapse-tags class="w100" clearable @change="getIncharger()">
+            </el-cascader>
           </el-form-item>
-          <el-form-item label="工长" prop="productId">
-            <el-select v-model="todayPlanForm.productId" placeholder="请选择" class="w100">
-              <el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id">
-              </el-option>
-            </el-select>
+          <el-form-item label="工长" prop="foremanName">
+            <el-input v-model="todayPlanForm.foremanName"></el-input>
           </el-form-item>
           <el-form-item label="开工时间" prop="startDate">
             <el-date-picker class="w100" v-model="todayPlanForm.startDate" type="date" placeholder="选择日期"
@@ -154,10 +150,54 @@
         <el-button type="primary" @click="deptSetDialog = false">确 定</el-button>
       </span>
     </el-dialog>
+    
+    <!-- 任务类型管理 -->
+    <el-dialog title="任务类型管理" :visible.sync="taskTypeDialog" width="800" :before-close="handleClose">
+      <div>
+        <el-table :data="taskTypeList" style="width: 100%; flex: 1" v-loading="tableDataLoading">
+        <el-table-column prop="taskName" label="序号" width="180">
+          <template slot-scope="scope">
+            <div>{{scope.$index+1}}</div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="taskTypeName" label="类型名称" width="180"></el-table-column>
+        <el-table-column label="操作">
+          <template slot-scope="scope">
+            <span @click="taskTypeAddDialog=true ,editTaskType(scope.row)" class="colorText">编辑</span>
+            <span @click="deleteTaskType(scope.row)" class="colorText">删除</span>
+          </template>
+        </el-table-column>
+      </el-table>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="
+          (taskTypeDialog = false)
+          ">取 消</el-button>
+        <el-button type="primary" @click="taskTypeAddDialog=true">新增</el-button>
+      </span>
+    </el-dialog>
+
+    <!-- 任务类型新增 -->
+    <el-dialog title="新增任务类型" :visible.sync="taskTypeAddDialog" width="800" :before-close="handleClose">
+        <div>
+          <el-form ref="taskTypeForm" :rules="taskTypeFormrules" :model="taskTypeForm" label-width="120px">
+          <el-form-item label="分类名称" style="width: 100%" prop="taskTypeName">
+            <el-input v-model="taskTypeForm.taskTypeName" placeholder="请输入"></el-input>
+          </el-form-item>
+          </el-form>
+        </div>
+        <span slot="footer" class="dialog-footer">
+        <el-button @click="
+          (taskTypeAddDialog = false), $refs['taskTypeForm'].resetFields()
+          ">取 消</el-button>
+        <el-button type="primary" @click="addTaskType('taskTypeForm')">确 定</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
   
 <script>
+import delete$ from 'dingtalk-jsapi/api/biz/cspace/delete';
 export default {
   name: "planComponent",
   components: {},
@@ -183,16 +223,17 @@ export default {
       props: { multiple: true },
       hasSetDeptList: [],
       titleName: "",
+      taskTypeDialog:false,
       todayPlanForm: {
         id: null,
-        productSchedulingNum: "",
-        productId: "",
-        projectCode: "",
-        steelStampNumberStart: "",
-        steelStampNumberEnd: "",
+        taskChangeNoticeNum: "",
+        taskName: "",
+        taskTypeId: "",
+        taskTypeName: "",
+        planManNum: "",
         num: "",
-        mainProcess: "",
-        stationId: "",
+        planWorkHour: "",
+        moneyOfJob: "",
         foremanId: "",
         foremanName: "",
         startDate: "",
@@ -200,6 +241,16 @@ export default {
         describtion: "",
         versionNumber: "",
       },
+       taskTypeForm: {
+        id: null,
+        companyId: "",
+        taskTypeName: "",
+      },
+      taskTypeList:[],
+      checkTypeList:[
+        {id:0,name:"自检"},{id:1,name:"互检"},{id:2,name:"专检"}
+      ],
+      taskTypeAddDialog:false,
       todayTabIndex: 0,
       tableDataLoading: false,
       tableData: [],
@@ -212,23 +263,28 @@ export default {
       multipleSelection: [],
       // 表单规则验证
       todayPlanFormrules: {
-        productSchedulingNum: [
-          { required: true, message: "排产工单号", trigger: "blur" },
+        taskChangeNoticeNum: [
+          { required: true, message: "任务变更通知号", trigger: "blur" },
         ],
-        productId: [{ required: true, message: "产品名称", trigger: "blur" }],
-        projectCode: [{ required: true, message: "项目代码", trigger: "blur" }],
-        steelStampNumberStart: [
-          { required: true, message: "钢印号", trigger: "blur" },
+        taskName: [{ required: true, message: "任务名称", trigger: "blur" }],
+        taskTypeId: [{ required: true, message: "任务类型", trigger: "blur" }],
+        planManNum: [
+          { required: true, message: "计划人数", trigger: "blur" },
         ],
-        steelStampNumberEnd: [
-          { required: true, message: "钢印号", trigger: "blur" },
+        planWorkHour: [
+          { required: true, message: "计划工时", trigger: "blur" },
         ],
         num: [{ required: true, message: "数量", trigger: "blur" }],
-        mainProcess: [{ required: true, message: "主工序", trigger: "blur" }],
+        moneyOfJob: [{ required: true, message: "工钱", trigger: "blur" }],
         stationId: [{ required: true, message: "工位", trigger: "blur" }],
         startDate: [{ required: true, message: "开工时间", trigger: "blur" }],
         endDate: [{ required: true, message: "完工时间", trigger: "blur" }],
       },
+      taskTypeFormrules: {
+        taskTypeName: [
+          { required: true, message: "分类名称", trigger: "blur" },
+        ],
+      },
     };
   },
   computed: {},
@@ -238,7 +294,8 @@ export default {
     this.getDepartmentList(),
       this.getPlanDeptSet(),
       this.getHasSetPlanDeptList(),
-      this.getProductList();
+      this.getProductList(),
+      this.getTaskTypeList();
   },
   methods: {
     today() {
@@ -438,6 +495,7 @@ export default {
       this.editPlanDiaLog = true;
       this.getDepartmentList();
       this.getProductList();
+      this.getTaskTypeList();
       // this.todayPlanForm
     },
     addPlanData(formName) {
@@ -448,7 +506,7 @@ export default {
           let stationId =
             this.todayPlanForm.stationId[
             this.todayPlanForm.stationId.length - 1
-            ];
+            ];  
           this.http.post(
             "/plan/addOrUpdatePlan",
             {
@@ -464,6 +522,7 @@ export default {
                   type: "success",
                 });
                 this.editPlanDiaLog = false;
+                this.getTableData()
               } else {
                 this.$message({
                   message: res.msg,
@@ -606,7 +665,7 @@ export default {
           if (res.code == "ok") {
             var filePath = res.data;
             const a = document.createElement('a'); // 创建a标签
-            a.setAttribute('download', this.$t('projectexport') + '.xlsx');// download属性
+            a.setAttribute('download',(this.planType == 0 ? '今日计划' : this.planType == 1 ? '明日计划' : this.planType == 2 ? '插单计划' : '' )+ '.xlsx');// download属性
             a.setAttribute('href', filePath);// href链接
             a.click(); //自执行点击事件
             a.remove();
@@ -655,6 +714,108 @@ export default {
         }
       );
     },
+    getTaskTypeList(){
+        this.http.post(
+        "/task-type/list",
+        {},
+        (res) => {
+          if (res.code == "ok") {
+            this.taskTypeList=res.data
+          } else {
+            this.$message({
+              message: res.msg,
+              type: "error",
+            });
+          }
+        },
+        (error) => {
+          this.$message({
+            message: error,
+            type: "error",
+          });
+        }
+      );
+    },
+    addTaskType(formName){
+      console.log(this.taskTypeForm);
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          console.log(this.taskTypeForm, "传给后端的值");
+          this.http.post(
+            "/task-type/merge",
+            {
+              ...this.taskTypeForm,
+            },
+            (res) => {
+              if (res.code == "ok") {
+                this.getTaskTypeList();
+                this.$message({
+                  message:
+                    this.taskTypeForm.id == null ? "新增成功" : "修改成功",
+                  type: "success",
+                });
+                this.taskTypeForm=[];
+                this.taskTypeAddDialog = false;
+              } else {
+                this.$message({
+                  message: res.msg,
+                  type: "error",
+                });
+              }
+            },
+            (error) => {
+              this.$message({
+                message: error,
+                type: "error",
+              });
+            }
+          );
+        } else {
+          console.log("error submit!!");
+          return false;
+        }
+      });
+    },
+    deleteTaskType(item){
+      let param = {id: item.id};
+      this.$confirm('是否确认删除该分类',this.$t('other.prompts'), {
+          confirmButtonText: this.$t('btn.determine'),
+          cancelButtonText: this.$t('btn.cancel'),
+          type: "warning"
+      })
+      .then(() => {
+          this.http.post('/task-type/delete',param,
+          res => {
+              if (res.code == "ok") {
+                this.getTaskTypeList();
+                  this.$message({
+                      message: this.$t('message.successfullyDeleted'),
+                      type: "success"
+                  });
+              } else {
+                  this.$message({
+                      message: res.msg,
+                      type: "error"
+                  });
+              }
+          },
+          error => {
+              this.$message({
+                  message: error,
+                  type: "error"
+              });
+              }
+          );
+      })
+      .catch(() => {});
+    },
+    editTaskType(row){
+      if (row == null) {
+          this.taskTypeForm = {}
+      } else {
+          this.taskTypeForm = row;
+      }
+    },
   },
 };
 </script>

+ 3 - 2
fhKeeper/formulahousekeeper/timesheet-workshop/src/views/plan/planComponent.vue

@@ -124,7 +124,7 @@
               collapse-tags class="w100" clearable @change="getIncharger()">
             </el-cascader>
           </el-form-item>
-          <el-form-item label="工长" prop="foremanId">
+          <el-form-item label="工长" prop="foremanName">
             <el-input v-model="todayPlanForm.foremanName"></el-input>
           </el-form-item>
           <el-form-item label="开工时间" prop="startDate">
@@ -467,6 +467,7 @@ export default {
             this.todayPlanForm.stationId[
             this.todayPlanForm.stationId.length - 1
             ];
+          this.$delete(this.todayPlanForm, 'product')  
           this.http.post(
             "/plan/addOrUpdatePlan",
             {
@@ -624,7 +625,7 @@ export default {
           if (res.code == "ok") {
             var filePath = res.data;
             const a = document.createElement('a'); // 创建a标签
-            a.setAttribute('download', this.$t('projectexport') + '.xlsx');// download属性
+            a.setAttribute('download',(this.planType == 0 ? '今日计划' : this.planType == 1 ? '明日计划' : this.planType == 2 ? '插单计划' : '')+ '.xlsx');// download属性
             a.setAttribute('href', filePath);// href链接
             a.click(); //自执行点击事件
             a.remove();