生产计划详情展示
This commit is contained in:
		
							parent
							
								
									576e266a02
								
							
						
					
					
						commit
						3aaec65899
					
				| 
						 | 
				
			
			@ -1,44 +1,18 @@
 | 
			
		|||
<template>
 | 
			
		||||
    <div style="padding: 10px;background: #E5EBF6;min-height: 830px;">
 | 
			
		||||
        <div style="background: #FFF;padding: 10px;border-radius: 10px;margin-bottom: 20px;">  
 | 
			
		||||
            <el-descriptions style="margin-bottom: 20px;" title="采购计划状态" :column="4" size="medium" border>  
 | 
			
		||||
                <el-descriptions-item>
 | 
			
		||||
                    <template slot="label">提交状态</template>
 | 
			
		||||
                    <span v-if="baseInfo.status==1">待发布</span>
 | 
			
		||||
                    <span v-if="baseInfo.status==2">已发布</span>
 | 
			
		||||
                </el-descriptions-item> 
 | 
			
		||||
                <el-descriptions-item>
 | 
			
		||||
                    <template slot="label">提交时间</template>
 | 
			
		||||
                    {{ baseInfo.createTime }} 
 | 
			
		||||
                </el-descriptions-item> 
 | 
			
		||||
                <el-descriptions-item>
 | 
			
		||||
                    <template slot="label">提交人</template>
 | 
			
		||||
                    {{ baseInfo.createBy }}
 | 
			
		||||
                </el-descriptions-item> 
 | 
			
		||||
                <el-descriptions-item>
 | 
			
		||||
                    <template slot="label">审批状态</template>
 | 
			
		||||
                    <span v-if="baseInfo.approveStatus==1">待审批</span>
 | 
			
		||||
                    <span v-if="baseInfo.approveStatus==2">审批中</span>
 | 
			
		||||
                    <span v-if="baseInfo.approveStatus==3">审批同意</span>
 | 
			
		||||
                    <span v-if="baseInfo.approveStatus==4">审批拒绝</span>
 | 
			
		||||
                </el-descriptions-item> 
 | 
			
		||||
                <el-descriptions-item>
 | 
			
		||||
                    <template slot="label">审批时间</template>
 | 
			
		||||
                    {{ baseInfo.approveTime }}
 | 
			
		||||
                </el-descriptions-item>  
 | 
			
		||||
                <el-descriptions-item>
 | 
			
		||||
                    <template slot="label">审批人</template>
 | 
			
		||||
                    {{ baseInfo.approveBy }}
 | 
			
		||||
                </el-descriptions-item>
 | 
			
		||||
          </el-descriptions>
 | 
			
		||||
          <el-descriptions style="margin-bottom: 20px;" title="基本信息" :column="4" size="medium" border>  
 | 
			
		||||
              <el-descriptions-item>
 | 
			
		||||
                  <template slot="label">采购计划单号</template>
 | 
			
		||||
                  {{baseInfo.planCode}}
 | 
			
		||||
                  <template slot="label">生产计划单号</template>
 | 
			
		||||
                  {{baseInfo.productionPlanCode}}
 | 
			
		||||
              </el-descriptions-item> 
 | 
			
		||||
              <el-descriptions-item>
 | 
			
		||||
                  <template slot="label">采购时间</template>
 | 
			
		||||
                  {{ baseInfo.purchaseDate }}
 | 
			
		||||
                  <template slot="label">生产计划名称</template>
 | 
			
		||||
                  {{baseInfo.productionPlanName}}
 | 
			
		||||
              </el-descriptions-item> 
 | 
			
		||||
              <el-descriptions-item>
 | 
			
		||||
                  <template slot="label">生产计划时间</template>
 | 
			
		||||
                  {{ this.dateRange[0] }}至{{ this.dateRange[1] }}
 | 
			
		||||
              </el-descriptions-item>
 | 
			
		||||
              <el-descriptions-item>
 | 
			
		||||
                  <template slot="label">所属区域</template>
 | 
			
		||||
