﻿<template>
	<div class="mesWorkRecord-container">
		<!--		<el-card shadow="hover" :body-style="{ padding: '20px 20px 16px 10px', display: 'flex', width: '100%', height: '100%', alignItems: 'start' }">-->
		<!--			<el-form :model="state.queryParams" ref="queryForm" :show-message="false" :inlineMessage="true" label-width="auto" style="flex: 1 1 0%" @submit.prevent="handleQuery" >-->
		<!--				<el-row :gutter="10">-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5">-->
		<!--						<el-form-item label="关键字" prop="searchKey">-->
		<!--							<el-input v-model="state.queryParams.searchKey" placeholder="请输入模糊查询关键字" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="开工日期" prop="startWorkDate">-->
		<!--							<el-date-picker type="daterange" v-model="state.queryParams.startWorkDateRange"  value-format="YYYY-MM-DD HH:mm:ss" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="完工日期" prop="endWorkDate">-->
		<!--							<el-date-picker type="daterange" v-model="state.queryParams.endWorkDateRange"  value-format="YYYY-MM-DD HH:mm:ss" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="生产工单Id" prop="produceWorkOrderId">-->
		<!--							<el-input v-model="state.queryParams.produceWorkOrderId" placeholder="生产工单Id" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="电晕批次号" prop="dyBatchNo">-->
		<!--							<el-input v-model="state.queryParams.dyBatchNo" placeholder="电晕批次号" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="覆膜批次号" prop="fmBatchNo">-->
		<!--							<el-input v-model="state.queryParams.fmBatchNo" placeholder="覆膜批次号" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="报工数量(批次数)" prop="num">-->
		<!--							<el-input v-model="state.queryParams.num" placeholder="报工数量(批次数)" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="报工单位编码" prop="unitCode">-->
		<!--							<el-input v-model="state.queryParams.unitCode" placeholder="报工单位编码" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="报工单位名称" prop="unitName">-->
		<!--							<el-input v-model="state.queryParams.unitName" placeholder="报工单位名称" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="设备编码" prop="equipmentCode">-->
		<!--							<el-input v-model="state.queryParams.equipmentCode" placeholder="设备编码" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="设备名称" prop="equipmentName">-->
		<!--							<el-input v-model="state.queryParams.equipmentName" placeholder="设备名称" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="产线编码" prop="productionLineCode">-->
		<!--							<el-input v-model="state.queryParams.productionLineCode" placeholder="产线编码" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="产线名称" prop="productionLineName">-->
		<!--							<el-input v-model="state.queryParams.productionLineName" placeholder="产线名称" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="作业人员账号" prop="workPersonAccount">-->
		<!--							<el-input v-model="state.queryParams.workPersonAccount" placeholder="作业人员账号" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="作业人员姓名" prop="workPersonName">-->
		<!--							<el-input v-model="state.queryParams.workPersonName" placeholder="作业人员姓名" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="贴膜静置" prop="deviceTm">-->
		<!--							<el-input v-model="state.queryParams.deviceTm" placeholder="贴膜静置" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="速度" prop="deviceSpeed">-->
		<!--							<el-input v-model="state.queryParams.deviceSpeed" placeholder="速度" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="达因值" prop="deviceDyz">-->
		<!--							<el-input v-model="state.queryParams.deviceDyz" placeholder="达因值" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="温度" prop="deviceWd">-->
		<!--							<el-input v-model="state.queryParams.deviceWd" placeholder="温度" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="功率" prop="deviceGl">-->
		<!--							<el-input v-model="state.queryParams.deviceGl" placeholder="功率" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="压力" prop="deviceYl">-->
		<!--							<el-input v-model="state.queryParams.deviceYl" placeholder="压力" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="是否打印看板">-->
		<!--							<el-input-number v-model="state.queryParams.isPrintPanel" placeholder="请输入是否打印看板" clearable @keyup.enter.native="handleQuery" />-->
		<!--					</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="打印看板日期" prop="printPanelDate">-->
		<!--							<el-date-picker type="daterange" v-model="state.queryParams.printPanelDateRange"  value-format="YYYY-MM-DD HH:mm:ss" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="生产计划id" prop="producePlanId">-->
		<!--							<el-input v-model="state.queryParams.producePlanId" placeholder="生产计划id" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="生产计划号" prop="producePlanNo">-->
		<!--							<el-input v-model="state.queryParams.producePlanNo" placeholder="生产计划号" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="生产工单号" prop="produceWorkOrderNo">-->
		<!--							<el-input v-model="state.queryParams.produceWorkOrderNo" placeholder="生产工单号" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="裁板批次" prop="cbBatchNo">-->
		<!--							<el-input v-model="state.queryParams.cbBatchNo" placeholder="裁板批次" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="显影批次" prop="xyBatchNo">-->
		<!--							<el-input v-model="state.queryParams.xyBatchNo" placeholder="显影批次" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--					<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="mb5" v-if="state.showAdvanceQueryUI">-->
		<!--						<el-form-item label="蚀刻批次" prop="skBatchNo">-->
		<!--							<el-input v-model="state.queryParams.skBatchNo" placeholder="蚀刻批次" clearable @keyup.enter.native="handleQuery" />-->
		<!--						</el-form-item>-->
		<!--					</el-col>-->
		<!--				</el-row>-->
		<!--			</el-form>-->

		<!--			<el-divider style="height: calc(100% - 5px); margin: 0 10px" direction="vertical" />-->

		<!--			<el-row>-->
		<!--				<el-col>-->
		<!--					<el-button-group>-->
		<!--						<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'mesWorkRecord/page'" :loading="options.loading"> 查询 </el-button>-->
		<!--						<el-button icon="ele-Refresh" @click="resetQuery" :loading="options.loading"> 重置 </el-button>-->
		<!--						<el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUI" v-if="!state.showAdvanceQueryUI" style="margin-left: 5px"> 高级查询 </el-button>-->
		<!--						<el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUI" v-if="state.showAdvanceQueryUI" style="margin-left: 5px"> 隐藏 </el-button>-->
		<!--					</el-button-group>-->
		<!--				</el-col>-->
		<!--			</el-row>-->
		<!--		</el-card>-->

		<el-card class="full-table" shadow="hover" style="margin-top: 5px">
			<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" v-on="gridEvents">
				<template #toolbar_buttons>
					<!--					<el-button type="primary" icon="ele-Plus" @click="handleAdd" v-auth="'mesWorkRecord/add'"> 新增 </el-button>-->
				</template>
				<template #toolbar_tools> </template>
				<template #empty>
					<el-empty :image-size="200" />
				</template>
				<template #row_record="{ row }">
					<ModifyRecord :data="row" />
				</template>
				<!--				<template #row_buttons="{ row }">-->
				<!--					<el-tooltip content="编辑" placement="top">-->
				<!--						<el-button icon="ele-Edit" size="small" text type="primary" @click="handleEdit(row)" v-auth="'mesWorkRecord/update'" />-->
				<!--					</el-tooltip>-->
				<!--					<el-tooltip content="删除" placement="top">-->
				<!--						<el-button icon="ele-Delete" size="small" text type="danger" @click="handleDelete(row)" v-auth="'mesWorkRecord/delete'" />-->
				<!--					</el-tooltip>-->
				<!--				</template>-->
			</vxe-grid>
		</el-card>

		<PrintDialog ref="printDialogRef" :title="state.title" @reloadTable="handleQuery" />
		<EditDialog ref="editDialogRef" :title="state.title" @reloadTable="handleQuery" />
	</div>
