Min 1 년 전
부모
커밋
a5c97e8b35

+ 3 - 3
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/PlanController.java

@@ -36,13 +36,13 @@ public class PlanController {
     }
 
     @RequestMapping("/addOrUpdatePlan")
-    public HttpRespMsg addOrUpdatePlan(@RequestBody Plan plan){
+    public HttpRespMsg addOrUpdatePlan(Plan plan){
         return planService.addOrUpdatePlan(plan);
     }
 
     @RequestMapping("/planDetail")
-    public HttpRespMsg planDetail(Integer productSchedulingNum,@RequestParam(defaultValue = "0") Integer type){
-        return planService.planDetail(productSchedulingNum,type);
+    public HttpRespMsg planDetail(Integer id,@RequestParam(defaultValue = "0") Integer type){
+        return planService.planDetail(id,type);
     }
 
     @RequestMapping("/allocationPlan")

+ 10 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/Plan.java

@@ -7,9 +7,12 @@ import java.time.LocalDate;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableField;
 import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
 
 /**
  * <p>
@@ -99,7 +102,7 @@ public class Plan extends Model<Plan> {
      * 工长
      */
     @TableField("foreman_id")
-    private Integer foremanId;
+    private String foremanId;
 
     /**
      * 工长
@@ -117,17 +120,23 @@ public class Plan extends Model<Plan> {
      * 计划日期
      */
     @TableField("plan_date")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat( pattern="yyyy-MM-dd")
     private LocalDate planDate;
 
     /**
      * 开工时间
      */
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat( pattern="yyyy-MM-dd")
     @TableField("start_date")
     private LocalDate startDate;
 
     /**
      * 完工时间
      */
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern="yyyy-MM-dd")
     @TableField("end_date")
     private LocalDate endDate;
 

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

@@ -29,7 +29,7 @@ public interface PlanService extends IService<Plan> {
 
     HttpRespMsg deptList();
 
-    HttpRespMsg planDetail(Integer productSchedulingNum, Integer type);
+    HttpRespMsg planDetail(Integer id, Integer type);
 
     HttpRespMsg hasSetDeptDetail();
 }

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

@@ -103,7 +103,17 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
 
     @Override
     public HttpRespMsg addOrUpdatePlan(Plan plan) {
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
         HttpRespMsg msg=new HttpRespMsg();
+        plan.setCompanyId(companyId);
+        if(plan.getStationId()!=null){
+            Department department = departmentMapper.selectById(plan.getStationId());
+            plan.setStationName(department.getDepartmentName());
+        }
+        if(plan.getProductId()!=null){
+            Product product = productMapper.selectById(plan.getProductId());
+            plan.setProductName(product.getName());
+        }
         if(plan.getId()==null){
             if(count(new QueryWrapper<Plan>().eq("product_scheduling_num",plan.getProductSchedulingNum()))>0){
                 msg.setError("当前排产工单号已存在");
@@ -139,7 +149,7 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
         List<WxCorpInfo> wxCorpInfoList = wxCorpInfoService.list(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
         if(wxCorpInfoList.size()>0){
             WxCorpInfo wxCorpInfo = wxCorpInfoList.get(0);
-            List<Integer> foremanIds = planList.stream().map(Plan::getForemanId).distinct().collect(Collectors.toList());
+            List<String> foremanIds = planList.stream().map(Plan::getForemanId).distinct().collect(Collectors.toList());
             List<User> userList = userMapper.selectBatchIds(foremanIds);
             for (Plan plan : planList) {
                 Optional<User> first = userList.stream().filter(ul -> ul.getId().equals(plan.getForemanId())).findFirst();
@@ -356,9 +366,9 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
     }
 
     @Override
-    public HttpRespMsg planDetail(Integer productSchedulingNum, Integer type) {
+    public HttpRespMsg planDetail(Integer id, Integer type) {
         HttpRespMsg msg=new HttpRespMsg();
-        Plan plan = planMapper.selectOne(new QueryWrapper<Plan>().eq("product_scheduling_num", productSchedulingNum));
+        Plan plan = planMapper.selectOne(new QueryWrapper<Plan>().eq("id", id));
         if(plan!=null){
             switch (type){
                 case 0:
@@ -366,7 +376,9 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
                     msg.setData(prodProcedureList);
                     break;
                 case 1:
+                    Map map=new HashMap();
                     List<ProdMaterial> prodMaterialList = prodMaterialMapper.selectList(new QueryWrapper<ProdMaterial>().eq("product_id", plan.getProductId()));
+                    map.put("",prodMaterialList);
                     msg.setData(prodMaterialList);
                     break;
             }
@@ -384,7 +396,7 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
         if(allPlanDept.size()>0){
             List<Integer> allDeptIds = allPlanDept.stream().map(PlanDept::getDeptId).distinct().collect(Collectors.toList());
             for (Integer allDeptId : allDeptIds) {
-                if(planMapper.selectCount(new QueryWrapper<Plan>().eq("dept_id",allDeptId))<=0){
+                if(planMapper.selectCount(new QueryWrapper<Plan>().eq("station_id",allDeptId))<=0){
                     Map map=new HashMap();
                     map.put("company_id",companyId);
                     map.put("dept_id",allDeptId);

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 161 - 42
fhKeeper/formulahousekeeper/timesheet-workshop/package-lock.json


+ 15 - 10
fhKeeper/formulahousekeeper/timesheet-workshop/src/main.js

@@ -116,6 +116,7 @@ router.beforeEach((to, from, next) => {
                 console.log("user",user)
                 console.log(filterRouter)
                 var arr = []
+                var arrMouter = []
                 for(var i in user.moduleList) {
                     for(var s in filterRouter) {
                         if(user.moduleList[i].children.length > 0) {
@@ -131,17 +132,17 @@ router.beforeEach((to, from, next) => {
                                         }
                                     }
                                 }
-                                //硬编码产品管理
-                                if (user.moduleList[i].name == '产品管理') {
-                                    list = arrList;
+                                // //硬编码产品管理
+                                // if (user.moduleList[i].name == '产品管理') {
+                                //     list = arrList;
                                     
-                                    // { path: '/product/:id', component: prodList, name: '产品管理',iconCls: 'iconfont firerock-iconxiangmu' },
-                                    for (var i=0;i<list.length; i++) {
-                                        list[i].component = `prodList`;
-                                        list[i].iconCls = 'iconfont firerock-iconxiangmu';
-                                    }
-                                    console.log('产品管理子菜单==', list);
-                                }
+                                //     // { path: '/product/:id', component: prodList, name: '产品管理',iconCls: 'iconfont firerock-iconxiangmu' },
+                                //     for (var i=0;i<list.length; i++) {
+                                //         list[i].component = `prodList`;
+                                //         list[i].iconCls = 'iconfont firerock-iconxiangmu';
+                                //     }
+                                //     console.log('产品管理子菜单==', list);
+                                // }
                                 filterRouter[s].children = list
                                 arr.push(filterRouter[s])
                             }
@@ -149,10 +150,14 @@ router.beforeEach((to, from, next) => {
                             if(user.moduleList[i].name == filterRouter[s].name) {
                                 arr.push(filterRouter[s])
                             }
+                            if(filterRouter[s].name == '计划详情' && arrMouter.length == 0) {
+                                arrMouter.push(filterRouter[s])
+                            }
                         }
                         
                     } 
                 }
+                arr = [...arr, ...arrMouter]
                 console.log(arr, '处理后的路由')
                 getRoutes = arr;
 

+ 14 - 1
fhKeeper/formulahousekeeper/timesheet-workshop/src/routes.js

@@ -19,6 +19,7 @@ import depDetail from './views/project/detailDep.vue'
 import todayPlan from './views/plan/today.vue'
 import tomorrowPlan from './views/plan/tomorrow.vue'
 import orderInsertPlan from './views/plan/orderInsert.vue'
+import planComponentDetil from './views/plan/planComponentDetil.vue'
 
 // 团队管理
 import team from './views/team/index.vue'
@@ -108,11 +109,23 @@ export const allRouters = [
         iconCls: 'iconfont firerock-iconxiangmu',
         leaf: false,
         children: [
-            { path: '/plan/today', component: todayPlan, name: '今日计划' },
+            { path: '/plan/today', component: todayPlan, name: '今日计划',},
             { path: '/plan/tomorrow', component: tomorrowPlan, name: '明日计划'},
             { path: '/plan/orderInsert', component: orderInsertPlan, name: '插单计划' },
+            // { path: '/plan/todayDetil:id', component: planComponentDetil, name: '今日计划详情' },
+            // { path: '/plan/tomorrowDetil:id', component: planComponentDetil, name: '明日计划详情' },
         ],
     },
+
+    {
+        path: '/',
+        component: Home,
+        hidden: true,
+        children: [
+            { path: '/plan/planDetil', component: planComponentDetil, name: '计划详情' }
+        ],
+        name: '计划详情'
+    },
     
     {
         path: '/',

+ 2 - 2
fhKeeper/formulahousekeeper/timesheet-workshop/src/views/Home.vue

@@ -238,8 +238,8 @@
 
             <section class="content-container">
                 <div class="contentMask" v-if="vTourFlg"></div>
-                <div class="grid-content bg-purple-light">
-                    <el-col :span="24" class="content-wrapper">
+                <div class="grid-content bg-purple-light" style="display: flex;height: 100%;">
+                    <el-col :span="24" class="content-wrapper" style="flex: 1;">
                         <transition name="fade" mode="out-in">
                             <router-view></router-view>
                         </transition>

+ 670 - 0
fhKeeper/formulahousekeeper/timesheet-workshop/src/views/plan/planComponent.vue

@@ -0,0 +1,670 @@
+<template>
+    <div class="layout-container">
+      <div class="layout-container-header">
+        <div class="OutSide">
+          <div>今日计划</div>
+          <div>{{today()}}</div>
+          <div class="block">
+          <span class="demonstration">查询以往今日计划</span>
+          <el-date-picker
+          v-model="planDate"
+          type="date"
+          value-format="yyyy-MM-dd"
+          @change="getTableData(hasChooseDept)"
+          placeholder="选择日期">
+          </el-date-picker>
+          </div>
+          <div class="OutSide">
+              <span style="width:100px">{{'钢印号'}}</span><el-input v-model="steelStampNumber" @change="getTableData(hasChooseDept)" placeholder="请输入内容"></el-input>
+          </div>
+          <div>
+              <span>
+                  <el-link type="primary" :underline="false" @click="deptSetDialog=true,getPlanDeptSet()">{{'部门设置'}}</el-link>
+                  <el-link type="primary" :underline="false" @click="addPlan()">{{'新增今日计划'}}</el-link>
+                  <el-link type="primary" :underline="false">{{'导入'}}</el-link>
+                  <el-link type="primary" :underline="false">{{'导出'}}</el-link>
+              </span>
+          </div>
+      </div>
+      </div>
+      <div class="layout-container-center">
+        <!-- tab 切换 -->
+        <div class="today-tab">
+          <div v-for="item,index in hasSetDeptList" :key="index" :class="`${todayTabIndex === index ? 'on' : ''}`" @click="tabChange(item, index)">{{ item.departmentName }}</div>
+        </div>
+  
+        <!-- 各部分数据列表 -->
+        <el-table
+          :data="tableData"
+          style="width: 100%;height: 100%;"
+          v-loading="tableDataLoading">
+          <el-table-column
+            type="selection"
+            width="55">
+          </el-table-column>
+          <el-table-column
+            prop="productSchedulingNum"
+            label="排产工单号"
+            width="180">
+            <template slot-scope="scope">
+                <div @click="toPlanDetil(scope.row)" class="colorText">{{ scope.row.productSchedulingNum }}</div>
+            </template>
+          </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 label="编辑">
+            <template slot-scope="scope">
+              <div @click="editPlan(scope.row)" class="colorText">编辑</div>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <div class="layout-container-floor">
+        <el-pagination
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="pageIndex"
+          :page-sizes="[10, 20, 50, 100]"
+          :page-size="pageSize"
+          layout="total, prev, pager, next, sizes, jumper"
+          :total="total">
+        </el-pagination>
+      </div>
+      
+      
+  
+      <!-- 新增今日计划 -->
+      <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"></el-input>
+              </el-form-item>
+              <el-form-item label="产品名称" style="width: 100%"  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>
+              <el-form-item label="项目代码" style="width: 100%" prop="projectCode">
+                <el-input v-model="todayPlanForm.projectCode"></el-input>
+              </el-form-item>
+              <el-form-item label="钢印号" style="width: 100%" prop="steelStampNumberStart">
+                <el-input class="w45" v-model="todayPlanForm.steelStampNumberStart"></el-input>
+                {{'-'}}
+                 <el-input class="w45" v-model="todayPlanForm.steelStampNumberEnd"></el-input>
+              </el-form-item>
+              <el-form-item label="数量"  prop="num">
+                <el-input v-model="todayPlanForm.num"></el-input>
+              </el-form-item>
+              <el-form-item label="主工序"  prop="mainProcess">
+                <el-input v-model="todayPlanForm.mainProcess"></el-input>
+              </el-form-item>
+              <el-form-item label="工位"  prop="stationId">
+                <!-- <el-select v-model="todayPlanForm.stationId" placeholder="请选择" class="w100" @change="getIncharger()">
+                  <el-option
+                    v-for="item in departmentList"
+                    :key="item.id"
+                    :label="item.label"
+                    :value="item.id"
+                  >
+                  </el-option>
+                </el-select> -->
+                 <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="foremanId">
+                <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="选择日期"
+                  value-format="yyyy-MM-dd">
+                </el-date-picker>
+              </el-form-item>
+              <el-form-item label="完工时间" prop="endDate">
+                <el-date-picker
+                  class="w100"
+                  v-model="todayPlanForm.endDate"
+                  type="date"
+                  placeholder="选择日期"
+                  value-format="yyyy-MM-dd">
+                </el-date-picker>
+              </el-form-item>
+               <el-form-item label="描述" style="width: 100%">
+                <el-input
+                  type="textarea"
+                  :rows="6"
+                  placeholder="请输入描述"
+                  v-model="textarea">
+                </el-input>
+               </el-form-item>
+            </el-form>
+          </div>
+          <span slot="footer" class="dialog-footer">
+            <el-button @click="editPlanDiaLog = false,$refs['todayPlanForm'].resetFields();">取 消</el-button>
+            <el-button type="primary" @click="addPlanData('todayPlanForm')">确 定</el-button>
+          </span>
+       </el-dialog>
+  
+      <!-- 部门设置弹框 -->
+      <el-dialog
+        title="部门设置"
+        :visible.sync="deptSetDialog"
+        width="30%"
+        :before-close="handleClose">
+        <div>
+          <span>{{'选择部门'}}</span>
+          <el-cascader
+          v-model="departmentIdArray"
+          :options="departmentList"
+          :props="props"
+          collapse-tags
+          clearable>
+          </el-cascader>
+        </div>
+        <span slot="footer" class="dialog-footer">
+          <el-button @click="deptSetDialog = false">取 消</el-button>
+          <el-button type="primary" @click="deptSet()">确 定</el-button>
+        </span>
+    </el-dialog>
+    </div>
+  </template>
+  
+  <script>
+  export default {
+    name: "planComponent",
+    components: {
+      
+    },
+    props: {
+        planType: {
+            type: String
+        }
+    },
+    data() {
+      return {
+          steelStampNumber:'',
+          planDate:this.today(),
+          deptSetDialog:false,
+          departmentList:[],
+          departmentIdArray: [],
+          deptSetData:'',
+          props: { multiple: true },
+          hasSetDeptList:[],
+          titleName:'',
+          todayPlanForm:{
+            id:null,
+            productSchedulingNum:'',
+            productId:'',
+            projectCode:'',
+            steelStampNumberStart:'',
+            steelStampNumberEnd:'',
+            num:'',
+            mainProcess:'',
+            stationId:'',
+            foremanId:'',
+            foremanName:'',
+            startDate:'',
+            endDate:'',
+            describtion:''
+          },
+          todayTabIndex: 0,
+          tableDataLoading: false,
+          tableData: [],
+          editPlanDiaLog: false,
+          pageIndex:0,
+          pageSize:20,
+          total: 0,
+          hasChooseDept:'',
+          productList:[],
+          // 表单规则验证
+          todayPlanFormrules: {
+            productSchedulingNum: [
+              { required: true, message: '排产工单号', trigger: 'blur' }
+            ],
+            productId: [
+              { required: true, message: '产品名称', trigger: 'blur' }
+            ],
+            projectCode: [
+              { required: true, message: '项目代码', trigger: 'blur' }
+            ],
+            steelStampNumberStart: [
+              { required: true, message: '钢印号', trigger: 'blur' }
+            ],
+            steelStampNumberEnd: [
+              { required: true, message: '钢印号', trigger: 'blur' }
+            ],
+            num: [
+              { required: true, message: '数量', trigger: 'blur' }
+            ],
+            mainProcess: [
+              { required: true, message: '主工序', trigger: 'blur' }
+            ],
+            stationId: [
+              { required: true, message: '工位', trigger: 'blur' }
+            ],
+            startDate: [
+              { required: true, message: '开工时间', trigger: 'blur' }
+            ],
+            endDate: [
+              { required: true, message: '完工时间', trigger: 'blur' }
+            ],
+          }
+      };
+    },
+    computed: {},
+    watch: {},
+    created() {},
+    mounted() {
+      this.getDepartmentList(),
+      this.getPlanDeptSet(),
+      this.getHasSetPlanDeptList(),
+      this.getProductList()
+    },
+    methods: {
+      today(){
+          let date=new Date();
+          let year=date.getFullYear();
+          let month=(date.getMonth()+1+'').padStart(2,'0');
+          let day=(date.getDate()+'').padStart(2,'0');
+          return `${year}-${month}-${day}`
+      },
+      getDepartmentList() {
+        this.http.post( this.port.manage.depList, {},
+          res => {
+            if (res.code == "ok") {
+              let dptlist = JSON.parse(JSON.stringify(res.data));
+              this.departmentList = this.changeArr(dptlist);
+            } else {
+              this.$message({
+                message: res.msg,
+                type: "error"
+              });
+            }
+          },error => {
+            this.$message({
+              message: error,
+              type: "error"
+            });
+          });
+      },
+      changeArr(arr) {
+          for (var i = 0; i < arr.length; i++) {
+              if(arr[i].id != -1 && arr[i].id != 0) {
+                  if (arr[i].children != null && arr[i].children.length>0) {
+                      arr[i].children = this.changeArr(arr[i].children);
+                  }
+                  arr[i].id && (arr[i].value = arr[i].id);
+                  delete arr[i].id;
+              }
+          }
+          for(var i in arr) {
+              if(arr[i].id == -1 || arr[i].id == 0) {
+                  arr.splice(i,1)
+              }    
+          }
+          return arr;
+      },
+      deptSet(){
+        console.log(this.departmentIdArray, JSON.stringify(this.departmentIdArray))
+        // return
+        let arr = []
+        for(var i in this.departmentIdArray) {
+          arr.push(this.departmentIdArray[i][this.departmentIdArray[i].length - 1])
+        }
+        this.http.post( '/plan/deptSet', {deptIds:arr.join(',')},
+          res => {
+            if (res.code == "ok") {
+              this.$message({
+                message: "设置成功",
+                type: "success"
+              });
+            } else {
+              this.$message({
+                message: res.msg,
+                type: "error"
+              });
+            }
+          },error => {
+            this.$message({
+              message: error,
+              type: "error"
+            });
+          });
+      },
+      getPlanDeptSet(){
+        this.http.post( '/plan/deptList', {},
+          res => {
+            if (res.code == "ok") {
+              let arr = res.data.split(",") || []
+              for(var i in arr) {
+                arr[i] = +arr[i]
+              }
+              console.log(arr)
+              this.departmentIdArray=arr 
+            } else {
+              this.$message({
+                message: res.msg,
+                type: "error"
+              });
+            }
+          },error => {
+            this.$message({
+              message: error,
+              type: "error"
+            });
+          });
+      },
+      getHasSetPlanDeptList(){
+        this.http.post( '/plan/hasSetDeptDetail', {},
+          res => {
+            if (res.code == "ok") {
+              this.hasSetDeptList=res.data
+              if(res.data.length > 0) {
+                this.tableDataLoading = true
+                this.hasChooseDept=res.data[0].departmentId
+                this.getTableData(res.data[0].departmentId)
+              }
+            } else {
+              this.$message({
+                message: res.msg,
+                type: "error"
+              });
+            }
+          },error => {
+            this.$message({
+              message: error,
+              type: "error"
+            });
+          });
+      },
+  
+      // tab 切换事件
+      tabChange(item, index) {
+        console.log(item, 'item')
+        this.todayTabIndex = index
+        this.hasChooseDept=item.departmentId
+        this.getTableData(item.departmentId)
+      },
+      // 获取车间数据
+      getTableData(departmentId) {
+        console.log(this.planDate)
+        this.tableDataLoading = true
+        this.http.post( '/plan/list', {
+          deptId: departmentId,
+          planType: this.planType,
+          date: this.planDate,
+          steelStampNumber:this.steelStampNumber,
+          pageIndex:this.pageIndex,
+          pageSize:this.pageSize
+        },
+          res => {
+            this.tableDataLoading = false
+            if (res.code == "ok") {
+              this.tableData=res.data.records
+              this.total = res.data.total
+            } else {
+              this.$message({
+                message: res.msg,
+                type: "error"
+              });
+            }
+          },error => {
+            this.tableDataLoading = false
+            this.$message({
+              message: error,
+              type: "error"
+            });
+          });
+      },
+      handleSizeChange(val) {
+        console.log(val, 'handleSizeChange')
+        this.pageSize = val
+        this.pageIndex = 1
+        this.getTableData(this.hasChooseDept)
+      },
+      handleCurrentChange(val) {
+        console.log(val, 'handleCurrentChange')
+        this.pageIndex = val
+        this.getTableData(this.hasChooseDept)
+      },
+      addPlan() {
+        this.titleName='新增今日计划'
+        this.editPlanDiaLog = true
+        this.getDepartmentList()
+        this.getProductList()
+        // this.todayPlanForm
+      },
+      addPlanData(formName) {
+        console.log(this.todayPlanForm)
+        this.$refs[formName].validate((valid) => {
+          if (valid) {
+                console.log(this.todayPlanForm, '传给后端的值')
+                let stationId = this.todayPlanForm.stationId[this.todayPlanForm.stationId.length - 1]
+                this.http.post( '/plan/addOrUpdatePlan', {
+                  ...this.todayPlanForm,
+                  stationId,
+                  planType: this.planType,
+                },
+              res => {
+                if (res.code == "ok") {
+                  this.$message({
+                    message: this.todayPlanForm.id==null?'新增成功':'修改成功',
+                    type: "success",
+                  });
+                  this.editPlanDiaLog=false;
+                } else {
+                  this.$message({
+                    message: res.msg,
+                    type: "error"
+                  });
+                }
+              },error => {
+                this.$message({
+                  message: error,
+                  type: "error"
+                });
+              });
+          } else {
+            console.log('error submit!!');
+            return false;
+          }
+        });
+      },
+      editPlan(item) {
+        this.titleName='编辑今日计划',
+        this.editPlanDiaLog=true;
+        this.todayPlanForm=item
+        console.log(item)
+      },
+      getProductList(){
+        this.http.post( '/product/getProductPage', {
+          pageIndex:null,
+          pageSize:null
+        },
+          res => {
+            if (res.code == "ok") {
+              this.productList=res.data.records
+            } else {
+              this.$message({
+                message: res.msg,
+                type: "error"
+              });
+            }
+          },error => {
+            this.$message({
+              message: error,
+              type: "error"
+            });
+          });
+      },
+      getIncharger(){
+        console.log(this.todayPlanForm.stationId)
+        this.http.post( '/department/getIncharger', {
+          deptId:this.todayPlanForm.stationId[this.todayPlanForm.stationId.length - 1]
+        },
+          res => {
+            if (res.code == "ok") {
+              this.todayPlanForm.foremanId=res.data.id
+              this.todayPlanForm.foremanName=res.data.name
+            } else {
+              this.$message({
+                message: res.msg,
+                type: "error"
+              });
+            }
+          },error => {
+            this.$message({
+              message: error,
+              type: "error"
+            });
+          });
+      },
+      // 跳转至详情
+      toPlanDetil(item) {
+        console.log(item, '详情页面数据')
+        let pathUrl = ''
+        if(this.planType == 1) {
+            pathUrl = '/plan/planDetil'
+        } else {
+            pathUrl = '/plan/planDetil'
+        }
+        console.log(pathUrl)
+        this.$router.push({
+            path: pathUrl,
+            name: '计划详情',
+            params: {
+                id: item.id,
+                topText: item.productSchedulingNum,
+                leftText: item.productName
+            }
+        })
+      }
+    },
+  };
+  </script>
+  <style scoped lang='scss'>
+  .colorText {
+    color: #02A7F0;
+    cursor: pointer;
+  }
+   .layout-container{
+    width: 100%;
+    height: 100%;
+    display: flex;
+    flex-wrap: wrap;
+    flex-direction: column;
+    .layout-container-header, .layout-container-center, .layout-container-floor {
+      width: 100%;
+    }
+    .layout-container-center {
+      flex: 1;
+    }
+    .layout-container-floor {
+      box-sizing: border-box;
+      display: flex;
+      justify-content: end;
+      padding: 10px 20px;
+    }
+      .OutSide{
+          display: flex;
+          align-items: center;
+      }
+      .today-tab {
+        display: flex;
+        overflow-x: auto;
+        div {
+          font-size: 18px;
+          margin-left: 15px;
+          cursor: pointer;
+        }
+        .on {
+          color: #02A7F0;
+        }
+      }
+  
+      .planDialog::-webkit-scrollbar {
+        display: none; /* Chrome Safari */
+      }
+      // 新增样式
+      .planDialog {
+        max-height: 50vh;
+        overflow-y: auto;
+        scrollbar-width: none; /* Firefox */
+        -ms-overflow-style: none; /* IE 10+ */
+        .el-form {
+          display: flex;
+          flex-wrap: wrap;
+          justify-content: space-between;
+        }
+        .w100 {
+          width: 100%;
+        }
+        .el-form-item {
+          width: 50%;
+          .w45 {
+            width: 49%;
+          }
+        }
+      }
+   }
+  </style>
+  

+ 165 - 0
fhKeeper/formulahousekeeper/timesheet-workshop/src/views/plan/planComponentDetil.vue

@@ -0,0 +1,165 @@
+<template>
+    <div class='planComponentDetil'>
+        <div class="planComponentDetil-top">
+            <div>{{ leftText }}</div>
+            <div>{{ topText }}</div>
+            <div></div>
+        </div>
+        <div class="planComponentDetil-con">
+            <!-- tab 切换 -->
+            <div class="today-tab">
+                <div v-for="item,index in textArr" :key="index" :class="`${TabIndex === index ? 'on' : ''}`" @click="tabChange(item, index)">{{ item.name }}</div>
+            </div>
+            <!-- table数据 -->
+            <div v-if="TabIndex == 0" v-loading="tableDataLoading">
+                <el-table
+                :data="JobtableData"
+                style="width: 100%;height: 80vh;"
+                v-loading="tableDataLoading">
+                    <el-table-column prop="name" label="工序名称"></el-table-column>
+                    <el-table-column prop="workingTime" label="单件工时"></el-table-column>
+                    <el-table-column prop="productName" label="总工时" width="180"></el-table-column>
+                    <el-table-column prop="unitPrice" label="单件工价" width="180"></el-table-column>
+                    <el-table-column prop="productName" label="总工价" width="180"></el-table-column>
+                    <el-table-column prop="checkType" label="质检类型" width="180"></el-table-column>
+                    <el-table-column prop="productName" label="组员" width="180"></el-table-column>
+                </el-table>
+            </div>
+            <div v-if="TabIndex == 1"  v-loading="tableDataLoading">
+                <el-table
+                :data="MaterialtableData"
+                style="width: 100%;height: 32vh;"
+                v-loading="tableDataLoading">
+                    <el-table-column prop="name" label="零件名称" width="180"></el-table-column>
+                    <el-table-column prop="companyCode" label="公司编码" ></el-table-column>
+                    <el-table-column prop="companyDrawingNo" label="公司图号"></el-table-column>
+                    <el-table-column prop="materialQuality" label="材质" width="180"></el-table-column>
+                    <el-table-column prop="thickness" label="厚度" width="180"></el-table-column>
+                    <el-table-column prop="numberProduct" label="数量(个/产品)" width="180"></el-table-column>
+                    <el-table-column prop="numberVehicle" label="数量(个/辆)" width="180"></el-table-column>
+                </el-table>
+
+                <div class="quesa-text">缺料报告</div>
+                <el-table
+                :data="LackMaterialtableData"
+                style="width: 100%;height: 40vh;"
+                v-loading="tableDataLoading">
+                    <el-table-column prop="productName" label="零件名称" width="180"></el-table-column>
+                    <el-table-column prop="productName" label="公司编码" ></el-table-column>
+                    <el-table-column prop="productName" label="公司图号"></el-table-column>
+                    <el-table-column prop="productName" label="材质" width="180"></el-table-column>
+                    <el-table-column prop="productName" label="厚度" width="180"></el-table-column>
+                    <el-table-column prop="productName" label="数量 (个/产品)" width="180"></el-table-column>
+                    <el-table-column prop="productName" label="量(个/辆)" width="180"></el-table-column>
+                    <el-table-column prop="productName" label="缺少数量" width="180"></el-table-column>
+                </el-table>
+            </div>
+        </div>
+        <!-- <div class="planComponentDetil-bon">3</div> -->
+    </div>
+</template>
+
+<script>
+export default {
+    name: '',
+    components: {},
+    props: {},
+    data() {
+        return {
+            topText: '',
+            leftText: '',
+            id: '',
+            textArr: [{name: '派工单查看', value: 0}, {name: '物料单查看', value: 1}],
+            TabIndex: 0,
+            tableDataLoading: false,
+            JobtableData: [],
+            MaterialtableData:[],
+            LackMaterialtableData:[],
+        }
+    },
+    computed: {},
+    watch: {},
+    created() { },
+    mounted() { 
+        const { id, topText, leftText } = this.$route.params
+        console.log(this.$route.params, '携带')
+        this.id = id
+        this.topText = topText
+        this.leftText = leftText
+        this.getPlanDetail()
+     },
+    methods: {
+        tabChange(item, index) {
+            this.TabIndex = index
+            this.getPlanDetail()
+        },
+        getPlanDetail(){
+            this.http.post( '/plan/planDetail', {
+            id:this.id,
+            type:this.textArr[this.TabIndex].value
+        },
+          res => {
+            if (res.code == "ok") {
+              this.JobtableData=res.data
+              this.MaterialtableData=res.data
+              this.LackMaterialtableData=res.data
+            } else {
+              this.$message({
+                message: res.msg,
+                type: "error"
+              });
+            }
+          },error => {
+            this.$message({
+              message: error,
+              type: "error"
+            });
+          });
+        }
+    },
+}
+</script>
+<style scoped lang='scss'>
+    * {
+        box-sizing: border-box;
+    }
+    .planComponentDetil {
+        width: 100%;
+        height: 100%;
+        display: flex;
+        flex-wrap: wrap;
+        flex-direction: column;
+        box-sizing: border-box;
+        // padding: 20px;
+        .planComponentDetil-top, .planComponentDetil-con, .planComponentDetil-bon {
+            width: 100%;
+            padding: 20px 20px;
+            border-bottom: 1px solid #c5c5c5;
+        }
+        .planComponentDetil-top {
+            display: flex;
+            justify-content: space-between;
+        }
+        .planComponentDetil-con {
+            flex: 1;
+
+            .today-tab {
+                display: flex;
+                overflow-x: auto;
+                div {
+                font-size: 18px;
+                margin-left: 15px;
+                cursor: pointer;
+                }
+                .on {
+                color: #02A7F0;
+                }
+            }
+        }
+
+        .quesa-text {
+            font-size: 16px;
+            padding: 20px 0;
+        }
+    }
+</style>

+ 15 - 561
fhKeeper/formulahousekeeper/timesheet-workshop/src/views/plan/today.vue

@@ -1,576 +1,30 @@
 <template>
-  <div class="layout-container">
-    <div class="OutSide">
-        <div>今日计划</div>
-        <div>{{today()}}</div>
-        <div class="block">
-        <span class="demonstration">查询以往今日计划</span>
-        <el-date-picker
-        v-model="planDate"
-        type="date"
-        value-format="yyyy-MM-dd"
-        @change="getTableData(hasChooseDept)"
-        placeholder="选择日期">
-        </el-date-picker>
-        </div>
-        <div class="OutSide">
-            <span style="width:100px">{{'钢印号'}}</span><el-input v-model="steelStampNumber" @change="getTableData(hasChooseDept)" placeholder="请输入内容"></el-input>
-        </div>
-        <div>
-            <span>
-                <el-link type="primary" :underline="false" @click="deptSetDialog=true,getPlanDeptSet()">{{'部门设置'}}</el-link>
-                <el-link type="primary" :underline="false" @click="addPlan()">{{'新增今日计划'}}</el-link>
-                <el-link type="primary" :underline="false">{{'导入'}}</el-link>
-                <el-link type="primary" :underline="false">{{'导出'}}</el-link>
-            </span>
-        </div>
-    </div>
-    <!-- tab 切换 -->
-    <div class="today-tab">
-      <div v-for="item,index in hasSetDeptList" :key="index" :class="`${todayTabIndex === index ? 'on' : ''}`" @click="tabChange(item, index)">{{ item.departmentName }}</div>
-    </div>
-
-    <!-- 各部分数据列表 -->
-    <el-table
-      :data="tableData"
-      style="width: 100%"
-      v-loading="tableDataLoading">
-       <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="foremanId"
-        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">
-          <div @click="editPlan(scope.row)">编辑</div>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <!-- 新增今日计划 -->
-    <el-dialog
-      title="新增今日计划"
-      :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"></el-input>
-            </el-form-item>
-            <el-form-item label="产品名称" style="width: 100%"  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>
-            <el-form-item label="项目代码" style="width: 100%" prop="projectCode">
-              <el-input v-model="todayPlanForm.projectCode"></el-input>
-            </el-form-item>
-            <el-form-item label="钢印号" style="width: 100%" prop="steelStampNumberStart">
-              <el-input class="w45" v-model="todayPlanForm.steelStampNumberStart"></el-input>
-              {{'-'}}
-               <el-input class="w45" v-model="todayPlanForm.steelStampNumberEnd"></el-input>
-            </el-form-item>
-            <el-form-item label="数量"  prop="num">
-              <el-input v-model="todayPlanForm.num"></el-input>
-            </el-form-item>
-            <el-form-item label="主工序"  prop="mainProcess">
-              <el-input v-model="todayPlanForm.mainProcess"></el-input>
-            </el-form-item>
-            <el-form-item label="工位"  prop="stationId">
-              <!-- <el-select v-model="todayPlanForm.stationId" placeholder="请选择" class="w100" @change="getIncharger()">
-                <el-option
-                  v-for="item in departmentList"
-                  :key="item.id"
-                  :label="item.label"
-                  :value="item.id"
-                >
-                </el-option>
-              </el-select> -->
-               <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="foremanId">
-              <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="选择日期"
-                value-format="yyyy-MM-dd">
-              </el-date-picker>
-            </el-form-item>
-            <el-form-item label="完工时间" prop="endDate">
-              <el-date-picker
-                class="w100"
-                v-model="todayPlanForm.endDate"
-                type="date"
-                placeholder="选择日期"
-                value-format="yyyy-MM-dd">
-              </el-date-picker>
-            </el-form-item>
-             <el-form-item label="描述" style="width: 100%">
-              <el-input
-                type="textarea"
-                :rows="6"
-                placeholder="请输入描述"
-                v-model="textarea">
-              </el-input>
-             </el-form-item>
-          </el-form>
-        </div>
-        <span slot="footer" class="dialog-footer">
-          <el-button @click="editPlanDiaLog = false,$refs['todayPlanForm'].resetFields();">取 消</el-button>
-          <el-button type="primary" @click="addPlanData('todayPlanForm')">确 定</el-button>
-        </span>
-     </el-dialog>
-
-    <!-- 部门设置弹框 -->
-    <el-dialog
-      title="部门设置"
-      :visible.sync="deptSetDialog"
-      width="30%"
-      :before-close="handleClose">
-      <div>
-        <span>{{'选择部门'}}</span>
-        <el-cascader
-        v-model="departmentIdArray"
-        :options="departmentList"
-        :props="props"
-        collapse-tags
-        clearable>
-        </el-cascader>
-      </div>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="deptSetDialog = false">取 消</el-button>
-        <el-button type="primary" @click="deptSet()">确 定</el-button>
-      </span>
-  </el-dialog>
+  <div class='layout-container'>
+    <PlanComponent :planType="'0'"></PlanComponent>
   </div>
 </template>
 
 <script>
+import PlanComponent from './planComponent.vue'
 export default {
-  name: "",
+  name: '',
   components: {
-    
-  },
-  props: {
-
+    PlanComponent
   },
+  props: {},
   data() {
-    return {
-        steelStampNumber:'',
-        planDate:this.today(),
-        deptSetDialog:false,
-        departmentList:[],
-        departmentIdArray: [],
-        deptSetData:'',
-        props: { multiple: true },
-        hasSetDeptList:[],
-        todayPlanForm:{
-          productSchedulingNum:'',
-          productId:'',
-          projectCode:'',
-          steelStampNumberStart:'',
-          steelStampNumberEnd:'',
-          num:'',
-          mainProcess:'',
-          stationId:'',
-          foremanId:'',
-          foremanName:'',
-          startDate:'',
-          endDate:'',
-          describtion:''
-        },
-        todayTabIndex: 0,
-        tableDataLoading: false,
-        editPlanDiaLog: false,
-        pageIndex:0,
-        pageSize:20,
-        hasChooseDept:'',
-        productList:[],
-        // 表单规则验证
-        todayPlanFormrules: {
-          productSchedulingNum: [
-            { required: true, message: '排产工单号', trigger: 'blur' }
-          ],
-          productId: [
-            { required: true, message: '产品名称', trigger: 'blur' }
-          ],
-          projectCode: [
-            { required: true, message: '项目代码', trigger: 'blur' }
-          ],
-          steelStampNumberStart: [
-            { required: true, message: '钢印号', trigger: 'blur' }
-          ],
-          steelStampNumberEnd: [
-            { required: true, message: '钢印号', trigger: 'blur' }
-          ],
-          num: [
-            { required: true, message: '数量', trigger: 'blur' }
-          ],
-          mainProcess: [
-            { required: true, message: '主工序', trigger: 'blur' }
-          ],
-          stationId: [
-            { required: true, message: '工位', trigger: 'blur' }
-          ],
-          startDate: [
-            { required: true, message: '开工时间', trigger: 'blur' }
-          ],
-          endDate: [
-            { required: true, message: '完工时间', trigger: 'blur' }
-          ],
-        }
-    };
+    return {}
   },
   computed: {},
   watch: {},
-  created() {},
-  mounted() {
-    this.getDepartmentList(),
-    this.getPlanDeptSet(),
-    this.getHasSetPlanDeptList(),
-    this.getProductList()
-  },
-  methods: {
-    today(){
-        let date=new Date();
-        let year=date.getFullYear();
-        let month=(date.getMonth()+1+'').padStart(2,'0');
-        let day=(date.getDate()+'').padStart(2,'0');
-        return `${year}-${month}-${day}`
-    },
-    getDepartmentList() {
-      this.http.post( this.port.manage.depList, {},
-        res => {
-          if (res.code == "ok") {
-            let dptlist = JSON.parse(JSON.stringify(res.data));
-            this.departmentList = this.changeArr(dptlist);
-          } else {
-            this.$message({
-              message: res.msg,
-              type: "error"
-            });
-          }
-        },error => {
-          this.$message({
-            message: error,
-            type: "error"
-          });
-        });
-    },
-    changeArr(arr) {
-        for (var i = 0; i < arr.length; i++) {
-            if(arr[i].id != -1 && arr[i].id != 0) {
-                if (arr[i].children != null && arr[i].children.length>0) {
-                    arr[i].children = this.changeArr(arr[i].children);
-                }
-                arr[i].id && (arr[i].value = arr[i].id);
-                delete arr[i].id;
-            }
-        }
-        for(var i in arr) {
-            if(arr[i].id == -1 || arr[i].id == 0) {
-                arr.splice(i,1)
-            }    
-        }
-        return arr;
-    },
-    deptSet(){
-      console.log(this.departmentIdArray, JSON.stringify(this.departmentIdArray))
-      // return
-      let arr = []
-      for(var i in this.departmentIdArray) {
-        arr.push(this.departmentIdArray[i][this.departmentIdArray[i].length - 1])
-      }
-      this.http.post( '/plan/deptSet', {deptIds:arr.join(',')},
-        res => {
-          if (res.code == "ok") {
-            this.$message({
-              message: "设置成功",
-              type: "success"
-            });
-          } else {
-            this.$message({
-              message: res.msg,
-              type: "error"
-            });
-          }
-        },error => {
-          this.$message({
-            message: error,
-            type: "error"
-          });
-        });
-    },
-    getPlanDeptSet(){
-      this.http.post( '/plan/deptList', {},
-        res => {
-          if (res.code == "ok") {
-            let arr = res.data.split(",") || []
-            for(var i in arr) {
-              arr[i] = +arr[i]
-            }
-            console.log(arr)
-            this.departmentIdArray=arr 
-          } else {
-            this.$message({
-              message: res.msg,
-              type: "error"
-            });
-          }
-        },error => {
-          this.$message({
-            message: error,
-            type: "error"
-          });
-        });
-    },
-    getHasSetPlanDeptList(){
-      this.http.post( '/plan/hasSetDeptDetail', {},
-        res => {
-          if (res.code == "ok") {
-            this.hasSetDeptList=res.data
-            if(res.data.length > 0) {
-              this.tableDataLoading = true
-              this.hasChooseDept=res.data[0].departmentId
-              this.getTableData(res.data[0].departmentId)
-            }
-          } else {
-            this.$message({
-              message: res.msg,
-              type: "error"
-            });
-          }
-        },error => {
-          this.$message({
-            message: error,
-            type: "error"
-          });
-        });
-    },
-
-    // tab 切换事件
-    tabChange(item, index) {
-      console.log(item, 'item')
-      this.todayTabIndex = index
-      this.tableDataLoading = true
-      this.hasChooseDept=item.departmentId
-      this.getTableData(item.departmentId)
-    },
-    // 获取车间数据
-    getTableData(departmentId) {
-      console.log(this.planDate)
-      this.http.post( '/plan/list', {
-        deptId: departmentId,
-        planType: 0,
-        date: this.planDate,
-        steelStampNumber:this.steelStampNumber,
-        pageIndex:this.pageIndex,
-        pageSize:this.pageSize
-      },
-        res => {
-          if (res.code == "ok") {
-            this.tableDataLoading = false
-          } else {
-            this.$message({
-              message: res.msg,
-              type: "error"
-            });
-          }
-        },error => {
-          this.$message({
-            message: error,
-            type: "error"
-          });
-        });
-    },
-    addPlan() {
-      this.editPlanDiaLog = true
-      this.getDepartmentList()
-      this.getProductList()
-      // this.todayPlanForm
-    },
-    addPlanData(formName) {
-      console.log(this.todayPlanForm)
-      this.$refs[formName].validate((valid) => {
-        if (valid) {
-              console.log(this.todayPlanForm, '传给后端的值')
-              let stationId = this.todayPlanForm.stationId[this.todayPlanForm.stationId.length - 1]
-              this.http.post( '/plan/addOrUpdatePlan', {},
-            res => {
-              if (res.code == "ok") {
-
-              } else {
-                this.$message({
-                  message: res.msg,
-                  type: "error"
-                });
-              }
-            },error => {
-              this.$message({
-                message: error,
-                type: "error"
-              });
-            });
-        } else {
-          console.log('error submit!!');
-          return false;
-        }
-      });
-    },
-    editPlan(item) {
-      console.log(item)
-    },
-    getProductList(){
-      this.http.post( '/product/getProductPage', {
-        pageIndex:null,
-        pageSize:null
-      },
-        res => {
-          if (res.code == "ok") {
-            this.productList=res.data.records
-          } else {
-            this.$message({
-              message: res.msg,
-              type: "error"
-            });
-          }
-        },error => {
-          this.$message({
-            message: error,
-            type: "error"
-          });
-        });
-    },
-    getIncharger(){
-      console.log(this.todayPlanForm.stationId)
-      this.http.post( '/department/getIncharger', {
-        deptId:this.todayPlanForm.stationId[this.todayPlanForm.stationId.length - 1]
-      },
-        res => {
-          if (res.code == "ok") {
-            this.todayPlanForm.foremanId=res.data.id
-            this.todayPlanForm.foremanName=res.data.name
-          } else {
-            this.$message({
-              message: res.msg,
-              type: "error"
-            });
-          }
-        },error => {
-          this.$message({
-            message: error,
-            type: "error"
-          });
-        });
-    }
-  },
-};
+  created() { },
+  mounted() { },
+  methods: {},
+}
 </script>
 <style scoped lang='scss'>
- .layout-container{
-    .OutSide{
-        display: flex;
-        align-items: center;
-    }
-    .today-tab {
-      display: flex;
-      overflow-x: auto;
-      div {
-        font-size: 18px;
-        margin-left: 15px;
-        cursor: pointer;
-      }
-      .on {
-        color: #02A7F0;
-      }
-    }
-
-    .planDialog::-webkit-scrollbar {
-      display: none; /* Chrome Safari */
-    }
-    // 新增样式
-    .planDialog {
-      max-height: 50vh;
-      overflow-y: auto;
-      scrollbar-width: none; /* Firefox */
-      -ms-overflow-style: none; /* IE 10+ */
-      .el-form {
-        display: flex;
-        flex-wrap: wrap;
-        justify-content: space-between;
-      }
-      .w100 {
-        width: 100%;
-      }
-      .el-form-item {
-        width: 50%;
-        .w45 {
-          width: 49%;
-        }
-      }
-    }
- }
+  .layout-container {
+    width: 100%;
+    height: 100%;
+  }
 </style>

+ 17 - 8
fhKeeper/formulahousekeeper/timesheet-workshop/src/views/plan/tomorrow.vue

@@ -1,21 +1,30 @@
 <template>
-  <div class="layout-container"></div>
+  <div class='layout-container'>
+    <PlanComponent :planType="'1'"></PlanComponent>
+  </div>
 </template>
 
 <script>
+import PlanComponent from './planComponent.vue'
 export default {
-  name: "",
-  components: {},
+  name: '',
+  components: {
+    PlanComponent
+  },
   props: {},
   data() {
-    return {};
+    return {}
   },
   computed: {},
   watch: {},
-  created() {},
-  mounted() {},
+  created() { },
+  mounted() { },
   methods: {},
-};
+}
 </script>
-<style scoped lang='sass'>
+<style scoped lang='scss'>
+.layout-container {
+    width: 100%;
+    height: 100%;
+  }
 </style>