From 0f102473c642142976d537af4c505b8a7161d6c5 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期五, 31 十月 2025 15:30:17 +0800
Subject: [PATCH] 原材料报检拆分功能V1
---
src/views/CNAS/resourceDemand/device/component/management.vue | 180 +++++++++++++++++++++++------------------------------------
1 files changed, 70 insertions(+), 110 deletions(-)
diff --git a/src/views/CNAS/resourceDemand/device/component/management.vue b/src/views/CNAS/resourceDemand/device/component/management.vue
index 77e4671..0dcc8a5 100644
--- a/src/views/CNAS/resourceDemand/device/component/management.vue
+++ b/src/views/CNAS/resourceDemand/device/component/management.vue
@@ -1,38 +1,39 @@
<!-- 璁惧宸ュ叿鏄庣粏 -->
<template>
<div class="role_manage">
- <div class="search" v-show="!showData">
- <div class="search_thing">
- <div class="search_label">鐘舵�侊細</div>
- <el-select v-model="queryParams.deviceStatus" placeholder="鍏ㄩ儴" size="small">
- <el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value">
- </el-option>
- </el-select>
- </div>
- <div class="search_thing">
- <div class="search_label">璁惧鍚嶇О锛�</div>
- <div class="search_input">
- <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.deviceName"
- @keyup.enter.native="refreshTable()">
- </el-input>
- </div>
- </div>
- <div class="search_thing">
- <div class="search_label">瑙勬牸鍨嬪彿锛�</div>
- <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
- v-model="queryParams.specificationModel" @keyup.enter.native="refreshTable()"></el-input>
- </div>
- </div>
- <div style="padding-left: 30px;">
- <el-button size="small" @click="refresh()">閲� 缃�</el-button>
- <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
- <el-button size="small" type="primary" @click="dialogVisible2 = true">鏂� 澧�</el-button>
- <el-button size="small" type="primary" @click="handleDownOne">瀵� 鍑�</el-button>
- </div>
- </div>
+ <div class="search" v-show="!showData">
+ <div>
+ <el-form :model="queryParams" ref="queryParams" size="small" :inline="true">
+ <el-form-item label="鐘舵��" prop="deviceStatus" class="form-item">
+ <el-select v-model="queryParams.deviceStatus" clearable
+ placeholder="鍏ㄩ儴" size="small" @change="refreshTable">
+ <el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="璁惧鍚嶇О" prop="deviceName">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.deviceName"
+ @keyup.enter.native="refreshTable()">
+ </el-input>
+ </el-form-item>
+ <el-form-item label="绠$悊缂栧彿" prop="managementNumber">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="queryParams.managementNumber" @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-form-item>
+ </el-form>
+ </div>
+ <div>
+ <el-button size="small" type="primary" @click="dialogVisible2 = true">鏂板</el-button>
+ <el-button size="small" type="primary" @click="handleDownOne">瀵煎嚭</el-button>
+ </div>
+ </div>
<div class="table" v-show="!showData">
- <lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading" :height="'calc(100vh - 320px)'"
- :page="page" @pagination="pagination"></lims-table>
+ <lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading" :height="'calc(100vh - 300px)'"
+ :page="page" @pagination="pagination" :row-class-name="tableRowClassName"></lims-table>
</div>
<el-dialog :title="isUp ? '璁惧璇︽儏' : '妗f淇'" :visible.sync="dialogVisible" width="70%" top="5vh"
:before-close="handleClose">
@@ -119,7 +120,7 @@
<el-col :span="7">
<el-form :label-position="labelPosition" :model="formData" label-width="140px" ref="ruleForm">
<!-- 瀹為獙瀹ゅ垪琛� -->
- <el-form-item label="鎵�灞為儴闂�:">
+ <el-form-item label="鎵�灞為儴闂�:" required>
<el-select :disabled="isUp" v-model="formData.subordinateDepartmentsId" placeholder="璇烽�夋嫨" size="small"
style="width:100%">
<el-option v-for="item in subordinateDepartmentsList" :key="item.value" :label="item.label"
@@ -277,7 +278,7 @@
<el-col :span="7">
<el-form :label-position="labelPosition" :model="formData2" label-width="120px" ref="ruleForm">
<!-- 瀹為獙瀹ゅ垪琛� -->
- <el-form-item label="鎵�灞為儴闂�:">
+ <el-form-item label="鎵�灞為儴闂�:" required>
<el-select v-model="formData2.subordinateDepartmentsId" placeholder="璇烽�夋嫨" size="small" style="width:100%">
<el-option v-for="item in subordinateDepartmentsList" :key="item.value" :label="item.label"
:value="item.value">
@@ -443,11 +444,9 @@
labelPosition: 'right',
dialogVisible: false,
dialogVisible2: false,
- addPower: false,
showData: false, // 鏁伴噰閰嶇疆椤甸潰
tableList: [],
addDia: true,
- addPower: true,
//璁惧绫诲瀷鍒楄〃
equipmentList: [],
// 璐熻矗浜哄垪琛�
@@ -478,7 +477,7 @@
{ label: "绠$悊缂栧彿", prop: "managementNumber" },
{ label: "鎶�鏈寚鏍�", prop: "technicalIndicators" },
{ label: "璐疆鏃ユ湡", prop: "acquisitionDate" },
- { label: "鍚敤鏃ユ湡", prop: "activationDate" },
+ { label: "鏍″噯鏈夋晥鏈�", prop: "activationDate" },
{ label: "绠$悊浜�", prop: "equipmentManagerUser" },
{ label: "瀛樻斁鐐�", prop: "storagePoint" },
{ label: "鎵�灞為儴闂�", prop: "laboratoryName" },
@@ -491,10 +490,18 @@
{
label: "璁惧鍒嗙被", prop: "largeCategory", dataType: "tag",
formatData: (params) => {
- return this.equipmentList.find(m => m.value == params).label
+ if (this.equipmentList.find(m => m.value == params)) {
+ return this.equipmentList.find(m => m.value == params).label
+ } else {
+ return null
+ }
},
formatType: (params) => {
- return this.equipmentList.find(m => m.value == params).type
+ if (this.equipmentList.find(m => m.value == params)) {
+ return this.equipmentList.find(m => m.value == params).type
+ } else {
+ return null
+ }
}
},
{ label: "鍗曚环", prop: "unitPrice" },
@@ -554,13 +561,10 @@
}
},
mounted() {
- // this.entityCopy = this.HaveJson(this.componentData.entity)
- // this.getPower()
this.selectEnumByCategory()
this.selectDevicePrincipal()
this.obtainItemParameterList()
this.getInsProductIds()
- // this.$customEvents.$on('largeCategory', this.handleNotification);
// 鍒濆鍖�
this.clickSidebar(this.clickNodeVal)
},
@@ -602,6 +606,18 @@
this.page.size = limit;
this.getList();
},
+ tableRowClassName({ row }) {
+ const today = new Date();
+ const targetDate = new Date(row.activationDate);
+ const fiveDaysBeforeTarget = new Date(targetDate);
+ // 璁$畻鍓嶄簲澶╃殑鏃ユ湡
+ fiveDaysBeforeTarget.setDate(targetDate.getDate() - 5);
+ // 姣旇緝鏃堕渶瑕佺‘淇濇瘮杈冪殑鏄畬鏁寸殑鏃ユ湡鏃堕棿锛屽寘鍚椂鍒嗙
+ if (today > fiveDaysBeforeTarget) {
+ return 'red-row';
+ }
+ return '';
+ },
refresh() {
this.queryParams = {};
this.page.current = 1;
@@ -619,38 +635,6 @@
const blob = new Blob([res], { type: 'application/octet-stream' });
this.$download.saveAs(blob, '璁惧浠櫒涓�瑙堣〃.doc')
})
- },
- // 鏉冮檺鍒嗛厤
- getPower(radio) {
- let power = JSON.parse(sessionStorage.getItem('power'))
- let up = false
- let del = false
- let add = false
- let config = false
- for (var i = 0; i < power.length; i++) {
- if (power[i].menuMethod == 'upDeviceParameter') {
- up = true
- }
- if (power[i].menuMethod == 'delDeviceParameter') {
- del = true
- }
- if (power[i].menuMethod == 'addDeviceParameter') {
- add = true
- }
- if (power[i].menuMethod == 'saveDataAcquisitionConfiguration') {
- config = true
- }
- }
- if (!config) {
- this.componentData.do.splice(2, 1)
- }
- if (!up) {
- this.componentData.do.splice(1, 1)
- }
- if (!del) {
- this.componentData.do.splice(0, 1)
- }
- this.addPower = add
},
// 鑾峰彇瀛楀吀
selectEnumByCategory() {
@@ -813,6 +797,10 @@
this.$message.error('鏈緭鍏ユ牎鍑嗘湁鏁堟湡')
return
}
+ if (!this.formData.subordinateDepartmentsId) {
+ this.$message.error('鏈�夋嫨鎵�灞為儴闂�')
+ return
+ }
if (this.formData.deviceStatus === '' || this.formData.deviceStatus === null) {
this.$message.error('鏈�夋嫨褰撳墠鐘舵��')
return
@@ -827,17 +815,13 @@
delete this.formData.updateUser
const formData = this.HaveJson(this.formData)
formData.insProductIds = formData.insProductIds ? formData.insProductIds.join() : ''
- if (formData.authorizedPerson.length === 0) {
+ if (formData.authorizedPerson && formData.authorizedPerson.length === 0) {
formData.authorizedPerson = ''
} else {
formData.authorizedPerson = JSON.stringify(formData.authorizedPerson)
}
this.upLoad = true;
upDeviceParameter(formData).then(res => {
- if (res.code === 201) {
- this.upLoad = false
- return
- }
this.$message.success('淇敼鎴愬姛')
this.upLoad = false
this.refreshTable('page')
@@ -887,10 +871,6 @@
}
this.upLoad2 = true;
addDeviceParameter(formData).then(res => {
- if (res.code === 201) {
- this.upLoad2 = false
- return
- }
this.$message.success('鎻愪氦鎴愬姛')
this.upLoad2 = false
this.refreshTable('page')
@@ -958,9 +938,6 @@
this.upLoad3 = true
numberCollect(this.configForm).then(res => {
this.upLoad3 = false
- if (res.code === 201) {
- return
- }
this.$message.success('鎿嶄綔鎴愬姛')
this.refreshTable('page')
this.dialogVisible3 = false
@@ -1007,7 +984,6 @@
})
.then(() => {
delDeviceParameter({ id: row.id }).then((res) => {
- if (res.code == 201) return;
this.$message.success("鍒犻櫎鎴愬姛");
this.refresh();
});
@@ -1025,20 +1001,11 @@
</script>
<style scoped>
-.role_manage {
- width: 100%;
- height: 100%;
-}
-
-.title {
- line-height: 15px;
-}
-
.search {
- display: flex;
- align-items: center;
- justify-content: space-between;
- margin-top: 10px;
+ height: 46px;
+ display: flex;
+ justify-content: space-between;
+ margin-top: 10px;
}
.search_thing {
@@ -1053,20 +1020,10 @@
text-align: right;
}
-.search_input {
- width: calc(100% - 80px);
-}
-
.table {
- margin-top: 12px;
background-color: #fff;
- height: calc(100vh - 17em);
+ height: calc(100vh - 16em);
}
-
-.el-form-item {
- margin-bottom: 16px;
-}
-
.picName {
overflow: hidden;
text-overflow: ellipsis;
@@ -1074,4 +1031,7 @@
word-break: break-all;
width: 120px;
}
+.form-item >>>.el-form-item__content {
+ width: 120px;
+}
</style>
--
Gitblit v1.9.3