</template>

<script lang="ts" setup name="mesWorkRecord">
import { onMounted, reactive, ref } from 'vue';
import { ElMessageBox, ElMessage } from 'element-plus';
import { auth } from '/@/utils/authFunction';

import { VxeGridInstance, VxeGridListeners, VxeGridPropTypes } from 'vxe-table';
import { useVxeTable } from '/@/hooks/useVxeTableOptionsHook';
import { Local } from '/@/utils/storage';

import { formatDate } from '/@/utils/formatTime';

// 子窗口
import PrintDialog from '/@/views/system/print/component/hiprint/preview.vue';
import EditDialog from '/@/views/mes/mesWorkRecord/component/editDialog.vue';
import ModifyRecord from '/@/components/table/modifyRecord.vue';

import { pageMesWorkRecord, deleteMesWorkRecord } from '/@/api/mes/mesWorkRecord';

// 子窗口对象
const xGrid = ref<VxeGridInstance>();
const printDialogRef = ref<InstanceType<typeof PrintDialog>>();
const editDialogRef = ref<InstanceType<typeof EditDialog>>();

// 变量
const state = reactive({
	showAdvanceQueryUI: false,
	queryParams: {
		searchKey: undefined,
		startWorkDate: undefined,
		endWorkDate: undefined,
		produceWorkOrderId: undefined,
		dyBatchNo: undefined,
		fmBatchNo: undefined,
		num: undefined,
		unitCode: undefined,
		unitName: undefined,
		equipmentCode: undefined,
		equipmentName: undefined,
		productionLineCode: undefined,
		productionLineName: undefined,
		workPersonAccount: undefined,
		workPersonName: undefined,
		deviceTm: undefined,
		deviceSpeed: undefined,
		deviceDyz: undefined,
		deviceWd: undefined,
		deviceGl: undefined,
		deviceYl: undefined,
		isPrintPanel: undefined,
		printPanelDate: undefined,
		producePlanId: undefined,
		producePlanNo: undefined,
		produceWorkOrderNo: undefined,
		cbBatchNo: undefined,
		xyBatchNo: undefined,
		skBatchNo: undefined,
	},
	localPageParam: {
		pageSize: 50 as number,
		defaultSort: { field: 'id', order: 'desc', descStr: 'desc' },
	},
	visible: false,
	title: '',
});

