|
|
@ -1,264 +1,239 @@ |
|
|
<template> |
|
|
<template> |
|
|
<div class="customer-css"> |
|
|
<div class="customer-css"> |
|
|
<el-dialog :title="titleCon" v-drag v-bind="$attrs" v-on="$listeners" |
|
|
<el-dialog :title="titleCon" v-drag v-bind="$attrs" v-on="$listeners" |
|
|
width="875px" style="height: 770px;" class="customer-dialog"> |
|
|
|
|
|
<el-form :inline="true" label-position="top" style="height: 635px;" |
|
|
|
|
|
label-width="80px"> |
|
|
|
|
|
<!-- 数量统计 班次信息 --> |
|
|
|
|
|
<fieldset class="customer-fieldset" style="margin-top: -10px; width: 260px;"> |
|
|
|
|
|
<legend>{{labels.scheduleQty}}</legend> |
|
|
|
|
|
<el-col :span="9" style="margin-left: 35px; margin-top: -8px;"> |
|
|
|
|
|
<el-form-item class="customer-item" :label='labels.totalApprovedQty+"(PCS):"' style="margin-top: -10px;"> |
|
|
|
|
|
<el-input v-model="pageData.approvedQty" type="number" @blur="checkValidApprovedQty" |
|
|
|
|
|
style="width: 80px;"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
width="1060px" custom-class="machine-workbench-dialog"> |
|
|
|
|
|
<div class="dialog-content-container"> |
|
|
|
|
|
<!-- 顶部操作栏 --> |
|
|
|
|
|
<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" @click="openRemarkDialog"> |
|
|
|
|
|
<i class="el-icon-check"></i> {{ buttons.finishScheduleButton }} |
|
|
|
|
|
</button> |
|
|
|
|
|
<button class="action-btn secondary" @click="closeDialog"> |
|
|
|
|
|
<i class="el-icon-close"></i> {{ buttons.closeButton }} |
|
|
|
|
|
</button> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<el-row :gutter="15"> |
|
|
|
|
|
<!-- 左侧:数量统计和班次信息 --> |
|
|
|
|
|
<el-col :span="10"> |
|
|
|
|
|
<!-- 数量统计 --> |
|
|
|
|
|
<div class="info-card"> |
|
|
|
|
|
<div class="card-title"> |
|
|
|
|
|
<i class="el-icon-pie-chart"></i> |
|
|
|
|
|
<span>{{ labels.scheduleQty }}</span> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="card-content"> |
|
|
|
|
|
<el-row :gutter="10"> |
|
|
|
|
|
<el-col :span="12"> |
|
|
|
|
|
<div class="info-item-modern"> |
|
|
|
|
|
<div class="item-label">{{ labels.totalApprovedQty }}(PCS)</div> |
|
|
|
|
|
<el-input v-model="pageData.approvedQty" type="number" @blur="checkValidApprovedQty" class="highlight-input"></el-input> |
|
|
|
|
|
</div> |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="9" style="margin-top: -8px;"> |
|
|
|
|
|
<el-form-item class="customer-item" :label='labels.totalDefectedQty+"(PCS):"' style="margin-top: -10px;"> |
|
|
|
|
|
<el-input v-model="pageData.defectedQty" disabled="disabled" style="width: 100px;"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<el-col :span="12"> |
|
|
|
|
|
<div class="info-item-modern"> |
|
|
|
|
|
<div class="item-label">{{ labels.totalDefectedQty }}(PCS)</div> |
|
|
|
|
|
<el-input v-model="pageData.defectedQty" disabled class="highlight-input"></el-input> |
|
|
|
|
|
</div> |
|
|
</el-col> |
|
|
</el-col> |
|
|
</fieldset> |
|
|
|
|
|
<fieldset class="customer-fieldset" style="margin-left: 266px; margin-top: -57px; width: 400px;"> |
|
|
|
|
|
<legend>{{labels.scheduleShift}}</legend> |
|
|
|
|
|
<el-col :span="8" style="margin-left: 55px; margin-top: -18px;"> |
|
|
|
|
|
<el-form-item :label=labels.currentTime> |
|
|
|
|
|
<el-date-picker disabled="disabled" style="width: 145px;" |
|
|
|
|
|
v-model="pageData.reportedTime" |
|
|
|
|
|
format="yyyy-MM-dd HH:mm:ss" |
|
|
|
|
|
value-format="yyyy-MM-dd HH:mm:ss" |
|
|
|
|
|
placeholder=""> |
|
|
|
|
|
</el-date-picker> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
</el-row> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 班次信息 --> |
|
|
|
|
|
<div class="info-card" style="margin-top: 15px;"> |
|
|
|
|
|
<div class="card-title"> |
|
|
|
|
|
<i class="el-icon-date"></i> |
|
|
|
|
|
<span>{{ labels.scheduleShift }}</span> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="card-content"> |
|
|
|
|
|
<el-row :gutter="10"> |
|
|
|
|
|
<el-col :span="12"> |
|
|
|
|
|
<div class="info-item-modern"> |
|
|
|
|
|
<div class="item-label">{{ labels.scheduledDate }}</div> |
|
|
|
|
|
<el-input v-model="pageData.scheduledDate" disabled></el-input> |
|
|
|
|
|
</div> |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="5" style="margin-left: 20px; margin-top: -8px;"> |
|
|
|
|
|
<el-form-item class="customer-item" :label=labels.scheduledDate> |
|
|
|
|
|
<el-input v-model="pageData.scheduledDate" disabled="disabled" style="width: 80px;"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<el-col :span="12"> |
|
|
|
|
|
<div class="info-item-modern"> |
|
|
|
|
|
<div class="item-label">{{ labels.shiftNo }}</div> |
|
|
|
|
|
<el-input v-model="pageData.shiftDesc" disabled></el-input> |
|
|
|
|
|
</div> |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="5" style="margin-left: 5px; margin-top: -8px;"> |
|
|
|
|
|
<el-form-item class="customer-item" :label=labels.shiftNo> |
|
|
|
|
|
<el-input v-model="pageData.shiftDesc" disabled="disabled" style="width: 80px;"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
</el-row> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
</el-col> |
|
|
</el-col> |
|
|
</fieldset> |
|
|
|
|
|
<!-- 生产时间的统计信息 --> |
|
|
|
|
|
<fieldset class="customer-fieldset" |
|
|
|
|
|
style="width: 666px;"> |
|
|
|
|
|
<legend>{{labels.prodTitle}}</legend> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 右侧:生产时间统计 --> |
|
|
|
|
|
<el-col :span="14"> |
|
|
|
|
|
<div class="info-card"> |
|
|
|
|
|
<div class="card-title"> |
|
|
|
|
|
<i class="el-icon-time"></i> |
|
|
|
|
|
<span>{{ labels.prodTitle }}</span> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="card-content"> |
|
|
<!-- 调机时间 --> |
|
|
<!-- 调机时间 --> |
|
|
<el-row style="margin-top: -10px;"> |
|
|
|
|
|
<el-col :span="24"> |
|
|
|
|
|
<el-form-item :label='labels.totalTuningTime+"(A1):"'> |
|
|
|
|
|
<el-input v-model="pageData.totalSetupTime" disabled="disabled" style="width: 200px;"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item :label='labels.totalTuningDownTime+"(A2):"'> |
|
|
|
|
|
<el-input v-model="pageData.totalDowntimeTimeSetup" disabled="disabled" |
|
|
|
|
|
style="width: 200px;"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item :label='labels.totalPureTuningTime+"(A3 = A1 - A2):"'> |
|
|
|
|
|
<el-input v-model="pageData.totalPureSetupTime" disabled="disabled" style="width: 200px;"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<el-row :gutter="10"> |
|
|
|
|
|
<el-col :span="8"> |
|
|
|
|
|
<div class="info-item-modern"> |
|
|
|
|
|
<div class="item-label">{{ labels.totalTuningTime }}(A1)</div> |
|
|
|
|
|
<el-input v-model="pageData.totalSetupTime" disabled></el-input> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="8"> |
|
|
|
|
|
<div class="info-item-modern"> |
|
|
|
|
|
<div class="item-label">{{ labels.totalTuningDownTime }}(A2)</div> |
|
|
|
|
|
<el-input v-model="pageData.totalDowntimeTimeSetup" disabled></el-input> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<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> |
|
|
|
|
|
</div> |
|
|
</el-col> |
|
|
</el-col> |
|
|
</el-row> |
|
|
</el-row> |
|
|
<!-- 生产时间 --> |
|
|
<!-- 生产时间 --> |
|
|
<el-row> |
|
|
|
|
|
<el-col :span="24"> |
|
|
|
|
|
<el-form-item :label='labels.totalProdTime+"(B1)"'> |
|
|
|
|
|
<el-input v-model="pageData.totalProdTime" disabled="disabled" style="width: 200px;"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item :label='labels.totalProdDownTime+"(B2):"'> |
|
|
|
|
|
<el-input v-model="pageData.totalDowntimeTimeProd" disabled="disabled" style="width: 200px;"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item :label='labels.totalPureProdTime+"(B3 = B1 - B2):"'> |
|
|
|
|
|
<el-input v-model="pageData.totalPureProdTime" disabled="disabled" style="width: 200px;"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<el-row :gutter="10" style="margin-top: 10px;"> |
|
|
|
|
|
<el-col :span="8"> |
|
|
|
|
|
<div class="info-item-modern"> |
|
|
|
|
|
<div class="item-label">{{ labels.totalProdTime }}(B1)</div> |
|
|
|
|
|
<el-input v-model="pageData.totalProdTime" disabled></el-input> |
|
|
|
|
|
</div> |
|
|
</el-col> |
|
|
</el-col> |
|
|
</el-row> |
|
|
|
|
|
<!-- 制造时间 --> |
|
|
|
|
|
<el-row> |
|
|
|
|
|
<el-col :span="24"> |
|
|
|
|
|
<el-form-item :label='labels.totalManufTime+"(C1 = A1 + B1):"'> |
|
|
|
|
|
<el-input v-model="pageData.totalManufactureTime" disabled="disabled" style="width: 200px;"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item :label='labels.totalManufDownTime+"(C2 = A2 + B2):"'> |
|
|
|
|
|
<el-input v-model="pageData.totalManufactureDowntimeTime" disabled="disabled" |
|
|
|
|
|
style="width: 200px;"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item :label='labels.totalPureManufTime+"(C3 = A3 + B3):"'> |
|
|
|
|
|
<el-input v-model="pageData.totalPureManufactureTime" disabled="disabled" |
|
|
|
|
|
style="width: 200px;"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<el-col :span="8"> |
|
|
|
|
|
<div class="info-item-modern"> |
|
|
|
|
|
<div class="item-label">{{ labels.totalProdDownTime }}(B2)</div> |
|
|
|
|
|
<el-input v-model="pageData.totalDowntimeTimeProd" disabled></el-input> |
|
|
|
|
|
</div> |
|
|
</el-col> |
|
|
</el-col> |
|
|
</el-row> |
|
|
|
|
|
</fieldset> |
|
|
|
|
|
<fieldset class="customer-fieldset" style="margin-left: 675px; margin-top: -209px; width: 180px;"> |
|
|
|
|
|
<legend class="customer-legend">{{labels.functionTitle}}</legend> |
|
|
|
|
|
<el-form> |
|
|
|
|
|
<el-row style="margin-top: 18px; height: 55px;"> |
|
|
|
|
|
<el-col style="text-align: center"> |
|
|
|
|
|
<el-form-item> |
|
|
|
|
|
<el-button type="primary" @click="openRemarkDialog" |
|
|
|
|
|
style="margin-left: 10px; margin-bottom: 5px;"> |
|
|
|
|
|
{{ buttons.finishScheduleButton }} |
|
|
|
|
|
</el-button> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<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> |
|
|
|
|
|
</div> |
|
|
</el-col> |
|
|
</el-col> |
|
|
</el-row> |
|
|
</el-row> |
|
|
<el-row style="height: 55px;"> |
|
|
|
|
|
<el-col style="text-align: center"> |
|
|
|
|
|
<el-form-item> |
|
|
|
|
|
<el-button type="primary" @click="closeDialog" |
|
|
|
|
|
style="margin-left: 10px; margin-bottom: 5px; width: 75px;"> |
|
|
|
|
|
{{ buttons.closeButton }} |
|
|
|
|
|
</el-button> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<!-- 制造时间 --> |
|
|
|
|
|
<el-row :gutter="10" style="margin-top: 10px;"> |
|
|
|
|
|
<el-col :span="8"> |
|
|
|
|
|
<div class="info-item-modern"> |
|
|
|
|
|
<div class="item-label">{{ labels.totalManufTime }}(C1)</div> |
|
|
|
|
|
<el-input v-model="pageData.totalManufactureTime" disabled></el-input> |
|
|
|
|
|
</div> |
|
|
</el-col> |
|
|
</el-col> |
|
|
</el-row> |
|
|
|
|
|
<el-row style="height: 55px;"> |
|
|
|
|
|
<el-col style="text-align: center"> |
|
|
|
|
|
<el-form-item> |
|
|
|
|
|
<el-button type="primary" @click="refreshPageData" style="margin-left: 10px; margin-bottom: 5px;"> |
|
|
|
|
|
{{ buttons.refreshButton }} |
|
|
|
|
|
</el-button> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<el-col :span="8"> |
|
|
|
|
|
<div class="info-item-modern"> |
|
|
|
|
|
<div class="item-label">{{ labels.totalManufDownTime }}(C2)</div> |
|
|
|
|
|
<el-input v-model="pageData.totalManufactureDowntimeTime" disabled></el-input> |
|
|
|
|
|
</div> |
|
|
</el-col> |
|
|
</el-col> |
|
|
<!-- <el-button v-if="showDefault" @click="saveMultiLanguage()" type="primary">多语言设置</el-button>--> |
|
|
|
|
|
</el-row> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
</fieldset> |
|
|
|
|
|
<!--时间记录的数据--> |
|
|
|
|
|
<fieldset class="customer-fieldset" style="width: 846px;"> |
|
|
|
|
|
<legend>{{labels.timeList}}</legend> |
|
|
|
|
|
<el-row style="margin-top: -35px; width: 280px;"> |
|
|
|
|
|
<el-col :span="6"> |
|
|
|
|
|
<el-form-item :label="''" style="margin-left: 15px;"> |
|
|
|
|
|
<el-checkbox style="margin-top: 28px;" true-label="N" false-label="Y" disabled="disabled" |
|
|
|
|
|
v-model="pageData.timeFinishedFlag">{{labels.timeListNoFinish}} |
|
|
|
|
|
</el-checkbox> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<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> |
|
|
|
|
|
</div> |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="6"> |
|
|
|
|
|
<el-form-item :label="''" style="margin-left: 65px;"> |
|
|
|
|
|
<el-checkbox style="margin-top: 28px;" true-label="true" false-label="N" |
|
|
|
|
|
v-model="pageData.showNoFinishedTimeFlag">{{labels.timeListShowNoFinish}} |
|
|
|
|
|
</el-checkbox> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
</el-row> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
</el-col> |
|
|
</el-col> |
|
|
</el-row> |
|
|
</el-row> |
|
|
<el-table |
|
|
|
|
|
height="100" |
|
|
|
|
|
:data="sfdcTimeList" |
|
|
|
|
|
border |
|
|
|
|
|
v-loading="dataListLoading" |
|
|
|
|
|
style="width: 846px; margin-top: 20px;"> |
|
|
|
|
|
<el-table-column |
|
|
|
|
|
v-for="(item,index) in columnTimeArray" :key="index" |
|
|
|
|
|
:sortable="item.columnSortable" |
|
|
|
|
|
:prop="item.columnProp" |
|
|
|
|
|
:header-align="item.headerAlign" |
|
|
|
|
|
:show-overflow-tooltip="item.showOverflowTooltip" |
|
|
|
|
|
:align="item.align" |
|
|
|
|
|
:fixed="item.fixed==''?false:item.fixed" |
|
|
|
|
|
:width="item.columnWidth" |
|
|
|
|
|
:label="item.columnLabel"> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 列表部分 --> |
|
|
|
|
|
<el-row style="margin-top: 15px;"> |
|
|
|
|
|
<el-col :span="24"> |
|
|
|
|
|
<!-- 时间记录 --> |
|
|
|
|
|
<div class="info-card"> |
|
|
|
|
|
<div class="card-title"> |
|
|
|
|
|
<i class="el-icon-timer"></i> |
|
|
|
|
|
<span>{{ labels.timeList }}</span> |
|
|
|
|
|
<div style="margin-left: auto; display: flex; gap: 15px;"> |
|
|
|
|
|
<el-checkbox true-label="N" false-label="Y" disabled v-model="pageData.timeFinishedFlag">{{ labels.timeListNoFinish }}</el-checkbox> |
|
|
|
|
|
<el-checkbox true-label="true" false-label="N" v-model="pageData.showNoFinishedTimeFlag">{{ labels.timeListShowNoFinish }}</el-checkbox> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="card-content"> |
|
|
|
|
|
<el-table height="200" :data="sfdcTimeList" border v-loading="dataListLoading" style="width: 100%;"> |
|
|
|
|
|
<el-table-column v-for="(item,index) in columnTimeArray" :key="index" |
|
|
|
|
|
:sortable="item.columnSortable" :prop="item.columnProp" |
|
|
|
|
|
:header-align="item.headerAlign" :show-overflow-tooltip="item.showOverflowTooltip" |
|
|
|
|
|
:align="item.align" :fixed="item.fixed==''?false:item.fixed" |
|
|
|
|
|
:min-width="item.columnWidth" :label="item.columnLabel"> |
|
|
<template slot-scope="scope"> |
|
|
<template slot-scope="scope"> |
|
|
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span> |
|
|
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span> |
|
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" |
|
|
|
|
|
style="width: 100px; height: 80px"/></span> |
|
|
|
|
|
|
|
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
</el-table> |
|
|
</el-table> |
|
|
</fieldset> |
|
|
|
|
|
<!--刀模的使用记录--> |
|
|
|
|
|
<fieldset class="customer-fieldset" style="width: 846px;"> |
|
|
|
|
|
<legend>{{labels.toolList}}</legend> |
|
|
|
|
|
<el-row style="margin-top: -35px; width: 280px;"> |
|
|
|
|
|
<el-col :span="6"> |
|
|
|
|
|
<el-form-item :label="''" style="margin-left: 15px;"> |
|
|
|
|
|
<el-checkbox style="margin-top: 28px;" true-label="N" false-label="Y" disabled="disabled" |
|
|
|
|
|
v-model="pageData.toolFinishedFlag">{{labels.toolListNoFinish}} |
|
|
|
|
|
</el-checkbox> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="6"> |
|
|
|
|
|
<el-form-item :label="''" style="margin-left: 65px;"> |
|
|
|
|
|
<el-checkbox style="margin-top: 28px;" true-label="Y" false-label="N" |
|
|
|
|
|
v-model="pageData.showNoFinishedToolFlag">{{labels.toolListShowNoFinish}} |
|
|
|
|
|
</el-checkbox> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
</el-row> |
|
|
|
|
|
<el-table |
|
|
|
|
|
height="100" |
|
|
|
|
|
:data="sfdcToolList" |
|
|
|
|
|
border |
|
|
|
|
|
v-loading="dataListLoading" |
|
|
|
|
|
style="width: 846px; margin-top: 20px;"> |
|
|
|
|
|
<el-table-column |
|
|
|
|
|
v-for="(item,index) in columnToolArray" :key="index" |
|
|
|
|
|
:sortable="item.columnSortable" |
|
|
|
|
|
:prop="item.columnProp" |
|
|
|
|
|
:header-align="item.headerAlign" |
|
|
|
|
|
:show-overflow-tooltip="item.showOverflowTooltip" |
|
|
|
|
|
:align="item.align" |
|
|
|
|
|
:fixed="item.fixed==''?false:item.fixed" |
|
|
|
|
|
:width="item.columnWidth" |
|
|
|
|
|
:label="item.columnLabel"> |
|
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 刀模记录 --> |
|
|
|
|
|
<div class="info-card" style="margin-top: 15px;"> |
|
|
|
|
|
<div class="card-title"> |
|
|
|
|
|
<i class="el-icon-scissors"></i> |
|
|
|
|
|
<span>{{ labels.toolList }}</span> |
|
|
|
|
|
<div style="margin-left: auto; display: flex; gap: 15px;"> |
|
|
|
|
|
<el-checkbox true-label="N" false-label="Y" disabled v-model="pageData.toolFinishedFlag">{{ labels.toolListNoFinish }}</el-checkbox> |
|
|
|
|
|
<el-checkbox true-label="Y" false-label="N" v-model="pageData.showNoFinishedToolFlag">{{ labels.toolListShowNoFinish }}</el-checkbox> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="card-content"> |
|
|
|
|
|
<el-table height="200" :data="sfdcToolList" border v-loading="dataListLoading" style="width: 100%;"> |
|
|
|
|
|
<el-table-column v-for="(item,index) in columnToolArray" :key="index" |
|
|
|
|
|
:sortable="item.columnSortable" :prop="item.columnProp" |
|
|
|
|
|
:header-align="item.headerAlign" :show-overflow-tooltip="item.showOverflowTooltip" |
|
|
|
|
|
:align="item.align" :fixed="item.fixed==''?false:item.fixed" |
|
|
|
|
|
:min-width="item.columnWidth" :label="item.columnLabel"> |
|
|
<template slot-scope="scope"> |
|
|
<template slot-scope="scope"> |
|
|
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span> |
|
|
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span> |
|
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" |
|
|
|
|
|
style="width: 100px; height: 80px"/></span> |
|
|
|
|
|
|
|
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
</el-table> |
|
|
</el-table> |
|
|
</fieldset> |
|
|
|
|
|
<!--材料的使用记录--> |
|
|
|
|
|
<fieldset class="customer-fieldset" style="width: 846px;"> |
|
|
|
|
|
<legend>{{labels.materialList}}</legend> |
|
|
|
|
|
<el-row style="margin-top: -35px; width: 280px;"> |
|
|
|
|
|
<el-col :span="6"> |
|
|
|
|
|
<el-form-item :label="''" style="margin-left: 15px;"> |
|
|
|
|
|
<el-checkbox style="margin-top: 28px;" true-label="N" false-label="Y" disabled="disabled" |
|
|
|
|
|
v-model="pageData.materialFinishedFlag">{{labels.materialListNoFinish}} |
|
|
|
|
|
</el-checkbox> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="6"> |
|
|
|
|
|
<el-form-item :label="''" style="margin-left: 65px;"> |
|
|
|
|
|
<el-checkbox style="margin-top: 28px;" true-label="Y" false-label="N" |
|
|
|
|
|
v-model="pageData.showNoFinishedMaterialFlag">{{labels.materialListShowNoFinish}} |
|
|
|
|
|
</el-checkbox> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
</el-row> |
|
|
|
|
|
<el-table |
|
|
|
|
|
height="100" |
|
|
|
|
|
:data="sfdcMaterialList" |
|
|
|
|
|
border |
|
|
|
|
|
v-loading="dataListLoading" |
|
|
|
|
|
style="width: 846px; margin-top: 20px;"> |
|
|
|
|
|
<el-table-column |
|
|
|
|
|
v-for="(item,index) in columnMaterialArray" :key="index" |
|
|
|
|
|
:sortable="item.columnSortable" |
|
|
|
|
|
:prop="item.columnProp" |
|
|
|
|
|
:header-align="item.headerAlign" |
|
|
|
|
|
:show-overflow-tooltip="item.showOverflowTooltip" |
|
|
|
|
|
:align="item.align" |
|
|
|
|
|
:fixed="item.fixed==''?false:item.fixed" |
|
|
|
|
|
:width="item.columnWidth" |
|
|
|
|
|
:label="item.columnLabel"> |
|
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 材料记录 --> |
|
|
|
|
|
<div class="info-card" style="margin-top: 15px;"> |
|
|
|
|
|
<div class="card-title"> |
|
|
|
|
|
<i class="el-icon-box"></i> |
|
|
|
|
|
<span>{{ labels.materialList }}</span> |
|
|
|
|
|
<div style="margin-left: auto; display: flex; gap: 15px;"> |
|
|
|
|
|
<el-checkbox true-label="N" false-label="Y" disabled v-model="pageData.materialFinishedFlag">{{ labels.materialListNoFinish }}</el-checkbox> |
|
|
|
|
|
<el-checkbox true-label="Y" false-label="N" v-model="pageData.showNoFinishedMaterialFlag">{{ labels.materialListShowNoFinish }}</el-checkbox> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="card-content"> |
|
|
|
|
|
<el-table height="200" :data="sfdcMaterialList" border v-loading="dataListLoading" style="width: 100%;"> |
|
|
|
|
|
<el-table-column v-for="(item,index) in columnMaterialArray" :key="index" |
|
|
|
|
|
:sortable="item.columnSortable" :prop="item.columnProp" |
|
|
|
|
|
:header-align="item.headerAlign" :show-overflow-tooltip="item.showOverflowTooltip" |
|
|
|
|
|
:align="item.align" :fixed="item.fixed==''?false:item.fixed" |
|
|
|
|
|
:min-width="item.columnWidth" :label="item.columnLabel"> |
|
|
<template slot-scope="scope"> |
|
|
<template slot-scope="scope"> |
|
|
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span> |
|
|
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span> |
|
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" |
|
|
|
|
|
style="width: 100px; height: 80px"/></span> |
|
|
|
|
|
|
|
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
</el-table> |
|
|
</el-table> |
|
|
</fieldset> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
</el-row> |
|
|
|
|
|
</div> |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
<!-- 备注对话框 --> |
|
|
<!-- 备注对话框 --> |
|
|
@ -1655,6 +1630,222 @@ |
|
|
</script> |
|
|
</script> |
|
|
|
|
|
|
|
|
<style scoped lang="scss"> |
|
|
<style scoped lang="scss"> |
|
|
|
|
|
/* ==================== 机台工作台对话框现代化样式 ==================== */ |
|
|
|
|
|
.machine-workbench-dialog /deep/ .el-dialog__header { |
|
|
|
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); |
|
|
|
|
|
padding: 20px 24px; |
|
|
|
|
|
border-radius: 8px 8px 0 0; |
|
|
|
|
|
} |
|
|
|
|
|
.machine-workbench-dialog /deep/ .el-dialog__title { |
|
|
|
|
|
color: white; |
|
|
|
|
|
font-weight: 600; |
|
|
|
|
|
font-size: 18px; |
|
|
|
|
|
letter-spacing: 1px; |
|
|
|
|
|
} |
|
|
|
|
|
.machine-workbench-dialog /deep/ .el-dialog__headerbtn .el-dialog__close { |
|
|
|
|
|
color: rgba(255, 255, 255, 0.8); |
|
|
|
|
|
font-size: 18px; |
|
|
|
|
|
transition: all 0.3s; |
|
|
|
|
|
} |
|
|
|
|
|
.machine-workbench-dialog /deep/ .el-dialog__headerbtn:hover .el-dialog__close { |
|
|
|
|
|
color: white; |
|
|
|
|
|
transform: rotate(90deg); |
|
|
|
|
|
} |
|
|
|
|
|
.machine-workbench-dialog /deep/ .el-dialog__body { |
|
|
|
|
|
padding: 0; |
|
|
|
|
|
background-color: #f4f6f9; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.dialog-content-container { |
|
|
|
|
|
height: 750px; |
|
|
|
|
|
overflow-y: auto; |
|
|
|
|
|
overflow-x: hidden; |
|
|
|
|
|
padding: 20px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* 顶部操作栏 */ |
|
|
|
|
|
.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: 15px; |
|
|
|
|
|
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; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
&.primary { |
|
|
|
|
|
background: linear-gradient(135deg, #17B3A3 0%, #13998b 100%); |
|
|
|
|
|
color: white; |
|
|
|
|
|
box-shadow: 0 2px 6px rgba(23, 179, 163, 0.3); |
|
|
|
|
|
&:hover { |
|
|
|
|
|
transform: translateY(-1px); |
|
|
|
|
|
box-shadow: 0 4px 10px rgba(23, 179, 163, 0.4); |
|
|
|
|
|
} |
|
|
|
|
|
&:active { |
|
|
|
|
|
transform: translateY(0); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
&.secondary { |
|
|
|
|
|
background: white; |
|
|
|
|
|
color: #606266; |
|
|
|
|
|
border: 1px solid #dcdfe6; |
|
|
|
|
|
&:hover { |
|
|
|
|
|
color: #17B3A3; |
|
|
|
|
|
border-color: #17B3A3; |
|
|
|
|
|
background: #f0f9f8; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* 订单信息卡片 */ |
|
|
|
|
|
.info-card { |
|
|
|
|
|
background: #ffffff; |
|
|
|
|
|
border-radius: 8px; |
|
|
|
|
|
padding: 12px; |
|
|
|
|
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); |
|
|
|
|
|
border: 1px solid #e8eaed; |
|
|
|
|
|
transition: all 0.3s ease; |
|
|
|
|
|
|
|
|
|
|
|
&:hover { |
|
|
|
|
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.card-title { |
|
|
|
|
|
display: flex; |
|
|
|
|
|
align-items: center; |
|
|
|
|
|
font-size: 15px; |
|
|
|
|
|
font-weight: 600; |
|
|
|
|
|
color: #303133; |
|
|
|
|
|
margin-bottom: 12px; |
|
|
|
|
|
padding-bottom: 10px; |
|
|
|
|
|
border-bottom: 1px solid #f0f2f5; |
|
|
|
|
|
|
|
|
|
|
|
i { |
|
|
|
|
|
color: #667eea; |
|
|
|
|
|
font-size: 18px; |
|
|
|
|
|
margin-right: 8px; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.card-content { |
|
|
|
|
|
padding: 0 5px; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* 现代表单项样式 */ |
|
|
|
|
|
.info-item-modern { |
|
|
|
|
|
margin-bottom: 10px; |
|
|
|
|
|
|
|
|
|
|
|
.item-label { |
|
|
|
|
|
font-size: 12px; |
|
|
|
|
|
color: #909399; |
|
|
|
|
|
margin-bottom: 4px; |
|
|
|
|
|
font-weight: 500; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .el-input__inner { |
|
|
|
|
|
border-radius: 4px; |
|
|
|
|
|
border: 1px solid #dcdfe6; |
|
|
|
|
|
height: 32px; |
|
|
|
|
|
line-height: 32px; |
|
|
|
|
|
font-size: 13px; |
|
|
|
|
|
color: #303133; |
|
|
|
|
|
background-color: #f8f9fa; |
|
|
|
|
|
transition: all 0.3s; |
|
|
|
|
|
|
|
|
|
|
|
&:focus { |
|
|
|
|
|
border-color: #667eea; |
|
|
|
|
|
background-color: #fff; |
|
|
|
|
|
box-shadow: 0 0 0 2px rgba(102, 126, 234, 0.1); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .el-input.is-disabled .el-input__inner { |
|
|
|
|
|
background-color: #f5f7fa; |
|
|
|
|
|
border-color: #e4e7ed; |
|
|
|
|
|
color: #606266; |
|
|
|
|
|
cursor: not-allowed; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* 突出显示的输入框 */ |
|
|
|
|
|
.highlight-input /deep/ .el-input__inner { |
|
|
|
|
|
color: #f56c6c !important; |
|
|
|
|
|
font-weight: 600; |
|
|
|
|
|
background-color: #fef0f0 !important; |
|
|
|
|
|
border-color: #fbc4c4 !important; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* 表格样式优化 */ |
|
|
|
|
|
.info-card /deep/ .el-table { |
|
|
|
|
|
border-radius: 6px; |
|
|
|
|
|
overflow: hidden; |
|
|
|
|
|
|
|
|
|
|
|
th { |
|
|
|
|
|
background-color: #f5f7fa !important; |
|
|
|
|
|
color: #606266; |
|
|
|
|
|
font-weight: 600; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
td { |
|
|
|
|
|
padding: 6px 0; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* 自定义滚动条 */ |
|
|
|
|
|
.dialog-content-container::-webkit-scrollbar { |
|
|
|
|
|
width: 6px; |
|
|
|
|
|
} |
|
|
|
|
|
.dialog-content-container::-webkit-scrollbar-thumb { |
|
|
|
|
|
background: #c0c4cc; |
|
|
|
|
|
border-radius: 3px; |
|
|
|
|
|
} |
|
|
|
|
|
.dialog-content-container::-webkit-scrollbar-track { |
|
|
|
|
|
background: #f4f6f9; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/* 因为放不下 调整下上边距*/ |
|
|
/* 因为放不下 调整下上边距*/ |
|
|
.customer-css /deep/ .el-dialog { |
|
|
.customer-css /deep/ .el-dialog { |
|
|
top: 5vh !important; |
|
|
top: 5vh !important; |
|
|
|