This commit is contained in:
2026-08-25 16:13:58 +08:00
parent e309987199
commit 55583551b5
14 changed files with 953 additions and 286 deletions
+12 -6
View File
@@ -190,7 +190,9 @@ export default {
}
};
const validateIcaoCode = (rule, value, callback) => {
if (!/^[A-Z]{4}$/.test(String(value || '').toUpperCase())) {
if (!value) {
callback();
} else if (!/^[A-Z]{4}$/.test(String(value).toUpperCase())) {
callback(new Error('ICAO代码为4位大写字母'));
} else {
callback();
@@ -281,10 +283,7 @@ export default {
prop: 'icaoCode',
minWidth: 100,
maxlength: 4,
rules: [
{ required: true, message: '请输入ICAO代码', trigger: 'blur' },
{ validator: validateIcaoCode, trigger: 'blur' },
],
rules: [{ validator: validateIcaoCode, trigger: 'blur' }],
change: ({ value }) => this.handleIcaoChange(value),
blur: ({ value }) => this.handleIcaoChange(value),
},
@@ -376,7 +375,10 @@ export default {
overHidden: false,
maxlength: 255,
showWordLimit: true,
rules: [{ max: 255, message: '详细地址不能超过255字', trigger: 'blur' }],
rules: [
{ required: true, message: '请输入详细地址', trigger: 'blur' },
{ max: 255, message: '详细地址不能超过255字', trigger: 'blur' },
],
},
{
label: '经度',
@@ -674,6 +676,7 @@ export default {
row.districtCode = String(row.districtCode || '').trim();
row.districtName = String(row.districtName || '').trim();
row.detailAddress = String(row.detailAddress || '').trim();
row.icaoCode = String(row.icaoCode || '').trim() || undefined;
row.longitude = normalizeCoordinateInput(row.longitude);
row.latitude = normalizeCoordinateInput(row.latitude);
if (!row.dataSource) row.dataSource = '手动录入';
@@ -696,6 +699,9 @@ export default {
validateUnique(row) {
const rowId = String(row.id || '');
const hasDuplicate = (params, prop) => {
if (!row[prop]) {
return Promise.resolve(false);
}
return getList(1, 10, params).then(res => {
const records = res.data.data.records || [];
return records.some(item => item[prop] === row[prop] && String(item.id || '') !== rowId);