From df87294d45f6ecc33eb0048da3600b3fb1129e6b Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期四, 29 一月 2026 13:51:59 +0800
Subject: [PATCH] 不合格管理:新增OA审核状态、物料属性,时间区间字段;以及导出功能
---
src/views/business/unpass/index-manage.vue | 140 +++++++++++++++++++++++++++++++++-------------
1 files changed, 101 insertions(+), 39 deletions(-)
diff --git a/src/views/business/unpass/index-manage.vue b/src/views/business/unpass/index-manage.vue
index 39596e6..556c548 100644
--- a/src/views/business/unpass/index-manage.vue
+++ b/src/views/business/unpass/index-manage.vue
@@ -26,9 +26,40 @@
<el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="entity.sample"
@keyup.enter.native="refreshTable()"></el-input>
</el-form-item>
+ <el-form-item label="鐗╂枡灞炴��" prop="materialProp">
+ <el-select clearable size="small" v-model="entity.materialProp" style="width: 100%" @change="refreshTable()">
+ <el-option v-for="dict in dict.type.material_prop_type" :key="dict.value" :label="dict.label"
+ :value="dict.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="OA瀹℃牳鐘舵��" prop="operation">
+ <el-select clearable size="small" v-model="entity.operation" style="width: 100%" @change="refreshTable()">
+ <el-option v-for="dict in dict.type.oa_workflow_state" :key="dict.value" :label="dict.label"
+ :value="dict.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鍙嶉鏃ユ湡" prop="feedbackDateTime">
+ <el-date-picker
+ type="daterange"
+ size="small"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ clearable
+ value-format="yyyy-MM-dd"
+ v-model="entity.feedbackDateTime"
+ @keyup.enter.native="refreshTable()">
+ </el-date-picker>
+ </el-form-item>
+ <el-form-item label="渚涘簲鍟嗗悕绉�" prop="supplierName">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="entity.supplierName"
+ @keyup.enter.native="refreshTable()"></el-input>
+ </el-form-item>
<el-form-item>
<el-button type="primary" size="mini" @click="refreshTable">鏌ヨ</el-button>
<el-button size="mini" @click="refresh">閲嶇疆</el-button>
+ <el-button :loading="exportLoading" type="success" size="mini" @click="exportUnqualifiedHandler">瀵煎嚭</el-button>
</el-form-item>
</el-form>
</div>
@@ -79,14 +110,15 @@
import UnPassDialog from "./components/unPassDialog.vue";
import OAProcess from "./components/OAProcess.vue";
import limsTable from "@/components/Table/lims-table.vue";
-import {deleteUnqualifiedHandler, page, pushOA} from "@/api/business/unqualifiedHandler";
-
+import {deleteUnqualifiedHandler, page, pushOA,exportUnqualifiedHandler} from "@/api/business/unqualifiedHandler";
+import {transformExcel} from '@/utils/file'
export default {
components: {
limsTable,
OAProcess,
UnPassDialog,
},
+ dicts: ['material_prop_type','oa_workflow_state'],
data() {
return {
handlerId: null,
@@ -94,6 +126,10 @@
contract: null,
sample: null,
specsModels: null,
+ supplierName: null,
+ feedbackDateTime:[],
+ materialProp: null,
+ operation:null
},
tableData: [],
tableLoading: false,
@@ -101,7 +137,7 @@
{
label: 'IFS鍩�',
prop: 'contract',
- width: '120px',
+ width: '80px',
dataType: 'tag',
formatData: (params) => {
return params
@@ -118,34 +154,25 @@
},
{ label: '缂栧彿', prop: 'no', width: "160px", },
- // {
- // label: "OA瀹℃牳鐘舵��",
- // prop: "oaState",
- // width: "100px",
- // dataType: "tag",
- // formatData: (params) => {
- // if (params == 1) {
- // return "寰呭鏍�";
- // } else if(params == 2) {
- // return "瀹℃牳涓�";
- // } else if(params == 3) {
- // return "閫氳繃";
- // } else {
- // return "椹冲洖";
- // }
- // },
- // formatType: (params) => {
- // if (params == 1) {
- // return "warning";
- // } else if(params == 2) {
- // return "info";
- // } else if(params == 3) {
- // return "success";
- // } else {
- // return "danger";
- // }
- // },
- // },
+ {
+ label: "OA瀹℃牳鐘舵��",
+ prop: "operation",
+ width: "100px",
+ dataType: "tag",
+ formatData: (params) => {
+ return params
+ },
+ formatType: (params) => {
+ if(params){
+ this.dict.type.oa_workflow_state.forEach(item => {
+ if(item.value === params){
+ params = item.raw.listClass
+ }
+ });
+ }
+ return params
+ },
+ },
{ label: '璁㈠崟鍙�', prop: 'orderNo' },
{
label: "闆朵欢鍙�",
@@ -154,16 +181,31 @@
dataType: "link",
linkMethod: "openUnPassDialog",
},
- { label: '闆朵欢鎻忚堪', prop: 'partDesc' },
- { label: '鐗╂枡鍚嶇О', prop: 'materialName' },
- { label: '鐢熶骇鎵规', prop: 'productionBatch' },
+ { label: '闆朵欢鎻忚堪', prop: 'partDesc',width: "160px" },
+ {
+ label: '鐗╂枡灞炴��',
+ prop: 'materialProp',
+ formatData: (params) => {
+ if (!params) return null
+
+ for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+ const item = this.dict.type.material_prop_type[i]
+ if (item.value == params) {
+ return item.label
+ }
+ }
+ return null
+ }
+ },
+ { label: '鐗╂枡鍚嶇О', prop: 'materialName',width: "160px" },
+ { label: '鐢熶骇鎵规', prop: 'productionBatch',width: "160px" },
{ label: '鍒拌揣鏁伴噺', prop: 'cargoQuantity' },
{ label: '瑙勬牸鍨嬪彿', prop: 'specsModels' },
{ label: '鎶ユ鏃ユ湡', prop: 'inspectTime' },
{ label: '鐘舵��', prop: 'statusDB' },
{ label: '鍙嶉浜�', prop: 'feedbackUser' },
- { label: '瑕佹楠岀殑閲囪喘鏁伴噺', prop: 'qtyToInspect' },
- { label: '鍙嶉鏃ユ湡', prop: 'feedbackTime' },
+ { label: '瑕佹楠岀殑閲囪喘鏁伴噺', prop: 'qtyToInspect',width: "140px" },
+ { label: '鍙嶉鏃ユ湡', prop: 'feedbackTime',width: "100px" },
{
label: "鍒嗙被",
prop: "classification",
@@ -192,7 +234,7 @@
{
label: "涓嶅悎鏍煎綊灞�",
prop: "offGradeAscription",
- width: "100px",
+ width: "120px",
dataType: "tag",
formatData: (params) => {
if (params == 0) {
@@ -213,7 +255,7 @@
}
},
},
- { label: '涓嶅悎鏍兼弿杩�', prop: 'unqualifiedDesc' },
+ { label: '涓嶅悎鏍兼弿杩�', prop: 'unqualifiedDesc',width: "160px" },
{
dataType: 'action',
fixed: 'right',
@@ -263,15 +305,35 @@
submitOALoading: false, // OA娴佺▼寮规鎻愪氦鎸夐挳loading
deleteVisible: false, // OA娴佺▼鍒犻櫎寮规
cancelOALoading: false, // OA娴佺▼鍒犻櫎寮规鎻愪氦鎸夐挳loading
+ exportLoading:false
};
},
mounted() {
this.refreshTable()
},
methods: {
+ exportUnqualifiedHandler(){
+ this.exportLoading = true
+ const newEntity = { ...this.entity }
+ if (newEntity.feedbackDateTime && newEntity.feedbackDateTime.length > 0) {
+ newEntity.feedbackStartTime = newEntity.feedbackDateTime[0]
+ newEntity.feedbackEndTime = newEntity.feedbackDateTime[1]
+ }
+ exportUnqualifiedHandler({...newEntity}).then(res=>{
+ transformExcel(res,'涓嶅悎鏍煎鐞嗚褰�.xlsx')
+ this.exportLoading = false
+ }).catch(error=>{
+ console.error(error)
+ })
+ },
refreshTable() {
this.tableLoading = true
- page({ ...this.page, ...this.entity }).then(res => {
+ const newEntity = { ...this.entity }
+ if (newEntity.feedbackDateTime && newEntity.feedbackDateTime.length > 0) {
+ newEntity.feedbackStartTime = newEntity.feedbackDateTime[0]
+ newEntity.feedbackEndTime = newEntity.feedbackDateTime[1]
+ }
+ page({ ...this.page, ...newEntity }).then(res => {
this.tableLoading = false
this.tableData = res.data.records
this.page.total = res.data.total
--
Gitblit v1.9.3