Browse Source

2026-03-26

优化
master
fengyuan_yang 3 weeks ago
parent
commit
a3226baa81
  1. 187
      src/views/modules/yieldReport/com_finish_roll.vue
  2. 10
      src/views/modules/yieldReport/com_finish_schedule.vue

187
src/views/modules/yieldReport/com_finish_roll.vue

@ -3,20 +3,27 @@
<el-dialog :title="titleCon" v-drag v-bind="$attrs" v-on="$listeners" width="1050px" custom-class="machine-workbench-dialog">
<div class="dialog-content-container" style="height: 680px; overflow-y: auto; overflow-x: hidden;">
<!-- 顶部操作栏 -->
<div class="top-action-bar" style="display: flex; justify-content: space-between; align-items: center; padding: 10px 5px 15px 5px; margin-bottom: 0; position: sticky; top: 0; z-index: 10; background: #f5f7fa;">
<div class="time-display" style="display: flex; align-items: center; gap: 10px;">
<span class="time-label" style="font-weight: 600; color: #303133;">{{labels.currentTime}}</span>
<el-date-picker disabled="disabled" style="width: 180px;"
v-model="pageData.reportedTime"
format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</div>
<div class="action-buttons" style="display: flex; gap: 10px;">
<el-button size="small" type="primary" icon="el-icon-refresh" @click="refreshPageData">{{buttons.refreshButton}}</el-button>
<el-button size="small" type="success" icon="el-icon-check" :disabled="buttonTags.finishRollFlag" @click="finishRollBun">{{buttons.finishRoll}}</el-button>
<el-button size="small" type="info" icon="el-icon-close" @click="closeDialog">{{buttons.closeButton}}</el-button>
<el-button size="small" type="warning" icon="el-icon-user" @click="openAttendanceModal">考勤修改</el-button>
<div class="top-action-bar-wrapper">
<div class="top-action-bar">
<div class="time-display">
<i class="el-icon-time"></i>
<span>{{ labels.currentTime }}: </span>
<span class="time-value">{{ pageData.reportedTime }}</span>
</div>
<div class="action-buttons">
<button class="action-btn secondary" @click="refreshPageData">
<i class="el-icon-refresh"></i> {{ buttons.refreshButton }}
</button>
<button class="action-btn primary" :disabled="buttonTags.finishRollFlag" @click="finishRollBun">
<i class="el-icon-check"></i> {{ buttons.finishRoll }}
</button>
<button class="action-btn secondary" @click="closeDialog">
<i class="el-icon-close"></i> {{ buttons.closeButton }}
</button>
<button class="action-btn warning" @click="openAttendanceModal">
<i class="el-icon-user"></i> 考勤修改
</button>
</div>
</div>
</div>
@ -37,26 +44,26 @@
<el-col :span="12">
<div class="info-item-modern">
<label>{{labels.approvedQty}}</label>
<el-input v-if="this.preItemNo<=0" v-model="pageData.approvedQty" @blur="checkValidApprovedQty" type="number" size="small" class="highlight-input"></el-input>
<el-input v-if="this.preItemNo>0" disabled v-model="pageData.approvedQty" @blur="checkValidApprovedQty" type="number" size="small" class="highlight-input"></el-input>
<el-input v-if="this.preItemNo<=0" v-model="pageData.approvedQty" @blur="checkValidApprovedQty" type="number" size="small" class="highlight-input"></el-input>
<el-input v-if="this.preItemNo>0" disabled v-model="pageData.approvedQty" @blur="checkValidApprovedQty" type="number" size="small" class="highlight-input"></el-input>
</div>
</el-col>
<el-col :span="12">
<div class="info-item-modern">
<label>{{labels.defectedQty}}</label>
<el-input v-model="pageData.defectedQty" :disabled="showNumFlag" class="highlight-input" readonly="readonly" size="small"></el-input>
<el-input v-model="pageData.defectedQty" :disabled="showNumFlag" class="highlight-input" readonly="readonly" size="small"></el-input>
</div>
</el-col>
<el-col :span="12" style="margin-top: 8px;">
<div class="info-item-modern">
<label>{{labels.totalQty}}</label>
<el-input v-model="pageData.totalQty" class="highlight-input" readonly="readonly" size="small"></el-input>
<el-input v-model="pageData.totalQty" class="highlight-input" readonly="readonly" size="small"></el-input>
</div>
</el-col>
<el-col :span="12" style="margin-top: 8px;">
<div class="info-item-modern">
<label>{{labels.otherRollQty}}</label>
<el-input v-model="pageData.otherRollQty" class="highlight-input" readonly="readonly" size="small"></el-input>
<el-input v-model="pageData.otherRollQty" class="highlight-input" readonly="readonly" size="small"></el-input>
</div>
</el-col>
</el-row>
@ -74,19 +81,19 @@
<el-col :span="8">
<div class="info-item-modern">
<label>{{labels.totalTuningTime}}</label>
<el-input v-model="pageData.totalSetupTime" class="highlight-input" readonly="readonly" size="small"></el-input>
<el-input v-model="pageData.totalSetupTime" readonly="readonly" size="small"></el-input>
</div>
</el-col>
<el-col :span="8">
<div class="info-item-modern">
<label>{{labels.totalTuningDownTime}}</label>
<el-input v-model="pageData.totalDowntimeTimeSetup" class="highlight-input" readonly="readonly" size="small"></el-input>
<el-input v-model="pageData.totalDowntimeTimeSetup" readonly="readonly" size="small"></el-input>
</div>
</el-col>
<el-col :span="8">
<div class="info-item-modern">
<label>{{labels.totalPureTuningTime}}</label>
<el-input v-model="pageData.totalPureSetupTime" class="highlight-input" readonly="readonly" size="small"></el-input>
<el-input v-model="pageData.totalPureSetupTime" readonly="readonly" size="small"></el-input>
</div>
</el-col>
</el-row>
@ -94,19 +101,19 @@
<el-col :span="8">
<div class="info-item-modern">
<label>{{labels.totalProdTime}}</label>
<el-input v-model="pageData.totalProdTime" class="highlight-input" readonly="readonly" size="small"></el-input>
<el-input v-model="pageData.totalProdTime" readonly="readonly" size="small"></el-input>
</div>
</el-col>
<el-col :span="8">
<div class="info-item-modern">
<label>{{labels.totalProdDownTime}}</label>
<el-input v-model="pageData.totalDowntimeTimeProd" class="highlight-input" readonly="readonly" size="small"></el-input>
<el-input v-model="pageData.totalDowntimeTimeProd" readonly="readonly" size="small"></el-input>
</div>
</el-col>
<el-col :span="8">
<div class="info-item-modern">
<label>{{labels.totalPureProdTime}}</label>
<el-input v-model="pageData.totalPureProdTime" class="highlight-input" readonly="readonly" size="small"></el-input>
<el-input v-model="pageData.totalPureProdTime" readonly="readonly" size="small"></el-input>
</div>
</el-col>
</el-row>
@ -114,19 +121,19 @@
<el-col :span="8">
<div class="info-item-modern">
<label>{{labels.totalManufTime}}</label>
<el-input v-model="pageData.totalManufactureTime" class="highlight-input" readonly="readonly" size="small"></el-input>
<el-input v-model="pageData.totalManufactureTime" readonly="readonly" size="small"></el-input>
</div>
</el-col>
<el-col :span="8">
<div class="info-item-modern">
<label>{{labels.totalManufDownTime}}</label>
<el-input v-model="pageData.totalManufactureDowntimeTime" class="highlight-input" readonly="readonly" size="small"></el-input>
<el-input v-model="pageData.totalManufactureDowntimeTime" readonly="readonly" size="small"></el-input>
</div>
</el-col>
<el-col :span="8">
<div class="info-item-modern">
<label>{{labels.totalPureManufTime}}</label>
<el-input v-model="pageData.totalPureManufactureTime" class="highlight-input" readonly="readonly" size="small"></el-input>
<el-input v-model="pageData.totalPureManufactureTime" readonly="readonly" size="small"></el-input>
</div>
</el-col>
</el-row>
@ -153,7 +160,7 @@
<el-col :span="6">
<div class="info-item-modern">
<label>{{labels.operatorName}}</label>
<el-input v-model="operatorData.operatorName" class="highlight-input" readonly="readonly" size="small"></el-input>
<el-input v-model="operatorData.operatorName" readonly="readonly" size="small"></el-input>
</div>
</el-col>
<el-col :span="6">
@ -166,7 +173,7 @@
<div class="info-item-modern">
<label>{{labels.shiftNo}}</label>
<div style="display: flex; gap: 5px;">
<el-input v-model="pageData.shiftDesc" class="highlight-input" readonly="readonly" size="small"></el-input>
<el-input v-model="pageData.shiftDesc" readonly="readonly" size="small"></el-input>
<el-button type="info" :disabled="buttonTags.selectShiftFlag" plain @click="selectSchduleShiftModal" size="small" style="padding: 0 8px;">
<i class="el-icon-more"></i>
</el-button>
@ -200,7 +207,7 @@
<el-col :span="8">
<div class="info-item-modern">
<label>{{labels.prodTime}}</label>
<el-input v-model="pageData.sfdcProdTime" class="highlight-input" readonly="readonly" size="small"></el-input>
<el-input v-model="pageData.sfdcProdTime" readonly="readonly" size="small"></el-input>
</div>
</el-col>
</el-row>
@ -208,19 +215,19 @@
<el-col :span="8">
<div class="info-item-modern">
<label>{{labels.tuningTime}}</label>
<el-input v-model="pageData.sfdcSetupTime" class="highlight-input" readonly="readonly" size="small"></el-input>
<el-input v-model="pageData.sfdcSetupTime" readonly="readonly" size="small"></el-input>
</div>
</el-col>
<el-col :span="8">
<div class="info-item-modern">
<label>{{labels.manufTime}}</label>
<el-input v-model="pageData.sfdcManufactureTime" class="highlight-input" readonly="readonly" size="small"></el-input>
<el-input v-model="pageData.sfdcManufactureTime" readonly="readonly" size="small"></el-input>
</div>
</el-col>
<el-col :span="8">
<div class="info-item-modern">
<label>{{labels.sfdcApprovedQty}}</label>
<el-input v-model="pageData.sfdcApprovedQty" class="highlight-input" readonly="readonly" size="small"></el-input>
<el-input v-model="pageData.sfdcApprovedQty" readonly="readonly" size="small"></el-input>
</div>
</el-col>
</el-row>
@ -228,13 +235,13 @@
<el-col :span="8">
<div class="info-item-modern">
<label>{{labels.sfdcDefectedQty}}</label>
<el-input v-model="pageData.defectedQty" class="highlight-input" readonly="readonly" size="small"></el-input>
<el-input v-model="pageData.defectedQty" readonly="readonly" size="small"></el-input>
</div>
</el-col>
<el-col :span="8">
<div class="info-item-modern">
<label>{{labels.sfdcReportedQty}}</label>
<el-input v-model="pageData.sfdcReportedQty" class="highlight-input" readonly="readonly" size="small"></el-input>
<el-input v-model="pageData.sfdcReportedQty" readonly="readonly" size="small"></el-input>
</div>
</el-col>
<el-col :span="8">
@ -257,12 +264,6 @@
<el-input v-model="pageData.sfdcDownTime" size="small"></el-input>
</div>
</el-col>
<el-col :span="8">
<div class="info-item-modern">
<label>{{labels.remark}}</label>
<el-input v-model="pageData.remark" size="small"></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="10" class="info-row" style="margin-top: 3px">
<el-col :span="24">
@ -1618,6 +1619,108 @@ export default {
</script>
<style scoped lang="scss">
.top-action-bar-wrapper {
position: sticky;
top: 0;
z-index: 10;
background: #ffffff;
padding: 10px 5px 15px 5px;
margin: 0 -5px;
}
.top-action-bar {
display: flex;
justify-content: space-between;
align-items: center;
background: white;
padding: 12px 20px;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
margin-bottom: 0;
border: 1px solid #e8eaed;
}
.time-display {
display: flex;
align-items: center;
color: #606266;
font-size: 14px;
i {
font-size: 18px;
color: #667eea;
margin-right: 8px;
}
.time-value {
font-weight: 600;
color: #303133;
margin-left: 5px;
font-size: 15px;
}
}
.action-buttons {
display: flex;
gap: 12px;
.action-btn {
padding: 8px 16px;
border-radius: 6px;
font-size: 13px;
font-weight: 500;
cursor: pointer;
transition: all 0.2s ease;
display: inline-flex;
align-items: center;
gap: 6px;
border: none;
outline: none;
i {
font-size: 14px;
}
&:disabled {
opacity: 0.6;
cursor: not-allowed;
}
&.primary {
background: linear-gradient(135deg, #17B3A3 0%, #13998b 100%);
color: white;
box-shadow: 0 2px 6px rgba(23, 179, 163, 0.3);
&:hover:not(:disabled) {
transform: translateY(-1px);
box-shadow: 0 4px 10px rgba(23, 179, 163, 0.4);
}
&:active:not(:disabled) {
transform: translateY(0);
}
}
&.secondary {
background: white;
color: #606266;
border: 1px solid #dcdfe6;
&:hover:not(:disabled) {
color: #17B3A3;
border-color: #17B3A3;
background: #f0f9f8;
}
}
&.warning {
background: white;
color: #e6a23c;
border: 1px solid #e6a23c;
&:hover:not(:disabled) {
background: #e6a23c;
color: white;
}
&:active:not(:disabled) {
transform: scale(0.98);
}
}
}
}
/* ==================== 机台工作台对话框现代化样式 ==================== */
.machine-workbench-dialog /deep/ .el-dialog__header {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

10
src/views/modules/yieldReport/com_finish_schedule.vue

@ -102,7 +102,7 @@
<el-col :span="8">
<div class="info-item-modern">
<div class="item-label">{{ labels.totalPureTuningTime }}(A3)</div>
<el-input v-model="pageData.totalPureSetupTime" disabled class="highlight-input"></el-input>
<el-input v-model="pageData.totalPureSetupTime" disabled></el-input>
</div>
</el-col>
</el-row>
@ -123,7 +123,7 @@
<el-col :span="8">
<div class="info-item-modern">
<div class="item-label">{{ labels.totalPureProdTime }}(B3)</div>
<el-input v-model="pageData.totalPureProdTime" disabled class="highlight-input"></el-input>
<el-input v-model="pageData.totalPureProdTime" disabled></el-input>
</div>
</el-col>
</el-row>
@ -144,7 +144,7 @@
<el-col :span="8">
<div class="info-item-modern">
<div class="item-label">{{ labels.totalPureManufTime }}(C3)</div>
<el-input v-model="pageData.totalPureManufactureTime" disabled class="highlight-input"></el-input>
<el-input v-model="pageData.totalPureManufactureTime" disabled></el-input>
</div>
</el-col>
</el-row>
@ -1659,7 +1659,7 @@
}
.dialog-content-container {
height: 750px;
height: 676px;
overflow-y: auto;
overflow-x: hidden;
padding: 0 20px 20px 20px;
@ -1670,7 +1670,7 @@
position: sticky;
top: 0;
z-index: 10;
background: #f4f6f9;
background: #ffffff;
padding: 20px 20px 15px 20px;
margin: 0 -20px;
}

Loading…
Cancel
Save