<template>
	<div class="app-container">
		<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="98px">
			<el-form-item label="生产订单编码" prop="orderCode">
				<el-input
					v-model="queryParams.orderCode"
					placeholder="请输入生产订单编码"
					clearable
					@keyup.enter.native="handleQuery"
				/>
			</el-form-item>
			<el-form-item label="生产工单编码" prop="workorderCode">
				<el-input
					v-model="queryParams.workorderCode"
					placeholder="请输入生产工单编码"
					clearable
					@keyup.enter.native="handleQuery"
				/>
			</el-form-item>
						<el-form-item label="产品编码" prop="productCode">
      				<el-input
      					v-model="queryParams.productCode"
      					placeholder="请输入产品编码"
      					clearable
      					@keyup.enter.native="handleQuery"
      				/>
      			</el-form-item>
			</el-form-item>
			<el-form-item label="产品名称" prop="productName">
      				<el-input
      					v-model="queryParams.productName"
      					placeholder="请输入产品名称"
      					clearable
      					@keyup.enter.native="handleQuery"
      				/>
      		</el-form-item>
			<el-form-item label="生产时间" prop="feedbackTimeArray">
                <el-date-picker
				v-model="queryParams.feedbackTimeArray"
				format="yyyy-MM-dd"
				type="datetimerange"
				range-separator="至"
				start-placeholder="开始日期"
				end-placeholder="结束日期">
				</el-date-picker>
			</el-form-item>
			<el-form-item label="SAP报工结果" prop="uploadStatus">
				<el-select v-model="queryParams.uploadStatus" placeholder="请选择结果" clearable>
				<el-option
					v-for="item in uploadStatusList"
					:key="item.dictValue"
					:label="item.dictLabel"
					:value="item.dictValue">
				</el-option>
				</el-select>
			</el-form-item>
			<el-form-item
				<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
				<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
			</el-form-item>
		</el-form>

		<el-row :gutter="10" class="mb8">
			<!--<el-col :span="1.5">
				<el-button
					type="primary"
					plain
					icon="el-icon-plus"
					size="mini"
					@click="handleAdd"
					v-hasPermi="['mes:reportWork:add']"
				>新增</el-button>
			</el-col>-->

			<!--<el-col :span="1.5">
				<el-button
					type="success"
					plain
					icon="el-icon-edit"
					size="mini"
					:disabled="single"
					@click="handleUpdate"
					v-hasPermi="['mes:reportWork:edit']"
				>修改</el-button>
			</el-col>
			<el-col :span="1.5">
				<el-button
					type="danger"
					plain
					icon="el-icon-delete"
					size="mini"
					:disabled="multiple"
					@click="handleDelete"
					v-hasPermi="['mes:reportWork:remove']"
				>删除</el-button>
			</el-col>
			-->
			<el-col :span="1.5">
				<el-button
					type="success"
					plain
					icon="el-icon-edit"
					size="mini"
					:disabled="single"
					@click="handleReportHz"
					v-hasPermi="['mes:reportWork:report']"
			    >报工信息维护</el-button>
			</el-col>
			<el-col :span="1.5">
				<el-button
					type="danger"
					plain
					icon="el-icon-s-release"
					size="mini"
					:disabled="single"
					@click="handleConsumeHz"
					v-hasPermi="['mes:reportWork:report']"
				>报工损耗</el-button>
			</el-col>
			<el-col :span="1.5">
				<el-button
					type="primary"
					plain
					icon="el-icon-s-claim"
					size="mini"
					:disabled="single"
					@click="handleReport"
					v-hasPermi="['mes:reportWork:edit']"
				>报工SAP</el-button>
			</el-col>
			<el-col :span="1.5">
				<el-button
					type="primary"
					plain
					icon="el-icon-s-claim"
					size="mini"
					:disabled="single"
					@click="handleReportCancel"
					v-hasPermi="['mes:reportWork:edit']"
				>撤销报工SAP</el-button>
			</el-col>
			<el-col :span="1.5">
				<el-button
					type="warning"
					plain
					icon="el-icon-download"
					size="mini"
					@click="handleExport"
					v-hasPermi="['mes:reportWork:export']"
				>导出</el-button>
			</el-col>

			<el-col :span="1.5">
			<el-button
				type="primary"
				plain
				icon="el-icon-plus"
				size="mini"
				@click="handleAddSAP"
			>SAP收货</el-button>
			</el-col>
			<el-col :span="1.5">
				<el-button
				type="success"
				plain
				:disabled="single"
				icon="el-icon-download"
				size="mini"
				@click="showPrint"
				>打印预览
				</el-button>
			</el-col>

			<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
		</el-row>

		<el-table v-loading="loading" :data="reportWorkList" @selection-change="handleSelectionChange">
			<el-table-column type="selection"  align="center" />
			<el-table-column label="工单编码" align="center" prop="workorderCode" width="130">
				 <template slot-scope="scope">
					<el-button
						type="text"
						@click="handleReportHz(scope.row)"
					>{{scope.row.workorderCode}}</el-button>
				</template>
			</el-table-column>
            <el-table-column label="订单编码" align="center" prop="workorderCodeSap" width="130"
			:formatter="orderCodeFormate"
			/>
			<el-table-column label="产品编码" align="center" prop="productCode" width="130"
			   :formatter="productCodeFormate"
			/>
			<el-table-column label="线体编码" align="center" prop="machineCode" />
			<el-table-column label="线体名称" align="center" prop="machineName" />
			<el-table-column label="产品名称" align="center" prop="productName" width="220" :show-overflow-tooltip="true" />
			<el-table-column label="排产数量" align="center" prop="quantity" width="100"/>
			<el-table-column label="单位" align="center" prop="unit" />
			<el-table-column label="累计报工数量" align="center" prop="quantityFeedback" width="100"/>
			<!--<el-table-column label="用人数" align="center" prop="useMan" width="100"/>-->
			<el-table-column label="累计工时" align="center" prop="workTime" />
			<el-table-column label="生产时间" align="center" prop="productDate" width="100"/>
			<el-table-column label="SAP报工状态" align="center" prop="uploadStatus" width="150">
				<template slot-scope="scope">
					<dict-tag
						:options="dict.type.report_sap_status"
						:value="scope.row.uploadStatus"
					/>
				</template>
			</el-table-column>
			<el-table-column label="SAP报工时间" align="center" prop="uploadTime" width="150"/>
			<el-table-column label="SAP报工信息" align="center" prop="uploadMsg" width="150" :show-overflow-tooltip="true"/>
		</el-table>

		<pagination
			v-show="total>0"
			:total="total"
			:page.sync="queryParams.pageNum"
			:limit.sync="queryParams.pageSize"
			@pagination="getList"
		/>

		<!-- 添加或修改报工报表对话框 -->
		<el-dialog :title="title" :visible.sync="open" width="1200px" append-to-body>
		    <el-tabs v-model="activeName0" >
    			<el-tab-pane label="报工信息" name="first">
					<el-form ref="form" :model="form" :rules="rules" label-width="110px">
						<el-row>
							<el-col :span="6">
								<el-form-item label="报工单编号" prop="reportCode">
										<el-input v-model="form.reportCode" placeholder="请输入报工单编号" disabled/>
									</el-form-item>
								</el-col>
							</el-col>
							<el-col :span="6">
								<el-form-item label="报工人员姓名" prop="nickName">
									<el-input v-model="form.nickName" placeholder="请输入报工人员" >
									<el-button slot="append" @click="handleSelectUser" icon="el-icon-search"></el-button>
									</el-input>
								</el-form-item>
							</el-col>
							<el-col :span="6">
								<el-form-item label="报工人员工号" prop="userName">
									<el-input v-model="form.userName" placeholder="请输入报工人员" disabled/>
								</el-form-item>
							</el-col>
							<el-col v-if="false">
								<el-form-item label="默认">
									<el-input v-model="form.reportType" disabled/>
									<el-input v-model="form.feedbackChannel" disabled/>
								</el-form-item>
							</el-col>
							<el-col :span="6">
								<el-form-item label="生产工单编码" prop="workorderCode">
									<el-input v-model="form.workorderCode" placeholder="请选择生产工单">
									<el-button slot="append" @click="handleSelectWorkOrder" icon="el-icon-search"></el-button>
									</el-input>
								</el-form-item>
							</el-col>
						</el-row>
						<el-row>
							<el-col :span="6">
								<el-form-item label="批次编码" prop="batch">
									<el-select v-model="form.batch" class="selectItem" placeholder="请选择批次" clearable>
										<el-option v-for="(item,index) in batchList"
													:key="index"
													:label="item.batchCode"
													:value="item.batchCode">
										</el-option>
									</el-select>
								</el-form-item>
							</el-col>
							<el-col :span="6">
								<el-form-item label="报工时间" prop="feedbackTime">
								<el-date-picker clearable
									v-model="form.feedbackTime"
									type="date"
									value-format="yyyy-MM-dd"
									style="width: 180px"
									placeholder="请选择报工时间">
								</el-date-picker>
								</el-form-item>
							</el-col>
							<el-col :span="6">
								<el-form-item label="班次编码" prop="shiftId" v-if="false">
									<el-input v-model="form.shiftId" placeholder="请输入班次编码" />
								</el-form-item>
								<el-form-item label="班次名称" prop="shiftName">
									<el-input v-model="form.shiftName" placeholder="请输入班次名称" disabled/>
								</el-form-item>
							</el-col>
							<el-col :span="6">
								<el-form-item label="线体名称" prop="machineName">
									<el-input v-model="form.machineName" placeholder="请选择线体名称">
									<el-button slot="append" @click="handleSelectEquip" icon="el-icon-search"></el-button>
									</el-input>
								</el-form-item>
								<el-form-item label="线体编码" prop="machineCode" v-if="false">
									<el-input v-model="form.machineCode" placeholder="请输入线体编码" disabled/>
								</el-form-item>
							</el-col>
						</el-row>
						<el-row>
						    <el-col :span="6">
								<el-form-item label="工作中心" prop="workCenter">
									<el-select
										v-model="form.workCenter"
										filterable
										placeholder="请选择"
										>
										<el-option
											v-for="item in options1"
											:key="item.factoryCode"
											:label="item.factoryName"
											:value="item.factoryCode"
										>
										</el-option>
									</el-select>
								</el-form-item>
							</el-col>
							<el-col :span="6">
								<el-form-item label="结束报工" prop="endReport">
									<el-radio v-model="form.endReport" label="0">否</el-radio>
									<el-radio v-model="form.endReport" label="1">是</el-radio>
								</el-form-item>
							</el-col>
						</el-row>
						<el-row>
							<el-col :span="6">
								<el-form-item label="产品编码(母)" prop="productCode">
									<el-input v-model="form.productCode" placeholder="请输入产品编码" disabled/>
								</el-form-item>
							</el-col>
							<el-col :span="6">
								<el-form-item label="产品名称(母)" prop="productName">
									<el-input v-model="form.productName" placeholder="请输入产品名称" disabled/>
								</el-form-item>
							</el-col>
							<el-col :span="6">
								<el-form-item label="排产数量(母)" prop="quantity">
								<el-input v-model="form.quantity" disabled/>
								</el-form-item>
							</el-col>
							<el-col :span="6">
								<el-form-item label="单位(母)" prop="unit">
									<el-input v-model="form.unit" placeholder="请输入单位" disabled/>
								</el-form-item>
							</el-col>
						</el-row>
						<el-row>
							<el-col :span="6">
									<el-form-item label="报工数量(母)" prop="quantityFeedback">
									<el-input-number
										:min="0"
										:step="1"
										v-model="form.quantityFeedback"
										style="width: 180px"
									/>
									</el-form-item>
							</el-col>
							<el-col :span="6">
									<el-form-item label="报工工时(母)" prop="workTime">
									<el-input-number
										:min="0"
										:step="1"
										v-model="form.workTime"
										style="width: 180px"
									/>
									</el-form-item>
							</el-col>
						    <el-col :span="6">
									<el-form-item label="报工用人(母)" prop="useMan">
									<el-input-number
										:min="0"
										:step="1"
										v-model="form.useMan"
										style="width: 180px"
									/>
									</el-form-item>
							</el-col>
						</el-row>
						<el-row>
							<el-col :span="6">
							    <el-form-item label="子工单编码" prop="workorderCodes" v-if="false">
									<el-input v-model="form.workorderCodes" placeholder="子工单编码" disabled/>
								</el-form-item>
								<el-form-item label="产品编码(子)" prop="productCodes">
									<el-input v-model="form.productCodes" placeholder="请输入产品编码" disabled/>
								</el-form-item>
							</el-col>
							<el-col :span="6">
								<el-form-item label="产品名称(子)" prop="productNames">
									<el-input v-model="form.productNames" placeholder="请输入产品名称" disabled/>
								</el-form-item>
							</el-col>
							<el-col :span="6">
								<el-form-item label="排产数量(子)" prop="quantitys">
								<el-input v-model="form.quantitys" disabled/>
								</el-form-item>
							</el-col>
							<el-col :span="6">
								<el-form-item label="单位(子)" prop="units">
									<el-input v-model="form.units" placeholder="请输入单位" disabled/>
								</el-form-item>
							</el-col>
						</el-row>
						<el-row>
							<el-col :span="6">
									<el-form-item label="报工数量(子)" prop="quantityFeedbacks">
									<el-input-number
										:min="0"
										:step="1"
										v-model="form.quantityFeedbacks"
										style="width: 180px"
									/>
									</el-form-item>
							</el-col>
							<el-col :span="6">
									<el-form-item label="报工工时(子)" prop="workTimes">
									<el-input-number
										:min="0"
										:step="1"
										v-model="form.workTimes"
										style="width: 180px"
									/>
									</el-form-item>
							</el-col>
						     <el-col :span="6">
									<el-form-item label="报工用人(子)" prop="useMans">
									<el-input-number
										:min="0"
										:step="1"
										v-model="form.useMans"
										style="width: 180px"
									/>
									</el-form-item>
							</el-col>
						</el-row>
						<el-row>
							<el-col :span="24">
								<el-form-item label="备注" prop="remark">
									<el-input v-model="form.remark" placeholder="请输入内容" type="textarea"/>
								</el-form-item>
							</el-col>
						</el-row>
					</el-form>
				</el-tab-pane>
				<el-tab-pane label="物料损耗" name="second">
					<div>
						<ReportWorkConsume ref="child"
										:workorderCode="form.workorderCode"
										@onSelected="onSelectMaterial"
						></ReportWorkConsume>
					</div>
				</el-tab-pane>
			</el-tabs>
			<div slot="footer" class="dialog-footer">
				<el-button type="primary" @click="cancel" v-if="optType =='view'">返回</el-button>
				<el-button type="primary" @click="submitReportInfo" v-else>提交</el-button>
				<el-button @click="cancel">取 消</el-button>
			</div>
		</el-dialog>
		<!-- 报工信息详情 -->
		<el-dialog :title="titleReport" :visible.sync="openReport" width="1200px">
			<el-tabs v-model="activeNameR">
				<el-tab-pane
					v-for="(item, index) in libTabs"
					:key="index"
					:label="item.title"
					:name="item.libId"
				>
                    <el-table v-loading="loading" :data="item.libList" ref="myPOrderTable"
					          @select="pReportSelection"
							  @select-all="allReportSelection"
							  :summary-method="getSummaries"
                              show-summary
					>
					    <el-table-column width="60" align="center" type="selection"/>
						<el-table-column label="id" align="center" prop="id" v-if="false"/>
						<el-table-column label="工单编码" width="130" align="left" prop="workorderCode" :show-overflow-tooltip="true" />
						<el-table-column label="订单编码" width="110" align="left" prop="workorderCodeSap" :show-overflow-tooltip="true"
						:formatter="orderCodeFormate"/>
						<el-table-column label="报工单号" width="110" align="left" prop="reportCode" :show-overflow-tooltip="true" />
						<el-table-column label="批次" width="250" align="left" prop="batch" :show-overflow-tooltip="true" />
						<el-table-column label="单位" align="center" prop="unit"/>
						<el-table-column label="报工数量" width="100" align="left" prop="quantityFeedback" :show-overflow-tooltip="true" >
						    <template slot-scope="scope">
								<el-input type="number" size="small" v-model="scope.row.quantityFeedback" @change="handleEdit(scope.$index,scope.row)"></el-input>
							</template>
						</el-table-column>
						<el-table-column label="工时数" align="center" prop="workTime">
							<template slot-scope="scope">
								<el-input type="number" size="small" v-model="scope.row.workTime" @change="handleEdit(scope.$index,scope.row)"></el-input>
							</template>
						</el-table-column>
						<el-table-column label="用人数" align="center" prop="useMan">
							<template slot-scope="scope">
								<el-input type="number" size="small" v-model="scope.row.useMan" @change="handleEdit(scope.$index,scope.row)"></el-input>
							</template>
						</el-table-column>
						<el-table-column label="创建时间" align="center" prop="createTime" width="150"/>
					</el-table>

					<div class="demo-input-suffix">
						<p>备注：</p>
						<el-input type="textarea" @blur ="addRemarksblur(item.libList,item.remark,index)"  v-model="item.remark"  
						placeholder="请输入内容(300个字内)" maxlength=300/>
						</el-input>
					</div>
				</el-tab-pane>		
			</el-tabs>
			<div slot="footer" class="dialog-footer">
			    <el-button type="primary" @click="cancel" v-if="optType =='view'">返回</el-button>
			    <el-button type="primary" @click="submitReport" v-else>确 定</el-button>
        		<el-button @click="cancel">取 消</el-button>
			</div>
		</el-dialog>
		<!-- 报工损耗 -->
		<el-dialog :title="titleConsume" :visible.sync="openConsume" width="1200px">
			<el-tabs v-model="activeNameC" >
				<el-tab-pane
					v-for="(item, index) in libConsumeTabs"
					:key="index"
					:label="item.title"
					:name="item.libId"
					>

					<el-table v-loading="loading" :data="item.libList" ref="mypConsumeTable"
					@select="pConsumeSelection"
					 @select-all="allConsumeSelection"
					>
						<el-table-column width="50" align="center" type="selection"/>
						<el-table-column label="recordId" align="center" prop="recordId" v-if="false"/>
						<el-table-column label="parentOrder" align="center" prop="parentOrder" v-if="false"/>
						<el-table-column label="工单编码" width="140" align="left" prop="workorderCode" :show-overflow-tooltip="true" />
						<el-table-column label="订单编码" width="130" align="left" prop="workorderCodeSap" :show-overflow-tooltip="true"
						:formatter="orderCodeFormate"/>
						<el-table-column label="物料编码" width="130" align="left" prop="materialCode" :show-overflow-tooltip="true"
						:formatter="productCodeFormate"
						/>
						<el-table-column label="物料名称" width="280" align="left" prop="materialName" :show-overflow-tooltip="true" />
						<el-table-column label="BOM组件用量" width="150" align="left" prop="planQuantity"/>
						<el-table-column label="实际用量" width="150" align="left" prop="quantity" :show-overflow-tooltip="true" >
							<template slot-scope="scope">
								<el-input type="number" size="small" v-model="scope.row.quantity" @change="handleEdit(scope.$index,scope.row)"></el-input>
							</template>
						</el-table-column>
						<el-table-column label="单位" width="50" align="center" prop="unit"/>
						<el-table-column label="反冲标识" align="center" prop="recoil"/>

						<el-table-column label="仓库" width="150" align="center" prop="warehouseCode">
							<template slot-scope="scope">
								<el-select v-model="scope.row.warehouseCode" placeholder="请选择仓库" width="50%"
								@change="handleEdit(scope.$index,scope.row)"
								v-if="scope.row.workorderCodeSap == null||scope.row.attr1"
								clearable
								>
								<el-option
									v-for="work in cwarehouseList"
									:key="work.warehouseCode"
									:label="work.warehouseName"
									:value="work.warehouseCode"
								></el-option>
								</el-select>
							</template>
						</el-table-column>
						<el-table-column label="创建时间" align="center" prop="createTime" width="150"/>
						<el-table-column fixed="right" label="操作" width="90">
							<template slot-scope="scope">
								<el-button @click.native.prevent="deleteBomRow(scope.$index, item.libList)"
								 size="small" type="danger" plain
								  v-if="scope.row.workorderCodeSap == null||scope.row.attr1"
								 >
								移除</el-button>
							</template>
						</el-table-column>
					</el-table>
					<div class="button-container">
						<el-button size="mini" type="primary" @click="addConsumeTableRow(item.libList)">新增物料</el-button>
					</div>

				</el-tab-pane>

				<!--工单产品bom参考
				<el-tab-pane label="BOM组成参照" name="pBom">
					<el-table v-loading="loading" :data="pBomTableList" ref="pBomTable"
						row-key="materialCode"
						style="width: 100%"
						max-height="480"
						:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
					>
						<el-table-column width="50" align="center" type="selection"/>
						<el-table-column label="物料编码" width="160" align="left" prop="materialCode"/>
						<el-table-column label="物料名称" width="280" align="left" prop="materialName" :show-overflow-tooltip="true" />
						<el-table-column label="物料组编码" width="100" align="left" prop="productGroup" />
						<el-table-column label="物料组名称" width="100" align="center" prop="productGroupName" :show-overflow-tooltip="true" />
						<el-table-column label="标准用量" align="center" prop="standardDosage"/>
						<el-table-column label="损耗率" align="center" prop="lossRate" width="100"/>
						<el-table-column label="损耗额" align="center" prop="lossAmount" width="100"/>
						<el-table-column label="含损耗用量" align="center" prop="cilosses" width="100"/>
						<el-table-column label="成本核算标识相关" align="center" prop="sanka" width="100"/>
					</el-table>
				</el-tab-pane>
				-->
			</el-tabs>
			<div slot="footer" class="dialog-footer">

			    <el-button type="primary" @click="cancel" v-if="optType =='view'">返回</el-button>
				<el-button type="primary" @click="submitConsume" v-else>确 定</el-button>
				<el-button @click="cancel">取 消</el-button>
			</div>
		</el-dialog>


    <!-- SAP收货 -->
    <el-dialog :title="titleReport" :visible.sync="openReportSAP" width="1200px">
      <el-select v-model="selectedWarehouse" placeholder="请选择仓库">
        <el-option v-for="warehouse in warehouseList" :key="warehouse.warehouseCode" :label="warehouse.warehouseName" :value="warehouse.warehouseCode"></el-option>
      </el-select>
      <el-tabs v-model="activeName" >
        <el-tab-pane label="母工单报工信息" name="pOrder">
          <el-table v-loading="loading" :data="pOrderTableList" ref="myPOrderTable"  @selection-change="pReportSelection"
                    :summary-method="getSummaries"
                    show-summary
          >
            <el-table-column width="50" align="center" type="selection"/>
            <el-table-column label="id" align="center" prop="id" v-if="false"/>
            <el-table-column label="SAP工单编码" width="250" align="left" prop="workorderCodeSap" :show-overflow-tooltip="true" />
            <el-table-column label="工单编码" width="150" align="left" prop="workorderCode" :show-overflow-tooltip="true" />
            <el-table-column label="报工单号" width="150" align="left" prop="reportCode" :show-overflow-tooltip="true" />
            <el-table-column label="批次" width="250" align="left" prop="batch" :show-overflow-tooltip="true" />
            <el-table-column label="产品编码" width="350" align="center" prop="productCode"/>
            <el-table-column label="产品名称" width="350" align="center" prop="productName"/>
            <el-table-column label="单位" align="center" prop="unit"/>
            <el-table-column label="报工数量" width="100" align="left" prop="quantityFeedback" :show-overflow-tooltip="true" >
              <template slot-scope="scope">
                <el-input type="number" size="small" v-model="scope.row.quantityFeedback" @change="handleEdit(scope.$index,scope.row)"></el-input>
              </template>
            </el-table-column>
            <el-table-column label="入库数量" width="100" align="left" prop="quantityQualified" :show-overflow-tooltip="true" >
              <template slot-scope="scope">
                <el-input type="number" size="small" v-model="scope.row.quantityQualified" @change="handleEdit(scope.$index,scope.row)"></el-input>
              </template>
            </el-table-column>
<!--            <el-table-column label="用人数" align="center" prop="useMan">-->
<!--              <template slot-scope="scope">-->
<!--                <el-input type="number" size="small" v-model="scope.row.useMan" @change="handleEdit(scope.$index,scope.row)"></el-input>-->
<!--              </template>-->
<!--            </el-table-column>-->
<!--            <el-table-column label="计划日期" width="100" align="center" prop="productDate"/>-->
                <el-table-column label="计划日期" width="180" align="center"  prop="productDate">
                  <template slot-scope="scope">
                    <el-date-picker v-model="scope.row.productDate" :value-format="'yyyy-MM-dd'"  type="date" ></el-date-picker>
                  </template>
                </el-table-column>
            <el-table-column label="SAP过账状态" width="100" align="center" prop="sapstatus">
              <template slot-scope="scope">
                <span v-if="scope.row.sapstatus === '1'">完成</span>
                <span v-else-if="scope.row.sapstatus ==='2'">失败</span>
              </template>
            </el-table-column>
            <el-table-column label="SAP过账信息"  width="350"  align="center" prop="sapmessage"/>

            <el-table-column label="创建时间" align="center" prop="createTime" width="150"/>
          </el-table>
        </el-tab-pane>
      </el-tabs>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitReportSAP" v-if="optType =='view'">确 定</el-button>
        <el-button type="primary" @click="submitReportSAP" v-else>确 定</el-button>
        <el-button @click="cancel">取 消</el-button>
      </div>
    </el-dialog>
		<!--母工单--》》》》》》》》》》》》》》》-->
			<!--人员选择弹窗-->
			<ItemSelectUser
				ref="itemSelectUser"
				@onSelected="onSelectUser"
			></ItemSelectUser>
			<!--工单选择弹窗-->
			<ItemSelectWorkOrder
				ref="itemSelectWorkOrder"
				@onSelected="onSelectWorkOrder"
			></ItemSelectWorkOrder>
			<!--线体选择弹窗-->
			<ItemSelectEquip
				ref="itemSelectEquip"
				@onSelected="onSelectEquip"
			></ItemSelectEquip>
			<!--最新领料单选择弹窗-->
			<ItemSelectMaterial
				ref="itemSelectNewPrepare"
				@onSelected="onSelectNewPrepare"
			></ItemSelectMaterial>
		<!--母工单--《《《《《《《《《《《《《《《-->
		<!-- 打印预览弹出层 -->
		<el-dialog
			title="生产订单确认入库"
			:visible.sync="printDialogVisible"
			width="1300px"
		>
		<div id="printFrom" class="my-print-box">
			<el-form :ref="formRef" :model="form">
				<!-- 表头-工单信息 -->
				<el-row>
						<el-col :span="7">
							<img src="@/assets/logo/lanjv.png" class="report-logo"/>
						</el-col>
						<el-col :span="10" class="center-text">
							<h1>生产订单确认入库单</h1>
						</el-col>
					</el-row>
				<el-row class="my-print-head">
					<el-col :offset="10" :span="4"></el-col><!--中山榄菊日化实业有限公司-->
				</el-row>
				<!-- 导航栏 -->
				<el-row class="my-print-nav">
					<el-col :span="4">工厂:{{ printData.factory }}</el-col>
					<el-col :span="4">工作中心:{{ printData.workCenter }}</el-col>
					<el-col :span="4">打印日期:{{ printData.printDate }}</el-col>
					<el-col :span="4">页次: 1/ 1</el-col>
				</el-row>
				<!-- 主数据 -->
				<el-table v-if="refreshNewWorkerTable" v-loading="newWorkerLoading" class="my-print-table"
					:data="printData.workTable" border style="width: 100%">
					<el-table-column type="index" label="序号" width="50"></el-table-column>
					<el-table-column prop="workorderCodeSap" label="订单号" width="130" :formatter="orderCodeFormate"/>
					<!--<el-table-column prop="workorderCode" label="生产工单号" width="150"></el-table-column>-->
					<el-table-column prop="productCode" label="物料编码" width="150" :formatter="productCodeFormate"/>
					<el-table-column prop="productName" label="物料名称" width="300"></el-table-column>
					<el-table-column prop="unit" label="单位" width="70"></el-table-column>
					<el-table-column prop="version" label="版本"></el-table-column>
					<!--<el-table-column prop="quantity" label="报工数量"></el-table-column>-->
					<el-table-column prop="batch" label="批次" width="300"></el-table-column>
					<el-table-column prop="quantityFeedback" label="批次数量" width="90"></el-table-column>
					<!--<el-table-column prop="voucher" label="凭证"></el-table-column>-->
				</el-table>

				<br/>

				<el-row class="my-print-foot">
					<el-col :offset="1" :span="6">车间负责人:</el-col>
					<el-col :offset="1" :span="6">车间交货人:</el-col>
					<el-col :offset="1" :span="6">仓库验收人:</el-col>
				</el-row>

			</el-form>


		</div>
		<span slot="footer" class="dialog-footer">
			<el-button type="primary" @click="handlePrint(printData)">打 印</el-button>
		</span>
		</el-dialog>
	</div>