| 
						 | 
				
			
			@ -52,55 +26,39 @@
 | 
			
		|||
                  <template slot="label">所属档口</template>
 | 
			
		||||
                  {{ baseInfo.stallName }}
 | 
			
		||||
              </el-descriptions-item> 
 | 
			
		||||
              <el-descriptions-item>
 | 
			
		||||
                  <template slot="label">采购预算金额(元)</template>
 | 
			
		||||
                  {{ (baseInfo.purchaseBudgetTotal/100).toFixed(2) }}
 | 
			
		||||
              <el-descriptions-item v-if="baseInfo.productionPlanType==1">
 | 
			
		||||
                  <template slot="label">是否重复</template>
 | 
			
		||||
                  <span v-if="baseInfo.ifRepeat==1">多天重复</span>
 | 
			
		||||
                  <span v-if="baseInfo.ifRepeat==2">多天不重复</span>
 | 
			
		||||
              </el-descriptions-item> 
 | 
			
		||||
              <el-descriptions-item>
 | 
			
		||||
                  <template slot="label">操作人</template>
 | 
			
		||||
                  {{ baseInfo.updateBy }}
 | 
			
		||||
              </el-descriptions-item> 
 | 
			
		||||
              <el-descriptions-item>
 | 
			
		||||
                  <template slot="label">备注</template>
 | 
			
		||||
                  {{ baseInfo.remark }}
 | 
			
		||||
              </el-descriptions-item>
 | 
			
		||||
          </el-descriptions> 
 | 
			
		||||
            </el-descriptions> 
 | 
			
		||||
            <el-row class="mb8" v-if="baseInfo.ifRepeat==2||baseInfo.productionPlanType==2">
 | 
			
		||||
                <el-col :span="1">
 | 
			
		||||
                    <span style="font-weight: bold;color: #606266;font-size: 14px;">日期</span>
 | 
			
		||||
                </el-col>
 | 
			
		||||
                <el-col :span="23">
 | 
			
		||||
                    <el-radio-group v-model="dateRangeRadio" @change="choseDateRadio">
 | 
			
		||||
                        <el-radio :label="item.applyDate" v-for="(item,index) in dateRangeList" :key="index" style="font-size: 14px;margin-bottom: 10px;">{{ item.applyDateStr }}</el-radio>
 | 
			
		||||
                    </el-radio-group>
 | 
			
		||||
                </el-col>
 | 
			
		||||
            </el-row> 
 | 
			
		||||
        </div> 
 | 
			
		||||
        <div style="width: 100%;height: 480px;padding: 10px;border-radius: 10px;margin-bottom: 10px;background: #FFF;"> 
 | 
			
		||||
            <div style="width: 100%;height: 450px;padding: 10px;border-radius: 10px;margin-bottom: 10px;display: flex;" >
 | 
			
		||||
                <el-card class="dishes-card" v-for="item in detailList" :key="item.mealtimeType">
 | 
			
		||||
                    <div slot="header">
 | 
			
		||||
                        <span>{{item.mealtimeName}}</span> 
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <div class="body-card">
 | 
			
		||||
                        <div v-for="dish in item.dishesList" :key="dish.dishesId" style="width: 100%;display: flex;justify-content: space-between;align-items: center;">
 | 
			
		||||
                            <span>{{dish.dishesName}}</span> 
 | 
			
		||||
                            <span>{{dish.dishesNum}}份</span>  
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <div class="bottom-card">
 | 
			
		||||
                        
 | 
			
		||||
        <div style="width: 100%;height: 450px;padding: 10px;border-radius: 10px;margin-bottom: 10px;background: #FFF;">
 | 
			
		||||
            <div style="width: 100%;display: flex;justify-content: space-between;align-items: center;margin-bottom: 10px;">
 | 
			
		||||
                <div>
 | 
			
		||||
                    货品信息
 | 
			
		||||
                </div> 
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style="width: 100%;height: 400px;overflow-y: auto;">
 | 
			
		||||
                <el-table v-loading="loading" :data="materialList" ref="multipleTable" height="380" :row-key="(row)=>{return row.materialId}" @selection-change="handleSelectionChange">
 | 
			
		||||
                    <!-- <el-table-column type="selection" width="50" align="center" :reserve-selection="true" /> -->
 | 
			
		||||
                    <el-table-column label="序号" align="center" width="80" type="index" />
 | 
			
		||||
                    <!-- <el-table-column label="图片" align="center" prop="" :show-overflow-tooltip="true" />  -->
 | 
			
		||||
                    <el-table-column label="货品编码" align="center" prop="materialCode" :show-overflow-tooltip="true" /> 
 | 
			
		||||
                    <el-table-column label="货品名称" align="center" prop="materialName" :show-overflow-tooltip="true" /> 
 | 
			
		||||
                    <el-table-column label="货品类别" align="center" prop="materialTypeName" :show-overflow-tooltip="true" /> 
 | 
			
		||||
                    <el-table-column label="计量单位" align="center" prop="unitName" :show-overflow-tooltip="true" /> 
 | 
			
		||||
                    <el-table-column label="货品规格" align="center" prop="size" :show-overflow-tooltip="true">
 | 
			
		||||
                        <!-- <template slot-scope="scope">
 | 
			
		||||
                            <span v-if="scope.row.salesMode==1">按份</span>
 | 
			
		||||
                            <span v-if="scope.row.salesMode==2">称重</span>
 | 
			
		||||
                        </template> -->
 | 
			
		||||
                    </el-table-column> 
 | 
			
		||||
                    <el-table-column label="参考价(元)" align="center" prop="unitPrice" :show-overflow-tooltip="true">
 | 
			
		||||
                        <template slot-scope="scope">
 | 
			
		||||
                          <span>{{ (scope.row.unitPrice).toFixed(2) }}</span>
 | 
			
		||||
                        </template>
 | 
			
		||||
                    </el-table-column> 
 | 
			
		||||
                    <el-table-column label="采购数量" align="center" prop="purchaseNum" :show-overflow-tooltip="true"></el-table-column> 
 | 
			
		||||
                    <el-table-column label="预计采购金额(元)" align="center" prop="" :show-overflow-tooltip="true">
 | 
			
		||||
                        <template slot-scope="scope">
 | 
			
		||||
                            <span>{{ scope.row.purchaseNum*scope.row.unitPrice }}</span>
 | 
			
		||||
                        </template>
 | 
			
		||||
                    </el-table-column> 
 | 
			
		||||
                    <el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true"></el-table-column>
 | 
			
		||||
                </el-table>
 | 
			
		||||
                    </div>
 | 
			
		||||
                </el-card>  
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div style="width: 100%;height: 80px;padding: 10px;background: #FFF;border-radius: 10px;display: flex;align-items: center;justify-content: center;">
 | 
			
		||||
