From 8d14fec97344df49d58db115852c03b466482bc6 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: Wed, 12 Apr 2023 14:47:21 +0800
Subject: [PATCH] 设备、场所、部门接口
---
src/views/experiment/project/components/selectPerson.vue | 50 ++++++++++++++++++++++++++++++++++++++------------
1 files changed, 38 insertions(+), 12 deletions(-)
diff --git a/src/views/experiment/project/components/selectPerson.vue b/src/views/experiment/project/components/selectPerson.vue
index e0359b8..6677595 100644
--- a/src/views/experiment/project/components/selectPerson.vue
+++ b/src/views/experiment/project/components/selectPerson.vue
@@ -1,7 +1,7 @@
<template>
<tr class="m-color b-font" style="text-align: center">实验人员</tr>
<tr>
- <td class="w-14 m-color">姓名</td>
+ <td class="w-14 m-color required">姓名</td>
<td class="w-14 m-color">年龄</td>
<td class="w-14 m-color">性别</td>
<td class="w-14 m-color">专业</td>
@@ -11,7 +11,7 @@
</tr>
<tr v-for="(item,index) in selectPersonState.personList" :key="index">
<td class="w-14">
- <el-select filterable :disabled="selectPersonState.disabled" v-model="item.personId" @change="giveOtherPersonValue($event, index)">
+ <el-select filterable :disabled="selectPersonState.disabled" v-model="item.personId" @change="giveOtherPersonValue($event, index)" @focus="checkAllPerson($event, index)">
<el-option
v-for="item in selectPersonState.allPersonList"
:key="item.id"
@@ -22,19 +22,20 @@
</el-select>
</td>
<td class="w-14">
- <el-input :disabled="selectPersonState.disabled" v-model="item.personAge" />
+ <el-input disabled v-model="item.personAge" />
</td>
<td class="w-14">
- <el-input :disabled="selectPersonState.disabled" v-model="item.personGender" />
+<!-- <el-input disabled v-model="item.personGender" />-->
+ <div>{{item.personGender == 1 ? '男' : item.personGender == 2 ? '女' : ''}}</div>
</td>
<td class="w-14">
- <el-input :disabled="selectPersonState.disabled" v-model="item.personMajor" />
+ <el-input disabled v-model="item.personMajor" />
</td>
<td class="w-14">
- <el-input :disabled="selectPersonState.disabled" v-model="item.depName" />
+ <el-input disabled v-model="item.depName" />
</td>
<td class="w-14">
- <el-input :disabled="selectPersonState.disabled" v-model="item.aptitude" />
+ <el-input disabled v-model="item.aptitude" />
</td>
<td class="w-14">
<el-button type="danger" :disabled="selectPersonState.disabled" @click="deletePersonItem(index)">删除</el-button>
@@ -42,13 +43,17 @@
</tr>
<tr style="text-align: center">
<el-button :disabled="selectPersonState.disabled" type="primary" shape="round" @click="addPersonItem()">
- 选择实验人员
+ 添加现有实验人员
+ </el-button>
+ <el-button :disabled="selectPersonState.disabled" shape="round" @click="addNewPerson('新增', {})">
+ 新增实验人员配置
</el-button>
</tr>
+ <person-dialog ref="personDialogRef"></person-dialog>
</template>
<script setup lang="ts">
-import {nextTick, onMounted, reactive, watchEffect} from "vue";
+import {defineAsyncComponent, nextTick, onMounted, reactive, ref, watchEffect} from "vue";
import { personApi } from "/@/api/basic/person";
import {ElMessage} from "element-plus";
@@ -58,12 +63,16 @@
});
+const personDialog = defineAsyncComponent(() => import('/@/views/basic/person/components/personDialog.vue'));
+
const selectPersonState = reactive<SelectPersonType>({
disabled: false,
personList: [],
allPersonList: [
],
});
+
+const personDialogRef = ref();
watchEffect(() => {
selectPersonState.personList = props.data as Array<AllPersonListType>
@@ -73,6 +82,14 @@
const addPersonItem = () => {
selectPersonState.personList.push({personId: null, personName: null, personAge: null, personGender:'',personMajor:'',depName:'',phone:'',aptitude:'',training:''});
};
+
+const addNewPerson = (title: string, value: PersonType) => {
+ personDialogRef.value.showPersonDialog(title, value);
+}
+
+const checkAllPerson = () => {
+ getAllPersonList()
+}
const deletePersonItem = (index: number) => {
selectPersonState.personList.splice(index,1);
@@ -162,6 +179,18 @@
border-right: none;
}
+ &.required {
+ &::before {
+ content: "*";
+ display: inline-block;
+ color: red;
+ }
+ }
+
+ :deep(.el-input__wrapper ){
+ box-shadow: none;
+ }
+
&.w-14 {
width: calc((100/7)/100 * 100%);
}
@@ -211,8 +240,5 @@
.m-color {
color: #0c4995;
-}
-:deep(.el-input__wrapper ){
- box-shadow: none;
}
</style>
--
Gitblit v1.9.2