From c3b8f3f950ca99b011ea8f43b2356ddf0508f3b9 Mon Sep 17 00:00:00 2001
From: gaoaoy <1042166043@qq.com>
Date: 星期一, 04 三月 2024 13:42:04 +0800
Subject: [PATCH] 6 设备工具明细

---
 src/components/tool/value-table.vue              |    1 
 static/js/menu.js                                |    4 
 src/components/view/a5-laboratory-management.vue |   16 +-
 src/components/view/a6-device-management.vue     |  292 ++++++++++++++++++++++++++++++++++++++++++++++++
 src/assets/api/controller.js                     |    8 +
 5 files changed, 313 insertions(+), 8 deletions(-)

diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js
index e8e599b..49b3074 100644
--- a/src/assets/api/controller.js
+++ b/src/assets/api/controller.js
@@ -7,6 +7,7 @@
 		enums,
 		capacityScope,
 		laboratoryScope,
+		deviceScope,
 		systemLog,
 		standardTree
 	}
@@ -92,6 +93,13 @@
 	obtainItemParameterList: "/laboratoryScope/obtainItemParameterList", //鑾峰彇瀹為獙瀹ゅ悕绉�
 }
 
+const deviceScope = {
+	selectDeviceParameter: "/deviceScope/selectDeviceParameter", //鏌ヨ璁惧璇︽儏鍒楄〃
+	addDeviceParameter: "/deviceScope/addDeviceParameter", //娣诲姞璁惧璇︽儏鍙傛暟
+	delDeviceParameter: "/deviceScope/delDeviceParameter", //鍒犻櫎璁惧璇︽儏鍙傛暟
+	upDeviceParameter: "/deviceScope/upDeviceParameter", //淇敼璁惧璇︽儏鍙傛暟
+}
+
 const systemLog = {
 	selectSystemLogList: "/systemLog/selectSystemLogList", //鑾峰彇鏃ュ織
 }