| 
						 | 
				
			
			@ -111,7 +69,7 @@
 | 
			
		|||
</template>
 | 
			
		||||
  
 | 
			
		||||
<script>  
 | 
			
		||||
import { getPurchasePlanInfoApi } from "@/api/foodManage/purchaseManage";
 | 
			
		||||
import { getProductionPlanInfoApi } from "@/api/foodManage/purchaseManage";
 | 
			
		||||
export default {
 | 
			
		||||
    name: "ProductionPlanDetail",
 | 
			
		||||
    dicts: [],
 | 
			
		||||
| 
						 | 
				
			
			@ -120,13 +78,7 @@ export default {
 | 
			
		|||
        productionPlanRowData:{},//页面传参
 | 
			
		||||
        loading:false,
 | 
			
		||||
        loadingBtn:false,
 | 
			
		||||
        baseInfo: { 
 | 
			
		||||
            contractTitle:undefined,
 | 
			
		||||
            contractType:undefined,
 | 
			
		||||
            areaId:undefined,
 | 
			
		||||
            canteenId:undefined, 
 | 
			
		||||
            dateRange:[], 
 | 
			
		||||
        },
 | 
			
		||||
        baseInfo: {},
 | 
			
		||||
        // 表单校验
 | 
			
		||||
        baseRules: {
 | 
			
		||||
            contractTitle: [
 | 
			
		||||
| 
						 | 
				
			
			@ -143,35 +95,19 @@ export default {
 | 
			
		|||
            ],
 | 
			
		||||
            contractSigningTime: [
 | 
			
		||||
                { required: true, message: "签订日期不能为空", trigger: "change" }
 | 
			
		||||
            ],
 | 
			
		||||
            dateRange: [
 | 
			
		||||
                { required: true, message: "合同生效周期不能为空", trigger: "change" }
 | 
			
		||||
            ]
 | 
			
		||||
        }, 
 | 
			
		||||
        treeAreaOptions:[],
 | 
			
		||||
        canteenOptions:[],
 | 
			
		||||
        supplierOptions:[],
 | 
			
		||||
        stallOptions:[],
 | 
			
		||||
        
 | 
			
		||||
        dateRange:[],
 | 
			
		||||
        pickerOptions: { 
 | 
			
		||||
            disabledDate(v) {
 | 
			
		||||
                return v.getTime() < (new Date().getTime() - 86400000);//  - 86400000是否包括当天
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        materialList:[],  
 | 
			
		||||
        openDialog:false,
 | 
			
		||||
        materialTreeOptions:[], 
 | 
			
		||||
        // 查询参数
 | 
			
		||||
        queryParams: {
 | 
			
		||||
            pageNum: 1,
 | 
			
		||||
            pageSize: 10, 
 | 
			
		||||
        },
 | 
			
		||||
        // 总条数
 | 
			
		||||
        total: 0,
 | 
			
		||||
        //表格数据
 | 
			
		||||
        tableListData: [],
 | 
			
		||||
        batchChosenMaterial:[],
 | 
			
		||||
        noMaterial:false,
 | 
			
		||||
        dateRangeList:[],
 | 
			
		||||
        dateRangeIndex:0,
 | 
			
		||||
        dateRangeRadio:"",
 | 
			
		||||
        detailList:[],
 | 
			
		||||
        resDetailList:[],
 | 
			
		||||
      };
 | 
			
		||||
    },
 | 
			
		||||
    created() { 
 | 
			
		||||
| 
						 | 
				
			
			@ -185,9 +121,6 @@ export default {
 | 
			
		|||
            if(newId){
 | 
			
		||||
                this.productionPlanRowData = JSON.parse(newId)
 | 
			
		||||
                this.getContractInfo()
 | 
			
		||||
            }else{
 | 
			
		||||
                this.baseInfo={}
 | 
			
		||||
                this.materialList=[]
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
    },
 | 
			
		||||
| 
						 | 
				
			
			@ -200,26 +133,92 @@ export default {
 | 
			
		|||
        },
 | 
			
		||||
        getContractInfo(){
 | 
			
		||||
            console.log(this.productionPlanRowData) 
 | 
			
		||||
            let param = {
 | 
			
		||||
             let param = {
 | 
			
		||||
                planId:this.productionPlanRowData.planId
 | 
			
		||||
            }
 | 
			
		||||
            //查询查询食堂下拉结构
 | 
			
		||||
            getPurchasePlanInfoApi(param).then((response) => {
 | 
			
		||||
            getProductionPlanInfoApi(param).then((response) => {
 | 
			
		||||
                this.baseInfo = response.data; 
 | 
			
		||||
                this.materialList = this.baseInfo.purchasePlanDetailList; 
 | 
			
		||||
                this.materialList.forEach(item=>{
 | 
			
		||||
                    this.$set(item,"unitPrice",Number(item.unitPrice)/100) 
 | 
			
		||||
                })  
 | 
			
		||||
                // getCanteenByAreaApi({areaId:this.baseInfo.areaId}).then((response) => {
 | 
			
		||||
                //     this.canteenOptions=response.rows||[];
 | 
			
		||||
                //     this.$set(this.baseInfo,"canteenId",this.baseInfo.canteenId)
 | 
			
		||||
                // });
 | 
			
		||||
                // getStallByCanteenApi({ canteenId:this.baseInfo.canteenId }).then((response) => {
 | 
			
		||||
                //     this.stallOptions=response.rows||[]
 | 
			
		||||
                //     this.$set(this.baseInfo,"stallId",this.baseInfo.stallId)  
 | 
			
		||||
                // });  
 | 
			
		||||
                this.resDetailList = response.data.productionPlanDetailVOList;
 | 
			
		||||
                this.dateRange=[this.resDetailList[0].detailDate,this.resDetailList[this.resDetailList.length-1].detailDate] 
 | 
			
		||||
                this.dateRangeList = this.getDateRange(this.dateRange[0],this.dateRange[1]) 
 | 
			
		||||
                this.dateRangeIndex = 0
 | 
			
		||||
                this.dateRangeRadio = this.formatDate(this.dateRange[0]); 
 | 
			
		||||
                for (let i = 0; i < this.resDetailList.length; i++) {
 | 
			
		||||
                    this.dateRangeList.forEach(item=>{
 | 
			
		||||
                        if(this.resDetailList[i].detailDate==item.applyDate){
 | 
			
		||||
                            item.detailList.forEach(subItem=>{
 | 
			
		||||
                                if(this.resDetailList[i].mealtimeType==subItem.mealtimeType){ 
 | 
			
		||||
                                    this.$set(this.resDetailList[i],'dishesNum',this.resDetailList[i].dishesNum) 
 | 
			
		||||
                                    subItem.dishesList.push(this.resDetailList[i])
 | 
			
		||||
                                }
 | 
			
		||||
                            })
 | 
			
		||||
                        } 
 | 
			
		||||
                    }) 
 | 
			
		||||
                }
 | 
			
		||||
                this.detailList = this.dateRangeList[0].detailList; 
 | 
			
		||||
                // if(e==1){//
 | 
			
		||||
                //     this.dateRangeIndex = 0
 | 
			
		||||
                //     this.detailList = this.dateRangeList[0].detailList;
 | 
			
		||||
                // }else{
 | 
			
		||||
                //     let index = this.dateRangeList.findIndex(v=>v.applyDate==this.dateRangeRadio)
 | 
			
		||||
                //     this.dateRangeIndex = index
 | 
			
		||||
                //     this.detailList = this.dateRangeList[index].detailList;
 | 
			
		||||
                // } 
 | 
			
		||||
            }); 
 | 
			
		||||
        }, 
 | 
			
		||||
        //切换日期菜谱-直接生成
 | 
			
		||||
        choseDateRadio(e){ 
 | 
			
		||||
                let index = this.dateRangeList.findIndex(v=>v.applyDate==this.dateRangeRadio)
 | 
			
		||||
                this.dateRangeIndex = index
 | 
			
		||||
                this.detailList = this.dateRangeList[index].detailList; 
 | 
			
		||||
        }, 
 | 
			
		||||
        //获取两日期间所有日期-构建每日菜谱数据
 | 
			
		||||
        getDateRange(startDate, endDate) {
 | 
			
		||||
            let start = new Date(startDate);
 | 
			
		||||
            let end = new Date(endDate) 
 | 
			
		||||
            let dateArray = []; 
 | 
			
		||||
            while (start <= end) { 
 | 
			
		||||
                //周几
 | 
			
		||||
				var days = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
 | 
			
		||||
				var dayOfWeek = start.getDay();
 | 
			
		||||
                let obj = {
 | 
			
		||||
                    applyDate:this.formatDate(start),
 | 
			
		||||
                    applyWeek:dayOfWeek,
 | 
			
		||||
                    applyDateStr:this.formatDate(start)+" "+days[dayOfWeek],
 | 
			
		||||
                    detailList:[
 | 
			
		||||
                        {
 | 
			
		||||
                            mealtimeType:"1",
 | 
			
		||||
                            mealtimeName:"早餐",
 | 
			
		||||
                            dishesList:[]
 | 
			
		||||
                        },
 | 
			
		||||
                        {
 | 
			
		||||
                            mealtimeType:"2",
 | 
			
		||||
                            mealtimeName:"午餐",
 | 
			
		||||
                            dishesList:[]
 | 
			
		||||
                        },
 | 
			
		||||
                        {
 | 
			
		||||
                            mealtimeType:"3",
 | 
			
		||||
                            mealtimeName:"下午茶",
 | 
			
		||||
                            dishesList:[]
 | 
			
		||||
                        },
 | 
			
		||||
                        {
 | 
			
		||||
                            mealtimeType:"4",
 | 
			
		||||
                            mealtimeName:"晚餐",
 | 
			
		||||
                            dishesList:[]
 | 
			
		||||
                        },
 | 
			
		||||
                        {
 | 
			
		||||
                            mealtimeType:"5",
 | 
			
		||||
                            mealtimeName:"夜宵",
 | 
			
		||||
                            dishesList:[]
 | 
			
		||||
                        }
 | 
			
		||||
                    ]
 | 
			
		||||
                }
 | 
			
		||||
                dateArray.push(obj); // 转换为 YYYY-MM-DD 格式
 | 
			
		||||
                start.setDate(start.getDate() + 1); // 日期加 1 
 | 
			
		||||
            } 
 | 
			
		||||
            return dateArray; 
 | 
			
		||||
        }, 
 | 
			
		||||
        // 多选框选中数据
 | 
			
		||||
        handleSelectionChange(selection) {
 | 
			
		||||
            // this.batchIds1 = selection.map(item => item.tradeId)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,8 @@
 | 
			
		|||
    <div style="padding: 10px;background: #E5EBF6;min-height: 830px;">
 | 
			
		||||
        <div style="background: #FFF;padding: 10px;border-radius: 10px;margin-bottom: 20px;">
 | 
			
		||||
            <el-form :model="baseInfo" ref="baseInfo" :rules="baseRules" size="medium" :inline="true" label-width="110px">
 | 
			
		||||
                <!-- <el-form-item label="生产计划单号" prop="planCode">
 | 
			
		||||
                    <el-input v-model="baseInfo.planCode" placeholder="生产计划单号自动生成" disabled maxlength="20" clearable style="width: 240px"/>
 | 
			
		||||
                <!-- <el-form-item label="生产计划单号" prop="productionPlanCode">
 | 
			
		||||
                    <el-input v-model="baseInfo.productionPlanCode" placeholder="生产计划单号自动生成" disabled maxlength="20" clearable style="width: 240px"/>
 | 
			
		||||
                </el-form-item> -->
 | 
			
		||||
                <el-form-item label="生产计划名称" prop="productionPlanName">
 | 
			
		||||
                    <el-input v-model="baseInfo.productionPlanName" placeholder="请输入生产计划名称" maxlength="20" clearable style="width: 240px"/>
 | 
			
		||||
| 
						 | 
				
			
			@ -170,7 +170,7 @@
 | 
			
		|||
                </div> 
 | 
			
		||||
                <div class="dialog-right">
 | 
			
		||||
                    <el-table :data="dishesTableList" height="620">
 | 
			
		||||
                        <el-table-column label="菜品编号" align="center" prop="dishesNum" />
 | 
			
		||||
                        <!-- <el-table-column label="菜品编号" align="center" prop="dishesNum" /> -->
 | 
			
		||||
                        <el-table-column label="菜品名称" align="center" prop="dishesName" />
 | 
			
		||||
                        <el-table-column label="所属食堂" align="center" prop="canteenName" />
 | 
			
		||||
                        <el-table-column label="规格" align="center" prop="sizeType">
 | 
			
		||||
| 
						 | 
				
			
			@ -353,7 +353,7 @@ export default {
 | 
			
		|||
                this.dateRangeIndex = 0
 | 
			
		||||
                this.dateRangeRadio = this.formatDate(this.dateRange[0]); 
 | 
			
		||||
                if(this.dialogType==1){
 | 
			
		||||
                     for (let i = 0; i < this.resDetailList.length; i++) {
 | 
			
		||||
                    for (let i = 0; i < this.resDetailList.length; i++) {
 | 
			
		||||
                        this.dateRangeList.forEach(item=>{
 | 
			
		||||
                            if(this.resDetailList[i].detailDate==item.applyDate){
 | 
			
		||||
                                item.detailList.forEach(subItem=>{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue