Merge remote-tracking branch 'origin/master'

This commit is contained in:
2026-09-02 11:12:36 +08:00
25 changed files with 2383 additions and 348 deletions
+49 -19
View File
@@ -35,7 +35,6 @@
v-model="form.feeCategory"
class="fee-item-form-control"
clearable
:disabled="dialogType !== 'add'"
filterable
placeholder="请选择费用类型"
@change="handleFeeCategoryChange"
@@ -43,7 +42,7 @@
<el-option
v-for="item in feeCategoryOptions"
:key="item.id || item.dictKey"
:label="item.dictValue"
:label="`${item.dictValue}/${item.dictKey}`"
:value="item.dictKey"
/>
</el-select>
@@ -54,7 +53,6 @@
:maxlength="feeItemCodeMaxlength"
class="fee-item-form-control"
clearable
:disabled="dialogType !== 'add'"
placeholder="请输入费用项代码"
@change="handleFeeItemCodeChange"
>
@@ -339,31 +337,63 @@ export default {
values.englishName = this.getFeeItemCodeSuffix(values.englishName, values.feeCategory);
return values;
},
validateUnique(row) {
const rowId = String(row.id || '');
const hasDuplicate = (params, prop) => {
if (!row[prop]) {
return Promise.resolve(false);
}
return getList(1, 100, params).then(res => {
const records = res.data.data.records || [];
return records.some(
item =>
String(item[prop] || '').trim() === String(row[prop]).trim() &&
String(item.id || '') !== rowId
);
});
};
return Promise.all([
hasDuplicate({ name: row.name }, 'name'),
hasDuplicate({ englishName: row.englishName }, 'englishName'),
]).then(([nameExists, codeExists]) => {
if (nameExists) {
return Promise.reject(new Error('该费用项已存在'));
}
if (codeExists) {
return Promise.reject(new Error('该费用项代码已存在'));
}
return Promise.resolve();
});
},
handleSubmitError(error, loading) {
const uniqueMessages = ['该费用项已存在', '该费用项代码已存在'];
if (uniqueMessages.includes(error.message)) {
this.$message.warning(error.message);
}
window.console.log(error);
loading();
},
rowSave(row, done, loading) {
submit(this.normalizeRow(row)).then(
() => {
const submitRow = this.normalizeRow(row);
this.validateUnique(submitRow)
.then(() => submit(submitRow))
.then(() => {
this.onLoad(this.page);
this.$message({ type: 'success', message: '操作成功!' });
done();
},
error => {
window.console.log(error);
loading();
}
);
})
.catch(error => this.handleSubmitError(error, loading));
},
rowUpdate(row, index, done, loading) {
submit(this.normalizeRow(row)).then(
() => {
const submitRow = this.normalizeRow(row);
this.validateUnique(submitRow)
.then(() => submit(submitRow))
.then(() => {
this.onLoad(this.page);
this.$message({ type: 'success', message: '操作成功!' });
done();
},
error => {
window.console.log(error);
loading();
}
);
})
.catch(error => this.handleSubmitError(error, loading));
},
rowDel(row) {
this.$confirm('确定将选择数据删除?', {
+3 -1
View File
@@ -110,7 +110,9 @@
maxlength="24"
placeholder="请输入码头标识"
@input="handleTerminalCodeChange"
/>
>
<template v-if="form.parentCode" #prepend>{{ form.parentCode }}</template>
</el-input>
</div>
</template>
<template #menu="{ row, index }">
+12 -6
View File
@@ -358,7 +358,10 @@ export default {
formslot: true,
minWidth: 130,
overHidden: false,
rules: [{ validator: validateLongitude, trigger: 'blur' }],
rules: [
{ required: true, message: '请输入经度', trigger: 'blur' },
{ validator: validateLongitude, trigger: 'blur' },
],
},
{
label: '纬度',
@@ -366,7 +369,10 @@ export default {
formslot: true,
minWidth: 130,
overHidden: false,
rules: [{ validator: validateLatitude, trigger: 'blur' }],
rules: [
{ required: true, message: '请输入纬度', trigger: 'blur' },
{ validator: validateLatitude, trigger: 'blur' },
],
},
{
label: '行政区划编号',
@@ -661,14 +667,14 @@ export default {
return row;
},
validateCoordinateFields(row) {
const longitudeMessage = getCoordinateValidationMessage(row.longitude, 'longitude');
const longitudeMessage = getCoordinateValidationMessage(row.longitude, 'longitude', true);
if (longitudeMessage) {
this.$message.warning('经度范围不正确');
this.$message.warning(longitudeMessage);
return false;
}
const latitudeMessage = getCoordinateValidationMessage(row.latitude, 'latitude');
const latitudeMessage = getCoordinateValidationMessage(row.latitude, 'latitude', true);
if (latitudeMessage) {
this.$message.warning('纬度范围不正确');
this.$message.warning(latitudeMessage);
return false;
}
return true;