Browse Source

试验单

ecss-tx
han\hanst 1 month ago
parent
commit
a8309e05d0
  1. 4
      src/views/modules/erf/components/erfAttachmentManager.vue
  2. 2
      src/views/modules/erf/components/expApplyForm.vue
  3. 2
      src/views/modules/erf/components/expRawMaterialList.vue
  4. 2
      src/views/modules/erf/components/expTriConfirm.vue
  5. 14
      src/views/modules/erf/expApplyApproval.vue
  6. 92
      src/views/modules/erf/expApplyList.vue
  7. 4
      src/views/modules/erf/plannerSchedule.vue
  8. 2
      src/views/modules/erf/sampleCycleReport.vue
  9. 4
      src/views/modules/erf/triConfirm.vue

4
src/views/modules/erf/components/erfAttachmentManager.vue

@ -160,7 +160,7 @@ export default {
name: 'ErfAttachmentManager',
props: {
//
//
applyNo: {
type: String,
required: true
@ -186,7 +186,7 @@ export default {
ossVisible: false,
ossForm: {
orderRef1: 'ERF', //
orderRef2: '', //
orderRef2: '', //
orderRef6: 'EXP_APPLY', //
remark: ''
},

2
src/views/modules/erf/components/expApplyForm.vue

@ -174,7 +174,7 @@
<!-- 只读模式下显示的附加信息 -->
<template v-if="readonly && saveHeaderData.applyNo">
<el-divider content-position="left">申请单信息</el-divider>
<el-divider content-position="left">试验单信息</el-divider>
<el-row :gutter="20">
<el-col :span="8">

2
src/views/modules/erf/components/expRawMaterialList.vue

@ -203,7 +203,7 @@ export default {
name: 'ExpRawMaterialList',
props: {
//
//
applyNo: {
type: String,
required: true

2
src/views/modules/erf/components/expTriConfirm.vue

@ -1328,7 +1328,7 @@ export default {
console.log('📊 完整工序数量:', completeProcesses.length, '/', this.processList.length)
if (completeProcesses.length === 0) {
this.$alert('High Risk申请单必须至少有一条完整的工序(包含车间、质量、技术三个负责人)', '操作提示', {
this.$alert('High Risk试验单必须至少有一条完整的工序(包含车间、质量、技术三个负责人)', '操作提示', {
confirmButtonText: '确定',
type: 'warning'
})

14
src/views/modules/erf/expApplyApproval.vue

@ -246,7 +246,7 @@
<!-- 审批弹窗 -->
<el-dialog
title="审批申请单"
title="审批试验单"
:visible.sync="approvalDialogVisible"
width="1100px"
:close-on-click-modal="false"
@ -254,8 +254,8 @@
<!-- Tabs切换 -->
<el-tabs v-model="activeTab" type="border-card" style="font-size: 12px; min-height: 200px">
<!-- 申请单基本信息 -->
<el-tab-pane label="申请单信息" name="basic">
<!-- 试验单基本信息 -->
<el-tab-pane label="试验单信息" name="basic">
<el-descriptions :column="2" border size="small">
<el-descriptions-item label="试验单号">{{ currentApply.applyNo }}</el-descriptions-item>
<el-descriptions-item label="事业部">{{ currentApply.buNo }}</el-descriptions-item>
@ -499,7 +499,7 @@ export default {
//
rejectDialogVisible: false,
rejectReason: '',
rejectApplyData: {}, //
rejectApplyData: {}, //
//
attachmentDialogVisible: false,
@ -564,7 +564,7 @@ export default {
this.dataList = data.page.list || []
this.totalPage = data.page.totalCount || 0
//
//
this.loadAttachmentCounts()
} else {
this.dataList = []
@ -628,7 +628,7 @@ export default {
* 快速通过 - 不需要输入原因
*/
quickApprove(row) {
this.$confirm('确认通过该申请单?', '操作提示', {
this.$confirm('确认通过该试验单?', '操作提示', {
confirmButtonText: '确定通过',
cancelButtonText: '取消',
type: 'success'
@ -825,7 +825,7 @@ export default {
if (attachmentList.length === 0) {
//
this.$message.warning('该申请单暂无附件')
this.$message.warning('该试验单暂无附件')
} else if (attachmentList.length === 1) {
//
this.previewAttachment(attachmentList[0])

92
src/views/modules/erf/expApplyList.vue

@ -86,7 +86,7 @@
</el-form-item>
<el-form-item label=" " style="margin-top: -11px">
<el-button @click="openCreateDialog()" type="success" v-if="isAuth('erf:apply:add')" plain class="add-btn">新增申请</el-button>
<el-button @click="openCreateDialog()" type="success" v-if="isAuth('erf:apply:add')" plain class="add-btn">新增试验</el-button>
<el-button
@click="deleteApplyFromToolbar()"
:disabled="!currentRow.applyNo || currentRow.status !== '草稿'"
@ -283,7 +283,7 @@
@refresh="handleDetailRefresh">
</exp-project-detail>
<div v-else class="empty-tip">
请在上方表格中选择一条申请单记录
请在上方表格中选择一条试验单记录
</div>
</el-tab-pane>-->
<el-tab-pane label="附件上传" name="attachment">
@ -295,7 +295,7 @@
:height="detailHeight">
</erf-attachment-manager>
<div v-else class="empty-tip">
请在上方表格中选择一条申请单记录
请在上方表格中选择一条试验单记录
</div>
</el-tab-pane>
<!-- Tab: 三方确认 -->
@ -309,7 +309,7 @@
:height="detailHeight">
</exp-tri-confirm>
<div v-else class="empty-tip">
请在上方表格中选择一条申请单记录
请在上方表格中选择一条试验单记录
</div>
</el-tab-pane>
@ -326,7 +326,7 @@
</exp-raw-material-list>
<div v-else class="empty-tip">
<i class="el-icon-document" style="font-size: 40px; color: #C0C4CC; margin-bottom: 10px"></i>
<p style="font-size: 13px">请选择申请单查看原材料清单</p>
<p style="font-size: 13px">请选择试验单查看原材料清单</p>
</div>
</el-tab-pane>
@ -421,7 +421,7 @@
</div>
<div v-else class="empty-tip">
<i class="el-icon-document" style="font-size: 40px; color: #C0C4CC; margin-bottom: 10px"></i>
<p style="font-size: 13px">请选择申请单查看审批状态</p>
<p style="font-size: 13px">请选择试验单查看审批状态</p>
</div>
</el-tab-pane>
@ -445,7 +445,7 @@
</div>
<div v-else class="empty-tip">
<i class="el-icon-edit-outline" style="font-size: 40px; color: #C0C4CC; margin-bottom: 10px"></i>
<p style="font-size: 13px">请选择申请单填写备注</p>
<p style="font-size: 13px">请选择试验单填写备注</p>
</div>
</el-tab-pane>
@ -524,15 +524,15 @@
</div>
</el-dialog>
<!-- 复制申请单弹窗 -->
<!-- 复制试验单弹窗 -->
<el-dialog
title="复制申请单"
title="复制试验单"
:visible.sync="copyDialogVisible"
width="400px"
:close-on-click-modal="false">
<div style="margin-bottom: 15px;margin-left: 40px; color: #606266; font-size: 13px">
<i class="el-icon-info" style="color: #409EFF"></i>
选择需要复制的内容将创建一个新的草稿申请
选择需要复制的内容将创建一个新的草稿试验
</div>
<el-form :model="copyData" label-width="120px" size="small">
<el-form-item label="源试验单号">
@ -697,7 +697,7 @@ export default {
//
dialogVisible: false,
dialogTitle: '新增申请单',
dialogTitle: '新增试验单',
dialogReadonly: false,
currentApply: {},
saveLoading: false,
@ -752,7 +752,7 @@ export default {
finalFinishDate: ''
},
//
//
copyDialogVisible: false,
copyLoading: false,
copyData: {
@ -785,7 +785,7 @@ export default {
},
/**
* 获取申请单列表
* 获取试验单列表
*/
getDataList(flag) {
if (flag === 'Y') {
@ -859,7 +859,7 @@ export default {
* 打开新增对话框
*/
openCreateDialog() {
this.dialogTitle = '新增申请单'
this.dialogTitle = '新增试验单'
this.dialogReadonly = false
this.currentApply = {}
this.dialogVisible = true
@ -869,24 +869,24 @@ export default {
* 查看详情
*/
viewDetail(row) {
this.dialogTitle = '查看申请单'
this.dialogTitle = '查看试验单'
this.dialogReadonly = true
this.currentApply = { ...row }
this.dialogVisible = true
},
/**
* 编辑申请
* 编辑试验
*/
editApply(row) {
this.dialogTitle = '修改申请单'
this.dialogTitle = '修改试验单'
this.dialogReadonly = false
this.currentApply = { ...row }
this.dialogVisible = true
},
/**
* 保存申请
* 保存试验
*/
saveApply() {
const formData = this.$refs.applyForm.getFormData()
@ -906,10 +906,10 @@ export default {
},
/**
* 下达申请 - 打开审批人确认弹窗
* 下达试验 - 打开审批人确认弹窗
*/
submitApply(row) {
//
//
console.log('🔍 开始验证附件...')
this.validateAttachmentByApi(row.applyNo).then(hasAttachment => {
if (!hasAttachment) {
@ -924,7 +924,7 @@ export default {
if (row.experimentType === 'High Risk') {
this.validateHighRiskProcessByApi(row.applyNo).then(isValid => {
if (!isValid) {
this.$alert('High Risk申请单必须至少有一条完整的工序(包含车间、质量、技术三个负责人)才能下达', '操作提示', {
this.$alert('High Risk试验单必须至少有一条完整的工序(包含车间、质量、技术三个负责人)才能下达', '操作提示', {
confirmButtonText: '确定',
type: 'warning'
})
@ -945,9 +945,9 @@ export default {
},
/**
* 通过API验证申请单是否已上传附件
* 通过API验证试验单是否已上传附件
*
* @param {String} applyNo 申请单号
* @param {String} applyNo 试验单号
* @return {Promise<Boolean>} 验证结果
*/
validateAttachmentByApi(applyNo) {
@ -973,7 +973,7 @@ export default {
/**
* 通过API验证High Risk工序
*
* @param {String} applyNo 申请单号
* @param {String} applyNo 试验单号
* @return {Promise<Boolean>} 验证结果
*/
validateHighRiskProcessByApi(applyNo) {
@ -1155,7 +1155,7 @@ export default {
/**
* 触发全局审批通知检查
* 申请单下达成功后调用立即通知审批人
* 试验单下达成功后调用立即通知审批人
*/
triggerApprovalNotification() {
try {
@ -1176,10 +1176,10 @@ export default {
},
/**
* 删除申请
* 删除试验
*/
deleteApply(row) {
this.$confirm('确定删除该申请单?', '操作提示', {
this.$confirm('确定删除该试验单?', '操作提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
@ -1196,10 +1196,10 @@ export default {
},
/**
* 撤回申请
* 撤回试验
*/
withdrawApply(row) {
this.$confirm('确定撤回该申请单?撤回后将变为草稿状态', '操作提示', {
this.$confirm('确定撤回该试验单?撤回后将变为草稿状态', '操作提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
@ -1263,7 +1263,7 @@ export default {
*/
saveRemarkHandle() {
if (!this.currentRow.applyNo) {
this.$message.warning('请先选择申请单')
this.$message.warning('请先选择试验单')
return
}
this.remarkSaving = true
@ -1541,16 +1541,16 @@ export default {
},
/**
* 工具栏删除申请
* 工具栏删除试验
*/
deleteApplyFromToolbar() {
if (!this.currentRow.applyNo) {
this.$message.warning('请先选择一条申请单记录')
this.$message.warning('请先选择一条试验单记录')
return
}
if (this.currentRow.status !== '草稿') {
this.$message.warning('只能删除草稿状态的申请单')
this.$message.warning('只能删除草稿状态的试验单')
return
}
@ -1558,11 +1558,11 @@ export default {
},
/**
* 工具栏撤回申请
* 工具栏撤回试验
*/
withdrawApplyFromToolbar() {
if (!this.currentRow.applyNo) {
this.$message.warning('请先选择一条申请单记录')
this.$message.warning('请先选择一条试验单记录')
return
}
@ -1576,16 +1576,16 @@ export default {
},
/**
* 工具栏取消申请
* 工具栏取消试验
*/
cancelApplyFromToolbar() {
if (!this.currentRow.applyNo) {
this.$message.warning('请先选择一条申请单记录')
this.$message.warning('请先选择一条试验单记录')
return
}
if (this.currentRow.status === '草稿') {
this.$message.warning('草稿状态的申请单请直接删除')
this.$message.warning('草稿状态的试验单请直接删除')
return
}
@ -1594,7 +1594,7 @@ export default {
return
}
this.$confirm('确定取消该申请单?取消后将终止所有待审批流程,状态变更为已取消', '操作提示', {
this.$confirm('确定取消该试验单?取消后将终止所有待审批流程,状态变更为已取消', '操作提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
@ -1616,11 +1616,11 @@ export default {
},
/**
* 打开复制申请单弹窗
* 打开复制试验单弹窗
*/
openCopyDialog() {
if (!this.currentRow.applyNo) {
this.$message.warning('请先选择一条申请单记录')
this.$message.warning('请先选择一条试验单记录')
return
}
@ -1638,7 +1638,7 @@ export default {
},
/**
* 确认复制申请
* 确认复制试验
*/
confirmCopy() {
if (!this.copyData.applyNo) {
@ -1658,7 +1658,7 @@ export default {
copyExpApply(copyParams).then(({data}) => {
this.copyLoading = false
if (data && data.code === 0) {
this.$message.success('复制成功,已创建新的草稿申请单:' + data.newApplyNo)
this.$message.success('复制成功,已创建新的草稿试验单:' + data.newApplyNo)
this.copyDialogVisible = false
this.getDataList()
} else {
@ -1671,15 +1671,15 @@ export default {
},
/**
* 催办向该申请单所有未确认的审批人技术经理生产经理质量经理计划员发送催办邮件
* 催办向该试验单所有未确认的审批人技术经理生产经理质量经理计划员发送催办邮件
*/
urgeApproval() {
if (!this.currentRow.applyNo) {
this.$message.warning('请先选择一条申请单记录')
this.$message.warning('请先选择一条试验单记录')
return
}
this.$confirm(
`确定向申请单【${this.currentRow.applyNo}】的所有未确认审批人发送催办邮件?`,
`确定向试验单【${this.currentRow.applyNo}】的所有未确认审批人发送催办邮件?`,
'催办确认',
{
confirmButtonText: '确定发送',

4
src/views/modules/erf/plannerSchedule.vue

@ -243,11 +243,11 @@
<span>计划员排产</span>
</div>
<!-- 申请单基本信息 -->
<!-- 试验单基本信息 -->
<div class="schedule-info-section">
<div class="info-title">
<i class="el-icon-info"></i>
申请单信息
试验单信息
</div>
<el-descriptions :column="2" border size="small" class="apply-descriptions">
<el-descriptions-item label="试验单号">{{ scheduleData.applyNo }}</el-descriptions-item>

2
src/views/modules/erf/sampleCycleReport.vue

@ -303,7 +303,7 @@ export default {
actualFinishEndDate: '',
cycleDifferenceMin: null,
cycleDifferenceMax: null,
status: '已完成', //
status: '已完成', //
page: 1,
limit: 20
},

4
src/views/modules/erf/triConfirm.vue

@ -200,7 +200,7 @@
:close-on-click-modal="false"
v-drag>
<!-- 申请单和工序信息 -->
<!-- 试验单和工序信息 -->
<div class="confirm-info">
<el-descriptions :column="2" border size="small">
<el-descriptions-item label="试验单号">{{ confirmData.applyNo }}</el-descriptions-item>
@ -365,7 +365,7 @@ export default {
filterData() {
let result = [...this.dataList]
//
//
if (this.queryData.applyNo) {
const keyword = this.queryData.applyNo.toLowerCase()
result = result.filter(item =>

Loading…
Cancel
Save