|
@@ -1421,19 +1421,19 @@
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="upper" label="上限值">
|
|
|
<template #default="{ row }">
|
|
|
- <el-input type="text" v-model.Number="row.upper" oninput="value=value.replace(/[^0-9.-]/g, '').replace(/(\..*?)\..*/g, '$1').replace(/^-(?=\.)/, '')"
|
|
|
+ <el-input type="text" v-model="row.upper"
|
|
|
@change="handleEdit(row)" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="lower" label="下限值">
|
|
|
<template #default="{ row }">
|
|
|
- <el-input v-model.Number="row.lower" oninput="value=value.replace(/[^0-9.-]/g, '').replace(/(\..*?)\..*/g, '$1').replace(/^-(?=\.)/, '')"
|
|
|
+ <el-input v-model="row.lower"
|
|
|
@change="handleEdit(row)" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="reference" label="基准值" >
|
|
|
<template #default="{ row }">
|
|
|
- <el-input v-model.Number="row.reference" oninput="value=value.replace(/[^0-9.]/g, '').replace(/(\..*?)\..*/g, '$1')"
|
|
|
+ <el-input v-model="row.reference"
|
|
|
@change="handleEdit(row)" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -1472,21 +1472,19 @@
|
|
|
</el-table-column> -->
|
|
|
<el-table-column prop="reference" label="约束基准值">
|
|
|
<template #default="{ row }">
|
|
|
- <el-input v-model.Number="row.reference" oninput="value=value.replace(/[^0-9.]/g, '').replace(/(\..*?)\..*/g, '$1')"
|
|
|
+ <el-input v-model="row.reference"
|
|
|
@change="handleEdit(row)" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="upper" label="上限值">
|
|
|
<template #default="{ row }">
|
|
|
- <el-input v-model.Number="row.upper"
|
|
|
-
|
|
|
- oninput="value=value.replace(/[^0-9.-]/g, '').replace(/(\..*?)\..*/g, '$1').replace(/^-(?=\.)/, '')"
|
|
|
+ <el-input v-model="row.upper"
|
|
|
@change="handleEdit(row)" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="lower" label="下限值">
|
|
|
<template #default="{ row }">
|
|
|
- <el-input v-model.Number="row.lower" oninput="value=value.replace(/[^0-9.-]/g, '').replace(/(\..*?)\..*/g, '$1').replace(/^-(?=\.)/, '')"
|
|
|
+ <el-input v-model="row.lower"
|
|
|
@change="handleEdit(row)" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -1521,7 +1519,7 @@
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="weight" label="权重系数">
|
|
|
<template #default="{ row }">
|
|
|
- <el-input v-model.Number="row.weight" oninput="value=value.replace(/[^0-9.]/g, '').replace(/(\..*?)\..*/g, '$1')"
|
|
|
+ <el-input v-model="row.weight"
|
|
|
@change="handleEdit(row)" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -1539,7 +1537,7 @@
|
|
|
</el-table-column> -->
|
|
|
<el-table-column prop="reference" label="约束基准值">
|
|
|
<template #default="{ row }">
|
|
|
- <el-input v-model.Number="row.reference" oninput="value=value.replace(/[^0-9.]/g, '').replace(/(\..*?)\..*/g, '$1')"
|
|
|
+ <el-input v-model="row.reference"
|
|
|
@change="handleEdit(row)" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -2266,16 +2264,23 @@ const handleClick = (tab, event) => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-const handleInput = (value, row) => {
|
|
|
- // 如果输入是 'none',允许通过
|
|
|
- if (value === 'none') {
|
|
|
- row.lower = 'none';
|
|
|
- } else {
|
|
|
- // 否则只允许数字、小数点和负号
|
|
|
- const sanitizedValue = value.replace(/[^0-9.-]/g, '').replace(/(\..*?)\..*/g, '$1').replace(/^-(?=\.)/, '');
|
|
|
- row.lower = sanitizedValue;
|
|
|
- }
|
|
|
-};
|
|
|
+const validateInput = (row) => {
|
|
|
+ // 允许输入 None / none / 负数 / 小数
|
|
|
+ if (/^(none|None|-?\d*\.?\d*)$/.test(row.upper)) {
|
|
|
+ row.upper = row.upper; // 允许输入
|
|
|
+ } else {
|
|
|
+ row.upper = row.upper.slice(0, -1); // 删除最后输入的非法字符
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+const validateInput1 = (row) => {
|
|
|
+ // 允许输入 None / none / 小数
|
|
|
+ if (/^(none|None|\d*\.?\d*)$/.test(row.upper)) {
|
|
|
+ row.upper = row.upper; // 允许输入
|
|
|
+ } else {
|
|
|
+ row.upper = row.upper.slice(0, -1); // 删除最后输入的非法字符
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
//表格点击事件
|
|
|
const handleEdit = (row) => {
|
|
@@ -3010,10 +3015,11 @@ const getissue = () => {
|
|
|
}
|
|
|
})
|
|
|
res.rows = res.rows.map((item, index) => {
|
|
|
- item.lower = Number(item.lower); // 将属性转换为数字
|
|
|
- item.upper = Number(item.upper);
|
|
|
- item.reference = Number(item.reference);
|
|
|
-
|
|
|
+ item.lower = item.lower ?? 'none'
|
|
|
+ item.upper = item.upper ?? 'none'
|
|
|
+ item.reference = item.reference ?? 'none'
|
|
|
+ item.name = item.name ?? 'none'
|
|
|
+ item.remark = item.remark ?? 'none'
|
|
|
|
|
|
treeitem.value = {
|
|
|
id: "1-1-1-" + index,
|
|
@@ -3068,10 +3074,10 @@ const getyueshu = () => {
|
|
|
let childernarr = Sidebarref.value.datatree[0].children[0].children;
|
|
|
res.rows = res.rows.map((item, index) => {
|
|
|
// 确保转换为数字
|
|
|
- item.con = Number(item.con);
|
|
|
- item.reference = Number(item.reference);
|
|
|
- item.upper = Number(item.upper); // 添加对 upper 的处理
|
|
|
- item.lower = Number(item.lower); // 添加对 lower 的处理
|
|
|
+ item.con = item.con ?? 'none';
|
|
|
+ item.reference = item.reference ?? 'none';
|
|
|
+ item.upper =item.upper ?? 'none';
|
|
|
+ item.lower = item.lower ?? 'none';
|
|
|
console.log('item:', item);
|
|
|
|
|
|
treeitem2.value = {
|
|
@@ -3125,12 +3131,13 @@ const getmub = () => {
|
|
|
})
|
|
|
let childernarr=Sidebarref.value.datatree[0].children[0].children
|
|
|
res.rows = res.rows.map((item, index) => {
|
|
|
- item.optdir = Number(item.optdir); // 将id属性转换为数字
|
|
|
- item.weight = Number(item.weight);
|
|
|
- item.scaling = Number(item.scaling);
|
|
|
- item.factor = Number(item.factor);
|
|
|
- item.reference = Number(item.reference);
|
|
|
- item.remark = item.remark;
|
|
|
+ item.optdir = item.optdir ?? 'none';
|
|
|
+ item.weight = item.weight ?? 'none';
|
|
|
+ item.scaling = item.scaling ?? 'none';
|
|
|
+ item.factor = item.factor ?? 'none';
|
|
|
+ item.reference = item.reference ?? 'none';
|
|
|
+ item.remark = item.remark ?? 'none';
|
|
|
+ item.name = item.name ?? 'none';
|
|
|
|
|
|
treeitem3.value = {
|
|
|
id: "1-3-3-" + index,
|
|
@@ -3189,15 +3196,50 @@ const getarr = (name, arrays) => {
|
|
|
const convertToStringArray = (result, Data) => {
|
|
|
console.log('Data:', Data);
|
|
|
result = Data.map(row => {
|
|
|
- // 获取每一列的数据,排除带有 'id' 的字段
|
|
|
- return Object.keys(row)
|
|
|
- .filter(key => !key.includes('id')) // 过滤掉包含 'id' 的字段
|
|
|
- .map(key => {
|
|
|
- const value = row[key];
|
|
|
- return (value === null || value === undefined || value === '') ? ' ' : value; // 处理 null、undefined 和空字符串
|
|
|
- })
|
|
|
- .join(','); // 将每个字段的值用逗号连接
|
|
|
- }).join(';');
|
|
|
+
|
|
|
+ const vid = row.vid || ' ';
|
|
|
+ const name = row.name || ' ';
|
|
|
+ const upper = row.upper ?? ' ';
|
|
|
+ const lower = row.lower ?? ' ';
|
|
|
+ const reference = row.reference ?? ' ';
|
|
|
+ const remark = row.remark || ' ';
|
|
|
+
|
|
|
+ // 将字段连接为一个以逗号分隔的字符串
|
|
|
+ return `${vid},${name},${upper},${lower},${reference},${remark}`;
|
|
|
+ }).join(';'); // 每行之间用分号分隔
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|
|
|
+const convertToStringArray1 = (result, Data) => {
|
|
|
+ console.log('Data:', Data);
|
|
|
+ result = Data.map(row => {
|
|
|
+
|
|
|
+ const conid = row.conid || ' ';
|
|
|
+ const name = row.name || ' ';
|
|
|
+ const upper = row.upper ?? ' ';
|
|
|
+ const lower = row.lower ?? ' ';
|
|
|
+ const reference = row.reference ?? ' ';
|
|
|
+
|
|
|
+ // 将字段连接为一个以逗号分隔的字符串
|
|
|
+ return `${conid},${name},${reference},${upper},${lower}`;
|
|
|
+ }).join(';'); // 每行之间用分号分隔
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|
|
|
+const convertToStringArray2 = (result, Data) => {
|
|
|
+ console.log('Data:', Data);
|
|
|
+ result = Data.map(row => {
|
|
|
+
|
|
|
+ const fid = row.fid || ' ';
|
|
|
+ const name = row.name || ' ';
|
|
|
+ const optdir = row.optdir ?? ' ';
|
|
|
+ const weight = row.weight ?? ' ';
|
|
|
+ const reference = row.reference ?? ' ';
|
|
|
+ const remark = row.remark || ' ';
|
|
|
+
|
|
|
+ // 将字段连接为一个以逗号分隔的字符串
|
|
|
+ return `${fid},${name},${optdir},${weight},${reference},${remark}`;
|
|
|
+ }).join(';'); // 每行之间用分号分隔
|
|
|
return result;
|
|
|
}
|
|
|
|
|
@@ -3213,13 +3255,13 @@ const onokItem = () => {
|
|
|
} else if (activeIndex2.value == 1) {
|
|
|
conlist.value = '';
|
|
|
console.log("tabledata:",tableData.value)
|
|
|
- conlist.value = convertToStringArray(conlist.value, tableData.value)
|
|
|
+ conlist.value = convertToStringArray1(conlist.value, tableData.value)
|
|
|
restrain();
|
|
|
|
|
|
} else if (activeIndex2.value == 2) {
|
|
|
funlist.value = '';
|
|
|
console.log("eloptimize:",eloptimize.value)
|
|
|
- funlist.value = convertToStringArray(funlist.value, eloptimize.value)
|
|
|
+ funlist.value = convertToStringArray2(funlist.value, eloptimize.value)
|
|
|
funlistaa();
|
|
|
|
|
|
}
|
|
@@ -3228,9 +3270,9 @@ const onokItem = () => {
|
|
|
//设计变量的添加
|
|
|
const devise = () => {
|
|
|
const params = {
|
|
|
- transCode: 'MDO0008',
|
|
|
+ transCode: 'MDO0054',
|
|
|
pid: pid.value,
|
|
|
- varlist: svarlist.value
|
|
|
+ vartr: svarlist.value
|
|
|
}
|
|
|
request(params)
|
|
|
.then((res) => {
|
|
@@ -3247,9 +3289,9 @@ const devise = () => {
|
|
|
//约束的添加restrain
|
|
|
const restrain = () => {
|
|
|
const params = {
|
|
|
- transCode: 'MDO0009',
|
|
|
+ transCode: 'MDO0055',
|
|
|
pid: pid.value,
|
|
|
- conlist: conlist.value
|
|
|
+ vartr: conlist.value
|
|
|
}
|
|
|
request(params)
|
|
|
.then((res) => {
|
|
@@ -3266,9 +3308,9 @@ const restrain = () => {
|
|
|
//优化目标接口
|
|
|
const funlistaa = () => {
|
|
|
const params = {
|
|
|
- transCode: 'MDO0010',
|
|
|
+ transCode: 'MDO0056',
|
|
|
pid: pid.value,
|
|
|
- funlist: funlist.value
|
|
|
+ vartr: funlist.value
|
|
|
}
|
|
|
request(params)
|
|
|
.then((res) => {
|