// 本地存储参数
const localPageParamKey = 'localPageParam:mesWorkRecord';

// 改变高级查询的控件显示状态
const changeAdvanceQueryUI = () => {
	state.showAdvanceQueryUI = !state.showAdvanceQueryUI;
};

// 不同的工序展示不同的列
var props = defineProps({
	pCode: {
		type: String,
		default: '',
	},
	produceWorkOrderId: {
		type: String,
		default: '',
	},
});
let pCodeKey = {
	// 电晕工单
	DY: [
		{ field: 'dyBatchNo', title: '电晕批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'num', title: '报工数量(批次数)', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'unitCode', title: '报工单位编码', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'unitName', title: '报工单位名称', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'equipmentCode', title: '设备编码', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'equipmentName', title: '设备名称', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'productionLineCode', title: '产线编码', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'productionLineName', title: '产线名称', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'workPersonAccount', title: '作业人员账号', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'workPersonName', title: '作业人员姓名', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		// { field: 'deviceSpeed', title: '速度m/min', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// { field: 'deviceDyz', title: '达因值', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// { field: 'deviceGl', title: '功率', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		//   // 湿度
		// { field: 'deviceTm', title: '贴膜静置', minWidth: 100, showOverflow: 'tooltip', sortable: false},
	],
	// 覆膜工单
	FM: [
		{ field: 'dyBatchNo', title: '电晕批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'fmBatchNo', title: '覆膜批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'num', title: '报工数量(批次数)', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'unitCode', title: '报工单位编码', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'unitName', title: '报工单位名称', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'equipmentCode', title: '设备编码', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'equipmentName', title: '设备名称', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'productionLineCode', title: '产线编码', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'productionLineName', title: '产线名称', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'workPersonAccount', title: '作业人员账号', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'workPersonName', title: '作业人员姓名', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		// { field: 'deviceSpeed', title: '速度m/min', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// { field: 'deviceDyz', title: '达因值', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// { field: 'deviceWd', title: '温度', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// { field: 'deviceYl', title: '压力Kg/CM²', minWidth: 100, showOverflow: 'tooltip', sortable: false},
	],
	// 曝光工单
	BG: [
		// { field: 'dyBatchNo', title: '电晕批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// { field: 'fmBatchNo', title: '覆膜批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// { field: 'bgBatchNo', title: '曝光批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// 曝光批次号
		{ field: 'num', title: '报工数量(批次数)', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'unitCode', title: '报工单位编码', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'unitName', title: '报工单位名称', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'equipmentCode', title: '设备编码', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'equipmentName', title: '设备名称', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'productionLineCode', title: '产线编码', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'productionLineName', title: '产线名称', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'workPersonAccount', title: '作业人员账号', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'workPersonName', title: '作业人员姓名', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		// 曝光 上下
		// 鉴光带上下
	],
	// 显影工单
	XY: [
		// { field: 'dyBatchNo', title: '电晕批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// { field: 'fmBatchNo', title: '覆膜批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// // 曝光批次号
		// { field: 'bgBatchNo', title: '曝光批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// { field: 'xyBatchNo', title: '显影批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		{ field: 'num', title: '报工数量(批次数)', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'unitCode', title: '报工单位编码', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'unitName', title: '报工单位名称', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'equipmentCode', title: '设备编码', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'equipmentName', title: '设备名称', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'productionLineCode', title: '产线编码', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'productionLineName', title: '产线名称', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'workPersonAccount', title: '作业人员账号', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'workPersonName', title: '作业人员姓名', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		// 压力 上下
	],
	// 裁板工单
	CB: [
		// { field: 'dyBatchNo', title: '电晕批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// { field: 'fmBatchNo', title: '覆膜批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// // 曝光批次号
		// { field: 'bgBatchNo', title: '曝光批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// { field: 'xyBatchNo', title: '显影批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// { field: 'cbBatchNo', title: '裁板批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		{ field: 'num', title: '报工数量(批次数)', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'unitCode', title: '报工单位编码', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'unitName', title: '报工单位名称', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'equipmentCode', title: '设备编码', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'equipmentName', title: '设备名称', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'productionLineCode', title: '产线编码', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'productionLineName', title: '产线名称', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'workPersonAccount', title: '作业人员账号', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'workPersonName', title: '作业人员姓名', minWidth: 100, showOverflow: 'tooltip', sortable: false },
	],
	// 蚀刻工单
	SK: [
		// { field: 'dyBatchNo', title: '电晕批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// { field: 'fmBatchNo', title: '覆膜批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// // 曝光批次号
		// { field: 'bgBatchNo', title: '曝光批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// { field: 'xyBatchNo', title: '显影批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// { field: 'cbBatchNo', title: '裁板批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// { field: 'skBatchNo', title: '蚀刻批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		{ field: 'num', title: '报工数量(批次数)', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'unitCode', title: '报工单位编码', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'unitName', title: '报工单位名称', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'equipmentCode', title: '设备编码', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'equipmentName', title: '设备名称', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'productionLineCode', title: '产线编码', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'productionLineName', title: '产线名称', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'workPersonAccount', title: '作业人员账号', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'workPersonName', title: '作业人员姓名', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'deviceSpeed', title: '速度m/min', minWidth: 100, showOverflow: 'tooltip', sortable: false },
	],
	// 选别工单
	XB: [
		// { field: 'dyBatchNo', title: '电晕批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// { field: 'fmBatchNo', title: '覆膜批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// // 曝光批次号
		// { field: 'bgBatchNo', title: '曝光批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// { field: 'xyBatchNo', title: '显影批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// { field: 'cbBatchNo', title: '裁板批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		// { field: 'skBatchNo', title: '蚀刻批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		{ field: 'num', title: '报工数量(批次数)', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'unitCode', title: '报工单位编码', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'unitName', title: '报工单位名称', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'equipmentCode', title: '设备编码', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'equipmentName', title: '设备名称', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'productionLineCode', title: '产线编码', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'productionLineName', title: '产线名称', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'workPersonAccount', title: '作业人员账号', minWidth: 100, showOverflow: 'tooltip', sortable: false },
		{ field: 'workPersonName', title: '作业人员姓名', minWidth: 100, showOverflow: 'tooltip', sortable: false },
	],
};
// 表格参数配置
const options = useVxeTable<any>(
	{
		id: 'MesWorkRecord',
		name: '报工记录',
		columns: [
			{ type: 'seq', title: '序号', width: 60, fixed: 'left' },
			//   { field: 'isPrintPanel', title: '打印看板状态', minWidth: 100, showOverflow: 'tooltip', sortable: false,formatter: ({ cellValue }) => cellValue == 1 ? '已打印' : '未打印'},
			//   { field: 'printPanelDate', title: '打印看板时间', minWidth: 100, showOverflow: 'tooltip', formatter: ({ cellValue }) => cellValue == null ? '' : formatDate(new Date(cellValue), 'YYYY-mm-dd HH:MM:SS'), sortable: false },
			//   { field: 'startWorkDate', title: '开工日期', minWidth: 100, showOverflow: 'tooltip', formatter: ({ cellValue }) => cellValue == null ? '' : formatDate(new Date(cellValue), 'YYYY-mm-dd HH:MM:SS'), sortable: false },
			{
				field: 'endWorkDate',
				title: '报工日期',
				width: 140,
				showOverflow: 'tooltip',
				formatter: ({ cellValue }) => (cellValue == null ? '' : formatDate(new Date(cellValue), 'YYYY-mm-dd HH:MM:SS')),
				sortable: false,
			},
			{ field: 'batchNo', title: '批次号', width: 160, showOverflow: 'tooltip', sortable: false },
			{ field: 'num', title: '报工数量', width: 100, showOverflow: 'tooltip', sortable: false },

			{ field: 'equipmentCode', title: '设备编码', width: 140, showOverflow: 'tooltip', sortable: false },
			{ field: 'equipmentName', title: '设备名称', width: 140, showOverflow: 'tooltip', sortable: false },
			{ field: 'productionLineCode', title: '产线编码', width: 140, showOverflow: 'tooltip', sortable: false },
			{ field: 'productionLineName', title: '产线名称', width: 140, showOverflow: 'tooltip', sortable: false },
			{ field: 'workPersonAccount', title: '作业人员账号', width: 140, showOverflow: 'tooltip', sortable: false },
			{ field: 'workPersonName', title: '作业人员姓名', width: 140, showOverflow: 'tooltip', sortable: false },
			{ field: 'unitCode', title: '报工单位编码', width: 100, showOverflow: 'tooltip', sortable: false },
			{ field: 'unitName', title: '报工单位名称', width: 100, showOverflow: 'tooltip', sortable: false },
			// { field: 'produceWorkOrderId', title: '生产工单Id', minWidth: 100, showOverflow: 'tooltip', sortable: false},
			// { field: 'dyBatchNo', title: '电晕批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
			// { field: 'fmBatchNo', title: '覆膜批次号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
			// { field: 'num', title: '报工数量(批次数)', minWidth: 100, showOverflow: 'tooltip', sortable: false},
			// { field: 'unitCode', title: '报工单位编码', minWidth: 100, showOverflow: 'tooltip', sortable: false},
			// { field: 'unitName', title: '报工单位名称', minWidth: 100, showOverflow: 'tooltip', sortable: false},
			// { field: 'equipmentCode', title: '设备编码', minWidth: 100, showOverflow: 'tooltip', sortable: false},
			// { field: 'equipmentName', title: '设备名称', minWidth: 100, showOverflow: 'tooltip', sortable: false},
			// { field: 'productionLineCode', title: '产线编码', minWidth: 100, showOverflow: 'tooltip', sortable: false},
			// { field: 'productionLineName', title: '产线名称', minWidth: 100, showOverflow: 'tooltip', sortable: false},
			// { field: 'workPersonAccount', title: '作业人员账号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
			// { field: 'workPersonName', title: '作业人员姓名', minWidth: 100, showOverflow: 'tooltip', sortable: false},
			// { field: 'deviceTm', title: '贴膜静置', minWidth: 100, showOverflow: 'tooltip', sortable: false},
			// { field: 'deviceSpeed', title: '速度', minWidth: 100, showOverflow: 'tooltip', sortable: false},
			// { field: 'deviceDyz', title: '达因值', minWidth: 100, showOverflow: 'tooltip', sortable: false},
			// { field: 'deviceWd', title: '温度', minWidth: 100, showOverflow: 'tooltip', sortable: false},
			// { field: 'deviceGl', title: '功率', minWidth: 100, showOverflow: 'tooltip', sortable: false},
			// { field: 'deviceYl', title: '压力', minWidth: 100, showOverflow: 'tooltip', sortable: false},
			// { field: 'isPrintPanel', title: '是否打印看板', minWidth: 100, showOverflow: 'tooltip', sortable: false},
			// { field: 'printPanelDate', title: '打印看板日期', minWidth: 100, showOverflow: 'tooltip', formatter: ({ cellValue }) => cellValue == null ? '' : formatDate(new Date(cellValue), 'YYYY-mm-dd HH:MM:SS'), sortable: false },
			// { field: 'producePlanNo', title: '生产计划号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
			// { field: 'produceWorkOrderNo', title: '生产工单号', minWidth: 100, showOverflow: 'tooltip', sortable: false},
			// { field: 'cbBatchNo', title: '裁板批次', minWidth: 100, showOverflow: 'tooltip', sortable: false},
			// { field: 'xyBatchNo', title: '显影批次', minWidth: 100, showOverflow: 'tooltip', sortable: false},
			// { field: 'skBatchNo', title: '蚀刻批次', minWidth: 100, showOverflow: 'tooltip', sortable: false},
		],
	},
	// vxeGrid配置参数(此处可覆写任何参数)，参考vxe-table官方文档
	{
		height: '400px',
		// 代理配置
		proxyConfig: { autoLoad: true, ajax: { query: ({ page, sort }) => handleQueryApi(page, sort) } },
		// 排序配置
		sortConfig: { defaultSort: Local.get(localPageParamKey)?.defaultSort || state.localPageParam.defaultSort },
		// 分页配置
		pagerConfig: { pageSize: Local.get(localPageParamKey)?.pageSize || state.localPageParam.pageSize },
		// 工具栏配置
		toolbarConfig: { export: false },
		// 行设置
		// rowConfig: { height: 80 },
	}
);

// 页面初始化
onMounted(() => {});

// 查询api
const handleQueryApi = async (page: VxeGridPropTypes.ProxyAjaxQueryPageParams, sort: VxeGridPropTypes.ProxyAjaxQuerySortCheckedParams) => {
	const params = Object.assign(state.queryParams, { page: page.currentPage, pageSize: page.pageSize, field: sort.field, order: sort.order, descStr: 'desc' }) as any;
	params.produceWorkOrderId = props.produceWorkOrderId;
	return pageMesWorkRecord(params);
};

// 查询操作
const handleQuery = async (reset = false) => {
	options.loading = true;
	await xGrid.value?.commitProxy('query');
	options.loading = false;
};

// 重置操作
const resetQuery = async () => {
	(state.queryParams.searchKey = undefined),
		(state.queryParams.startWorkDate = undefined),
		(state.queryParams.endWorkDate = undefined),
		(state.queryParams.produceWorkOrderId = undefined),
		(state.queryParams.dyBatchNo = undefined),
		(state.queryParams.fmBatchNo = undefined),
		(state.queryParams.num = undefined),
		(state.queryParams.unitCode = undefined),
		(state.queryParams.unitName = undefined),
		(state.queryParams.equipmentCode = undefined),
		(state.queryParams.equipmentName = undefined),
		(state.queryParams.productionLineCode = undefined),
		(state.queryParams.productionLineName = undefined),
		(state.queryParams.workPersonAccount = undefined),
		(state.queryParams.workPersonName = undefined),
		(state.queryParams.deviceTm = undefined),
		(state.queryParams.deviceSpeed = undefined),
		(state.queryParams.deviceDyz = undefined),
		(state.queryParams.deviceWd = undefined),
		(state.queryParams.deviceGl = undefined),
		(state.queryParams.deviceYl = undefined),
		(state.queryParams.isPrintPanel = undefined),
		(state.queryParams.printPanelDate = undefined),
		(state.queryParams.producePlanId = undefined),
		(state.queryParams.producePlanNo = undefined),
		(state.queryParams.produceWorkOrderNo = undefined),
		(state.queryParams.cbBatchNo = undefined),
		(state.queryParams.xyBatchNo = undefined),
		(state.queryParams.skBatchNo = undefined),
		await xGrid.value?.commitProxy('reload');
};

// 打开新增页面
const handleAdd = () => {
	state.title = '添加报工记录';
	editDialogRef.value?.openDialog({ type: 1 });
};

// 打开编辑页面
const handleEdit = (row: any) => {
	state.title = '编辑报工记录';
	editDialogRef.value?.openDialog(row);
};

// 打开打印页面
const handlePrint = async (row: any) => {
	state.title = '打印报工记录';
};

// 删除
const handleDelete = (row: any) => {
	ElMessageBox.confirm(`确定删除报工记录：【${row.title}】?`, '提示', {
		confirmButtonText: '确定',
		cancelButtonText: '取消',
		type: 'warning',
	})
		.then(async () => {
			await deleteMesWorkRecord(row);
			await handleQuery();
			ElMessage.success('删除成功');
		})
		.catch(() => {});
};

// 表格事件
const gridEvents: VxeGridListeners<any> = {
	// 只对 pager-config 配置时有效，分页发生改变时会触发该事件
	async pageChange({ pageSize }) {
		state.localPageParam.pageSize = pageSize;
		Local.set(localPageParamKey, state.localPageParam);
	},
	// 当排序条件发生变化时会触发该事件
	async sortChange({ field, order }) {
		state.localPageParam.defaultSort = { field: field, order: order!, descStr: 'desc' };
		Local.set(localPageParamKey, state.localPageParam);
	},
};
</script>

<style lang="scss" scoped>
:deep(.el-input),
:deep(.el-select),
:deep(.el-input-number) {
	width: 100%;
}
</style>
