Browse Source

refactor(order): 重构订单检验相关功能实现

- 替换检验请求明细查询接口为按PO明细查询检验数据
- 更新检验明细列表组件的数据查询方式和字段映射
- 调整PO订单详情页面的表单布局和字段显示
- 优化检验待办列表的状态筛选逻辑和默认值处理
- 在我的检验列表中增加状态判断和跳转功能
- 新增根据检验单号跳转到IQC结果录入页面的功能
- 统一多个页面中表格高度计算方式以保持一致性
- 调整搜索组件中的订单编号和项目编号传递逻辑
master
qiankanghui 2 weeks ago
parent
commit
82a66b4538
  1. 5
      src/api/order/poOrder.js
  2. 19
      src/views/modules/inspection/inspectionPendingList.vue
  3. 6
      src/views/modules/inspection/inspectionRequestAudit.vue
  4. 6
      src/views/modules/inspection/inspectionRequestList.vue
  5. 31
      src/views/modules/inspection/myInspectionList.vue
  6. 6
      src/views/modules/inspection/srmFeeList.vue
  7. 9
      src/views/modules/order/com_inspectionDetailList.vue
  8. 74
      src/views/modules/order/com_poOrderDetail.vue
  9. 3
      src/views/modules/order/poOrder_search.vue
  10. 35
      src/views/modules/qc/IQCResultEntry.vue

5
src/api/order/poOrder.js

