Browse Source

feat(quality): 优化质量模块界面和功能

- 调整表格列宽并居中显示标题
- 重构搜索表单布局为垂直排列
- 添加供应商和Part No选择功能
- 增加实际验货日期字段显示
- 优化新增编辑表单的字段交互
- 统一表格头部样式和文字对齐
- 完善表单验证和数据回填逻辑
- 添加日期范围筛选功能
- 优化组件间数据传递机制
master
qiankanghui 7 days ago
parent
commit
c9c8056c49
  1. 177
      src/views/modules/inspection/com_requestFeeTab.vue
  2. 3
      src/views/modules/npcIqc/npcIqcList.vue
  3. 133
      src/views/modules/quality/com_qualityIssuePoList.vue
  4. 241
      src/views/modules/quality/qualityIssueList.vue

177
src/views/modules/inspection/com_requestFeeTab.vue

@ -12,10 +12,17 @@
style="width: 100%;"> style="width: 100%;">
<el-table-column type="index" label="序号" header-align="center" align="center" width="60"/> <el-table-column type="index" label="序号" header-align="center" align="center" width="60"/>
<el-table-column prop="requestNo" label="申请单号" header-align="center" align="left" min-width="150"/> <el-table-column prop="requestNo" label="申请单号" header-align="center" align="left" min-width="150"/>
<el-table-column prop="supplierNo" label="供应商编码" header-align="center" align="left" width="120"/>
<el-table-column prop="supplierName" label="供应商名称" header-align="center" align="left" min-width="180"/>
<el-table-column prop="needInspectDate" label="实际验货日期" header-align="center" align="center" width="120">
<template slot-scope="scope">
{{ formatDate(scope.row.needInspectDate) }}
</template>
</el-table-column>
<el-table-column prop="createBy" label="关联人" header-align="center" align="left" width="120"/> <el-table-column prop="createBy" label="关联人" header-align="center" align="left" width="120"/>
<el-table-column prop="createDate" label="关联时间" header-align="center" align="center" width="160"> <el-table-column prop="createDate" label="关联时间" header-align="center" align="center" width="160">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.createDate | formatDate }}
{{ scope.row.createDate | formatDateTime }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" header-align="center" align="center" width="100" fixed="right"> <el-table-column label="操作" header-align="center" align="center" width="100" fixed="right">
@ -30,14 +37,59 @@
title="选择申请单" title="选择申请单"
:visible.sync="selectDialogVisible" :visible.sync="selectDialogVisible"
width="70%" width="70%"
top="5vh">
<el-form :inline="true" size="small">
<el-form-item label="申请单号">
<el-input v-model="searchRequestNo" placeholder="请输入申请单号" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="searchRequests">查询</el-button>
</el-form-item>
top="5vh"
@open="resetSearch">
<el-form :inline="true" label-position="top" class="search-form-inline">
<div class="search-row">
<el-form-item label="申请单号" class="search-item">
<el-input
v-model="filterRequestNo"
placeholder="请输入申请单号"
@keyup.enter.native="searchRequests"/>
</el-form-item>
<el-form-item class="search-item">
<span slot="label" style="cursor:pointer;" @click="openSupplierChooser">
<a href="#">供应商名称</a>
</span>
<el-input
v-model="filterSupplierName"
placeholder="请选择供应商"
disabled/>
</el-form-item>
<el-form-item label="开始日期" class="search-item">
<el-date-picker
v-model="filterNeedInspectDateStart"
type="date"
value-format="yyyy-MM-dd"
placeholder="开始日期"
style="width: 140px;">
</el-date-picker>
</el-form-item>
<el-form-item label="结束日期" class="search-item">
<el-date-picker
v-model="filterNeedInspectDateEnd"
type="date"
value-format="yyyy-MM-dd"
placeholder="结束日期"
style="width: 140px;">
</el-date-picker>
</el-form-item>
<el-form-item label=" " class="search-item search-btn-item">
<el-button type="primary" @click="searchRequests">
查询
</el-button>
<el-button @click="resetSearch">
重置
</el-button>
</el-form-item>
</div>
</el-form> </el-form>
<el-table <el-table
@ -48,7 +100,13 @@
v-loading="requestLoading"> v-loading="requestLoading">
<el-table-column type="selection" width="55" align="center"/> <el-table-column type="selection" width="55" align="center"/>
<el-table-column prop="requestNo" label="申请单号" header-align="center" align="left" min-width="150"/> <el-table-column prop="requestNo" label="申请单号" header-align="center" align="left" min-width="150"/>
<el-table-column prop="supplierName" label="供应商名称" header-align="center" align="left" min-width="200"/>
<el-table-column prop="supplierNo" label="供应商编码" header-align="center" align="left" width="120"/>
<el-table-column prop="supplierName" label="供应商名称" header-align="center" align="left" min-width="180"/>
<el-table-column prop="needInspectDate" label="实际验货日期" header-align="center" align="center" width="120">
<template slot-scope="scope">
{{ formatDate(scope.row.needInspectDate) }}
</template>
</el-table-column>
<el-table-column prop="status" label="状态" header-align="center" align="center" width="100"/> <el-table-column prop="status" label="状态" header-align="center" align="center" width="100"/>
</el-table> </el-table>
@ -57,15 +115,23 @@
<el-button @click="selectDialogVisible = false">取消</el-button> <el-button @click="selectDialogVisible = false">取消</el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- Chooselist 组件 -->
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
</div> </div>
</template> </template>
<script> <script>
import { getRequestFeeList, addRequestFees, deleteRequestFee } from '@/api/inspection/srmFee.js' import { getRequestFeeList, addRequestFees, deleteRequestFee } from '@/api/inspection/srmFee.js'
import { searchInspectionRequestHeaderList } from '@/api/inspection/inspectionRequestHeader.js' import { searchInspectionRequestHeaderList } from '@/api/inspection/inspectionRequestHeader.js'
import Chooselist from '@/views/modules/common/Chooselist_eam'
export default { export default {
name: 'RequestFeeTab', name: 'RequestFeeTab',
components: {
Chooselist
},
props: { props: {
feeData: { feeData: {
type: Object, type: Object,
@ -84,11 +150,17 @@ export default {
availableRequests: [], availableRequests: [],
requestLoading: false, requestLoading: false,
selectedRequests: [], selectedRequests: [],
searchRequestNo: ''
//
filterRequestNo: '',
filterSupplierName: '',
filterNeedInspectDateStart: '',
filterNeedInspectDateEnd: '',
// Chooselist
tagNo: ''
} }
}, },
filters: { filters: {
formatDate(value) {
formatDateTime(value) {
if (!value) return '' if (!value) return ''
const date = new Date(value) const date = new Date(value)
const year = date.getFullYear() const year = date.getFullYear()
@ -111,6 +183,10 @@ export default {
} }
}, },
methods: { methods: {
formatDate(dateStr) {
if (!dateStr) return ''
return dateStr.length > 10 ? dateStr.substring(0, 10) : dateStr
},
// //
loadRequestFeeList() { loadRequestFeeList() {
if (!this.feeData.feeNo || !this.feeData.site) { if (!this.feeData.feeNo || !this.feeData.site) {
@ -137,24 +213,33 @@ export default {
}) })
}, },
//
//
handleAddRequest() { handleAddRequest() {
this.selectDialogVisible = true this.selectDialogVisible = true
this.searchRequests()
// this.searchRequests()
}, },
//
//
resetSearch() {
this.filterRequestNo = ''
this.filterSupplierName = ''
this.filterNeedInspectDateStart = ''
this.filterNeedInspectDateEnd = ''
//
},
//
searchRequests() { searchRequests() {
this.requestLoading = true this.requestLoading = true
const params = { const params = {
page: 1, page: 1,
limit: 100, limit: 100,
site: this.$store.state.user.site
}
if (this.searchRequestNo) {
params.requestNo = this.searchRequestNo
site: this.$store.state.user.site,
requestNo: this.filterRequestNo || '',
supplierName: this.filterSupplierName || '',
needInspectDateStart: this.filterNeedInspectDateStart || '',
needInspectDateEnd: this.filterNeedInspectDateEnd || ''
} }
searchInspectionRequestHeaderList(params).then(({ data }) => { searchInspectionRequestHeaderList(params).then(({ data }) => {
@ -172,6 +257,22 @@ export default {
}) })
}, },
//
openSupplierChooser() {
this.tagNo = 1100
this.$nextTick(() => {
this.$refs.baseList.init(1100, this.filterSupplierName)
})
},
// Chooselist
getBaseData(val) {
if (this.tagNo === 1100) {
this.filterSupplierName = val.supplier_name || ''
// 使 supplierName
}
},
// //
handleSelectionChange(selection) { handleSelectionChange(selection) {
this.selectedRequests = selection this.selectedRequests = selection
@ -239,6 +340,40 @@ export default {
.request-fee-tab { .request-fee-tab {
padding-top: 0; padding-top: 0;
padding-left: 0; padding-left: 0;
}
.search-form {
margin-bottom: 10px;
}
.search-form {
margin-bottom: 10px;
}
.search-row {
display: flex;
align-items: flex-end;
flex-wrap: wrap;
gap: 12px;
}
.search-form /deep/ .el-form-item {
margin-bottom: 0;
}
.search-form /deep/ .el-form-item__label {
display: block;
line-height: 20px;
padding-bottom: 4px;
}
.search-form /deep/ .el-input {
width: 180px;
}
.search-form /deep/ .el-date-editor {
width: 150px;
}
.search-btns {
padding-bottom: 1px;
} }
</style> </style>

3
src/views/modules/npcIqc/npcIqcList.vue

@ -560,4 +560,7 @@ export default {
/deep/ .el-table__body td { /deep/ .el-table__body td {
padding: 4px 0; padding: 4px 0;
} }
.npc-iqc-container /deep/ .el-dialog .el-table__header th {
text-align: center;
}
</style> </style>

133
src/views/modules/quality/com_qualityIssuePoList.vue

@ -11,32 +11,38 @@
border border
v-loading="loading" v-loading="loading"
style="width: 100%;" style="width: 100%;"
:height="tableHeight">
:height="tableHeight"
:header-cell-style="{ textAlign: 'center' }">
<el-table-column <el-table-column
prop="poNo" prop="poNo"
label="PO" label="PO"
width="120"
align="center" />
width="180"
align="center"/>
<el-table-column <el-table-column
prop="poDate" prop="poDate"
label="PO Date" label="PO Date"
width="100"
align="center" />
width="180"
align="center"/>
<el-table-column <el-table-column
prop="sku" prop="sku"
label="SKU" label="SKU"
min-width="120"
show-overflow-tooltip />
min-width="250"
show-overflow-tooltip/>
<el-table-column <el-table-column
prop="poQty" prop="poQty"
label="Qty" label="Qty"
width="80"
align="right" />
width="120"
align="right"/>
<el-table-column <el-table-column
prop="shippedQty" prop="shippedQty"
label="Qty Shipped" label="Qty Shipped"
width="100"
align="right" />
width="110"
align="right"/>
<el-table-column <el-table-column
label="操作" label="操作"
width="80" width="80"
@ -58,37 +64,57 @@
append-to-body> append-to-body>
<!-- 查询条件 --> <!-- 查询条件 -->
<el-form :inline="true" label-position="right" size="mini" class="search-form">
<el-form-item label="PO :">
<el-input v-model="poSearchData.poNo" placeholder="PO号" style="width: 120px" @keyup.enter.native="loadAvailablePoList"/>
</el-form-item>
<el-form-item label="Part No :">
<el-input v-model="poSearchData.partNo" placeholder="料号" style="width: 120px" @keyup.enter.native="loadAvailablePoList"/>
</el-form-item>
<el-form-item label="PO Date :">
<div class="date-range">
<el-form :inline="true" label-position="top" class="search-form-inline">
<div class="search-row">
<el-form-item label="PO" class="search-item">
<el-input
v-model="poSearchData.poNo"
placeholder="PO号"
style="width:120px"
@keyup.enter.native="loadAvailablePoList"/>
</el-form-item>
<el-form-item label="Part No" class="search-item">
<el-input
v-model="poSearchData.partNo"
placeholder="料号"
style="width:120px"
@keyup.enter.native="loadAvailablePoList"/>
</el-form-item>
<el-form-item label="开始日期" class="search-item">
<el-date-picker <el-date-picker
v-model="poSearchData.beginDate" v-model="poSearchData.beginDate"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="开始日期" placeholder="开始日期"
style="width: 120px"
style="width:120px"
clearable> clearable>
</el-date-picker> </el-date-picker>
<span class="split">/</span>
</el-form-item>
<el-form-item label="结束日期" class="search-item">
<el-date-picker <el-date-picker
v-model="poSearchData.endDate" v-model="poSearchData.endDate"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="结束日期" placeholder="结束日期"
style="width: 120px"
style="width:120px"
clearable> clearable>
</el-date-picker> </el-date-picker>
</div>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="loadAvailablePoList" size="small">查询</el-button>
</el-form-item>
</el-form-item>
<el-form-item label=" " class="search-item search-btn-item">
<el-button
type="primary"
size="small"
@click="loadAvailablePoList">
查询
</el-button>
</el-form-item>
</div>
</el-form> </el-form>
<!-- 可用PO列表 --> <!-- 可用PO列表 -->
@ -99,7 +125,8 @@
size="mini" size="mini"
style="width: 100%; margin-top: 10px;" style="width: 100%; margin-top: 10px;"
height="300" height="300"
@selection-change="handleSelectionChange">
@selection-change="handleSelectionChange"
:header-cell-style="{ textAlign: 'center' }">
<el-table-column type="selection" width="50" /> <el-table-column type="selection" width="50" />
<el-table-column prop="poNo" label="PO" width="120" /> <el-table-column prop="poNo" label="PO" width="120" />
<el-table-column prop="poDate" label="PO Date" width="160" /> <el-table-column prop="poDate" label="PO Date" width="160" />
@ -344,44 +371,37 @@ export default {
background: #fff; background: #fff;
height: 100%; height: 100%;
} }
.search-form {
background: #f5f7fa;
padding: 10px;
border-radius: 4px;
.search-form-inline {
background: #fff;
padding: 0;
margin-bottom: 10px; margin-bottom: 10px;
} }
//
.search-form /deep/ .el-form-item {
margin-bottom: 0;
display: inline-flex;
align-items: center;
vertical-align: middle;
.search-row {
display: flex;
align-items: flex-end;
flex-wrap: wrap;
gap: 0;
} }
.search-form /deep/ .el-form-item__label {
line-height: 32px;
height: 32px;
padding: 0 8px 0 0;
display: inline-flex;
align-items: center;
.search-item {
flex: none;
margin-bottom: 0;
margin-right: 12px;
} }
.search-form /deep/ .el-form-item__content {
line-height: 32px;
height: 32px;
display: inline-flex;
align-items: center;
.search-item /deep/ .el-form-item__label {
padding-bottom: 5px;
line-height: 1;
height: auto;
} }
.search-form /deep/ .el-input,
.search-form /deep/ .el-date-editor {
line-height: 32px;
.search-item /deep/ .el-form-item__content {
line-height: normal;
} }
.search-form /deep/ .el-button {
vertical-align: middle;
.search-btn-item {
margin-right: 0;
} }
.date-range { .date-range {
@ -408,6 +428,7 @@ export default {
background-color: #17B3A3; background-color: #17B3A3;
color: #fff; color: #fff;
font-weight: 500; font-weight: 500;
text-align: center;
} }
/deep/ .el-table tr { /deep/ .el-table tr {

241
src/views/modules/quality/qualityIssueList.vue

@ -3,7 +3,8 @@
<!-- 查询条件 --> <!-- 查询条件 -->
<el-form :inline="true" label-position="top" class="search-form-inline"> <el-form :inline="true" label-position="top" class="search-form-inline">
<div class="search-row"> <div class="search-row">
<el-form-item label="供应商编码" class="search-item">
<el-form-item class="search-item">
<span slot="label" class="choose-label" @click="getBaseList(1100)">供应商编码</span>
<el-input v-model="searchData.supplierNo" style="width: 120px" @keyup.enter.native="getMainData"/> <el-input v-model="searchData.supplierNo" style="width: 120px" @keyup.enter.native="getMainData"/>
</el-form-item> </el-form-item>
<el-form-item label="供应商名称" class="search-item"> <el-form-item label="供应商名称" class="search-item">
@ -52,7 +53,8 @@
<el-form-item label="PO No" class="search-item"> <el-form-item label="PO No" class="search-item">
<el-input v-model="searchData.poNo" style="width: 120px" @keyup.enter.native="getMainData"/> <el-input v-model="searchData.poNo" style="width: 120px" @keyup.enter.native="getMainData"/>
</el-form-item> </el-form-item>
<el-form-item label="Part No" class="search-item">
<el-form-item class="search-item">
<span slot="label" class="choose-label" @click="getBaseList(2017)">Part No</span>
<el-input v-model="searchData.partNo" style="width: 120px" @keyup.enter.native="getMainData"/> <el-input v-model="searchData.partNo" style="width: 120px" @keyup.enter.native="getMainData"/>
</el-form-item> </el-form-item>
</div> </div>
@ -93,27 +95,26 @@
</el-table-column> </el-table-column>
<el-table-column fixed="right" header-align="center" align="center" width="240" label="操作"> <el-table-column fixed="right" header-align="center" align="center" width="240" label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- 编辑 -->
<a v-if="scope.row.status === '已确认'"
<!-- 编辑已确认 已赔偿 -->
<a v-if="scope.row.status === '已确认' || scope.row.status === '已赔偿'"
class="customer-a" class="customer-a"
@click="editQualityIssue(scope.row)">编辑 </a> @click="editQualityIssue(scope.row)">编辑 </a>
<!-- 删除 -->
<a v-if="scope.row.status === '已确认'"
<!-- 删除已确认 已赔偿 -->
<a v-if="scope.row.status === '已确认' || scope.row.status === '已赔偿'"
class="customer-a" class="customer-a"
@click="deleteQualityIssue(scope.row)">删除 </a> @click="deleteQualityIssue(scope.row)">删除 </a>
<!-- 回复 -->
<a v-if="scope.row.status === '已确认'"
<!-- 回复已确认 已赔偿 -->
<a v-if="scope.row.status === '已确认' || scope.row.status === '已赔偿'"
class="customer-a" class="customer-a"
@click="replyQualityIssue(scope.row)">回复 </a> @click="replyQualityIssue(scope.row)">回复 </a>
<!-- 赔偿 -->
<a v-if="['已确认','已分析'].includes(scope.row.status)"
<!-- 赔偿已确认 已分析但不能是已赔偿已赔偿状态不显示赔偿按钮-->
<a v-if="(scope.row.status === '已确认' || scope.row.status === '已分析') && scope.row.status !== '已赔偿'"
class="customer-a" class="customer-a"
@click="compensationQualityIssue(scope.row)">赔偿 </a> @click="compensationQualityIssue(scope.row)">赔偿 </a>
<!-- 关闭 -->
<!-- 关闭仅已分析 -->
<a v-if="scope.row.status === '已分析'" <a v-if="scope.row.status === '已分析'"
class="customer-a" class="customer-a"
@click="closeQualityIssueAction(scope.row)">关闭</a> @click="closeQualityIssueAction(scope.row)">关闭</a>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -237,9 +238,11 @@
<!-- 第二行 --> <!-- 第二行 -->
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="供应商编码" prop="supplierNo">
<el-input v-model="addFormData.supplierNo" placeholder="请选择" readonly @click.native="selectSupplier" size="mini">
<i slot="suffix" class="el-icon-search" style="cursor: pointer;"></i>
<el-form-item prop="supplierNo"><span slot="label" class="choose-label" @click="getBaseList(1100)">供应商编码</span>
<el-input
v-model="addFormData.supplierNo"
readonly
size="mini">
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -249,8 +252,12 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="供应商负责人">
<el-input v-model="addFormData.supplierResponsible" placeholder="请输入" size="mini"></el-input>
<el-form-item><span slot="label" class="choose-label" @click="getBaseList(2016)">供应商负责人</span>
<el-input
v-model="addFormData.supplierResponsible"
readonly
size="mini">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -280,8 +287,12 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="Part No">
<el-input v-model="addFormData.partNo" placeholder="请输入" size="mini"></el-input>
<el-form-item><span slot="label" class="choose-label" @click="getBaseList(2017)">Part No</span>
<el-input
v-model="addFormData.partNo"
readonly
size="mini">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -404,13 +415,8 @@
</el-col> </el-col>
</el-row> </el-row>
<!-- 新增行PO No批次数量拒收批次数量投诉接收日期样品接收日期 -->
<!-- 批次数量拒收批次数量投诉接收日期样品接收日期 -->
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="6">
<el-form-item label="PO No">
<el-input v-model="editFormData.poNo" placeholder="请输入" size="mini"></el-input>
</el-form-item>
</el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="批次数量"> <el-form-item label="批次数量">
<el-input v-model="editFormData.batchQty" placeholder="请输入" size="mini" type="number"></el-input> <el-input v-model="editFormData.batchQty" placeholder="请输入" size="mini" type="number"></el-input>
@ -433,9 +439,6 @@
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="样品接收日期"> <el-form-item label="样品接收日期">
<el-date-picker <el-date-picker
@ -450,11 +453,12 @@
</el-col> </el-col>
</el-row> </el-row>
<!-- 第二行 -->
<!-- 第二行供应商编码供应商名称供应商负责人 -->
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="供应商编码">
<el-input v-model="editFormData.supplierNo" disabled size="mini"></el-input>
<el-form-item prop="supplierNo">
<span slot="label" class="choose-label" @click="getBaseList(1100)">供应商编码</span>
<el-input v-model="editFormData.supplierNo" readonly size="mini"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -463,13 +467,14 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="供应商负责人">
<el-input v-model="editFormData.supplierResponsible" placeholder="请输入" size="mini"></el-input>
<el-form-item>
<span slot="label" class="choose-label" @click="getBaseList(2016)">供应商负责人</span>
<el-input v-model="editFormData.supplierResponsible" readonly size="mini"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<!-- 第三行 -->
<!-- 第三行PlantClaim NoProduct CategoryPart No -->
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="Plant"> <el-form-item label="Plant">
@ -494,13 +499,14 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="Part No">
<el-input v-model="editFormData.partNo" placeholder="请输入" size="mini"></el-input>
<el-form-item>
<span slot="label" class="choose-label" @click="getBaseList(2017)">Part No</span>
<el-input v-model="editFormData.partNo" readonly size="mini"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<!-- 第四行 -->
<!-- 第四行问题简述Inspector -->
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="18"> <el-col :span="18">
<el-form-item label="问题简述" prop="issueSummary"> <el-form-item label="问题简述" prop="issueSummary">
@ -514,7 +520,7 @@
</el-col> </el-col>
</el-row> </el-row>
<!-- 第五行 -->
<!-- 第五行问题详细描述 -->
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="18"> <el-col :span="18">
<el-form-item label="问题详细描述"> <el-form-item label="问题详细描述">
@ -529,7 +535,7 @@
</el-col> </el-col>
</el-row> </el-row>
<!-- 第六行 -->
<!-- 第六行LevelMode1-3 -->
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="Level"> <el-form-item label="Level">
@ -722,16 +728,16 @@ export default {
// //
addDialogVisible: false, addDialogVisible: false,
addFormData: { addFormData: {
supplierResponsible: '',
partNo: '',
issueNo: '', issueNo: '',
issueDate: '', issueDate: '',
requireReplyDate: '', requireReplyDate: '',
supplierNo: '', supplierNo: '',
supplierName: '', supplierName: '',
supplierResponsible: '',
plant: '', plant: '',
claimNo: '', claimNo: '',
productCategory: '', productCategory: '',
partNo: '',
poNo: '', poNo: '',
batchQty: '', batchQty: '',
rejectBatchQty: '', rejectBatchQty: '',
@ -772,7 +778,6 @@ export default {
requireReplyDate: '', requireReplyDate: '',
supplierNo: '', supplierNo: '',
supplierName: '', supplierName: '',
supplierResponsible: '',
plant: '', plant: '',
claimNo: '', claimNo: '',
productCategory: '', productCategory: '',
@ -1051,8 +1056,31 @@ export default {
let strVal = '' let strVal = ''
let conSql = '' let conSql = ''
if (val === 1100) { if (val === 1100) {
strVal = this.addFormData.supplierNo || ''
//
if (this.addDialogVisible) {
strVal = this.addFormData.supplierNo || ''
} else if (this.editDialogVisible) {
strVal = this.editFormData.supplierNo || ''
} else {
strVal = this.searchData.supplierNo || ''
}
conSql = " and site = '" + this.$store.state.user.site + "'" conSql = " and site = '" + this.$store.state.user.site + "'"
} else if (val === 2016) {
//
if (this.addDialogVisible) {
strVal = this.addFormData.supplierResponsible || ''
} else if (this.editDialogVisible) {
strVal = this.editFormData.supplierResponsible || ''
}
} else if (val === 2017) {
// Part No
if (this.addDialogVisible) {
strVal = this.addFormData.partNo || ''
} else if (this.editDialogVisible) {
strVal = this.editFormData.partNo || ''
} else {
strVal = this.searchData.partNo || ''
}
} }
this.$refs.baseList.init(val, strVal, conSql) this.$refs.baseList.init(val, strVal, conSql)
}) })
@ -1060,12 +1088,67 @@ export default {
/* 列表方法的回调 */ /* 列表方法的回调 */
getBaseData (val) { getBaseData (val) {
console.log('ChooseList 返回数据:', val)
console.log('当前 tagNo:', this.tagNo)
//
if (this.tagNo === 1100) { if (this.tagNo === 1100) {
// 使线使$set
this.$set(this.addFormData, 'supplierNo', val.supplier_no || '')
this.$set(this.addFormData, 'supplierName', val.supplier_name || '')
if (this.addDialogVisible) {
this.$set(this.addFormData, 'supplierNo', val.supplier_no || '')
this.$set(this.addFormData, 'supplierName', val.supplier_name || '')
} else if (this.editDialogVisible) {
this.$set(this.editFormData, 'supplierNo', val.supplier_no || '')
this.$set(this.editFormData, 'supplierName', val.supplier_name || '')
} else {
this.$set(this.searchData, 'supplierNo', val.supplier_no || '')
}
}
//
else if (this.tagNo === 2016) {
const userName = val.user_display || ''
if (this.addDialogVisible) {
this.$set(this.addFormData, 'supplierResponsible', userName)
} else if (this.editDialogVisible) {
this.$set(this.editFormData, 'supplierResponsible', userName)
}
}
// Part No
else if (this.tagNo === 2017) {
const partNo = val.part_no || val.partNo || ''
if (this.addDialogVisible) {
this.$set(this.addFormData, 'partNo', partNo)
} else if (this.editDialogVisible) {
this.$set(this.editFormData, 'partNo', partNo)
} else {
this.$set(this.searchData, 'partNo', partNo)
}
} }
}, },
//
selectSupplierResponsible () {
this.tagNo = 2016
this.$nextTick(() => {
this.$refs.baseList.init(
2016,
this.addFormData.supplierResponsible || '',
''
)
})
},
// Part No
selectPartNo () {
this.tagNo = 2017
this.$nextTick(() => {
this.$refs.baseList.init(
2017,
this.addFormData.partNo || '',
''
)
})
},
// //
getMainData () { getMainData () {
this.searchData.limit = this.pageSize this.searchData.limit = this.pageSize
@ -1204,7 +1287,6 @@ export default {
requireReplyDate: '', requireReplyDate: '',
supplierNo: '', supplierNo: '',
supplierName: '', supplierName: '',
supplierResponsible: '',
plant: '', plant: '',
claimNo: '', claimNo: '',
productCategory: '', productCategory: '',
@ -1249,7 +1331,6 @@ export default {
requireReplyDate: this.addFormData.requireReplyDate, requireReplyDate: this.addFormData.requireReplyDate,
supplierNo: this.addFormData.supplierNo, supplierNo: this.addFormData.supplierNo,
supplierName: this.addFormData.supplierName, supplierName: this.addFormData.supplierName,
supplierResponsible: this.addFormData.supplierResponsible,
plant: this.addFormData.plant, plant: this.addFormData.plant,
claimNo: this.addFormData.claimNo, claimNo: this.addFormData.claimNo,
productCategory: this.addFormData.productCategory, productCategory: this.addFormData.productCategory,
@ -1262,6 +1343,7 @@ export default {
issueCategory: this.addFormData.issueCategory, issueCategory: this.addFormData.issueCategory,
issueSummary: this.addFormData.issueSummary, issueSummary: this.addFormData.issueSummary,
issueDescription: this.addFormData.issueDescription, issueDescription: this.addFormData.issueDescription,
supplierResponsible: this.addFormData.supplierResponsible,
inspector: this.addFormData.inspector, inspector: this.addFormData.inspector,
levelNo: this.addFormData.levelNo, levelNo: this.addFormData.levelNo,
mode1: this.addFormData.mode1, mode1: this.addFormData.mode1,
@ -1303,7 +1385,6 @@ export default {
issueNo: this.editFormData.issueNo, issueNo: this.editFormData.issueNo,
issueDate: this.editFormData.issueDate, issueDate: this.editFormData.issueDate,
requireReplyDate: this.editFormData.requireReplyDate, requireReplyDate: this.editFormData.requireReplyDate,
supplierResponsible: this.editFormData.supplierResponsible,
plant: this.editFormData.plant, plant: this.editFormData.plant,
claimNo: this.editFormData.claimNo, claimNo: this.editFormData.claimNo,
productCategory: this.editFormData.productCategory, productCategory: this.editFormData.productCategory,
@ -1321,7 +1402,8 @@ export default {
mode1: this.editFormData.mode1, mode1: this.editFormData.mode1,
mode2: this.editFormData.mode2, mode2: this.editFormData.mode2,
mode3: this.editFormData.mode3, mode3: this.editFormData.mode3,
status: this.editFormData.status
status: this.editFormData.status,
supplierResponsible: this.editFormData.supplierResponsible
} }
console.log('更新数据:', submitData) console.log('更新数据:', submitData)
@ -1349,14 +1431,14 @@ export default {
// //
editQualityIssue (row) { editQualityIssue (row) {
this.editDialogVisible = true this.editDialogVisible = true
//
this.editFormData = { this.editFormData = {
issueNo: row.issueNo || '',
...row, //
site: row.site || this.$store.state.user.site,
issueDate: row.issueDate || '', issueDate: row.issueDate || '',
requireReplyDate: row.requireReplyDate || '', requireReplyDate: row.requireReplyDate || '',
supplierNo: row.supplierNo || '', supplierNo: row.supplierNo || '',
supplierName: row.supplierName || '', supplierName: row.supplierName || '',
supplierResponsible: row.supplierResponsible || '',
supplierResponsible: row.supplierResponsible || '', //
plant: row.plant || '', plant: row.plant || '',
claimNo: row.claimNo || '', claimNo: row.claimNo || '',
productCategory: row.productCategory || '', productCategory: row.productCategory || '',
@ -1374,10 +1456,8 @@ export default {
mode1: row.mode1 || '', mode1: row.mode1 || '',
mode2: row.mode2 || '', mode2: row.mode2 || '',
mode3: row.mode3 || '', mode3: row.mode3 || '',
status: row.status || '',
site: row.site || this.$store.state.user.site
status: row.status || ''
} }
//
this.$nextTick(() => { this.$nextTick(() => {
if (this.$refs.editFormData) { if (this.$refs.editFormData) {
this.$refs.editFormData.clearValidate() this.$refs.editFormData.clearValidate()
@ -1777,12 +1857,12 @@ export default {
text-align: center; text-align: center;
} }
/* 回复弹窗样式 */
/* 回复弹窗样式 - 取消灰色背景 */
.reply-dialog-info { .reply-dialog-info {
margin-bottom: 20px; margin-bottom: 20px;
padding: 15px;
background-color: #f5f7fa;
border-radius: 4px;
padding: 0;
background: transparent;
border-radius: 0;
} }
.reply-dialog-info .info-item { .reply-dialog-info .info-item {
@ -1808,29 +1888,12 @@ export default {
flex: 1; flex: 1;
} }
.reply-dialog-form /deep/ .el-form-item {
margin-bottom: 15px;
}
.reply-dialog-form /deep/ .el-form-item__label {
font-size: 13px;
color: #606266;
font-weight: 500;
padding-bottom: 5px;
line-height: 1;
height: auto;
}
.reply-dialog-form /deep/ .el-form-item__content {
line-height: normal;
}
/* 赔偿弹窗样式 */ /* 赔偿弹窗样式 */
.compensation-dialog-info { .compensation-dialog-info {
margin-bottom: 20px; margin-bottom: 20px;
padding: 15px;
background-color: #f5f7fa;
border-radius: 4px;
padding: 0;
background: transparent;
border-radius: 0;
} }
.compensation-dialog-info .info-item { .compensation-dialog-info .info-item {
@ -1872,4 +1935,22 @@ export default {
.compensation-dialog-form /deep/ .el-form-item__content { .compensation-dialog-form /deep/ .el-form-item__content {
line-height: normal; line-height: normal;
} }
.click-label {
color: #2ec7c9;
cursor: pointer;
font-weight: 500;
}
.click-label:hover {
text-decoration: underline;
}
.choose-label {
color: #2ec7c9;
cursor: pointer;
font-weight: 500;
}
.choose-label:hover {
text-decoration: underline;
}
</style> </style>
Loading…
Cancel
Save