|
|
@ -36,51 +36,87 @@ |
|
|
</el-col> |
|
|
</el-col> |
|
|
</el-row> |
|
|
</el-row> |
|
|
<el-row :gutter="12" class="info-row"> |
|
|
<el-row :gutter="12" class="info-row"> |
|
|
<el-col :span="6"> |
|
|
|
|
|
|
|
|
<el-col :span="4"> |
|
|
<div class="info-item-modern"> |
|
|
<div class="info-item-modern"> |
|
|
<label>要求完工日期</label> |
|
|
<label>要求完工日期</label> |
|
|
<el-input v-model="scheduleData.planFinishTime" :readonly="true" size="small"></el-input> |
|
|
<el-input v-model="scheduleData.planFinishTime" :readonly="true" size="small"></el-input> |
|
|
</div> |
|
|
</div> |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="6"> |
|
|
|
|
|
|
|
|
<el-col :span="4"> |
|
|
<div class="info-item-modern"> |
|
|
<div class="info-item-modern"> |
|
|
<label>要求开工日期</label> |
|
|
<label>要求开工日期</label> |
|
|
<el-input v-model="scheduleData.planStartTime" :readonly="true" size="small"></el-input> |
|
|
<el-input v-model="scheduleData.planStartTime" :readonly="true" size="small"></el-input> |
|
|
</div> |
|
|
</div> |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="4"> |
|
|
|
|
|
|
|
|
<el-col :span="3"> |
|
|
<div class="info-item-modern"> |
|
|
<div class="info-item-modern"> |
|
|
<label>派工需求数量</label> |
|
|
<label>派工需求数量</label> |
|
|
<el-input v-model="scheduleData.qtyRequiredOriginal" :readonly="true" size="small"></el-input> |
|
|
<el-input v-model="scheduleData.qtyRequiredOriginal" :readonly="true" size="small"></el-input> |
|
|
</div> |
|
|
</div> |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="4"> |
|
|
|
|
|
|
|
|
<el-col :span="3"> |
|
|
|
|
|
<div class="info-item-modern"> |
|
|
|
|
|
<label>生产总数</label> |
|
|
|
|
|
<el-input v-model="scheduleData.productionQty" :readonly="true" size="small"></el-input> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="2"> |
|
|
|
|
|
<div class="info-item-modern"> |
|
|
|
|
|
<label>总卷数</label> |
|
|
|
|
|
<el-input v-model="scheduleData.totalRollQty" :readonly="true" size="small"></el-input> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="2"> |
|
|
|
|
|
<div class="info-item-modern"> |
|
|
|
|
|
<label>每卷总数</label> |
|
|
|
|
|
<el-input v-model="scheduleData.totalPerVolume" :readonly="true" size="small"></el-input> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="3"> |
|
|
|
|
|
<div class="info-item-modern"> |
|
|
|
|
|
<label>产出卷数</label> |
|
|
|
|
|
<el-input v-model="scheduleData.productionRollQty" :readonly="true" size="small"></el-input> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="3"> |
|
|
|
|
|
<div class="info-item-modern"> |
|
|
|
|
|
<label>产出数量</label> |
|
|
|
|
|
<el-input v-model="scheduleData.qtyApprove" :readonly="true" size="small"></el-input> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
</el-row> |
|
|
|
|
|
<el-row :gutter="12" class="info-row"> |
|
|
|
|
|
<el-col :span="3"> |
|
|
<div class="info-item-modern"> |
|
|
<div class="info-item-modern"> |
|
|
<label>排产日期</label> |
|
|
<label>排产日期</label> |
|
|
<el-input v-model="scheduleData.scheduledDate" :readonly="true" size="small"></el-input> |
|
|
<el-input v-model="scheduleData.scheduledDate" :readonly="true" size="small"></el-input> |
|
|
</div> |
|
|
</div> |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="4"> |
|
|
|
|
|
|
|
|
<el-col :span="3"> |
|
|
<div class="info-item-modern"> |
|
|
<div class="info-item-modern"> |
|
|
<label>班次</label> |
|
|
<label>班次</label> |
|
|
<el-input v-model="scheduleData.shiftNo" :readonly="true" size="small"></el-input> |
|
|
<el-input v-model="scheduleData.shiftNo" :readonly="true" size="small"></el-input> |
|
|
</div> |
|
|
</div> |
|
|
</el-col> |
|
|
</el-col> |
|
|
</el-row> |
|
|
|
|
|
<el-row :gutter="12" class="info-row"> |
|
|
|
|
|
<el-col :span="8"> |
|
|
|
|
|
|
|
|
<el-col :span="3"> |
|
|
<div class="info-item-modern"> |
|
|
<div class="info-item-modern"> |
|
|
<label>前道工序</label> |
|
|
<label>前道工序</label> |
|
|
<el-input v-model="scheduleData.preItemDesc" :readonly="true" size="small"></el-input> |
|
|
<el-input v-model="scheduleData.preItemDesc" :readonly="true" size="small"></el-input> |
|
|
</div> |
|
|
</div> |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="8"> |
|
|
|
|
|
|
|
|
<el-col :span="3"> |
|
|
<div class="info-item-modern"> |
|
|
<div class="info-item-modern"> |
|
|
<label>后道工序</label> |
|
|
<label>后道工序</label> |
|
|
<el-input v-model="scheduleData.nextItemDesc" :readonly="true" size="small"></el-input> |
|
|
<el-input v-model="scheduleData.nextItemDesc" :readonly="true" size="small"></el-input> |
|
|
</div> |
|
|
</div> |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="8"> |
|
|
|
|
|
|
|
|
<el-col :span="6"> |
|
|
|
|
|
<div class="info-item-modern"> |
|
|
|
|
|
<label>工艺备注</label> |
|
|
|
|
|
<el-input v-model="scheduleData.soRemark" :readonly="true" size="small"></el-input> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="6"> |
|
|
<div class="info-item-modern" style="margin-top: 24px;"> |
|
|
<div class="info-item-modern" style="margin-top: 24px;"> |
|
|
<el-checkbox true-label="true" false-label="false" v-model="scheduleData.currentRollFlag"> |
|
|
<el-checkbox true-label="true" false-label="false" v-model="scheduleData.currentRollFlag"> |
|
|
仅显示当前卷信息 |
|
|
仅显示当前卷信息 |
|
|
@ -3156,6 +3192,12 @@ export default { |
|
|
planStartTime: '', |
|
|
planStartTime: '', |
|
|
planFinishTime: '', |
|
|
planFinishTime: '', |
|
|
qtyRequiredOriginal: 0, |
|
|
qtyRequiredOriginal: 0, |
|
|
|
|
|
productionQty: '', // 生产总数 |
|
|
|
|
|
totalRollQty: '', // 总卷数 |
|
|
|
|
|
totalPerVolume: '', // 每卷总数 |
|
|
|
|
|
productionRollQty: '', // 产出卷数 |
|
|
|
|
|
qtyApprove: '', // 产出数量 |
|
|
|
|
|
soRemark: '', // 工艺备注 |
|
|
preItemNo: '', |
|
|
preItemNo: '', |
|
|
preItemDesc: '', |
|
|
preItemDesc: '', |
|
|
nextItemDesc: '', |
|
|
nextItemDesc: '', |
|
|
@ -3167,7 +3209,7 @@ export default { |
|
|
checkMultipleRoll: '', |
|
|
checkMultipleRoll: '', |
|
|
rowCount: '', |
|
|
rowCount: '', |
|
|
rollCount: '', |
|
|
rollCount: '', |
|
|
carrierNo: '' |
|
|
|
|
|
|
|
|
carrierNo: '', |
|
|
}, |
|
|
}, |
|
|
currentRollOps: { |
|
|
currentRollOps: { |
|
|
site: this.$store.state.user.site, |
|
|
site: this.$store.state.user.site, |
|
|
@ -3962,6 +4004,12 @@ export default { |
|
|
this.scheduleData.planStartTime = data.row.planStartTime; |
|
|
this.scheduleData.planStartTime = data.row.planStartTime; |
|
|
this.scheduleData.planFinishTime = data.row.planFinishTime; |
|
|
this.scheduleData.planFinishTime = data.row.planFinishTime; |
|
|
this.scheduleData.qtyRequiredOriginal = data.row.qtyRequiredOriginal; |
|
|
this.scheduleData.qtyRequiredOriginal = data.row.qtyRequiredOriginal; |
|
|
|
|
|
this.scheduleData.productionQty = data.row.productionQty; |
|
|
|
|
|
this.scheduleData.totalRollQty = data.row.totalRollQty; |
|
|
|
|
|
this.scheduleData.totalPerVolume = data.row.totalPerVolume; |
|
|
|
|
|
this.scheduleData.productionRollQty = data.row.productionRollQty; |
|
|
|
|
|
this.scheduleData.qtyApprove = data.row.qtyApprove; |
|
|
|
|
|
this.scheduleData.soRemark = data.row.soRemark; |
|
|
this.scheduleData.scheduledDate = data.row.scheduledDate; |
|
|
this.scheduleData.scheduledDate = data.row.scheduledDate; |
|
|
this.scheduleData.shiftNo = data.row.shiftNo; |
|
|
this.scheduleData.shiftNo = data.row.shiftNo; |
|
|
this.scheduleData.preItemDesc = data.row.preItemDesc; |
|
|
this.scheduleData.preItemDesc = data.row.preItemDesc; |
|
|
@ -3974,6 +4022,7 @@ export default { |
|
|
this.scheduleData.rowCount = data.row.rowCount; |
|
|
this.scheduleData.rowCount = data.row.rowCount; |
|
|
this.scheduleData.rollCount = data.row.rollCount; |
|
|
this.scheduleData.rollCount = data.row.rollCount; |
|
|
this.scheduleData.carrierNo = data.row.carrierNo; |
|
|
this.scheduleData.carrierNo = data.row.carrierNo; |
|
|
|
|
|
|
|
|
}); |
|
|
}); |
|
|
}, |
|
|
}, |
|
|
// 获取当前卷的信息 |
|
|
// 获取当前卷的信息 |
|
|
@ -4133,6 +4182,12 @@ export default { |
|
|
this.scheduleData.planStartTime = data.row.planStartTime; |
|
|
this.scheduleData.planStartTime = data.row.planStartTime; |
|
|
this.scheduleData.planFinishTime = data.row.planFinishTime; |
|
|
this.scheduleData.planFinishTime = data.row.planFinishTime; |
|
|
this.scheduleData.qtyRequiredOriginal = data.row.qtyRequiredOriginal; |
|
|
this.scheduleData.qtyRequiredOriginal = data.row.qtyRequiredOriginal; |
|
|
|
|
|
this.scheduleData.productionQty = data.row.productionQty; |
|
|
|
|
|
this.scheduleData.totalRollQty = data.row.totalRollQty; |
|
|
|
|
|
this.scheduleData.totalPerVolume = data.row.totalPerVolume; |
|
|
|
|
|
this.scheduleData.productionRollQty = data.row.productionRollQty; |
|
|
|
|
|
this.scheduleData.qtyApprove = data.row.qtyApprove; |
|
|
|
|
|
this.scheduleData.soRemark = data.row.soRemark; |
|
|
this.scheduleData.scheduledDate = data.row.scheduledDate; |
|
|
this.scheduleData.scheduledDate = data.row.scheduledDate; |
|
|
this.scheduleData.shiftNo = data.row.shiftNo; |
|
|
this.scheduleData.shiftNo = data.row.shiftNo; |
|
|
this.scheduleData.preItemDesc = data.row.preItemDesc; |
|
|
this.scheduleData.preItemDesc = data.row.preItemDesc; |
|
|
@ -5017,27 +5072,27 @@ export default { |
|
|
this.$message.warning('该文件暂无预览路径'); |
|
|
this.$message.warning('该文件暂无预览路径'); |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取文件后缀 |
|
|
// 获取文件后缀 |
|
|
const fileName = row.sopName || row.sopUrl; |
|
|
const fileName = row.sopName || row.sopUrl; |
|
|
let fileSuffix = ''; |
|
|
let fileSuffix = ''; |
|
|
if (fileName.includes('.')) { |
|
|
if (fileName.includes('.')) { |
|
|
fileSuffix = fileName.substring(fileName.lastIndexOf('.') + 1).toLowerCase(); |
|
|
fileSuffix = fileName.substring(fileName.lastIndexOf('.') + 1).toLowerCase(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 判断文件类型 |
|
|
// 判断文件类型 |
|
|
const imageTypes = ['jpg', 'jpeg', 'png', 'gif', 'bmp']; |
|
|
const imageTypes = ['jpg', 'jpeg', 'png', 'gif', 'bmp']; |
|
|
const videoTypes = ['mp4', 'avi', 'mov', 'wmv', 'flv']; |
|
|
const videoTypes = ['mp4', 'avi', 'mov', 'wmv', 'flv']; |
|
|
const pdfTypes = ['pdf']; |
|
|
const pdfTypes = ['pdf']; |
|
|
const txtTypes = ['txt']; |
|
|
const txtTypes = ['txt']; |
|
|
const officeTypes = ['doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx']; |
|
|
const officeTypes = ['doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx']; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 不支持的文件类型 |
|
|
// 不支持的文件类型 |
|
|
if (officeTypes.includes(fileSuffix)) { |
|
|
if (officeTypes.includes(fileSuffix)) { |
|
|
this.$message.warning(`暂不支持在线预览${fileSuffix.toUpperCase()}文件,请使用下载功能`); |
|
|
this.$message.warning(`暂不支持在线预览${fileSuffix.toUpperCase()}文件,请使用下载功能`); |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 设置MIME类型 |
|
|
// 设置MIME类型 |
|
|
let mimeType = 'application/octet-stream'; |
|
|
let mimeType = 'application/octet-stream'; |
|
|
if (imageTypes.includes(fileSuffix)) { |
|
|
if (imageTypes.includes(fileSuffix)) { |
|
|
@ -5049,7 +5104,7 @@ export default { |
|
|
} else if (txtTypes.includes(fileSuffix)) { |
|
|
} else if (txtTypes.includes(fileSuffix)) { |
|
|
mimeType = 'text/plain'; |
|
|
mimeType = 'text/plain'; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 调用下载API并创建Blob预览 |
|
|
// 调用下载API并创建Blob预览 |
|
|
downloadSopFile(row.sopUrl).then(({ data }) => { |
|
|
downloadSopFile(row.sopUrl).then(({ data }) => { |
|
|
const blob = new Blob([data], { type: mimeType }); |
|
|
const blob = new Blob([data], { type: mimeType }); |
|
|
|