增强客户编码管理功能,新增客户编码唯一性校验,确保同租户内客户编码不重复。更新相关API和前端表单验证逻辑,优化Excel导入功能以处理客户编码的有效性和唯一性。添加数据库约束以维护数据完整性。

This commit is contained in:
geht
2026-04-22 16:56:48 +08:00
parent 2610dbc4c0
commit 9d621433c6
7 changed files with 162 additions and 3 deletions

View File

@@ -5,6 +5,7 @@ const { createConfirm } = useMessage();
enum Api {
list = '/xslmes/mesXslCustomer/list',
checkCustomerCode = '/xslmes/mesXslCustomer/checkCustomerCode',
queryById = '/xslmes/mesXslCustomer/queryById',
save = '/xslmes/mesXslCustomer/add',
edit = '/xslmes/mesXslCustomer/edit',
@@ -22,6 +23,10 @@ export const list = (params) => defHttp.get({ url: Api.list, params });
export const queryById = (params: { id: string }) => defHttp.get({ url: Api.queryById, params });
/** 客户编码唯一性校验(同租户;编辑传 dataId */
export const checkCustomerCode = (params: { customerCode: string; dataId?: string }) =>
defHttp.get({ url: Api.checkCustomerCode, params });
export const deleteOne = (params, handleSuccess) => {
return defHttp.delete({ url: Api.deleteOne, params }, { joinParamsToUrl: true }).then(() => {
handleSuccess();

View File

@@ -1,4 +1,5 @@
import { BasicColumn, FormSchema } from '/@/components/Table';
import { checkCustomerCode } from './MesXslCustomer.api';
export const columns: BasicColumn[] = [
{ title: 'ID', align: 'center', dataIndex: 'id', width: 280, ellipsis: true, defaultHidden: true },
@@ -48,7 +49,26 @@ export const formSchema: FormSchema[] = [
field: 'customerCode',
required: true,
component: 'Input',
componentProps: { placeholder: '请输入客户编码' },
componentProps: { placeholder: '同租户内唯一,不可与已有客户重复' },
dynamicRules: ({ model }) => [
{ required: true, message: '请输入客户编码' },
{
validator: async (_rule, value) => {
const v = value == null ? '' : String(value).trim();
if (!v) {
return Promise.resolve();
}
try {
await checkCustomerCode({ customerCode: v, dataId: model?.id });
return Promise.resolve();
} catch (e: any) {
const msg = e?.response?.data?.message || e?.message || '该客户编码已存在';
return Promise.reject(msg);
}
},
trigger: 'blur',
},
],
},
{
label: '客户名称',