@ -8,4 +8,7 @@ export const updatePoDetail = (data) => createAPI(`/pODetail/save`, 'post', data
export const deletePoDetail = (data) => createAPI(`/pODetail/delete`, 'post', data)
//批量更新
export const batchUpdatePoDetail = (data) => createAPI(`/pODetail/batchUpdatePoDetail`, 'post', data)
export const batchUpdatePoDetail = (data) => createAPI(`/pODetail/batchUpdatePoDetail`, 'post', data)
// 根据PO订单查询验货申请明细
export const getInspectionByPODetail = (data) => createAPI(`/pODetail/getInspectionByPODetail`, 'post', data)

19
src/views/modules/inspection/inspectionPendingList.vue

@ -18,7 +18,8 @@
</div>
</el-form-item>
<el-form-item label="状态" class="search-item">
<el-select v-model="searchData.status" disabled style="width: 60%">
<el-select v-model="searchData.status" clearable placeholder="请选择" style="width: 60%">
<el-option label="全部" value="" />
<el-option label="已排程" value="Scheduled" />
</el-select>
</el-form-item>
@ -156,7 +157,7 @@ export default {
requestNo: '',
supplierNo: '',
supplierName: '',
status: 'Scheduled', //
status: 'Scheduled', //
qcOperator: '', // QC
createBy: '',
requestDateStart: '',
@ -425,8 +426,10 @@ export default {
},
mounted () {
this.$nextTick(() => {
this.height = (window.innerHeight - 220) / 2
this.detailHeight = (window.innerHeight - 220) / 2
//
const calculatedHeight = (window.innerHeight - 220) / 2
this.height = calculatedHeight
this.detailHeight = calculatedHeight
//
const query = this.$route.query
@ -491,13 +494,15 @@ export default {
}
},
// - 🔑 QC
// - 🔑
getMainData () {
this.searchData.limit = this.pageSize
this.searchData.page = this.pageIndex
// 🔑 ""
this.searchData.status = 'Scheduled'
// 🔑 undefined null()使""()
if (this.searchData.status === undefined || this.searchData.status === null) {
this.searchData.status = 'Scheduled'
}
// QC

6
src/views/modules/inspection/inspectionRequestAudit.vue

@ -381,8 +381,10 @@ export default {
},
mounted () {
this.$nextTick(() => {
this.height = (window.innerHeight - 220) / 2
this.detailHeight = (window.innerHeight - 220) / 2
//
const calculatedHeight = (window.innerHeight - 220) / 2
this.height = calculatedHeight
this.detailHeight = calculatedHeight
this.getMainData()
})
},

6
src/views/modules/inspection/inspectionRequestList.vue

@ -649,8 +649,10 @@ export default {
},
mounted () {
this.$nextTick(() => {
this.height = (window.innerHeight - 220) / 2
this.detailHeight = (window.innerHeight - 220) / 2
//
const calculatedHeight = (window.innerHeight - 220) / 2
this.height = calculatedHeight
this.detailHeight = calculatedHeight
this.getMainData()
})
},

31
src/views/modules/inspection/myInspectionList.vue

@ -28,7 +28,8 @@
<el-table-column prop="inspectContract" label="联系人" header-align="center" align="center" width="100"/>
<el-table-column fixed="right" header-align="center" align="center" width="120" label="操作">
<template slot-scope="scope">
<a class="customer-a" @click="startInspection(scope.row)">开始验货</a>
<a v-if="scope.row.statusDb === 'Scheduled'" class="customer-a" @click="startInspection(scope.row)">开始验货</a>
<a v-if="scope.row.statusDb === 'Inspecting'" class="customer-a" @click="goToIQCResult(scope.row)">跳转</a>
</template>
</el-table-column>
</el-table>
@ -65,7 +66,8 @@ export default {
totalPage: 0,
searchData: {
page: 1,
limit: 50
limit: 50,
statusDb: 'Scheduled,Inspecting'
}
}
},
@ -126,6 +128,7 @@ export default {
'Confirmed': '已确认',
'Scheduled': '已排程',
'Audited': '已审核',
'Inspecting': '验货中',
'Inspected': '已验货',
'Completed': '已完成',
'Cancelled': '已取消'
@ -133,6 +136,22 @@ export default {
return statusMap[statusDb] || statusDb || '-'
},
// IQCResultEntry
goToIQCResult (row) {
// 使 inspectNo inspectionNo
const inspectionNo = row.inspectNo || row.inspectionNo || ''
if (!inspectionNo) {
this.$message.warning('未找到检验单号')
return
}
this.$router.push({
name: 'qc-IQCResultEntry',
query: {
inspectionNo: inspectionNo
}
})
},
//
startInspection (row) {
this.$confirm(`确认开始验货?\n申请单号:${row.requestNo}\n供应商:${row.supplierName}`, '提示', {
@ -163,6 +182,14 @@ export default {
this.$message.success('开始验货成功')
//
this.getList()
// IQCResultEntry
this.$router.push({
name: 'qc-IQCResultEntry',
query: {
inspectionNo: inspectionNo
}
})
} else {
this.$message.error((data && data.msg) || '开始验货失败')
}

6
src/views/modules/inspection/srmFeeList.vue

@ -313,8 +313,10 @@ export default {
},
mounted() {
this.$nextTick(() => {
this.height = (window.innerHeight - 220) / 2
this.detailHeight = (window.innerHeight - 220) / 2
//
const calculatedHeight = (window.innerHeight - 220) / 2
this.height = calculatedHeight
this.detailHeight = calculatedHeight
this.getMainData()
})
},

9
src/views/modules/order/com_inspectionDetailList.vue

@ -38,7 +38,7 @@
</template>
<script>
import { getInspectionRequestDetailList } from '@/api/inspection/inspectionRequestHeader.js'
import { getInspectionByPODetail } from '@/api/order/poOrder.js'
export default {
name: 'InspectionDetailList',
@ -48,7 +48,8 @@ export default {
dataList: [],
searchData: {
site: this.$store.state.user.site,
orderRef1: '',
orderNo: '',
itemNo: null,
height: '300',
page: 1,
limit: 20
@ -92,7 +93,7 @@ export default {
fixed: false
},
{
columnProp: 'qty',
columnProp: 'inspectQty',
headerAlign: 'center',
align: 'center',
columnLabel: '验货数量',
@ -141,7 +142,7 @@ export default {
page: this.pageIndex,
limit: this.pageSize
}
getInspectionRequestDetailList(params).then(({ data }) => {
getInspectionByPODetail(params).then(({ data }) => {
if (data && data.code === 0) {
this.dataList = data.page.list || []
this.pageIndex = data.page.currPage

74
src/views/modules/order/com_poOrderDetail.vue

@ -56,29 +56,19 @@
<el-input v-model="detailData.price" disabled />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="PO Qty">
<el-input v-model="detailData.qty" disabled />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="PO Value">
<el-input v-model="detailData.value" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="4">
<el-form-item label="A-Qty">
<el-input v-model="detailData.shipQty" disabled />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="A-Value">
<el-input v-model="detailData.sumPrice" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="4">
<el-form-item label="Departure Port">
<el-input v-model="detailData.departure" disabled />
@ -99,9 +89,6 @@
<el-input v-model="detailData.orderDate" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="4">
<el-form-item label="Planner Release Date">
<el-input v-model="detailData.enquiry" disabled />
@ -112,6 +99,8 @@
<el-input v-model="detailData.status" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="4">
<el-form-item label="PI Confirmed Date">
<el-input v-model="detailData.confirmed" disabled />
@ -132,9 +121,6 @@
<el-input v-model="detailData.crd" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="4">
<el-form-item label="Inspection Date">
<el-input v-model="detailData.inspection" disabled />
@ -145,6 +131,9 @@
<el-input v-model="detailData.realCrd" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="4">
<el-form-item label="ETA">
<el-input v-model="detailData.eta" disabled />
@ -165,9 +154,6 @@
<el-input v-model="detailData.docSent" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="4">
<el-form-item label="Telex Release">
<el-input v-model="detailData.telexRelease" disabled />
@ -178,6 +164,9 @@
<el-input v-model="detailData.advancePayment" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="4">
<el-form-item label="Advanc Paid">
<el-input v-model="detailData.advancePaid" disabled />
@ -198,9 +187,6 @@
<el-input v-model="detailData.edit" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="4">
<el-form-item label="Last Editor">
<el-input v-model="detailData.endPlanner" disabled />
@ -211,13 +197,40 @@
<el-input v-model="detailData.remarkDelay" disabled />
</el-form-item>
</el-col>
<el-col :span="4">
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="Comments">
<el-input v-model="detailData.remark" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label=" ">
<span></span>
</el-form-item>
</el-col>
</el-row>
<!-- 数量信息单独一行 -->
<el-row :gutter="20">
<el-col :span="4">
<el-form-item label="PO Qty">
<el-input v-model="detailData.qty" disabled />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="Inspection Completed Qty">
<el-form-item label="A-Qty">
<el-input v-model="detailData.shipQty" disabled />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="已申请验货数量">
<el-input v-model="detailData.inspectingQty" disabled />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="验货完成数量">
<el-input v-model="detailData.inspectionCompletedQty" disabled />
</el-form-item>
</el-col>
@ -256,12 +269,9 @@ export default {
width: 100%;
}
// -
.el-form-item {
margin-bottom: 20px;
margin-bottom: 6px;
}
// 14px
/deep/ .el-form-item__label {
font-size: 14px;
color: #606266;
@ -270,7 +280,6 @@ export default {
font-weight: normal;
}
// -
/deep/ .el-input__inner {
height: 32px;
line-height: 32px;
@ -280,7 +289,6 @@ export default {
background-color: #fff;
}
// disabled - disabled
/deep/ .el-input.is-disabled .el-input__inner {
background-color: #f5f7fa;
border-color: #e4e7ed;

3
src/views/modules/order/poOrder_search.vue

@ -616,7 +616,8 @@ export default {
refreshInspectionTable() {
let inData = {
site: this.$store.state.user.site,
orderRef1: this.currentRow.poNo || '',
orderNo: this.currentRow.orderNo || '',
itemNo: this.currentRow.itemNo || null,
height: Number(this.height) - 20
}
this.$refs.inspectionDetailList.init(inData)

35
src/views/modules/qc/IQCResultEntry.vue

@ -2034,6 +2034,41 @@
//
this.getTableUserColumn(this.$route.meta.menuId+'table1',1)
this.getTableUserColumn(this.$route.meta.menuId+'table2',2)
// inspectionNo
if (this.$route.query.inspectionNo) {
// searchData inspectionNo
this.searchData = {
site: '',
userName: this.$store.state.user.name,
inspectionNo: this.$route.query.inspectionNo,
inspectionTypeNo: '105',
isQualified: '',
buNo: '',
startDate: '',
endDate: '',
startDate2: '',
endDate2: '',
partNo: '',
partDesc: '',
cinvSourceCode: '',
sku: '',
state: '',
inspectionResult: '',
supplierDesc: '',
disposalMeasures: '',
inspectorName: '',
page: 1,
limit: 10,
poOrderNo: '',
poItemNo: '',
orderType: '',
states: ['未开始', '待检验'],
submissionType: '',
invdefinetype: ''
}
}
if (!this.authSearch) {
//
this.getDataList()

Loading…
Cancel
Save