| | |
| | | {{ parseDate(row.createTime) }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="工时(h)" |
| | | <!-- <el-table-column label="工时(h)" |
| | | prop="workHour" |
| | | align="center" /> |
| | | align="center" />--> |
| | | <el-table-column label="产出数量" |
| | | prop="quantity" |
| | | align="center" /> |
| | |
| | | :key="record.id" |
| | | class="quality-record-block"> |
| | | <div class="detail-section"> |
| | | <h3 class="section-title">检测记录 {{ index + 1 }} - {{ parseDate(record.createTime) }}</h3> |
| | | <h3 class="section-title">检测记录 {{ index + 1 }} - {{ parseDate(record.checkTime) }}</h3> |
| | | <el-descriptions :column="3" |
| | | border> |
| | | <el-descriptions-item label="检测日期">{{ parseDate(record.createTime) || '-' }}</el-descriptions-item> |
| | | <el-descriptions-item label="检测日期">{{ parseDate(record.checkTime) || '-' }}</el-descriptions-item> |
| | | <el-descriptions-item label="报工单号">{{ record.reportNo || '-' }}</el-descriptions-item> |
| | | <el-descriptions-item label="检验员">{{ record.userName || '-' }}</el-descriptions-item> |
| | | <el-descriptions-item label="产品名称">{{ record.productName || '-' }}</el-descriptions-item> |
| | |
| | | detailData.value = { |
| | | workOrder: row.workOrder || {}, |
| | | reports: (row.reportList || []).map(r => ({ |
| | | ...r.reportMain, |
| | | // 产出数据先展开,报工单数据后展开,保证创建时间用报工单的 |
| | | ...(r.reportOutputList[0] || {}), |
| | | ...r.reportMain, |
| | | productionOperationParamList: r.reportParamList || [], |
| | | })), |
| | | }; |
| | |
| | | label-width="120px"> |
| | | <el-form-item label="计划开始时间"> |
| | | <el-date-picker v-model="editrow.planStartTime" |
| | | type="datetime" |
| | | type="date" |
| | | placeholder="请选择" |
| | | value-format="YYYY-MM-DD HH:mm:ss" |
| | | value-format="YYYY-MM-DD" |
| | | style="width: 300px" /> |
| | | </el-form-item> |
| | | <el-form-item label="计划结束时间"> |
| | | <el-date-picker v-model="editrow.planEndTime" |
| | | type="datetime" |
| | | type="date" |
| | | placeholder="请选择" |
| | | value-format="YYYY-MM-DD HH:mm:ss" |
| | | value-format="YYYY-MM-DD" |
| | | style="width: 300px" /> |
| | | </el-form-item> |
| | | </el-form> |
| | |
| | | label: "计划开始时间", |
| | | prop: "planStartTime", |
| | | width: "140", |
| | | dataType: "date", |
| | | }, |
| | | { |
| | | label: "计划结束时间", |
| | | prop: "planEndTime", |
| | | width: "140", |
| | | dataType: "date", |
| | | }, |
| | | { |
| | | label: "实际开始时间", |
| | | prop: "actualStartTime", |
| | | width: "140", |
| | | dataType: "date", |
| | | }, |
| | | { |
| | | label: "实际结束时间", |
| | | prop: "actualEndTime", |
| | | width: "140", |
| | | dataType: "date", |
| | | }, |
| | | { |
| | | label: "指定报工人", |
| | |
| | | |
| | | const handleEdit = row => { |
| | | editrow.value = JSON.parse(JSON.stringify(row)); |
| | | // 去掉时分秒,只保留日期用于选择器回显 |
| | | if (editrow.value.planStartTime) { |
| | | editrow.value.planStartTime = editrow.value.planStartTime.split(" ")[0]; |
| | | } |
| | | if (editrow.value.planEndTime) { |
| | | editrow.value.planEndTime = editrow.value.planEndTime.split(" ")[0]; |
| | | } |
| | | editDialogVisible.value = true; |
| | | }; |
| | | |
| | | const handleUpdate = () => { |
| | | updateProductWorkOrder(editrow.value) |
| | | const updateData = { ...editrow.value }; |
| | | // 后端接口需要时分秒格式,隐式拼接:开始时间补 00:00:00,结束时间补 23:59:59 |
| | | if (updateData.planStartTime) { |
| | | updateData.planStartTime = `${updateData.planStartTime} 00:00:00`; |
| | | } |
| | | if (updateData.planEndTime) { |
| | | updateData.planEndTime = `${updateData.planEndTime} 23:59:59`; |
| | | } |
| | | updateProductWorkOrder(updateData) |
| | | .then(() => { |
| | | proxy.$modal.msgSuccess("提交成功"); |
| | | editDialogVisible.value = false; |
| | |
| | | </div> |
| | | <div class="info-item"> |
| | | <span class="info-label">计划开始时间</span> |
| | | <span class="info-value">{{ transferCardRowData.planStartTime }}</span> |
| | | <span class="info-value">{{ formatDateOnly(transferCardRowData.planStartTime) }}</span> |
| | | </div> |
| | | <div class="info-item"> |
| | | <span class="info-label">计划结束时间</span> |
| | | <span class="info-value">{{ transferCardRowData.planEndTime }}</span> |
| | | <span class="info-value">{{ formatDateOnly(transferCardRowData.planEndTime) }}</span> |
| | | </div> |
| | | <div class="info-item"> |
| | | <span class="info-label">备注</span> |
| | |
| | | </div> |
| | | <div class="info-item"> |
| | | <span class="info-label">实际开始时间</span> |
| | | <span class="info-value">{{ transferCardRowData.actualStartTime }}</span> |
| | | <span class="info-value">{{ formatDateOnly(transferCardRowData.actualStartTime) }}</span> |
| | | </div> |
| | | <div class="info-item"> |
| | | <span class="info-label">实际结束时间</span> |
| | | <span class="info-value">{{ transferCardRowData.actualEndTime }}</span> |
| | | <span class="info-value">{{ formatDateOnly(transferCardRowData.actualEndTime) }}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | return Number.isFinite(status) && status >= 100; |
| | | }; |
| | | |
| | | // 时间只显示日期,不显示时分秒 |
| | | const formatDateOnly = val => { |
| | | return val ? dayjs(val).format("YYYY-MM-DD") : ""; |
| | | }; |
| | | |
| | | const canOperate = row => !row.endOrder && !isCompleted(row); |
| | | |
| | | const tableColumn = ref([ |
| | |
| | | { label: "需求数量", prop: "planQuantity", width: "140" }, |
| | | { label: "完成数量", prop: "completeQuantity", width: "140" }, |
| | | { label: "完成进度", prop: "completionStatus", dataType: "slot", slot: "completionStatus", width: "140" }, |
| | | { label: "计划开始时间", prop: "planStartTime", width: "140" }, |
| | | { label: "计划结束时间", prop: "planEndTime", width: "140" }, |
| | | { label: "实际开始时间", prop: "actualStartTime", width: "140" }, |
| | | { label: "实际结束时间", prop: "actualEndTime", width: "140" }, |
| | | { label: "计划开始时间", prop: "planStartTime", width: "140", dataType: "date" }, |
| | | { label: "计划结束时间", prop: "planEndTime", width: "140", dataType: "date" }, |
| | | { label: "实际开始时间", prop: "actualStartTime", width: "140", dataType: "date" }, |
| | | { label: "实际结束时间", prop: "actualEndTime", width: "140", dataType: "date" }, |
| | | { |
| | | label: "操作", width: "260", align: "center", dataType: "action", fixed: "right", |
| | | operation: [ |