+
Hz
-
确定
diff --git a/business-css/frontend/src/components/antvx6/editdevice.vue b/business-css/frontend/src/components/antvx6/editdevice.vue
index c5dbea5..339d046 100644
--- a/business-css/frontend/src/components/antvx6/editdevice.vue
+++ b/business-css/frontend/src/components/antvx6/editdevice.vue
@@ -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)
-
+
{{item.unit}}
-
+
L
-
+
m³/h
-
+
{
refY: 0,
},
label: {
- refX: 45,
+ refX: 0.5,
refY: 80,
- textAnchor: 'start',
+ textAnchor: 'middle',
textVerticalAnchor: 'top',
fontSize: 14,
fill: '#000',
diff --git a/business-css/frontend/src/components/antvx6/materialmodel.vue b/business-css/frontend/src/components/antvx6/materialmodel.vue
index 7a5d1f4..f4878eb 100644
--- a/business-css/frontend/src/components/antvx6/materialmodel.vue
+++ b/business-css/frontend/src/components/antvx6/materialmodel.vue
@@ -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(){
-
+
@@ -471,32 +602,30 @@ function delIconBase(){
{{ item.value }}
-
-
-
diff --git a/business-css/frontend/src/views/business/database/criticalData/index.vue b/business-css/frontend/src/views/business/database/criticalData/index.vue
index c5b636f..ffc7344 100644
--- a/business-css/frontend/src/views/business/database/criticalData/index.vue
+++ b/business-css/frontend/src/views/business/database/criticalData/index.vue
@@ -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) {
-
@@ -414,7 +505,7 @@ function downloadFile(obj :any, name :any, suffix :any) {
append-to-body width="677px" height="530px">
-
+
{{item.unit}}
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-->
-
+
diff --git a/business-css/frontend/src/views/business/database/device/index.vue b/business-css/frontend/src/views/business/database/device/index.vue
index d91e452..4ad00e5 100644
--- a/business-css/frontend/src/views/business/database/device/index.vue
+++ b/business-css/frontend/src/views/business/database/device/index.vue
@@ -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) {
-
+
-
+
L
-
+
m³/h
-
+
{
+ 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(){
-
+
-
+
-
+
-
+
-
+