diff --git a/src/components/tool/value-table.vue b/src/components/tool/value-table.vue
index 0cef9a8..c9999e0 100644
--- a/src/components/tool/value-table.vue
+++ b/src/components/tool/value-table.vue
@@ -411,6 +411,7 @@
 				return false
 			},
 			main(row, val) {
+				console.log(val);
 				if (val.method == undefined) return
 				else if (val.method == 'doDiy') {
 					if (val.id == 'update') {
diff --git a/src/components/view/a5-laboratory-management.vue b/src/components/view/a5-laboratory-management.vue
index c1a056c..7e5a5a4 100644
--- a/src/components/view/a5-laboratory-management.vue
+++ b/src/components/view/a5-laboratory-management.vue
@@ -40,28 +40,32 @@
 	<div class="role_manage">
 		<div>
 			<el-row class="title">
-				<el-col :span="12" style="padding-left: 20px;">鍦烘墍鎴栬鏂�</el-col>
+				<el-col :span="12" style="padding-left: 20px;">璁惧宸ュ叿鏄庣粏锛�</el-col>
 				<el-col :span="12" style="text-align: right;">
-					<el-button size="medium" type="primary" @click="openAdd" v-if="addPower">鏂板</el-button>
 				</el-col>
 			</el-row>
 		</div>
 		<div class="search">
 			<div class="search_thing">
-				<div class="search_label">瀹為獙瀹ゅ悕绉帮細</div>
-				<div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
+				<div class="search_label">鐘舵�侊細</div>
+				<div class="search_input"><el-input size="small" placeholder="鍏ㄩ儴" clearable
 						v-model="componentData.entity.laboratoryName" @keyup.enter.native="refreshTable()"></el-input></div>
 			</div>
 			<div class="search_thing">
-				<div class="search_label">瀹為獙瀹ょ紪鐮侊細</div>
+				<div class="search_label">璁惧鍚嶇О锛�</div>
 				<div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
 						v-model="componentData.entity.laboratoryNumber" @keyup.enter.native="refreshTable()"></el-input></div>
 			</div>
             <div class="search_thing">
-				<div class="search_label">璐熻矗浜猴細</div>
+				<div class="search_label">瑙勬牸鍨嬪彿锛�</div>
 				<div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
 						v-model="componentData.entity.head" @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="componentData.entity.head" @keyup.enter.native="refreshTable()"></el-input></div>
+			</div>
 			<div class="search_thing" style="padding-left: 30px;">
                 <el-button size="small" @click="refresh()">閲� 缃�</el-button>
 				<el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
diff --git a/src/components/view/a6-device-management.vue b/src/components/view/a6-device-management.vue
new file mode 100644
index 0000000..8c9e4a2
--- /dev/null
+++ b/src/components/view/a6-device-management.vue
@@ -0,0 +1,292 @@
+<style scoped>
+	.title {
+		height: 60px;
+		line-height: 60px;
+	}
+
+	.search {
+		background-color: #fff;
+		height: 80px;
+		display: flex;
+		align-items: center;
+	}
+
+	.search_thing {
+		width: 350px;
+		display: flex;
+		align-items: center;
+	}
+
+	.search_label {
+		width: 110px;
+		
+		font-size: 14px;
+		text-align: right;
+	}
+
+	.search_input {
+		width: calc(100% - 110px);
+	}
+
+	.table {
+		margin-top: 10px;
+		background-color: #fff;
+		width: calc(100% - 40px);
+		height: calc(100% - 60px - 80px - 10px - 40px);
+		padding: 20px;
+	}
+</style>
+
+<template>
+	<div class="role_manage">
+		<div>
+			<el-row class="title">
+				<el-col :span="12" style="padding-left: 20px;">璁惧宸ュ叿鏄庣粏</el-col>
+				<el-col :span="12" style="text-align: right;">
+				</el-col>
+			</el-row>
+		</div>
+		<div class="search">
+			<div class="search_thing">
+				<div class="search_label">鐘舵�侊細</div>
+				<el-select v-model="value" placeholder="鍏ㄩ儴">
+					<el-option
+					  v-for="item in options"
+					  :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="componentData.entity.laboratoryNumber" @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="componentData.entity.head" @keyup.enter.native="refreshTable()"></el-input></div>
+			</div>
+						<div class="search_thing">
+							<div class="search_label">璁惧澶х被锛�</div>
+							<el-select v-model="value" placeholder="璇烽�夋嫨">
+								<el-option
+								  v-for="item in options"
+								  :key="item.value"
+								  :label="item.label"
+								  :value="item.value">
+								</el-option>
+							  </el-select>
+			</div>
+			<div class="search_thing" style="padding-left: 30px;">
+                <el-button size="small" @click="refresh()">閲� 缃�</el-button>
+				<el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
+			</div>
+		</div>
+		<div class="table">
+			<!-- 璇硶 瀛愮粍浠堕�氳繃 this.$emit +浼犲叆鏂规硶鍚� 璋冪敤鐖剁粍浠舵柟娉� 渚嬪  this.$emit锛坰electAllByOne锛� 灏遍渶鍦ㄧ埗缁勪欢澹版槑骞朵紶鍏�  @selectAllByOne="selectAllByOne"-->
+			<ValueTable @selectAllByOne="selectAllByOne" @isUpdate="isUpdate" ref="ValueTable" :url="$api.deviceScope.selectDeviceParameter" :upUrl="$api.deviceScope.upDeviceParameter" :delUrl="$api.deviceScope.delDeviceParameter" :componentData="componentData" :key="upIndex"/>
+		</div>
+			<div>
+			<el-dialog
+				title="璁惧璇︽儏"
+				:visible.sync="dialogVisible"
+				width="70%"
+				:before-close="handleClose">
+				<el-row style="display:flex;justify-content: space-around;">
+					<!-- 宸﹁竟甯冨眬 -->
+					<el-col  :span="7" >
+						<el-col>
+							<!-- 鍥剧墖 -->
+							<img src="https://www.baidu.com/img/bd_logo1.png" alt="" style="width:100%;height: 30vh;">
+							<!-- 琛ㄥ崟 -->
+							<el-form :label-position="labelPosition" :model="formData">
+								<el-form-item label="澶х被锛�" >
+								  <el-input style="width:75%" :disabled="isUp" v-model="formData.largeCategory"></el-input>
+								</el-form-item>
+								<el-form-item label="鍑哄巶鏃ユ湡">
+
+								  <el-input style="width:75%" :disabled="isUp" v-model="formData.dateProduction"></el-input>
+								</el-form-item>
+								<el-form-item label="璁惧璐熻矗浜�" >
+								  <el-input style="width:75%" :disabled="isUp" v-model="formData.equipmentManager"></el-input>
+								</el-form-item>
+								<el-form-item label="琚巿鏉冧汉" >
+									<el-input style="width:75%" :disabled="isUp" v-model="formData.authorizedPerson"></el-input>
+								  </el-form-item>
+								  <el-form-item v-if="!isUp" label="鍥剧墖" >
+									<div style="width:75%;border: 1px solid #DCDFE6;border-radius:4px;margin-left: 22%;display:flex;justify-content: space-around;">
+											<div>{{formData.largeCategory}}</div>
+											<div style="width: 40%;"></div>
+											<div><el-button type="text">棰勮</el-button></div>
+									</div>
+								  </el-form-item>
+							  </el-form>
+						</el-col>
+					</el-col>
+					<!-- 涓棿甯冨眬 -->
+					<el-col  :span="7">
+						<el-form :label-position="labelPosition" :model="formData">
+							<el-form-item label="璁惧鍚嶇О" >
+							  <el-input style="width:75%" :disabled="isUp" v-model="formData.deviceName"></el-input>
+							</el-form-item>
+							<el-form-item label="鍐呴儴缂栫爜">
+							  <el-input style="width:75%" :disabled="isUp" v-model="formData.internalCode"></el-input>
+							</el-form-item>
+							<el-form-item label="璧勪骇缂栫爜" >
+							  <el-input style="width:75%" :disabled="isUp" v-model="formData.assetCode"></el-input>
+							</el-form-item>
+							<el-form-item label="鏍″噯鏃ユ湡锛堟湀锛�" >
+								<el-input style="width:75%" :disabled="isUp" v-model="formData.calibrationDate"></el-input>
+							  </el-form-item>
+						  </el-form>
+					</el-col>
+					<!-- 鍙宠竟甯冨眬 -->
+					<el-col  :span="7">
+						<el-form :label-position="labelPosition" :model="formData">
+							<el-form-item label="娲诲姩鍖哄煙" >
+							  <el-input style="width:75%" :disabled="isUp" v-model="formData.largeCategory"></el-input>
+							</el-form-item>
+							<el-form-item label="娲诲姩鍖哄煙">
+							  <el-input style="width:75%" :disabled="isUp" v-model="formData.latestTraceability"></el-input>
+							</el-form-item>
+							<el-form-item label="娲诲姩褰㈠紡" >
+							  <el-input style="width:75%" :disabled="isUp" v-model="formData.largeCategory"></el-input>
+							</el-form-item>
+							<el-form-item label="娲诲姩褰㈠紡" >
+								<el-input style="width:75%" :disabled="isUp" v-model="formData.largeCategory"></el-input>
+							  </el-form-item>
+						  </el-form>
+					</el-col>
+				</el-row>
+				<span slot="footer" class="dialog-footer">
+					<el-row v-if="!isUp">
+						<el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+					<el-button type="primary" @click="dialogVisible = false">纭� 瀹�</el-button>
+					</el-row>
+				</span>
+			</el-dialog>
+		</div>
+	</div>
+</template>
+
+<script>
+	import ValueTable from '../tool/value-table.vue'
+	export default {
+		components: {
+			ValueTable
+		},
+		data() {
+			return {
+				//鏄惁鏄。妗堜慨璁�  true涓嶆槸 false鏄�
+				isUp: true,
+				formData: {},
+				value: '',
+				options: [],
+				labelPosition: 'right',
+				dialogVisible: false,
+				componentData: {
+					entity: {
+						largeCategory: null,
+						subclass: null,
+						deviceName: null,
+						internalCode: null,
+						specificationModel: null,
+						manufacturer: null,
+						orderBy: {
+							field: 'id',
+							order: 'asc'
+						}
+					},
+					isIndex: true,
+					showSelect: false,
+					select: false,
+					do: [{
+						id: 'details',
+						font: '璇︽儏',
+						type: 'text',
+						method: 'selectAllByOne'
+					}, {
+						id: 'delete',
+						font: '鍒犻櫎',
+						type: 'text',
+						method: 'doDiy'
+					},{
+						id: 'archives',
+						font: '妗f淇',
+						type: 'text',
+						method: 'isUpdate'
+					}],
+					tagField: {},
+					selectField: {},
+					requiredAdd:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer'],
+					requiredUp:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer']
+				},
+				entityCopy: {},
+				upIndex: 0,
+				addDia: true,
+				addPower: true
+			}
+		},
+		mounted() {
+			this.entityCopy = this.HaveJson(this.componentData.entity)
+			this.getPower()
+		},
+		methods: {
+			refreshTable() {
+				this.$refs['ValueTable'].selectList()
+			},
+			refresh() {
+				this.componentData.entity = this.HaveJson(this.entityCopy)
+				this.upIndex++
+			},
+	
+			// 鏉冮檺鍒嗛厤
+			getPower(radio) {
+				let power = JSON.parse(sessionStorage.getItem('power'))
+				let up = false
+				let del = false
+				let add = 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(!del){
+					this.componentData.do.splice(1, 1)
+				}
+				if(!up){
+					this.componentData.do.splice(0, 1)
+				}
+				this.addPower = add
+			},
+			handleClose(){
+				this.dialogVisible = false;
+			},
+			selectAllByOne(row){
+				this.isUp = true
+				//鎵撳紑寮规
+				this.dialogVisible = true;
+				//row = 鐐瑰嚮瀵瑰簲琛屽��
+				//澶嶅埗缁檉ormData
+				this.formData=row;
+			},
+			isUpdate(row){
+				//淇敼  isUp 涓烘。妗堜慨鏀�
+				this.isUp = false
+				//鎵撳紑寮规
+				this.dialogVisible = true;
+				//row = 鐐瑰嚮瀵瑰簲琛屽�间竴琛屽��
+				//澶嶅埗缁檉ormData
+				this.formData=row;
+			}
+			}
+		}
+</script>
\ No newline at end of file
diff --git a/static/js/menu.js b/static/js/menu.js
index a34db2b..4f6f1e2 100644
--- a/static/js/menu.js
+++ b/static/js/menu.js
@@ -405,9 +405,9 @@
 		}, {
 			v: "璁惧宸ュ叿鏄庣粏",
 			i: "font icon-24gl-clipboardList",
-			u: "",
+			u: "a6-device-management",
 			g: "6.4 璁惧",
-			p: ""
+			p: "selectDeviceParameter"
 		}, {
 			v: "璧勬簮棰勫畾",
 			i: "font icon-24gl-clipboardList",

--
Gitblit v1.9.3