From 604147ab79d5246a6215a7a89bd340dcc393a085 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期二, 25 三月 2025 17:55:22 +0800
Subject: [PATCH] 设备导入功能

---
 src/views/CNAS/resourceDemand/device/component/management.vue |  107 +++++++++++++++++++++++++++++++----------------------
 1 files changed, 62 insertions(+), 45 deletions(-)

diff --git a/src/views/CNAS/resourceDemand/device/component/management.vue b/src/views/CNAS/resourceDemand/device/component/management.vue
index b5b83c1..07ac2d6 100644
--- a/src/views/CNAS/resourceDemand/device/component/management.vue
+++ b/src/views/CNAS/resourceDemand/device/component/management.vue
@@ -1,35 +1,40 @@
 <!-- 璁惧宸ュ叿鏄庣粏 -->
 <template>
 	<div class="role_manage">
-    <div class="search">
-      <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" placeholder="鍏ㄩ儴" size="small">
-              <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="specificationModel">
-            <el-input size="small" placeholder="璇疯緭鍏�" clearable
-                      v-model="queryParams.specificationModel" @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="search">
+			<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" placeholder="鍏ㄩ儴" size="small">
+							<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" style="width: 160px;" placeholder="璇疯緭鍏�" clearable v-model="queryParams.deviceName"
+							@keyup.enter.native="refreshTable()">
+						</el-input>
+					</el-form-item>
+					<el-form-item label="瑙勬牸鍨嬪彿" prop="specificationModel">
+						<el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.specificationModel"
+							@keyup.enter.native="refreshTable()" style="width: 160px;"></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-upload ref='upload' style="display: inline;margin-right: 8px" :action="uploadAction"
+					:before-upload="beforeUpload" :headers="uploadHeader" :on-error="onError" :on-success="handleSuccessUp"
+					:show-file-list="false" accept='.xls,.xlsx'>
+					<el-button size="small" type="primary">瀵煎叆</el-button>
+				</el-upload>
+				<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 - 300px)'"
 				:page="page" @pagination="pagination"></lims-table>
@@ -415,6 +420,7 @@
 	},
 	data() {
 		return {
+			uploadAction: process.env.VUE_APP_BASE_API + '/deviceScope/importDevice',
 			dateFormat: 'yyyy-MM-dd',
 			deviceId: '',
 			fileTypeOptions: [
@@ -491,18 +497,18 @@
 				{
 					label: "璁惧鍒嗙被", prop: "largeCategory", dataType: "tag",
 					formatData: (params) => {
-            if (this.equipmentList.find(m => m.value == params)) {
-						  return this.equipmentList.find(m => m.value == params).label
-            } else {
-              return null
-            }
+						if (this.equipmentList.find(m => m.value == params)) {
+							return this.equipmentList.find(m => m.value == params).label
+						} else {
+							return null
+						}
 					},
 					formatType: (params) => {
-            if (this.equipmentList.find(m => m.value == params)) {
-              return this.equipmentList.find(m => m.value == params).type
-            } else {
-              return null
-            }
+						if (this.equipmentList.find(m => m.value == params)) {
+							return this.equipmentList.find(m => m.value == params).type
+						} else {
+							return null
+						}
 					}
 				},
 				{ label: "鍗曚环", prop: "unitPrice" },
@@ -765,6 +771,15 @@
 				})
 			}
 		},
+		handleSuccessUp(response, file, fileList) {
+			this.$refs.upload.clearFiles()
+			if (response.code !== 200) {
+				this.$message.error(response.msg)
+				return
+			}
+			this.$message.success('涓婁紶鎴愬姛')
+			this.refreshTable()
+		},
 		submitForm() {
 			if (!this.formData.deviceName) {
 				this.$message.error('鏈緭鍏ヤ华鍣ㄥ悕绉�')
@@ -991,10 +1006,10 @@
 
 <style scoped>
 .search {
-  height: 46px;
-  display: flex;
-  justify-content: space-between;
-  margin-top: 10px;
+	height: 46px;
+	display: flex;
+	justify-content: space-between;
+	margin-top: 10px;
 }
 
 .search_thing {
@@ -1013,6 +1028,7 @@
 	background-color: #fff;
 	height: calc(100vh - 16em);
 }
+
 .picName {
 	overflow: hidden;
 	text-overflow: ellipsis;
@@ -1020,7 +1036,8 @@
 	word-break: break-all;
 	width: 120px;
 }
-.form-item >>>.el-form-item__content {
-  width: 120px;
+
+.form-item>>>.el-form-item__content {
+	width: 120px;
 }
 </style>

--
Gitblit v1.9.3