|
@@ -19,26 +19,29 @@
|
|
|
<div>
|
|
|
<el-button type="primary"
|
|
|
style="float: right ;margin-left: 5px; padding: 5px 10px; font-size: 12px;"
|
|
|
- @click="removeSpecimenNumber">-</el-button>
|
|
|
+ @click="removeSpecimenNumber"
|
|
|
+ >-</el-button>
|
|
|
<el-button type="primary"
|
|
|
style="float: right; padding: 5px 10px; font-size: 12px;"
|
|
|
@click="addSpecimenNumber">+</el-button>
|
|
|
</div>
|
|
|
- <el-form-item label="标本编号" prop="number" label-width="150px">
|
|
|
- <el-input v-model="formData.number[0]" placeholder="请输入标本编号" label-width="150px"/>
|
|
|
- </el-form-item>
|
|
|
+<!-- <el-form-item label="标本编号" prop="number" label-width="150px">-->
|
|
|
+<!-- <el-input v-model="formData.number" placeholder="请输入标本编号" label-width="150px"/>-->
|
|
|
+<!-- </el-form-item>-->
|
|
|
<template v-if="formData.number && formData.number.length > 1">
|
|
|
<el-form-item
|
|
|
- v-for="(item, index) in formData.number.slice(1)"
|
|
|
- :key="index + 1"
|
|
|
- :label="`标本编号 ${index + 2}`"
|
|
|
+ v-for="item in numberArray"
|
|
|
+ :key="item"
|
|
|
+ :label="`标本编号 ${item + 1}`"
|
|
|
prop="number"
|
|
|
label-width="150px"
|
|
|
>
|
|
|
- <el-input v-model="formData.number[index + 1]" placeholder="请输入标本编号" />
|
|
|
+ <el-input v-model="formData.number[item]" placeholder="请输入标本编号" />
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
-
|
|
|
+<!-- <el-form-item label="标本编号" prop="number" label-width="150px" v-for="(item, index) in formData.number" :key="index">-->
|
|
|
+<!-- <el-input v-model="formData.number[index]" placeholder="请输入标本编号" label-width="150px" />-->
|
|
|
+<!-- </el-form-item>-->
|
|
|
<el-form-item label="申请人姓名" prop="applicantName" label-width="150px">
|
|
|
<el-input v-model="formData.applicantName" placeholder="请输入申请人姓名" label-width="150px"/>
|
|
|
</el-form-item>
|
|
@@ -93,7 +96,7 @@
|
|
|
|
|
|
import {SpecimenOutboundApi, SpecimenOutboundVO} from '@/api/museums/specimenoutbound'
|
|
|
//import { UploadFilled } from '@element-plus/icons-vue'
|
|
|
-import {ref, reactive, defineEmits} from "vue";
|
|
|
+import {ref, reactive, defineEmits,computed} from "vue";
|
|
|
|
|
|
/** 标本出库回库信息 表单 */
|
|
|
defineOptions({name: 'SpecimenOutboundForm'})
|
|
@@ -111,7 +114,7 @@ const formData = ref({
|
|
|
id: undefined,
|
|
|
infoId: [],
|
|
|
chineseName: undefined,// 确保初始值为数组
|
|
|
- number: [''],// 确保初始值为数组
|
|
|
+ number:[''] ,// 确保初始值为数组
|
|
|
applicantName: undefined,
|
|
|
applicationDate: undefined,
|
|
|
applicationUsage: undefined,
|
|
@@ -144,6 +147,18 @@ const formRules = reactive({
|
|
|
})
|
|
|
const formRef = ref() // 表单 Ref
|
|
|
/**增减标本编号**/
|
|
|
+
|
|
|
+// 将字符串解析为数组的计算属性
|
|
|
+const numberArray = computed(() => {
|
|
|
+ try {
|
|
|
+ // 尝试解析字符串为数组
|
|
|
+ return ref(JSON.parse(numberStr.value));
|
|
|
+ } catch (error) {
|
|
|
+ // 如果解析失败,返回一个包含空字符串的数组
|
|
|
+ console.error("解析标本编号失败", error);
|
|
|
+ return ref(['']);
|
|
|
+ }
|
|
|
+});
|
|
|
const addSpecimenNumber = () => {
|
|
|
formData.value.number.push(''); // 向数组中添加一个新的空字符串
|
|
|
};
|
|
@@ -168,11 +183,11 @@ const open = async (type: string, id?: number) => {
|
|
|
// if (!formData.value.number || !Array.isArray(formData.value.number) || formData.value.number.length === 0) {
|
|
|
// formData.value.number = ['']; // 如果不是数组或为空,则初始化为包含一个空字符串的数组
|
|
|
// }
|
|
|
- if (!Array.isArray(formData.value.number)) {
|
|
|
- formData.value.number = [];// 如果不是数组,则转换为包含该数据的数组
|
|
|
- } else if (formData.value.number.length === 0) {
|
|
|
- formData.value.number = ['']; // 如果数组为空,则初始化为包含一个空字符串的数组
|
|
|
- }
|
|
|
+ // if (!Array.isArray(formData.value.number)) {
|
|
|
+ // formData.value.number = [];// 如果不是数组,则转换为包含该数据的数组
|
|
|
+ // } else if (formData.value.number.length === 0) {
|
|
|
+ // formData.value.number = ['']; // 如果数组为空,则初始化为包含一个空字符串的数组
|
|
|
+ // }
|
|
|
|
|
|
} finally {
|
|
|
formLoading.value = false
|