From 1ce6db425e8df0b550a6a100cdcf264f9379e771 Mon Sep 17 00:00:00 2001 From: zhoutianchi <1305666981@qq.com> Date: Thu, 26 Feb 2026 11:53:50 +0800 Subject: [PATCH] 1 --- src/api/recruit/recruitPolicyFile.ts | 106 ++++++++ src/api/recruit/recruitSchoolHistory.ts | 106 ++++++++ src/views/recruit/recruitPolicyFile/form.vue | 252 ++++++++++++++++++ src/views/recruit/recruitPolicyFile/index.vue | 219 +++++++++++++++ .../recruit/recruitSchoolHistory/form.vue | 124 +++++++++ .../recruit/recruitSchoolHistory/index.vue | 213 +++++++++++++++ 6 files changed, 1020 insertions(+) create mode 100644 src/api/recruit/recruitPolicyFile.ts create mode 100644 src/api/recruit/recruitSchoolHistory.ts create mode 100644 src/views/recruit/recruitPolicyFile/form.vue create mode 100644 src/views/recruit/recruitPolicyFile/index.vue create mode 100644 src/views/recruit/recruitSchoolHistory/form.vue create mode 100644 src/views/recruit/recruitSchoolHistory/index.vue diff --git a/src/api/recruit/recruitPolicyFile.ts b/src/api/recruit/recruitPolicyFile.ts new file mode 100644 index 0000000..a27385b --- /dev/null +++ b/src/api/recruit/recruitPolicyFile.ts @@ -0,0 +1,106 @@ +import request from "/@/utils/request" + +// ========== 基础CRUD接口 ========== + +/** + * 分页查询列表数据 + * @param query - 查询参数对象 + * @returns Promise<分页数据> + */ +export function fetchList(query?: Object) { + return request({ + url: '/recruit/recruitPolicyFile/page', + method: 'get', + params: query + }) +} + +/** + * 新增数据 + * @param obj - 要新增的数据对象 + * @returns Promise - 操作结果 + */ +export function addObj(obj?: Object) { + return request({ + url: '/recruit/recruitPolicyFile', + method: 'post', + data: obj + }) +} + +/** + * 获取详情数据 + * @param obj - 查询参数对象(包含ID等) + * @returns Promise<数据详情> + */ +export function getObj(obj?: Object) { + return request({ + url: '/recruit/recruitPolicyFile/details', + method: 'get', + params: obj + }) +} + +/** + * 批量删除数据 + * @param ids - 要删除的ID数组 + * @returns Promise<操作结果> + */ +export function delObjs(ids?: Object) { + return request({ + url: '/recruit/recruitPolicyFile', + method: 'delete', + data: ids + }) +} + +/** + * 更新数据 + * @param obj - 要更新的数据对象 + * @returns Promise<操作结果> + */ +export function putObj(obj?: Object) { + return request({ + url: '/recruit/recruitPolicyFile', + method: 'put', + data: obj + }) +} + +// ========== 工具函数 ========== + +/** + * 验证字段值唯一性 + * @param rule - 验证规则对象 + * @param value - 要验证的值 + * @param callback - 验证回调函数 + * @param isEdit - 是否为编辑模式 + * + * @example + * // 在表单验证规则中使用 + * fieldName: [ + * { + * validator: (rule, value, callback) => { + * validateExist(rule, value, callback, form.id !== ''); + * }, + * trigger: 'blur', + * }, + * ] + */ +export function validateExist(rule: any, value: any, callback: any, isEdit: boolean) { + // 编辑模式下跳过验证 + if (isEdit) { + return callback(); + } + + // 查询是否存在相同值 + getObj({ [rule.field]: value }).then((response) => { + const result = response.data; + if (result !== null && result.length > 0) { + callback(new Error('数据已经存在')); + } else { + callback(); + } + }); +} + diff --git a/src/api/recruit/recruitSchoolHistory.ts b/src/api/recruit/recruitSchoolHistory.ts new file mode 100644 index 0000000..3e1c2a2 --- /dev/null +++ b/src/api/recruit/recruitSchoolHistory.ts @@ -0,0 +1,106 @@ +import request from "/@/utils/request" + +// ========== 基础CRUD接口 ========== + +/** + * 分页查询列表数据 + * @param query - 查询参数对象 + * @returns Promise<分页数据> + */ +export function fetchList(query?: Object) { + return request({ + url: '/recruit/recruitSchoolHistory/page', + method: 'get', + params: query + }) +} + +/** + * 新增数据 + * @param obj - 要新增的数据对象 + * @returns Promise - 操作结果 + */ +export function addObj(obj?: Object) { + return request({ + url: '/recruit/recruitSchoolHistory', + method: 'post', + data: obj + }) +} + +/** + * 获取详情数据 + * @param obj - 查询参数对象(包含ID等) + * @returns Promise<数据详情> + */ +export function getObj(obj?: Object) { + return request({ + url: '/recruit/recruitSchoolHistory/details', + method: 'get', + params: obj + }) +} + +/** + * 批量删除数据 + * @param ids - 要删除的ID数组 + * @returns Promise<操作结果> + */ +export function delObjs(ids?: Object) { + return request({ + url: '/recruit/recruitSchoolHistory', + method: 'delete', + data: ids + }) +} + +/** + * 更新数据 + * @param obj - 要更新的数据对象 + * @returns Promise<操作结果> + */ +export function putObj(obj?: Object) { + return request({ + url: '/recruit/recruitSchoolHistory', + method: 'put', + data: obj + }) +} + +// ========== 工具函数 ========== + +/** + * 验证字段值唯一性 + * @param rule - 验证规则对象 + * @param value - 要验证的值 + * @param callback - 验证回调函数 + * @param isEdit - 是否为编辑模式 + * + * @example + * // 在表单验证规则中使用 + * fieldName: [ + * { + * validator: (rule, value, callback) => { + * validateExist(rule, value, callback, form.id !== ''); + * }, + * trigger: 'blur', + * }, + * ] + */ +export function validateExist(rule: any, value: any, callback: any, isEdit: boolean) { + // 编辑模式下跳过验证 + if (isEdit) { + return callback(); + } + + // 查询是否存在相同值 + getObj({ [rule.field]: value }).then((response) => { + const result = response.data; + if (result !== null && result.length > 0) { + callback(new Error('数据已经存在')); + } else { + callback(); + } + }); +} + diff --git a/src/views/recruit/recruitPolicyFile/form.vue b/src/views/recruit/recruitPolicyFile/form.vue new file mode 100644 index 0000000..b895578 --- /dev/null +++ b/src/views/recruit/recruitPolicyFile/form.vue @@ -0,0 +1,252 @@ + + + + + \ No newline at end of file diff --git a/src/views/recruit/recruitPolicyFile/index.vue b/src/views/recruit/recruitPolicyFile/index.vue new file mode 100644 index 0000000..cafac30 --- /dev/null +++ b/src/views/recruit/recruitPolicyFile/index.vue @@ -0,0 +1,219 @@ + + + diff --git a/src/views/recruit/recruitSchoolHistory/form.vue b/src/views/recruit/recruitSchoolHistory/form.vue new file mode 100644 index 0000000..9069044 --- /dev/null +++ b/src/views/recruit/recruitSchoolHistory/form.vue @@ -0,0 +1,124 @@ + + + \ No newline at end of file diff --git a/src/views/recruit/recruitSchoolHistory/index.vue b/src/views/recruit/recruitSchoolHistory/index.vue new file mode 100644 index 0000000..a60dbb9 --- /dev/null +++ b/src/views/recruit/recruitSchoolHistory/index.vue @@ -0,0 +1,213 @@ + + +