</template>

<script>
import { listReportWork, getReportWork, delReportWork, addReportWork, getWorkcenterList,getWarehouseList,
         updateReportWork,reportSap,getBatchList,reportSapCancel,
		 getAllLevelReportList,deleteBomRowNow,
		 getReportSAPList,submitReportPS,submitReportPSSAP,getCKList,
		 getPutInOrderList
} from "@/api/mes/reportWork";
import { getConsumeList,submitConsumePS,submitReportInfo,getBomList,getAllLevelConsumeList} from "@/api/mes/reportWorkConsume";
import ReportWorkConsume from "./reportWorkConsume.vue";
import ItemSelectUser from "./selectUser.vue";
import ItemSelectWorkOrder from "./selectWorkOrder.vue";
import ItemSelectMaterial from "./selectMaterial.vue";
import ItemSelectEquip from "./selectEquip.vue";
import moment from 'moment';
import { getlistCK } from '@/api/wms/outorder'
export default {
	name: "ReportWork",
	dicts: ['report_type','report_sap_status'],
	components: {ReportWorkConsume,ItemSelectUser,ItemSelectWorkOrder,ItemSelectEquip,ItemSelectMaterial},
	data() {
		return {
            optType: undefined,
			// 遮罩层
			loading: true,
			// 选中数组
			ids: [],
			selectRow:{},
			// 非单个禁用
			single: true,
			// 非多个禁用
			multiple: true,
			// 显示搜索条件
			showSearch: true,
			// 总条数
			total: 0,
			consumeTotal:0,
			// 报工报表表格数据
			reportWorkList: [],
			libTabs:[],
			libConsumeTabs:[],
			pOrderTableList: [],
			sOrderTableList: [],
			pConsumeTableList: [],
			sConsumeTableList: [],
			pBomTableList: [],
			sBomTableList: [],
			activeName0: 'first',
			activeName: 'pOrder',
			activeNameR: 'order1',
			activeNameC: 'consume1',
			selectedWarehouse:'0004',
			warehouseList: [],
			//  SAPCD:"",
			reportRows:[],
			pReportRows:[],
			sReportRows:[],
			pConsumeRows:[],
			sConsumeRows:[],
			consumeRows:[],
			options1:[],
			// 弹出层标题
			title: "",
			titleConsume:"",
			titleReport:"",
			// 是否显示弹出层
			open: false,
			openReport: false,
     		openReportSAP: false,
			openConsume: false,
			consumeQueryParams:{
				consumePageNum:1,
				consumePageSize:10,
				reportCode:null,
			},
			// 查询参数
			queryParams: {
				createTimeArray: [],
				feedbackTimeArray: [],
				pageNum: 1,
				pageSize: 10,
				reportType: null,
				reportCode: null,
				workorderCode: null,
				productCode: null,
				productName: null,
				spec: null,
				unit: null,
				quantity: null,
				quantityFeedback: null,
				quantityQualified: null,
				quantityUnqualified: null,
				userName: null,
				nickName: null,
				feedbackChannel: null,
				feedbackTime: null,
				recordUser: null,
				status: null,
				workTime: null,
				machineCode: null,
				machineName: null,
				teamCode: null,
				shiftId: null,
				attr1: null,
				attr2: null,
				attr3: null,
				attr4: null,
        		workorderCodeSap: null,
				parentOrder:null,
				uploadStatus:"0"
			},
			// 表单参数
			form: {
				endReport:'0',
				consumesInfos:[]
			},
			formSAdd: {
				endReport:'0'
			},

			uploadStatusList:[
				{"dictLabel":"待报工","dictValue":"0"},
				{"dictLabel":"报工成功","dictValue":"1"},
				{"dictLabel":"报工失败","dictValue":"2"}
			],
			teamList:[],
			batchList:[],
			printDialogVisible: false,
			// 打印
      		formRef: 'form',
			printData: {
				printable: 'printFrom',
				ignore: ['no-print'],
				workCenter: "暂无数据",
				SAPNo: null,
				manufacture: null,
				auditor: null,
				printDate: null,
				factory: null,
				productDate: null,
				workTable: [],
			},
			refreshNewWorkerTable: true,
			//工单遮罩层
			workerLoading: false,
			newWorkerLoading: false,
			//工单重新渲染表格
			refreshWorkerTable: true,
			// 表单校验
			rules: {
				workorderCode:[
					{ required: true, message: "本次报工工单不能为空", trigger: "blur" }
				],
				quantityFeedback: [
					{ required: true, message: "本次报工数量不能为空", trigger: "blur" }
				],
				feedbackTime: [
					{ required: true, message: "本次报工时间不能为空", trigger: "blur" }
				],
				machineName: [
					{ required: true, message: "本次报工线体不能为空", trigger: "blur" }
				]
				,nickName: [
					{ required: true, message: "本次报工人不能为空", trigger: "blur" }
				],workTime: [
					{ required: true, message: "工时不能为空", trigger: "blur" }
				],useMan: [
					{ required: true, message: "用人人不能为空", trigger: "blur" }
				],
				quantityFeedbacks: [
					{ required: true, message: "本次报工数量不能为空", trigger: "blur" }
				],
				workTimes: [
					{ required: true, message: "工时不能为空", trigger: "blur" }
				],useMans: [
					{ required: true, message: "用人人不能为空", trigger: "blur" }
				],workCenter: [
					{ required: true, message: "工作中心不能为空", trigger: "blur" }
				],
			},
			consumeList : [],
			cwarehouseList:[]
		};
	},
	created() {
		this.getDate();
		this.getWorkcenterList();
		this.getWarehouseList();
	},
	methods: {
		getWorkcenterList(){
            getWorkcenterList().then(data => {
				this.options1 = data;
			});
		},
		//获取报工物料损耗仓库下拉列表
		getWarehouseList(){
            getWarehouseList({}).then(data => {
				this.cwarehouseList = data;
			});
		},
		//产品编码格式化
		productCodeFormate(row, column, cellValue){
			if(cellValue !=null){
				return cellValue.slice(7,18);  //返回值
			}
		},
		//订单编码格式化
		orderCodeFormate(row, column, cellValue){
			if(cellValue !=null){
				return cellValue.slice(3,18);  //返回值
			}
		},
		/**获取默认查询时间段**/
		getDate() {
			let start = this.Fungetdate (0)
			let end = this.Fungetdate (1)
			//this.queryParams.createTimeArray.push(start,end)
			this.queryParams.feedbackTimeArray.push(start,end)
			this.getList();
		},
		Fungetdate (num) {
			var dd = new Date();
			dd.setDate(dd.getDate() + num);
			var y = dd.getFullYear();
			var m = dd.getMonth() + 1;//获取当前月份的日期
			var d = dd.getDate();
            return y + "-" + m + "-" + d;

		},
		/** 查询报工报表列表 */
		getList() {
			/**
			if(this.queryParams.createTimeArray !=null && this.queryParams.createTimeArray.length>0){
				this.queryParams.createTimeStart = moment(this.queryParams.createTimeArray[0]).format('YYYY-MM-DD HH:mm:ss');
				this.queryParams.createTimeEnd = moment(this.queryParams.createTimeArray[1]).format('YYYY-MM-DD HH:mm:ss');
			}**/

			if(this.queryParams.feedbackTimeArray !=null && this.queryParams.feedbackTimeArray.length>0){
				this.queryParams.feedbackTimeStart = moment(this.queryParams.feedbackTimeArray[0]).format('YYYY-MM-DD');
				this.queryParams.feedbackTimeEnd = moment(this.queryParams.feedbackTimeArray[1]).format('YYYY-MM-DD');
			}
			this.loading = true;
			listReportWork(this.queryParams).then(response => {
				this.reportWorkList = response.rows;
				this.total = response.total;
				this.loading = false;
			});
		},
		// 查询明细按钮操作
      handleView(row){
          this.reset();
          const id = row.id || this.ids;
          getReportWork(id).then(response => {
            this.form = response.data;
            this.open = true;
            this.title = "查看报工信息";
            this.optType = "view";
          });
        },
		// 取消按钮
		cancel() {
			this.open = false;
			this.openReport = false;
      		this.openReportSAP=false;
			this.openConsume = false;
			this.reset();
		},
		getSummaries(param) {
			const { columns, data } = param;
			const sums = [];
			columns.forEach((column, index) => {
				if (index === 0) {
					sums[index] = '合计';
					return;
				}
				const values = data.map(item => Number(item[column.property]));
				if (!values.every(value => isNaN(value))&& column.label!='用人数') {
					sums[index] = values.reduce((prev, curr) => {
					const value = Number(curr);
					if (!isNaN(value)) {
						return prev + curr;
					} else {
						return prev;
					}
					}, 0);
					sums[index] += '';
					if(sums[index]  > 1000000){
                      sums[index] = '';
					}
				} else {
					sums[index] = '';//N/A
				}
			});

			return sums;
		},
		// 表单重置
		reset() {
			this.form = {
				id: null,
				reportType: 'UNI',
				reportCode: null,
				workorderCode: null,
				productCode: null,
				productName: null,
				spec: null,
				unit: null,
				quantity: null,
				quantityFeedback: null,
				quantityQualified: null,
				quantityUnqualified: null,
				userName: null,
				nickName: null,
				feedbackChannel: 'PC',
				feedbackTime: null,
				recordUser: null,
				status: null,
				remark: null,
				workTime: null,
				machineCode: null,
				machineName: null,
				teamCode: null,
				shiftId: null,
				attr1: null,
				attr2: null,
				attr3: null,
				attr4: null,
				createBy: null,
				createTime: null,
				updateTime: null,
				updateBy: null,
				endReport:'0'
			};
			this.resetForm("form");
            this.libTabs = [];
			this.libConsumeTabs = [];
			this.pOrderTableList = [];
			this.sOrderTableList = [];
			this.pReportRows = [];
			this.sReportRows = [];
			this.reportRows = [];
			this.pConsumeTableList = [];
			this.sConsumeTableList = [];
			this.pBomTableList = [],
			this.sBomTableList = [],
			this.pConsumeRows = [];
			this.sConsumeRows = [];
			this.consumeRows = [];
			this.consumeList = [];
		},
		/** 搜索按钮操作 */
		handleQuery() {
			this.queryParams.pageNum = 1;
			this.getList();
		},
		/** 重置按钮操作 */
		resetQuery() {
			this.resetForm("queryForm");
			this.handleQuery();
		},
		// 多选框选中数据
		handleSelectionChange(selection) {
			this.ids = selection.map(item => item.id)
			this.selectRow = selection
			this.single = selection.length!==1
			this.multiple = !selection.length
		},
		/** 新增按钮操作 */
		handleAdd() {
			this.reset();
			this.open = true;
			this.title = "添加报工记录";
			this.optType = "add";
		},
		handleAddSAP(row) {
			this.reset();
			let sr = this.selectRow[0];

			if(sr.uploadStatus =='1'){
				this.optType = 'view'
			}else{
				this.optType = ''
			}

			this.queryParams.workorderCode = sr.workorderCode;
			// this.SAPCD=sr.workorderCodeSap;
			//查询母工单报工记录列表
			this.queryParams.parentOrder = '0';
			getReportSAPList(this.queryParams).then(response => {
				this.pOrderTableList = response;
				this.openReportSAP = true;
				this.titleReport = "SAP收货";
			});


			// let factoryCode = localStorage.getItem('USER_POOL_NAME_CURRENT').substring(3)
			//  let params = { factoryCode: factoryCode }; // 构造一个包含工厂代码的对象
			// let requestBody = JSON.stringify(params)// 将参数对象转换为JSON字符串
			// getCKList(requestBody).then(response => {
			//   this.warehouseList = response;
			// });
			let factoryCode = localStorage.getItem('USER_POOL_NAME_CURRENT').substring(3)
			let params = { factoryCode: factoryCode }; // 构造一个包含工厂代码的对象
			//let paramsJSON = JSON.stringify(params); // 将对象转换为JSON字符串
			console.log(factoryCode)
			getCKList(params).then(response => {
				this.warehouseList = response.data
			});

		},
		/** 修改按钮操作 */
		handleUpdate(row) {
			this.reset();
			this.optType = "edit";
            let sr = this.selectRow[0];
            if(sr.uploadStatus =='1'){
				this.$modal.msgError(`上传sap成功,不允许修改`);
				return
			}

			const id = row.id || this.ids
			getReportWork(id).then(response => {
				this.form = response.data;
				this.open = true;
				this.title = "修改报工报表";
			});
		},
		/** 提交按钮 */
		submitForm() {
			this.$refs["form"].validate(valid => {
				if (valid) {
					if (this.form.id != null) {
						updateReportWork(this.form).then(response => {
							this.$modal.msgSuccess("修改成功");
							this.open = false;
							this.getList();
						});
					} else {
						addReportWork(this.form).then(response => {
							this.$modal.msgSuccess("新增成功");
							this.open = false;
							this.getList();
						});
					}
				}
			});
		},
		/** 删除按钮操作 */
		handleDelete(row) {

            let sr = this.selectRow[0];
            if(sr.uploadStatus =='1'){
				this.$modal.msgError(`上传sap成功,不允许删除`);
				return
			}

			const ids = row.id || this.ids;
			this.$modal.confirm('是否确认删除报工报表编号为"' + ids + '"的数据项？').then(function() {
				return delReportWork(ids);
			}).then(() => {
				this.getList();
				this.$modal.msgSuccess("删除成功");
			}).catch(() => {});
		},
		/** 报工按钮操作 */
		handleReport(row) {
            this.loading = true;
			let sr = this.selectRow[0];
            if(sr.uploadStatus =='1'){
				this.$modal.msgError(`上报sap已完成,不能重复报工`);
				return
			}

			const code = sr.workorderCode;
			let _this = this;
			this.$modal.confirm('是否确认工单"' + code + '"的数据项向sap报工？').then(function() {
				reportSap(code).then(response => {
					if(response !=null && response.code ==200){
                      _this.$modal.msgSuccess("报工成功");
					}
					_this.loading = false;
					_this.getList();
				});
			}).then(() => {

			}).catch(() => {

			});
		},
		/**报工撤销sap。报工状态回退**/
		handleReportCancel(){
            this.loading = true;
			let sr = this.selectRow[0];
			const code = sr.workorderCode;
			let _this = this;
			this.$modal.confirm('是否确认工单"' + code + '"的数据项撤销sap报工？').then(function() {
				reportSapCancel(code).then(response => {
					if(response !=null && response.code ==200){
						_this.$modal.msgSuccess("报工撤销成功");
					}
					_this.loading = false;
					_this.getList();
				});
			}).then(() => {

			}).catch(() => {

			});
		},
		/** 报工详情按钮操作 */
		handleReportHz(row) {

			this.reset();
			let sr = row;
			if(sr.workorderCode==undefined){
				sr = this.selectRow[0]
			}

            if(sr.uploadStatus =='1'){
				this.optType = 'view'
			}else{
				this.optType = ''
			}

			this.queryParams.workorderCode = sr.workorderCode;

			//查询工单报工记录列表
			getAllLevelReportList(this.queryParams).then(response => {
				this.queryParams.workorderCode = '';
				this.openReport = true;
				this.titleReport = "工单报工详情";
				this.libTabs= response;
			});
		},
		handleEdit(index, row) {
		  console.log('row:',index, row);
		},
		// 多选框选中数据
		pReportSelection(selection,row) {

        	const allRows = this.pReportRows.concat(selection)
		  	this.pReportRows = allRows.reduce((acc, cur) => {
				const hasDuplicate = acc.some(item => item.batch === cur.batch
				&& item.workorderCode === cur.workorderCode);
				if (!hasDuplicate) {
					acc.push(cur);
				}
				return acc;
			}, []);

			// 当取消勾选时，selectedRows 会移除对应的行数据
			if (selection.indexOf(row) === -1) {
				console.log('Row unchecked:', row);
				console.log('过滤前:', this.pReportRows);
				var newReportRows = [];
				this.pReportRows.forEach(item=>{
                  if (item.workorderCode!=row.workorderCode
				  || item.batch!=row.batch) {
                    newReportRows.push(item)
                  }
                })
				this.pReportRows = newReportRows;
				console.log('过滤后:', this.pReportRows);
			}
		},
		allReportSelection(selection){
           const allRows = this.pReportRows.concat(selection)
		   this.pReportRows = allRows.reduce((acc, cur) => {
				const hasDuplicate = acc.some(item => item.batch === cur.batch
				&& item.workorderCode === cur.workorderCode);
				if (!hasDuplicate) {
					acc.push(cur);
				}
				return acc;
			}, []);
		},

		submitReport() {
            this.reportRows = this.pReportRows;
			if ( this.reportRows==0) {
				this.$modal.msgError(`请选择数据`);
				return false;
			}
			submitReportPS(this.reportRows).then(response => {
				this.$modal.msgSuccess("报工信息修改成功");
				this.openReport = false;
				this.getList();
			});
		},
		submitReportSAP() {
			this.reportRows = this.pReportRows.concat(this.sReportRows)
			console.log(this.reportRows)
			if ( this.reportRows==0) {
				this.$modal.msgError(`请选择数据`);
				return false;
			}
			this.reportRows.forEach(row => {
				this.$set(row, 'whCode', this.selectedWarehouse);
			});
			console.log("仓库－－－"+this.selectedWarehouse)
			const reportRowsJson = JSON.stringify(this.reportRows); // 将this.reportRows转换为JSON字符串
			this.loading = true;
			submitReportPSSAP(reportRowsJson).then(response => {
				this.$modal.msgSuccess("操作成功");
				this.loading = false;
				this.openReportSAP = false;
				this.getList();
			});
		},
		/** 报工损耗按钮操作 */
		handleConsumeHz(row) {
			this.reset();
			let sr = row;
			if(sr.workorderCode==undefined){
				sr = this.selectRow[0]
			}

            if(sr.uploadStatus =='1'){
				this.optType = 'view'
			}else{
				this.optType = ''
			}

			this.queryParams.workorderCode = sr.workorderCode;
			//查询母工单报工记录列表
			getAllLevelConsumeList(this.queryParams).then(response => {
				this.libConsumeTabs= response;
				this.openConsume = true;
				this.titleConsume = "工单报工物料损耗详情";
				this.queryParams.workorderCode = '';
			});

			this.queryParams.workorderCode = sr.workorderCode;
			//查询母工单BOM记录列表
			//this.queryParams.parentOrder = '0';
			//getBomList(this.queryParams).then(response => {
      		//	this.pBomTableList = this.handleTree(response, 'materialCode', 'pMaterialCode')
			//});

		},
		// 多选框选中数据(报工物料消耗专用特殊逻辑，不准改zxl)
		pConsumeSelection(selection, row) {
		   const allRows = this.pConsumeRows.concat(selection)
		   this.pConsumeRows = allRows.reduce((acc, cur) => {
				const hasDuplicate = acc.some(item => item.materialCode === cur.materialCode
				&& item.workorderCode === cur.workorderCode);
				if (!hasDuplicate) {
					acc.push(cur);
				}
				return acc;
			}, []);

			// 当取消勾选时，selectedRows 会移除对应的行数据
			if (selection.indexOf(row) === -1) {
				console.log('Row unchecked:', row);
				console.log('过滤前:', this.pConsumeRows);
				var newPConsumeRows = [];
				this.pConsumeRows.forEach(item=>{
                  if (item.workorderCode!=row.workorderCode
				  || item.materialCode!=row.materialCode) {
                    newPConsumeRows.push(item)
                  }
                })
				this.pConsumeRows = newPConsumeRows;
				console.log('过滤后:', this.pConsumeRows);
			}
		},
		// 多选框选中all数据(报工物料消耗专用特殊逻辑，不准改zxl)
		allConsumeSelection(selection, row) {
		   const allRows = this.pConsumeRows.concat(selection)
		   this.pConsumeRows = allRows.reduce((acc, cur) => {
				const hasDuplicate = acc.some(item => item.materialCode === cur.materialCode
				&& item.workorderCode === cur.workorderCode);
				if (!hasDuplicate) {
					acc.push(cur);
				}
				return acc;
			}, []);
		},
		sConsumeSelection(selection) {
		  this.sConsumeRows = selection;
		},
		submitConsume() {
			this.loading = true;
            this.consumeRows = this.pConsumeRows;

			if ( this.consumeRows==0) {
				this.$modal.msgError(`请选择要修改的物料数据！`);
				this.loading = false;
				return false;
			}

			submitConsumePS(this.consumeRows).then(response => {
				this.$modal.msgSuccess("报工信息修改成功");
				this.openConsume = false;
				this.reset();
				this.getList();
				this.loading = false;
			});
		},
		/** 导出按钮操作 */
		handleExport() {
			this.download('mes/reportWork/export', {
				...this.queryParams
			}, `reportWork_${new Date().getTime()}.xlsx`)
		},
		/**人员选择弹出框**/
		handleSelectUser() {
		  this.$refs.itemSelectUser.showFlag = true;
		},
		//人员选择确认
		onSelectUser(obj) {
           this.form.userName = obj.code;
		   this.form.nickName = obj.name;
		},
		/**工单选择弹出框**/
		handleSelectWorkOrder() {
		  this.$refs.itemSelectWorkOrder.showFlag = true;
		},
		//工单选择确认
		onSelectWorkOrder(obj) {
           this.form.workorderCode = obj.workorderCode;
		   this.form.productName = obj.productName;
		   this.form.productCode = obj.productCode;
		   this.form.productSpc = obj.productSpc;
		   this.form.quantity = obj.quantitySplit;
		   this.form.unit = obj.unit;
		   this.form.workorderCodes = obj.workorderCodes;
		   this.form.productNames = obj.productNames;
		   this.form.productCodes = obj.productCodes;
		   this.form.quantitys = obj.quantitySplits;
		   this.form.units = obj.units;
		   this.form.shiftId = obj.shiftId;
		   this.form.shiftName = obj.shiftName;
		   	getBatchList(obj.workorderCode).then(response => {
				this.batchList = response;
			});

			this.$refs.child.getListByOrderCode(this.form.workorderCode);
		},
		/**线体选择弹出框**/
		handleSelectEquip() {
		  this.$refs.itemSelectEquip.showFlag = true;
		},
		//线体选择确认
		onSelectEquip(obj) {
           this.form.machineCode = obj.equipmentCode;
		   this.form.machineName = obj.equipmentName;
		},
		//物料损耗确认
		onSelectMaterial(objs) {
			this.form.consumesInfos = objs;
		},
		//报工提交
		submitReportInfo(){
			submitReportInfo(this.form).then(response => {
				this.$modal.msgSuccess("提交成功");
				this.open = false;
				this.getList();
			});
		},
		// 打印预览-浏览器打印
		handlePrint(params) {
			printJS({
				printable: params.printable, // 'printFrom', // 标签元素id
				type: params.type || 'html',
				maxWidth: 1500, // 最大宽度
				font_size: "",// 设置字体大小
				header: params.header, // '表单',
				targetStyles: ['*'],
				style: '@page {margin:0 10mm};', // 可选-打印时去掉眉页眉尾
				ignoreElements: params.ignore || [], // ['no-print']
				properties: params.properties || null
			})
		},
		// 打印预览-点击打印预览按钮
		showPrint() {
			// 清楚缓存
			this.printData.workCenter = "暂无数据";
			this.printData.printDate = null;
			this.printData.workTable = [];
			this.printData.factory = null;
			this.printData.productDate = null;
			// 打开工单信息对话框
			this.printDialogVisible = true;
			this.printData.printDate = moment(new Date()).format('YYYY.MM.DD');
			this.printData.manufacture = this.$store.state.user.name;
			this.newWorkerLoading = true // 设置加载状态为true，表示正在加载
			this.refreshNewWorkerTable = false // 先将refreshProTable设置为false，隐藏表格
			getPutInOrderList(this.selectRow[0].workorderCode).then(response => {
				this.printData.workTable = response.data;
				this.printData.factory = response.data[0].factoryCode;
				this.printData.workCenter = response.data[0].workshopName;
				this.refreshNewWorkerTable = true // 立即将refreshProTable设置为true，显示表格
				this.newWorkerLoading = false // 设置加载状态为false，表示加载完成
			})
		},
		//物料损耗表格--删除
		deleteBomRow(index, rows) {
			this.$modal.confirm('是否确认删除？确认后，不需要点击下方确定,立马删除！').then(function() {
				if(rows[index].recordId != null ){
					return deleteBomRowNow(rows[index].recordId);
				}

			}).then(() => {
				var newPConsumeRows = [];
				this.pConsumeRows.forEach(item=>{
                  if (item.workorderCode!=rows[index].workorderCode
				  || item.materialCode!=rows[index].materialCode) {
                    newPConsumeRows.push(item)
                  }
                })
				this.pConsumeRows = newPConsumeRows;
				rows.splice(index, 1);
				this.$modal.msgSuccess("删除成功");
			}).catch(() => {});

		},
		//物料损耗表格--新增
		addConsumeTableRow(rows){
            this.consumeList = rows;
            if(rows.length==0){
               this.$modal.msgError(`上位机尚未填写损耗，不允许提前新增`);
			   return
			}

			this.$refs.itemSelectNewPrepare.showFlag = true;
			this.$refs.itemSelectNewPrepare.init(rows[0].workorderCode,this.selectRow[0].workorderCode);
		},
		//物料损耗表格--新增确认
		onSelectNewPrepare(obj) {
			let sr = this.selectRow[0]
		   for(let i=0;i<obj.length;i++){
			    if(this.pConsumeRows.length !=0 ){
				  this.pConsumeRows.forEach(item=>{
						if (item.materialCode==obj[i].component) {
							this.$modal.msgError("选择物料重复,自动过滤！");
						}else{
							const row = {
								workorderCode: obj[i].workorderCode,
								materialCode: obj[i].component,
								materialName: obj[i].componentName,
								quantity: obj[i].quantity,
								unit: obj[i].unit,
								recoil:"X",
								parentOrder:sr.workorderCode
							};
							this.consumeList.push(row);
						}
					})
				}else{
					const row = {
						workorderCode: obj[i].workorderCode,
						materialCode: obj[i].component,
						materialName: obj[i].componentName,
						quantity: obj[i].quantity,
						unit: obj[i].unit,
						recoil:"X",
						parentOrder:sr.workorderCode
					};
					this.consumeList.push(row);
				}
		   }
		},
		addRemarksblur(table,remark,index){
			table.forEach(item=>{
				item.remark = remark;
			})
		}
	}
};
</script>
<style scoped>
.print-btn{
	margin-bottom: 15px;
	margin-left: 10px;
}
.center-text {
	text-align: center;
}
.report-logo {
	margin-top: 15px;
	margin-left: 15px;
    height: 38px;
}
.button-container {
    text-align: right;
    margin-top: 10px;
    margin-right: 10px;
}
.my-print-table {
	font-size: 20px;
}
.my-print-nav {
	font-size: 19px;
}
.my-print-foot {
	font-size: 19px;
}
</style>
