From df5b61dcf9d7c6a71ba919b0556ea9aa43aa3f76 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: Mon, 08 May 2023 10:00:43 +0800
Subject: [PATCH] 修改展示
---
src/views/experiment/project/components/selectEquipment.vue | 77 +++++++++++++++++++++++++++++---------
1 files changed, 58 insertions(+), 19 deletions(-)
diff --git a/src/views/experiment/project/components/selectEquipment.vue b/src/views/experiment/project/components/selectEquipment.vue
index c86e11f..7ddf0b9 100644
--- a/src/views/experiment/project/components/selectEquipment.vue
+++ b/src/views/experiment/project/components/selectEquipment.vue
@@ -1,16 +1,16 @@
<template>
<tr class="m-color b-font" style="text-align: center">实验所用的仪器/设备</tr>
<tr>
- <td class="w-16 m-color">设备名称</td>
+ <td class="w-16 m-color required">设备名称</td>
<td class="w-16 m-color">编号</td>
- <td class="w-16 m-color">设备功率</td>
+ <td class="w-16 m-color">额定功率</td>
<td class="w-16 m-color">是否特种</td>
- <td class="w-16 m-color">设备数量</td>
+ <td class="w-16 m-color required">设备数量</td>
<td class="w-16 m-color">操作</td>
</tr>
<tr v-for="(item,index) in selectEquipmentState.equipmentList" :key="index">
<td class="w-16">
- <el-select :disabled="selectEquipmentState.disabled" filterable v-model="item.deviceId" @change="giveOtherEquipmentValue($event, index)">
+ <el-select :disabled="selectEquipmentState.disabled" filterable v-model="item.deviceId" @change="giveOtherEquipmentValue($event, index)" @focus="checkAllEquipment($event, index)">
<el-option
v-for="item in selectEquipmentState.allEquipmentList"
:key="item.id"
@@ -21,19 +21,20 @@
</el-select>
</td>
<td class="w-16">
- <el-input :disabled="selectEquipmentState.disabled" v-model="item.deviceCode" placeholder="请输入数量" />
+ <el-input disabled v-model="item.deviceCode"/>
</td>
<td class="w-16">
- <el-input :disabled="selectEquipmentState.disabled" v-model="item.devicePower" />
+ <el-input disabled v-model="item.devicePower" />
</td>
<td class="w-16">
- <el-radio-group :disabled="selectEquipmentState.disabled" v-model="item.specialDevice">
- <el-radio :label="1">是</el-radio>
- <el-radio :label="2">否</el-radio>
- </el-radio-group>
+<!-- <el-radio-group disabled v-model="item.specialDevice">-->
+<!-- <el-radio :label="1">是</el-radio>-->
+<!-- <el-radio :label="2">否</el-radio>-->
+<!-- </el-radio-group>-->
+ <div>{{item.specialDevice == 1 ? '是' : item.specialDevice == 2 ? '否' : ''}}</div>
</td>
<td class="w-16">
- <el-input type="number" v-model="item.deviceUseCount" />
+ <el-input :disabled="selectEquipmentState.disabled" type="number" v-model="item.deviceUseCount" />
</td>
<td class="w-16">
<el-button :disabled="selectEquipmentState.disabled" type="danger" @click="deleteEquipmentItem(index)">删除</el-button>
@@ -41,13 +42,17 @@
</tr>
<tr style="text-align: center">
<el-button :disabled="selectEquipmentState.disabled" type="primary" shape="round" @click="addEquipmentItem()">
- 选择实验仪器
+ 添加现有实验仪器/设备
+ </el-button>
+ <el-button :disabled="selectEquipmentState.disabled" shape="round" @click="addNewEquipment('新增', {})">
+ 新增实验仪器/设备配置
</el-button>
</tr>
+ <equipment-dialog ref="equipmentDialogRef" :equipmentTypeList="selectEquipmentState.equipmentTypeList"></equipment-dialog>
</template>
<script setup lang="ts">
-import {onMounted, reactive, watchEffect} from "vue";
+import {defineAsyncComponent, onMounted, reactive, ref, watchEffect} from "vue";
import {ElMessage} from "element-plus";
import { equipmentApi } from "/@/api/basic/equipement";
@@ -55,11 +60,16 @@
disabled: Boolean,
data: Array<AllEquipmentListType>
});
-
+const equipmentDialog = defineAsyncComponent(() => import('/@/views/basic/equipment/components/equipmentDialog.vue'));
const selectEquipmentState = reactive<SelectEquipmentType>({
disabled: false,
equipmentList: [],
allEquipmentList: [],
+ equipmentTypeList: [],
+ specialDeviceList: [
+ {id: 1, name: '是'},
+ {id:2, name: '否'}
+ ]
});
watchEffect(() => {
@@ -67,9 +77,26 @@
selectEquipmentState.disabled = props.disabled
});
+const equipmentDialogRef = ref();
+
+const getAllType = async ()=>{
+ const res = await equipmentApi().getAllType();
+ if(res.data.code === 100){
+ selectEquipmentState.equipmentTypeList = res.data.data
+ }
+}
+
+const checkAllEquipment = () => {
+ getAllEquipmentList()
+}
+
const addEquipmentItem = () => {
- selectEquipmentState.equipmentList.push({deviceId: null, deviceUseCount: null, deviceCode: '', deviceName: '', devicePower: '', specialDevice: '',});
+ selectEquipmentState.equipmentList.push({deviceId: null, deviceUseCount: null, deviceCode: '', deviceName: '', devicePower: '', specialDevice: '',deviceUnit: null, safeProtect: null});
};
+
+const addNewEquipment = (title: string, value: EquipmentType) => {
+ equipmentDialogRef.value.showEquipmentDialog(title, value, selectEquipmentState.specialDeviceList);
+}
const deleteEquipmentItem = (index: number) => {
selectEquipmentState.equipmentList.splice(index,1);
@@ -95,7 +122,9 @@
deviceCode: data.deviceCode,
deviceName: data.deviceName,
devicePower: data.devicePower,
- specialDevice: data.specialDevice
+ specialDevice: data.specialDevice,
+ deviceUnit: data.deviceUnit,
+ safeProtect: data.safeProtect,
}
};
@@ -109,6 +138,7 @@
});
onMounted(() => {
+ getAllType();
getAllEquipmentList();
});
</script>
@@ -148,8 +178,20 @@
text-align: center;
line-height: 42px;
+ :deep(.el-input__wrapper ){
+ box-shadow: none;
+ }
+
&:last-of-type {
border-right: none;
+ }
+
+ &.required {
+ &::before {
+ content: "*";
+ display: inline-block;
+ color: red;
+ }
}
&.w-14 {
@@ -201,8 +243,5 @@
.m-color {
color: #0c4995;
-}
-:deep(.el-input__wrapper ){
- box-shadow: none;
}
</style>
--
Gitblit v1.9.2