添加数字校验
This commit is contained in:
parent
840ea7e901
commit
826cb90400
@ -160,12 +160,16 @@ const info: any = ref({
|
||||
pulseVelocity: null
|
||||
});
|
||||
onMounted(() => {
|
||||
// sizeSchemaInfo.value = props.sizeSchemaInfo
|
||||
sourceTempData.value = props.sizeSchemaInfo[props.deviceTypetype].fields
|
||||
sourceTempData.value.forEach((item:any) => {
|
||||
let rulesTemp:any = ref({})
|
||||
sourceTempData.value.forEach((item:any) => {
|
||||
info.value.size[item.key] = null
|
||||
rulesTemp.value['size.' + item.key] = [{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}]
|
||||
})
|
||||
// sizeSchemaInfo.value[queryParams.value.type]
|
||||
rules.value = {...rules.value,...rulesTemp.value}
|
||||
gettableData()
|
||||
|
||||
});
|
||||
@ -173,9 +177,41 @@ const infoForm = ref();
|
||||
const isAdd = ref(false) // 是否添加设备
|
||||
|
||||
const josnInfo: any = ref({}) // 设备信息
|
||||
const validator1 = (rule: any, value: any, callback: any) => { // 校验数字是否大于0
|
||||
if (value == null || value === '') {
|
||||
callback();
|
||||
return;
|
||||
}
|
||||
if (!/^\d+(\.\d+)?$/.test(value)) {
|
||||
callback(new Error('请输入有效的数字或小数'));
|
||||
} else if (parseFloat(value) <= 0) {
|
||||
callback(new Error('数字必须大于 0'));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
}
|
||||
|
||||
const rules = ref({
|
||||
name: [{ required: true, message: "请输入设备名称", trigger: "blur" }],
|
||||
code: [{ required: true, message: "请输入设备编码", trigger: "blur" }],
|
||||
volume: [
|
||||
{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
flowRate: [
|
||||
{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
pulseVelocity: [
|
||||
{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
});
|
||||
function addClick() {
|
||||
info.value = {
|
||||
@ -187,25 +223,6 @@ function addClick() {
|
||||
flowRate: null,
|
||||
pulseVelocity: null
|
||||
};
|
||||
// josnInfo.value = {}
|
||||
// if(props.deviceTypetype == 'ExtractionColumn'){
|
||||
// josnInfo.value = {
|
||||
// tray_section:{},
|
||||
// lower_expanded:{},
|
||||
// upper_expanded:{}
|
||||
// }
|
||||
// }else if(props.deviceTypetype == 'FluidizedBed'){
|
||||
// josnInfo.value = {
|
||||
// expanded_section:{},
|
||||
// reaction_section:{},
|
||||
// transition_section:{}
|
||||
// }
|
||||
// }else if(props.deviceTypetype == 'ACFTank'){
|
||||
// josnInfo.value = {
|
||||
// frustum_bottom:{},
|
||||
// annular_cylinder:{}
|
||||
// }
|
||||
// }
|
||||
isAdd.value = true
|
||||
}
|
||||
</script>
|
||||
@ -247,7 +264,7 @@ function addClick() {
|
||||
<el-form-item label="设备名称" prop="name" style="width: 100%;">
|
||||
<el-input v-model="info.name" style="width: 100%" placeholder="请输入设备名称"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item :label="item.label" style="width: 100%;" v-for="item in sourceTempData">
|
||||
<el-form-item :label="item.label" style="width: 100%;" v-for="item in sourceTempData" :prop="'size.'+item.key">
|
||||
<el-input-number
|
||||
placeholder="请输入长度"
|
||||
v-model="info.size[item.key]"
|
||||
@ -259,31 +276,31 @@ function addClick() {
|
||||
<template #suffix>{{item.unit}}</template>
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="容量" style="width: 100%;">
|
||||
<el-input-number
|
||||
placeholder="请输入容量"
|
||||
v-model="info.volume"
|
||||
:min="0"
|
||||
align="left"
|
||||
:controls="false"
|
||||
style="width: 100%"
|
||||
>
|
||||
<template #suffix>L</template>
|
||||
</el-input-number>
|
||||
<el-form-item label="容量" style="width: 100%;" prop="volume">
|
||||
<el-input-number
|
||||
placeholder="请输入容量"
|
||||
v-model="info.volume"
|
||||
:min="0"
|
||||
align="left"
|
||||
:controls="false"
|
||||
style="width: 100%"
|
||||
>
|
||||
<template #suffix>L</template>
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="流量" style="width: 100%;">
|
||||
<el-input-number
|
||||
placeholder="请输入流量"
|
||||
v-model="info.flowRate"
|
||||
:min="0"
|
||||
align="left"
|
||||
:controls="false"
|
||||
style="width: 100%"
|
||||
>
|
||||
<template #suffix>m³/h</template>
|
||||
</el-input-number>
|
||||
<el-form-item label="流量" style="width: 100%;" prop="flowRate">
|
||||
<el-input-number
|
||||
placeholder="请输入流量"
|
||||
v-model="info.flowRate"
|
||||
:min="0"
|
||||
align="left"
|
||||
:controls="false"
|
||||
style="width: 100%"
|
||||
>
|
||||
<template #suffix>m³/h</template>
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="脉冲速度" style="width: 100%;">
|
||||
<el-form-item label="脉冲速度" style="width: 100%;" prop="pulseVelocity">
|
||||
<el-input-number
|
||||
placeholder="请输入脉冲速度"
|
||||
v-model="info.pulseVelocity"
|
||||
@ -295,11 +312,6 @@ function addClick() {
|
||||
<template #suffix>Hz</template>
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
<!-- <span class="dialog-footer"
|
||||
style="display: flex;display: -webkit-flex; justify-content: flex-end;-webkit-justify-content: flex-end;">
|
||||
<el-button @click="handleClose">取 消</el-button>
|
||||
<el-button type="primary" @click="confirmClick(infoForm)">确 定</el-button>
|
||||
</span> -->
|
||||
</el-form>
|
||||
<div style="display: flex; justify-content: flex-end;">
|
||||
<el-button type="primary" @click="confirmClick(infoForm)">确定</el-button>
|
||||
|
||||
@ -39,6 +39,7 @@ const selectedDevice:any = ref({}) // 选中患者
|
||||
|
||||
function confirmClick(formEl: any) {
|
||||
formEl.validate((valid: any) => {
|
||||
debugger
|
||||
if (valid) {
|
||||
const params = {
|
||||
...info.value,
|
||||
@ -57,6 +58,15 @@ function confirmClick(formEl: any) {
|
||||
const sourceTempData:any = ref([])
|
||||
onMounted(() => {
|
||||
sourceTempData.value = props.sizeSchemaInfo[props.deviceTypetype].fields
|
||||
let rulesTemp:any = ref({})
|
||||
sourceTempData.value.forEach((item:any) => {
|
||||
rulesTemp.value['size.' + item.key] = [{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}]
|
||||
})
|
||||
rules.value = {...rules.value,...rulesTemp.value}
|
||||
|
||||
editClick(props.deviceInfo)
|
||||
|
||||
});
|
||||
@ -70,9 +80,41 @@ const info: any = ref({
|
||||
flowRate: null,
|
||||
pulseVelocity: null
|
||||
});
|
||||
const validator1 = (rule: any, value: any, callback: any) => { // 校验数字是否大于0
|
||||
if (value == null || value === '') {
|
||||
callback();
|
||||
return;
|
||||
}
|
||||
if (!/^\d+(\.\d+)?$/.test(value)) {
|
||||
callback(new Error('请输入有效的数字或小数'));
|
||||
} else if (parseFloat(value) <= 0) {
|
||||
callback(new Error('数字必须大于 0'));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
}
|
||||
|
||||
const rules = ref({
|
||||
name: [{ required: true, message: "请输入设备名称", trigger: "blur" }],
|
||||
code: [{ required: true, message: "请输入设备编码", trigger: "blur" }],
|
||||
volume: [
|
||||
{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
flowRate: [
|
||||
{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
pulseVelocity: [
|
||||
{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
});
|
||||
const isEdit = ref(false) // 是否编辑设备
|
||||
function editClick(row: any) {
|
||||
@ -96,7 +138,7 @@ info.value.size = JSON.parse(row.size)
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item :label="item.label" style="width: 100%;" v-for="item in sourceTempData">
|
||||
<el-form-item :label="item.label" style="width: 100%;" v-for="item in sourceTempData" :prop="'size.' + item.key">
|
||||
<el-input-number
|
||||
placeholder="请输入长度"
|
||||
v-model="info.size[item.key]"
|
||||
@ -108,7 +150,7 @@ info.value.size = JSON.parse(row.size)
|
||||
<template #suffix>{{item.unit}}</template>
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="容量" style="width: 100%;">
|
||||
<el-form-item label="容量" style="width: 100%;" prop="volume">
|
||||
<el-input-number
|
||||
placeholder="请输入容量"
|
||||
v-model="info.volume"
|
||||
@ -120,7 +162,7 @@ info.value.size = JSON.parse(row.size)
|
||||
<template #suffix>L</template>
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="流量" style="width: 100%;">
|
||||
<el-form-item label="流量" style="width: 100%;" prop="flowRate">
|
||||
<el-input-number
|
||||
placeholder="请输入流量"
|
||||
v-model="info.flowRate"
|
||||
@ -132,7 +174,7 @@ info.value.size = JSON.parse(row.size)
|
||||
<template #suffix>m³/h</template>
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="脉冲速度" style="width: 100%;">
|
||||
<el-form-item label="脉冲速度" style="width: 100%;" prop="pulseVelocity">
|
||||
<el-input-number
|
||||
placeholder="请输入脉冲速度"
|
||||
v-model="info.pulseVelocity"
|
||||
|
||||
@ -752,9 +752,9 @@ graph.on('blank:mouseup', (e) => {
|
||||
refY: 0,
|
||||
},
|
||||
label: {
|
||||
refX: 45,
|
||||
refX: 0.5,
|
||||
refY: 80,
|
||||
textAnchor: 'start',
|
||||
textAnchor: 'middle',
|
||||
textVerticalAnchor: 'top',
|
||||
fontSize: 14,
|
||||
fill: '#000',
|
||||
|
||||
@ -84,8 +84,12 @@ onMounted(() => {
|
||||
deviceName.value = props.deviceInfo.name
|
||||
if(props.materialId != null){
|
||||
materialsById(props.materialId).then((res:any) => {
|
||||
|
||||
if(res!= null && res != ""){
|
||||
editClick(res)
|
||||
info.value.iconBase64 = res.iconBase64;
|
||||
}
|
||||
|
||||
});
|
||||
}else{
|
||||
editClick(props.materialInfo)
|
||||
@ -96,18 +100,145 @@ onMounted(() => {
|
||||
});
|
||||
const infoForm = ref();
|
||||
const info: any = ref({
|
||||
name: "",
|
||||
code: "",
|
||||
type: null,
|
||||
size: null,
|
||||
volume: null,
|
||||
flowRate: null,
|
||||
pulseVelocity: null
|
||||
size: {},
|
||||
name: "",
|
||||
description: "",
|
||||
uConcentration: "",
|
||||
uo2Density: "",
|
||||
uEnrichment: "",
|
||||
puConcentration: "",
|
||||
puo2Density: "",
|
||||
ePu238: "",
|
||||
ePu239: "",
|
||||
ePu240: "",
|
||||
ePu241: "",
|
||||
ePu242: "",
|
||||
hno3Acidity: "",
|
||||
h2c2o4Concentration: "",
|
||||
organicRatio: "",
|
||||
moistureContent: "",
|
||||
iconBase64: ""
|
||||
});
|
||||
const josnInfo: any = ref({}) // 设备信息
|
||||
const validator1 = (rule: any, value: any, callback: any) => {
|
||||
if (!value || value === '') {
|
||||
callback();
|
||||
return;
|
||||
}
|
||||
if (!/^\d+(\.\d+)?$/.test(value)) {
|
||||
callback(new Error('请输入有效的数字或小数'));
|
||||
} else if (parseFloat(value) <= 0) {
|
||||
callback(new Error('数字必须大于 0'));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
}
|
||||
const validator2 = (rule: any, value: any, callback: any) => {
|
||||
if (!value || value === '') {
|
||||
callback();
|
||||
return;
|
||||
}
|
||||
if (!/^\d+(\.\d+)?$/.test(value)) {
|
||||
callback(new Error('请输入有效的数字或小数'));
|
||||
} else if (parseFloat(value) <= 0) {
|
||||
callback(new Error('数字必须大于 0'));
|
||||
}else if (parseFloat(value) >= 1) {
|
||||
callback(new Error('数字必须小于 1'));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
}
|
||||
//新建物料数据
|
||||
const rules = ref({
|
||||
name: [{ required: true, message: "请输入设备名称", trigger: "blur" }],
|
||||
code: [{ required: true, message: "请输入设备编码", trigger: "blur" }],
|
||||
name: [{ required: true, message: "请输入物料数据名称", trigger: "blur" }],
|
||||
uConcentration: [
|
||||
{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
uo2Density: [
|
||||
{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
uEnrichment: [{
|
||||
validator: validator2,
|
||||
trigger: 'blur'
|
||||
}],
|
||||
puConcentration: [
|
||||
{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
puo2Density: [
|
||||
{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
ePu238: [
|
||||
{
|
||||
validator: validator2,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
ePu239: [
|
||||
{
|
||||
validator: validator2,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
ePu240: [
|
||||
{
|
||||
validator: validator2,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
ePu241: [
|
||||
{
|
||||
validator: validator2,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
ePu242: [
|
||||
{
|
||||
validator: validator2,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
|
||||
|
||||
|
||||
|
||||
hno3Acidity: [
|
||||
{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
h2c2o4Concentration: [
|
||||
{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
organicRatio: [
|
||||
{
|
||||
validator: validator2,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
moistureContent: [
|
||||
{
|
||||
validator: validator2,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
});
|
||||
const isEdit = ref(false) // 是否编辑设备
|
||||
function editClick(row: any) {
|
||||
@ -336,7 +467,7 @@ function delIconBase(){
|
||||
<el-input v-model="info.puConcentration" style="width: 100%" placeholder="" @input="handleNumberInput('puConcentration')"></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div class="materialmodel_dialog_display">
|
||||
<div class="materialmodel_dialog_display">
|
||||
<el-form-item label="氧化钚密度(g/cm3)" prop="puo2Density">
|
||||
<el-input v-model="info.puo2Density" style="width: 100%" placeholder="" @input="handleNumberInput('puo2Density')"></el-input>
|
||||
</el-form-item>
|
||||
@ -471,32 +602,30 @@ function delIconBase(){
|
||||
{{ item.value }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="custom_attrs_header" style="height: 90px;" v-if="ingredientData.length>0">
|
||||
<div class="custom_attrs_header" style="height: 90px;" v-if="ingredientData.length>0">
|
||||
<div class="custom_attrs_content1" style="width: 60%;height: 90px;display: flex;align-items: center;justify-content: center;">图片</div>
|
||||
<div class="custom_attrs_content2" style="width: 40%;height: 90px;display: flex;align-items: center;justify-content: center;" >
|
||||
<el-image
|
||||
v-if="iconBase64 != '' && iconBase64 != null && iconBase64 != ' '"
|
||||
style="
|
||||
max-width: 200px;
|
||||
max-height: 80px;"
|
||||
class="materialmodel-iconBase64"
|
||||
:src="iconBase64"
|
||||
:zoom-rate="1.2"
|
||||
:max-scale="7"
|
||||
:min-scale="0.2"
|
||||
:preview-src-list="[iconBase64]"
|
||||
show-progress
|
||||
:initial-index="4"
|
||||
fit="contain"
|
||||
/>
|
||||
<el-image
|
||||
v-if="iconBase64 != '' && iconBase64 != null && iconBase64 != ' '"
|
||||
style="
|
||||
max-width: 200px;
|
||||
max-height: 80px;"
|
||||
class="materialmodel-iconBase64"
|
||||
:src="iconBase64"
|
||||
:zoom-rate="1.2"
|
||||
:max-scale="7"
|
||||
:min-scale="0.2"
|
||||
:preview-src-list="[iconBase64]"
|
||||
show-progress
|
||||
:initial-index="4"
|
||||
fit="contain"
|
||||
/>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
||||
@ -100,15 +100,107 @@ const input = ref("");
|
||||
//新建临界数据
|
||||
const title = ref("");
|
||||
const info: any = ref({
|
||||
|
||||
deviceType: null,
|
||||
diameter: null,
|
||||
height: null,
|
||||
fissileConcentration: null,
|
||||
isotopicAbundance: null,
|
||||
keffValue: null,
|
||||
size: {},
|
||||
});
|
||||
|
||||
|
||||
const validator1 = (rule: any, value: any, callback: any) => { // 校验数字是否大于0
|
||||
if (value == null || value === '') {
|
||||
callback();
|
||||
return;
|
||||
}
|
||||
if (!/^\d+(\.\d+)?$/.test(value)) {
|
||||
callback(new Error('请输入有效的数字或小数'));
|
||||
} else if (parseFloat(value) <= 0) {
|
||||
callback(new Error('数字必须大于 0'));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
}
|
||||
const validator2 = (rule: any, value: any, callback: any) => {
|
||||
if (value == null || value === '') {
|
||||
callback();
|
||||
return;
|
||||
}
|
||||
if (!/^\d+(\.\d+)?$/.test(value)) {
|
||||
callback(new Error('请输入有效的数字或小数'));
|
||||
} else if (parseFloat(value) <= 0) {
|
||||
callback(new Error('数字必须大于 0'));
|
||||
}else if (parseFloat(value) >= 1) {
|
||||
callback(new Error('数字必须小于 1'));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
}
|
||||
|
||||
const rulesSize = ref({
|
||||
uConcentration: [
|
||||
{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
uEnrichment: [
|
||||
{
|
||||
validator: validator2,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
puConcentration: [
|
||||
{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
ePu238: [
|
||||
{
|
||||
validator: validator2,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
ePu239: [
|
||||
{
|
||||
validator: validator2,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
ePu240: [
|
||||
{
|
||||
validator: validator2,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
ePu241: [
|
||||
{
|
||||
validator: validator2,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
ePu242: [
|
||||
{
|
||||
validator: validator2,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
keffValue: [
|
||||
{
|
||||
validator: validator2,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
})
|
||||
|
||||
const rules = ref({...rulesSize.value});
|
||||
|
||||
|
||||
|
||||
|
||||
const dialogVisible = ref(false);
|
||||
function addClick() {
|
||||
title.value = "新增临界数据";
|
||||
@ -122,10 +214,15 @@ function addClick() {
|
||||
size: {},
|
||||
|
||||
};
|
||||
let rulesTemp:any = ref({})
|
||||
sourceTempData.value.forEach((item:any) => {
|
||||
info.value.size[item.key] = null
|
||||
rulesTemp.value['size.' + item.key] = [{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}]
|
||||
})
|
||||
|
||||
rules.value = {...rulesSize.value,...rulesTemp.value}
|
||||
customAttrsData.value = []
|
||||
dialogVisible.value = true;
|
||||
}
|
||||
@ -180,11 +277,6 @@ function handleClose() {
|
||||
dialogVisible.value = false;
|
||||
if (infoForm.value != null) infoForm.value.resetFields();
|
||||
}
|
||||
//新建临界数据
|
||||
const rules = ref({
|
||||
name: [{ required: true, message: "请输入临界数据名称", trigger: "blur" }],
|
||||
code: [{ required: true, message: "请输入临界数据编码", trigger: "blur" }],
|
||||
});
|
||||
//修改临界数据
|
||||
function editClick(row: any) {
|
||||
title.value = "修改临界数据";
|
||||
@ -354,7 +446,7 @@ function downloadFile(obj :any, name :any, suffix :any) {
|
||||
accept=".xlsx,.xls"
|
||||
class="upload-demo"
|
||||
:data="{ deviceType: queryParams.type }"
|
||||
:action=" url + '/critical-data/import' "
|
||||
:action=" url + '/critical-data/v2/import' "
|
||||
:headers="{ token: getToken() }"
|
||||
:show-file-list="false"
|
||||
:before-upload="handlePreview"
|
||||
@ -385,7 +477,6 @@ function downloadFile(obj :any, name :any, suffix :any) {
|
||||
<el-table-column prop="ePu240" label="PU-240占比" min-width="120"></el-table-column>
|
||||
<el-table-column prop="ePu241" label="PU-241占比" min-width="120"></el-table-column>
|
||||
<el-table-column prop="ePu242" label="PU-242占比" min-width="120"></el-table-column>
|
||||
|
||||
<el-table-column prop="keffValue" label="对应Keff值" min-width="100"></el-table-column>
|
||||
<el-table-column prop="modifier" label="创建人" width="120"></el-table-column>
|
||||
<el-table-column prop="createdAt" label="创建时间" width="200">
|
||||
@ -414,7 +505,7 @@ function downloadFile(obj :any, name :any, suffix :any) {
|
||||
append-to-body width="677px" height="530px">
|
||||
|
||||
<el-form ref="infoForm" :model="info" :rules="rules" label-width="100px" style="height: calc(100vh - 160px);overflow: auto;">
|
||||
<el-form-item :label="item.label" style="width: 100%;" v-for="item in sourceTempData">
|
||||
<el-form-item :label="item.label" style="width: 100%;" v-for="item in sourceTempData" :prop="'size.' + item.key">
|
||||
<el-input-number
|
||||
placeholder="请输入长度"
|
||||
v-model="info.size[item.key]"
|
||||
@ -426,7 +517,7 @@ function downloadFile(obj :any, name :any, suffix :any) {
|
||||
<template #suffix>{{item.unit}}</template>
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="铀浓度(g/L)" style="width: 100%;" >
|
||||
<el-form-item label="铀浓度(g/L)" style="width: 100%;" prop="uConcentration">
|
||||
<el-input-number
|
||||
placeholder="请输入长度"
|
||||
v-model="info.uConcentration"
|
||||
@ -438,7 +529,7 @@ function downloadFile(obj :any, name :any, suffix :any) {
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="铀富集度" style="width: 100%;" >
|
||||
<el-form-item label="铀富集度" style="width: 100%;" prop="uEnrichment">
|
||||
<el-input-number
|
||||
placeholder="请输入长度"
|
||||
v-model="info.uEnrichment"
|
||||
@ -449,7 +540,7 @@ function downloadFile(obj :any, name :any, suffix :any) {
|
||||
>
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="钚浓度" style="width: 100%;" >
|
||||
<el-form-item label="钚浓度" style="width: 100%;" prop="puConcentration">
|
||||
<el-input-number
|
||||
placeholder="请输入长度"
|
||||
v-model="info.puConcentration"
|
||||
@ -462,7 +553,7 @@ function downloadFile(obj :any, name :any, suffix :any) {
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="PU-238占比" style="width: 100%;" >
|
||||
<el-form-item label="PU-238占比" style="width: 100%;" prop="ePu238">
|
||||
<el-input-number
|
||||
placeholder="请输入长度"
|
||||
v-model="info.ePu238"
|
||||
@ -473,7 +564,7 @@ function downloadFile(obj :any, name :any, suffix :any) {
|
||||
>
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="PU-239占比" style="width: 100%;" >
|
||||
<el-form-item label="PU-239占比" style="width: 100%;" prop="ePu239">
|
||||
<el-input-number
|
||||
placeholder="请输入长度"
|
||||
v-model="info.ePu239"
|
||||
@ -484,7 +575,7 @@ function downloadFile(obj :any, name :any, suffix :any) {
|
||||
>
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="PU-240占比" style="width: 100%;" >
|
||||
<el-form-item label="PU-240占比" style="width: 100%;" prop="ePu240">
|
||||
<el-input-number
|
||||
placeholder="请输入长度"
|
||||
v-model="info.ePu240"
|
||||
@ -495,7 +586,7 @@ function downloadFile(obj :any, name :any, suffix :any) {
|
||||
>
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="PU-241占比" style="width: 100%;" >
|
||||
<el-form-item label="PU-241占比" style="width: 100%;" prop="ePu241">
|
||||
<el-input-number
|
||||
placeholder="请输入长度"
|
||||
v-model="info.ePu241"
|
||||
@ -506,7 +597,7 @@ function downloadFile(obj :any, name :any, suffix :any) {
|
||||
>
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="PU-242占比" style="width: 100%;" >
|
||||
<el-form-item label="PU-242占比" style="width: 100%;" prop="ePu242">
|
||||
<el-input-number
|
||||
placeholder="请输入长度"
|
||||
v-model="info.ePu242"
|
||||
@ -524,7 +615,7 @@ function downloadFile(obj :any, name :any, suffix :any) {
|
||||
@input="handleNumberInput('isotopicAbundance')">
|
||||
</el-input>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="对应Kef值" style="width: 100%;">
|
||||
<el-form-item label="对应Kef值" style="width: 100%;" prop="keffValue">
|
||||
<el-input v-model="info.keffValue" style="width: 100%" placeholder="请输入对应Kef值"
|
||||
@input="handleNumberInput('keffValue')">
|
||||
<!-- <template #append>m³/s</template> -->
|
||||
|
||||
@ -126,32 +126,19 @@ function addClick() {
|
||||
};
|
||||
|
||||
sourceTempData.value = sizeSchemaInfo.value[queryParams.value.type].fields
|
||||
|
||||
sourceTempData.value.forEach((item:any) => {
|
||||
info.value.size[item.key] = null
|
||||
})
|
||||
let rulesTemp:any = ref({})
|
||||
sourceTempData.value.forEach((item:any) => {
|
||||
info.value.size[item.key] = null
|
||||
rulesTemp.value['size.' + item.key] = [{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}]
|
||||
})
|
||||
|
||||
|
||||
rules.value = {...rulesInfo.value,...rulesTemp.value}
|
||||
|
||||
|
||||
// josnInfo.value = {}
|
||||
// if(queryParams.value.type == 'ExtractionColumn'){
|
||||
// josnInfo.value = {
|
||||
// tray_section:{},
|
||||
// lower_expanded:{},
|
||||
// upper_expanded:{}
|
||||
// }
|
||||
// }else if(queryParams.value.type == 'FluidizedBed'){
|
||||
// josnInfo.value = {
|
||||
// expanded_section:{},
|
||||
// reaction_section:{},
|
||||
// transition_section:{}
|
||||
// }
|
||||
// }else if(queryParams.value.type == 'ACFTank'){
|
||||
// josnInfo.value = {
|
||||
// frustum_bottom:{},
|
||||
// annular_cylinder:{}
|
||||
// }
|
||||
// }
|
||||
dialogVisible.value = true;
|
||||
|
||||
}
|
||||
@ -193,11 +180,44 @@ function handleClose() {
|
||||
dialogVisible.value = false;
|
||||
if (infoForm.value != null) infoForm.value.resetFields();
|
||||
}
|
||||
//新建设备
|
||||
const rules = ref({
|
||||
const validator1 = (rule: any, value: any, callback: any) => { // 校验数字是否大于0
|
||||
if (value == null || value === '') {
|
||||
callback();
|
||||
return;
|
||||
}
|
||||
if (!/^\d+(\.\d+)?$/.test(value)) {
|
||||
callback(new Error('请输入有效的数字或小数'));
|
||||
} else if (parseFloat(value) <= 0) {
|
||||
callback(new Error('数字必须大于 0'));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
}
|
||||
|
||||
const rulesInfo = ref({
|
||||
name: [{ required: true, message: "请输入设备名称", trigger: "blur" }],
|
||||
code: [{ required: true, message: "请输入设备编码", trigger: "blur" }],
|
||||
});
|
||||
volume: [
|
||||
{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
flowRate: [
|
||||
{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
pulseVelocity: [
|
||||
{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
})
|
||||
//新建设备
|
||||
const rules = ref({...rulesInfo.value});
|
||||
//修改设备
|
||||
function editClick(row: any) {
|
||||
title.value = "修改设备";
|
||||
@ -209,6 +229,15 @@ function editClick(row: any) {
|
||||
info.value.size[item.key] = null
|
||||
})
|
||||
}
|
||||
let rulesTemp:any = ref({})
|
||||
sourceTempData.value.forEach((item:any) => {
|
||||
rulesTemp.value['size.' + item.key] = [{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}]
|
||||
|
||||
})
|
||||
rules.value = {...rulesInfo.value,...rulesTemp.value}
|
||||
dialogVisible.value = true;
|
||||
}
|
||||
|
||||
@ -310,23 +339,6 @@ onMounted(() => {
|
||||
menuInit()
|
||||
});
|
||||
|
||||
const handleInput = (val: string) => {
|
||||
// 正则规则:匹配非负整数或小数(支持最多两位小数,可根据需求调整)
|
||||
const reg = /^\d+(\.\d{0,2})?$/;
|
||||
|
||||
// 提取合法字符:先去掉所有非数字和非小数点的字符
|
||||
let value = val.replace(/[^\d.]/g, '');
|
||||
|
||||
// 确保只有一个小数点
|
||||
value = value.replace(/\.{2,}/g, '.');
|
||||
value = value.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.');
|
||||
|
||||
// 验证最终格式,不符合则清空(或保留合法前缀)
|
||||
if (!reg.test(value) && value !== '') {
|
||||
// 保留最后一次合法输入,或者直接清空
|
||||
val = value.slice(0, -1);
|
||||
}
|
||||
};
|
||||
|
||||
function exportExportsClick(){
|
||||
exportAllExports(queryParams.value.type).then((response:any) => {
|
||||
@ -438,7 +450,7 @@ function downloadFile(obj :any, name :any, suffix :any) {
|
||||
<el-input v-model="info.name" style="width: 100%" placeholder="请输入设备名称"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item :label="item.label" style="width: 100%;" v-for="item in sourceTempData">
|
||||
<el-form-item :label="item.label" style="width: 100%;" v-for="item in sourceTempData" :prop="'size.' + item.key">
|
||||
<el-input-number
|
||||
placeholder="请输入长度"
|
||||
v-model="info.size[item.key]"
|
||||
@ -451,7 +463,7 @@ function downloadFile(obj :any, name :any, suffix :any) {
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="容量" style="width: 100%;">
|
||||
<el-form-item label="容量" style="width: 100%;" prop="volume">
|
||||
<el-input-number
|
||||
placeholder="请输入容量"
|
||||
v-model="info.volume"
|
||||
@ -463,7 +475,7 @@ function downloadFile(obj :any, name :any, suffix :any) {
|
||||
<template #suffix>L</template>
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="流量" style="width: 100%;">
|
||||
<el-form-item label="流量" style="width: 100%;" prop="flowRate">
|
||||
<el-input-number
|
||||
placeholder="请输入流量"
|
||||
v-model="info.flowRate"
|
||||
@ -475,7 +487,7 @@ function downloadFile(obj :any, name :any, suffix :any) {
|
||||
<template #suffix>m³/h</template>
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="脉冲速度" style="width: 100%;">
|
||||
<el-form-item label="脉冲速度" style="width: 100%;" prop="pulseVelocity">
|
||||
<el-input-number
|
||||
placeholder="请输入脉冲速度"
|
||||
v-model="info.pulseVelocity"
|
||||
|
||||
@ -85,7 +85,11 @@ const info: any = ref({
|
||||
uEnrichment: "",
|
||||
puConcentration: "",
|
||||
puo2Density: "",
|
||||
puIsotope: "",
|
||||
ePu238: "",
|
||||
ePu239: "",
|
||||
ePu240: "",
|
||||
ePu241: "",
|
||||
ePu242: "",
|
||||
hno3Acidity: "",
|
||||
h2c2o4Concentration: "",
|
||||
organicRatio: "",
|
||||
@ -104,7 +108,11 @@ function addClick() {
|
||||
uEnrichment: "",
|
||||
puConcentration: "",
|
||||
puo2Density: "",
|
||||
puIsotope: "",
|
||||
ePu238: "",
|
||||
ePu239: "",
|
||||
ePu240: "",
|
||||
ePu241: "",
|
||||
ePu242: "",
|
||||
hno3Acidity: "",
|
||||
h2c2o4Concentration: "",
|
||||
organicRatio: "",
|
||||
@ -152,38 +160,122 @@ function handleClose() {
|
||||
dialogVisible.value = false;
|
||||
if (infoForm.value != null) infoForm.value.resetFields();
|
||||
}
|
||||
const validator1 = (rule: any, value: any, callback: any) => {
|
||||
if (!value || value === '') {
|
||||
callback();
|
||||
return;
|
||||
}
|
||||
if (!/^\d+(\.\d+)?$/.test(value)) {
|
||||
callback(new Error('请输入有效的数字或小数'));
|
||||
} else if (parseFloat(value) <= 0) {
|
||||
callback(new Error('数字必须大于 0'));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
}
|
||||
const validator2 = (rule: any, value: any, callback: any) => {
|
||||
if (!value || value === '') {
|
||||
callback();
|
||||
return;
|
||||
}
|
||||
if (!/^\d+(\.\d+)?$/.test(value)) {
|
||||
callback(new Error('请输入有效的数字或小数'));
|
||||
} else if (parseFloat(value) <= 0) {
|
||||
callback(new Error('数字必须大于 0'));
|
||||
}else if (parseFloat(value) >= 1) {
|
||||
callback(new Error('数字必须小于 1'));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
}
|
||||
//新建物料数据
|
||||
const rules = ref({
|
||||
name: [{ required: true, message: "请输入物料数据名称", trigger: "blur" }],
|
||||
uConcentration: [
|
||||
{ pattern: /^\d+(\.\d+)?$/, message: "请输入有效的数字或小数", trigger: "blur" }
|
||||
{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
uo2Density: [
|
||||
{ pattern: /^\d+(\.\d+)?$/, message: "请输入有效的数字或小数", trigger: "blur" }
|
||||
],
|
||||
uEnrichment: [
|
||||
{ pattern: /^\d+(\.\d+)?$/, message: "请输入有效的数字或小数", trigger: "blur" }
|
||||
{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
uEnrichment: [{
|
||||
validator: validator2,
|
||||
trigger: 'blur'
|
||||
}],
|
||||
puConcentration: [
|
||||
{ pattern: /^\d+(\.\d+)?$/, message: "请输入有效的数字或小数", trigger: "blur" }
|
||||
{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
puo2Density: [
|
||||
{ pattern: /^\d+(\.\d+)?$/, message: "请输入有效的数字或小数", trigger: "blur" }
|
||||
{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
puIsotope: [
|
||||
{ pattern: /^\d+(\.\d+)?$/, message: "请输入有效的数字或小数", trigger: "blur" }
|
||||
ePu238: [
|
||||
{
|
||||
validator: validator2,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
ePu239: [
|
||||
{
|
||||
validator: validator2,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
ePu240: [
|
||||
{
|
||||
validator: validator2,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
ePu241: [
|
||||
{
|
||||
validator: validator2,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
ePu242: [
|
||||
{
|
||||
validator: validator2,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
|
||||
|
||||
|
||||
|
||||
hno3Acidity: [
|
||||
{ pattern: /^\d+(\.\d+)?$/, message: "请输入有效的数字或小数", trigger: "blur" }
|
||||
{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
h2c2o4Concentration: [
|
||||
{ pattern: /^\d+(\.\d+)?$/, message: "请输入有效的数字或小数", trigger: "blur" }
|
||||
{
|
||||
validator: validator1,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
organicRatio: [
|
||||
{ pattern: /^\d+(\.\d+)?$/, message: "请输入有效的数字或小数", trigger: "blur" }
|
||||
{
|
||||
validator: validator2,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
moistureContent: [
|
||||
{ pattern: /^\d+(\.\d+)?$/, message: "请输入有效的数字或小数", trigger: "blur" }
|
||||
{
|
||||
validator: validator2,
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
});
|
||||
//修改物料数据
|
||||
@ -446,24 +538,24 @@ function delIconBase(){
|
||||
<el-form-item label="氧化钚密度(g/cm3)" prop="puo2Density">
|
||||
<el-input v-model="info.puo2Density" style="width: 100%" placeholder="" @input="handleNumberInput('puo2Density')"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="PU-238占比" prop="puIsotope">
|
||||
<el-form-item label="PU-238占比" prop="ePu238">
|
||||
<el-input v-model="info.ePu238" style="width: 100%" placeholder="" @input="handleNumberInput('ePu238')"></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
<div class="Materials_dialog_display">
|
||||
<el-form-item label="PU-239占比" prop="puIsotope">
|
||||
<el-form-item label="PU-239占比" prop="ePu239">
|
||||
<el-input v-model="info.ePu239" style="width: 100%" placeholder="" @input="handleNumberInput('ePu239')"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="PU-240占比" prop="puIsotope">
|
||||
<el-form-item label="PU-240占比" prop="ePu240">
|
||||
<el-input v-model="info.ePu240" style="width: 100%" placeholder="" @input="handleNumberInput('ePu240')"></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div class="Materials_dialog_display">
|
||||
<el-form-item label="PU-241占比" prop="puIsotope">
|
||||
<el-form-item label="PU-241占比" prop="ePu241">
|
||||
<el-input v-model="info.ePu241" style="width: 100%" placeholder="" @input="handleNumberInput('ePu241')"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="PU-242占比" prop="puIsotope">
|
||||
<el-form-item label="PU-242占比" prop="ePu242">
|
||||
<el-input v-model="info.ePu242" style="width: 100%" placeholder="" @input="handleNumberInput('ePu242')"></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user