diff --git a/src/views/school/campus/SchoolCampus.api.ts b/src/views/school/campus/SchoolCampus.api.ts new file mode 100644 index 0000000..5af5325 --- /dev/null +++ b/src/views/school/campus/SchoolCampus.api.ts @@ -0,0 +1,49 @@ +import { defHttp } from '/@/utils/http/axios'; +import { useMessage } from '/@/hooks/web/useMessage'; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/school/campus/list', + save = '/school/campus/add', + edit = '/school/campus/edit', + deleteOne = '/school/campus/delete', + deleteBatch = '/school/campus/deleteBatch', + queryById = '/school/campus/queryById', + importExcel = '/school/campus/importExcel', + exportXls = '/school/campus/exportXls', +} + +export const getExportUrl = Api.exportXls; +export const getImportUrl = Api.importExcel; + +export const list = (params) => defHttp.get({ url: Api.list, params }); + +export const queryById = (params) => defHttp.get({ url: Api.queryById, params }); + +export const deleteOne = (params, handleSuccess) => { + return defHttp.delete({ url: Api.deleteOne, params }, { joinParamsToUrl: true }).then(() => { + handleSuccess?.(); + }); +}; + +export const batchDelete = (params, handleSuccess) => { + createConfirm({ + iconType: 'warning', + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({ url: Api.deleteBatch, data: params }, { joinParamsToUrl: true }).then(() => { + handleSuccess?.(); + }); + }, + }); +}; + +export const saveOrUpdate = (params, isUpdate) => { + const url = isUpdate ? Api.edit : Api.save; + return defHttp.post({ url, params }); +}; + diff --git a/src/views/school/campus/SchoolCampus.data.ts b/src/views/school/campus/SchoolCampus.data.ts new file mode 100644 index 0000000..39bbf91 --- /dev/null +++ b/src/views/school/campus/SchoolCampus.data.ts @@ -0,0 +1,66 @@ +import { BasicColumn } from '/@/components/Table'; +import { FormSchema } from '/@/components/Table'; + +export const columns: BasicColumn[] = [ + { + title: '学校ID', + align: 'center', + dataIndex: 'schoolId', + }, + { + title: '校区名称', + align: 'center', + dataIndex: 'campusName', + }, + { + title: '地址', + align: 'center', + dataIndex: 'address', + }, +]; + +export const searchFormSchema: FormSchema[] = [ + { + label: '学校ID', + field: 'schoolId', + component: 'InputNumber', + colProps: { span: 6 }, + }, + { + label: '校区名称', + field: 'campusName', + component: 'Input', + colProps: { span: 6 }, + }, +]; + +export const formSchema: FormSchema[] = [ + { + label: '学校ID', + field: 'schoolId', + component: 'InputNumber', + required: true, + }, + { + label: '校区名称', + field: 'campusName', + component: 'Input', + required: true, + }, + { + label: '地址', + field: 'address', + component: 'Input', + }, + { + label: '', + field: 'id', + component: 'Input', + show: false, + }, +]; + +export function getBpmFormSchema(_formData): FormSchema[] { + return formSchema; +} + diff --git a/src/views/school/campus/SchoolCampusList.vue b/src/views/school/campus/SchoolCampusList.vue new file mode 100644 index 0000000..9f17b47 --- /dev/null +++ b/src/views/school/campus/SchoolCampusList.vue @@ -0,0 +1,122 @@ + + + + diff --git a/src/views/school/campus/components/SchoolCampusForm.vue b/src/views/school/campus/components/SchoolCampusForm.vue new file mode 100644 index 0000000..c67d50f --- /dev/null +++ b/src/views/school/campus/components/SchoolCampusForm.vue @@ -0,0 +1,69 @@ + + + + diff --git a/src/views/school/campus/components/SchoolCampusModal.vue b/src/views/school/campus/components/SchoolCampusModal.vue new file mode 100644 index 0000000..876eed8 --- /dev/null +++ b/src/views/school/campus/components/SchoolCampusModal.vue @@ -0,0 +1,68 @@ + + + + + + diff --git a/src/views/school/college/SchoolCollege.api.ts b/src/views/school/college/SchoolCollege.api.ts new file mode 100644 index 0000000..047b3be --- /dev/null +++ b/src/views/school/college/SchoolCollege.api.ts @@ -0,0 +1,49 @@ +import { defHttp } from '/@/utils/http/axios'; +import { useMessage } from '/@/hooks/web/useMessage'; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/school/college/list', + save = '/school/college/add', + edit = '/school/college/edit', + deleteOne = '/school/college/delete', + deleteBatch = '/school/college/deleteBatch', + queryById = '/school/college/queryById', + importExcel = '/school/college/importExcel', + exportXls = '/school/college/exportXls', +} + +export const getExportUrl = Api.exportXls; +export const getImportUrl = Api.importExcel; + +export const list = (params) => defHttp.get({ url: Api.list, params }); + +export const queryById = (params) => defHttp.get({ url: Api.queryById, params }); + +export const deleteOne = (params, handleSuccess) => { + return defHttp.delete({ url: Api.deleteOne, params }, { joinParamsToUrl: true }).then(() => { + handleSuccess?.(); + }); +}; + +export const batchDelete = (params, handleSuccess) => { + createConfirm({ + iconType: 'warning', + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({ url: Api.deleteBatch, data: params }, { joinParamsToUrl: true }).then(() => { + handleSuccess?.(); + }); + }, + }); +}; + +export const saveOrUpdate = (params, isUpdate) => { + const url = isUpdate ? Api.edit : Api.save; + return defHttp.post({ url, params }); +}; + diff --git a/src/views/school/college/SchoolCollege.data.ts b/src/views/school/college/SchoolCollege.data.ts new file mode 100644 index 0000000..b870c24 --- /dev/null +++ b/src/views/school/college/SchoolCollege.data.ts @@ -0,0 +1,61 @@ +import { BasicColumn } from '/@/components/Table'; +import { FormSchema } from '/@/components/Table'; + +export const columns: BasicColumn[] = [ + { + title: 'ID', + align: 'center', + dataIndex: 'id', + }, + { + title: '学校ID', + align: 'center', + dataIndex: 'schoolId', + }, + { + title: '学院名称', + align: 'center', + dataIndex: 'collegeName', + }, +]; + +export const searchFormSchema: FormSchema[] = [ + { + label: '学校ID', + field: 'schoolId', + component: 'InputNumber', + colProps: { span: 6 }, + }, + { + label: '学院名称', + field: 'collegeName', + component: 'Input', + colProps: { span: 6 }, + }, +]; + +export const formSchema: FormSchema[] = [ + { + label: '学校ID', + field: 'schoolId', + component: 'InputNumber', + required: true, + }, + { + label: '学院名称', + field: 'collegeName', + component: 'Input', + required: true, + }, + { + label: '', + field: 'id', + component: 'Input', + show: false, + }, +]; + +export function getBpmFormSchema(_formData): FormSchema[] { + return formSchema; +} + diff --git a/src/views/school/college/SchoolCollegeList.vue b/src/views/school/college/SchoolCollegeList.vue new file mode 100644 index 0000000..934d239 --- /dev/null +++ b/src/views/school/college/SchoolCollegeList.vue @@ -0,0 +1,122 @@ + + + + diff --git a/src/views/school/college/components/SchoolCollegeForm.vue b/src/views/school/college/components/SchoolCollegeForm.vue new file mode 100644 index 0000000..38365d4 --- /dev/null +++ b/src/views/school/college/components/SchoolCollegeForm.vue @@ -0,0 +1,69 @@ + + + + diff --git a/src/views/school/college/components/SchoolCollegeModal.vue b/src/views/school/college/components/SchoolCollegeModal.vue new file mode 100644 index 0000000..3921dff --- /dev/null +++ b/src/views/school/college/components/SchoolCollegeModal.vue @@ -0,0 +1,68 @@ + + + + + + diff --git a/src/views/school/detail/SchoolDetail.api.ts b/src/views/school/detail/SchoolDetail.api.ts new file mode 100644 index 0000000..55d323e --- /dev/null +++ b/src/views/school/detail/SchoolDetail.api.ts @@ -0,0 +1,49 @@ +import { defHttp } from '/@/utils/http/axios'; +import { useMessage } from '/@/hooks/web/useMessage'; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/school/detail/list', + save = '/school/detail/add', + edit = '/school/detail/edit', + deleteOne = '/school/detail/delete', + deleteBatch = '/school/detail/deleteBatch', + queryById = '/school/detail/queryById', + importExcel = '/school/detail/importExcel', + exportXls = '/school/detail/exportXls', +} + +export const getExportUrl = Api.exportXls; +export const getImportUrl = Api.importExcel; + +export const list = (params) => defHttp.get({ url: Api.list, params }); + +export const queryById = (params) => defHttp.get({ url: Api.queryById, params }); + +export const deleteOne = (params, handleSuccess) => { + return defHttp.delete({ url: Api.deleteOne, params }, { joinParamsToUrl: true }).then(() => { + handleSuccess?.(); + }); +}; + +export const batchDelete = (params, handleSuccess) => { + createConfirm({ + iconType: 'warning', + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({ url: Api.deleteBatch, data: params }, { joinParamsToUrl: true }).then(() => { + handleSuccess?.(); + }); + }, + }); +}; + +export const saveOrUpdate = (params, isUpdate) => { + const url = isUpdate ? Api.edit : Api.save; + return defHttp.post({ url, params }); +}; + diff --git a/src/views/school/detail/SchoolDetail.data.ts b/src/views/school/detail/SchoolDetail.data.ts new file mode 100644 index 0000000..ef413b3 --- /dev/null +++ b/src/views/school/detail/SchoolDetail.data.ts @@ -0,0 +1,87 @@ +import { BasicColumn } from '/@/components/Table'; +import { FormSchema } from '/@/components/Table'; + +export const columns: BasicColumn[] = [ + { + title: '学校ID', + align: 'center', + dataIndex: 'schoolId', + }, + { + title: '简介', + align: 'center', + dataIndex: 'introduction', + }, + { + title: '地址', + align: 'center', + dataIndex: 'address', + }, + { + title: '联系电话', + align: 'center', + dataIndex: 'contact', + }, + { + title: '官网', + align: 'center', + dataIndex: 'website', + }, + { + title: '更新时间', + align: 'center', + dataIndex: 'updateTime', + }, +]; + +export const searchFormSchema: FormSchema[] = [ + { + label: '学校ID', + field: 'schoolId', + component: 'InputNumber', + colProps: { span: 6 }, + }, +]; + +export const formSchema: FormSchema[] = [ + { + label: '学校ID', + field: 'schoolId', + component: 'InputNumber', + required: true, + }, + { + label: '简介', + field: 'introduction', + component: 'InputTextArea', + componentProps: { + rows: 6, + }, + }, + { + label: '地址', + field: 'address', + component: 'Input', + }, + { + label: '联系电话', + field: 'contact', + component: 'Input', + }, + { + label: '官网', + field: 'website', + component: 'Input', + }, + { + label: '', + field: 'id', + component: 'Input', + show: false, + }, +]; + +export function getBpmFormSchema(_formData): FormSchema[] { + return formSchema; +} + diff --git a/src/views/school/detail/SchoolDetailList.vue b/src/views/school/detail/SchoolDetailList.vue new file mode 100644 index 0000000..21366ce --- /dev/null +++ b/src/views/school/detail/SchoolDetailList.vue @@ -0,0 +1,122 @@ + + + + diff --git a/src/views/school/detail/components/SchoolDetailForm.vue b/src/views/school/detail/components/SchoolDetailForm.vue new file mode 100644 index 0000000..995c7e1 --- /dev/null +++ b/src/views/school/detail/components/SchoolDetailForm.vue @@ -0,0 +1,69 @@ + + + + diff --git a/src/views/school/detail/components/SchoolDetailModal.vue b/src/views/school/detail/components/SchoolDetailModal.vue new file mode 100644 index 0000000..00f5024 --- /dev/null +++ b/src/views/school/detail/components/SchoolDetailModal.vue @@ -0,0 +1,68 @@ + + + + + + diff --git a/src/views/school/dorm/SchoolDorm.api.ts b/src/views/school/dorm/SchoolDorm.api.ts new file mode 100644 index 0000000..a84481a --- /dev/null +++ b/src/views/school/dorm/SchoolDorm.api.ts @@ -0,0 +1,49 @@ +import { defHttp } from '/@/utils/http/axios'; +import { useMessage } from '/@/hooks/web/useMessage'; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/school/dorm/list', + save = '/school/dorm/add', + edit = '/school/dorm/edit', + deleteOne = '/school/dorm/delete', + deleteBatch = '/school/dorm/deleteBatch', + queryById = '/school/dorm/queryById', + importExcel = '/school/dorm/importExcel', + exportXls = '/school/dorm/exportXls', +} + +export const getExportUrl = Api.exportXls; +export const getImportUrl = Api.importExcel; + +export const list = (params) => defHttp.get({ url: Api.list, params }); + +export const queryById = (params) => defHttp.get({ url: Api.queryById, params }); + +export const deleteOne = (params, handleSuccess) => { + return defHttp.delete({ url: Api.deleteOne, params }, { joinParamsToUrl: true }).then(() => { + handleSuccess?.(); + }); +}; + +export const batchDelete = (params, handleSuccess) => { + createConfirm({ + iconType: 'warning', + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({ url: Api.deleteBatch, data: params }, { joinParamsToUrl: true }).then(() => { + handleSuccess?.(); + }); + }, + }); +}; + +export const saveOrUpdate = (params, isUpdate) => { + const url = isUpdate ? Api.edit : Api.save; + return defHttp.post({ url, params }); +}; + diff --git a/src/views/school/dorm/SchoolDorm.data.ts b/src/views/school/dorm/SchoolDorm.data.ts new file mode 100644 index 0000000..2f24307 --- /dev/null +++ b/src/views/school/dorm/SchoolDorm.data.ts @@ -0,0 +1,66 @@ +import { BasicColumn } from '/@/components/Table'; +import { FormSchema } from '/@/components/Table'; + +export const columns: BasicColumn[] = [ + { + title: '学校ID', + align: 'center', + dataIndex: 'schoolId', + }, + { + title: '宿舍名称', + align: 'center', + dataIndex: 'dormName', + }, + { + title: '校区ID', + align: 'center', + dataIndex: 'campusId', + }, +]; + +export const searchFormSchema: FormSchema[] = [ + { + label: '学校ID', + field: 'schoolId', + component: 'InputNumber', + colProps: { span: 6 }, + }, + { + label: '宿舍名称', + field: 'dormName', + component: 'Input', + colProps: { span: 6 }, + }, +]; + +export const formSchema: FormSchema[] = [ + { + label: '学校ID', + field: 'schoolId', + component: 'InputNumber', + required: true, + }, + { + label: '宿舍名称', + field: 'dormName', + component: 'Input', + required: true, + }, + { + label: '校区ID', + field: 'campusId', + component: 'InputNumber', + }, + { + label: '', + field: 'id', + component: 'Input', + show: false, + }, +]; + +export function getBpmFormSchema(_formData): FormSchema[] { + return formSchema; +} + diff --git a/src/views/school/dorm/SchoolDormList.vue b/src/views/school/dorm/SchoolDormList.vue new file mode 100644 index 0000000..be9341e --- /dev/null +++ b/src/views/school/dorm/SchoolDormList.vue @@ -0,0 +1,122 @@ + + + + diff --git a/src/views/school/dorm/components/SchoolDormForm.vue b/src/views/school/dorm/components/SchoolDormForm.vue new file mode 100644 index 0000000..cf63f85 --- /dev/null +++ b/src/views/school/dorm/components/SchoolDormForm.vue @@ -0,0 +1,69 @@ + + + + diff --git a/src/views/school/dorm/components/SchoolDormModal.vue b/src/views/school/dorm/components/SchoolDormModal.vue new file mode 100644 index 0000000..195d0ae --- /dev/null +++ b/src/views/school/dorm/components/SchoolDormModal.vue @@ -0,0 +1,68 @@ + + + + + + diff --git a/src/views/school/enrollPlan/SchoolEnrollPlan.api.ts b/src/views/school/enrollPlan/SchoolEnrollPlan.api.ts new file mode 100644 index 0000000..ca764c3 --- /dev/null +++ b/src/views/school/enrollPlan/SchoolEnrollPlan.api.ts @@ -0,0 +1,49 @@ +import { defHttp } from '/@/utils/http/axios'; +import { useMessage } from '/@/hooks/web/useMessage'; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/school/enrollPlan/list', + save = '/school/enrollPlan/add', + edit = '/school/enrollPlan/edit', + deleteOne = '/school/enrollPlan/delete', + deleteBatch = '/school/enrollPlan/deleteBatch', + queryById = '/school/enrollPlan/queryById', + importExcel = '/school/enrollPlan/importExcel', + exportXls = '/school/enrollPlan/exportXls', +} + +export const getExportUrl = Api.exportXls; +export const getImportUrl = Api.importExcel; + +export const list = (params) => defHttp.get({ url: Api.list, params }); + +export const queryById = (params) => defHttp.get({ url: Api.queryById, params }); + +export const deleteOne = (params, handleSuccess) => { + return defHttp.delete({ url: Api.deleteOne, params }, { joinParamsToUrl: true }).then(() => { + handleSuccess?.(); + }); +}; + +export const batchDelete = (params, handleSuccess) => { + createConfirm({ + iconType: 'warning', + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({ url: Api.deleteBatch, data: params }, { joinParamsToUrl: true }).then(() => { + handleSuccess?.(); + }); + }, + }); +}; + +export const saveOrUpdate = (params, isUpdate) => { + const url = isUpdate ? Api.edit : Api.save; + return defHttp.post({ url, params }); +}; + diff --git a/src/views/school/enrollPlan/SchoolEnrollPlan.data.ts b/src/views/school/enrollPlan/SchoolEnrollPlan.data.ts new file mode 100644 index 0000000..c1fce2a --- /dev/null +++ b/src/views/school/enrollPlan/SchoolEnrollPlan.data.ts @@ -0,0 +1,85 @@ +import { BasicColumn } from '/@/components/Table'; +import { FormSchema } from '/@/components/Table'; + +export const columns: BasicColumn[] = [ + { + title: '学校ID', + align: 'center', + dataIndex: 'schoolId', + }, + { + title: '年份', + align: 'center', + dataIndex: 'year', + }, + { + title: '省份', + align: 'center', + dataIndex: 'province', + }, + { + title: '计划内容', + align: 'center', + dataIndex: 'planContent', + }, +]; + +export const searchFormSchema: FormSchema[] = [ + { + label: '学校ID', + field: 'schoolId', + component: 'InputNumber', + colProps: { span: 6 }, + }, + { + label: '年份', + field: 'year', + component: 'InputNumber', + colProps: { span: 6 }, + }, + { + label: '省份', + field: 'province', + component: 'Input', + colProps: { span: 6 }, + }, +]; + +export const formSchema: FormSchema[] = [ + { + label: '学校ID', + field: 'schoolId', + component: 'InputNumber', + required: true, + }, + { + label: '年份', + field: 'year', + component: 'InputNumber', + required: true, + }, + { + label: '省份', + field: 'province', + component: 'Input', + }, + { + label: '计划内容', + field: 'planContent', + component: 'InputTextArea', + componentProps: { + rows: 6, + }, + }, + { + label: '', + field: 'id', + component: 'Input', + show: false, + }, +]; + +export function getBpmFormSchema(_formData): FormSchema[] { + return formSchema; +} + diff --git a/src/views/school/enrollPlan/SchoolEnrollPlanList.vue b/src/views/school/enrollPlan/SchoolEnrollPlanList.vue new file mode 100644 index 0000000..8acd88d --- /dev/null +++ b/src/views/school/enrollPlan/SchoolEnrollPlanList.vue @@ -0,0 +1,122 @@ + + + + diff --git a/src/views/school/enrollPlan/components/SchoolEnrollPlanForm.vue b/src/views/school/enrollPlan/components/SchoolEnrollPlanForm.vue new file mode 100644 index 0000000..18dd667 --- /dev/null +++ b/src/views/school/enrollPlan/components/SchoolEnrollPlanForm.vue @@ -0,0 +1,69 @@ + + + + diff --git a/src/views/school/enrollPlan/components/SchoolEnrollPlanModal.vue b/src/views/school/enrollPlan/components/SchoolEnrollPlanModal.vue new file mode 100644 index 0000000..38e04d3 --- /dev/null +++ b/src/views/school/enrollPlan/components/SchoolEnrollPlanModal.vue @@ -0,0 +1,68 @@ + + + + + + diff --git a/src/views/school/major/SchoolMajor.api.ts b/src/views/school/major/SchoolMajor.api.ts new file mode 100644 index 0000000..aa10481 --- /dev/null +++ b/src/views/school/major/SchoolMajor.api.ts @@ -0,0 +1,49 @@ +import { defHttp } from '/@/utils/http/axios'; +import { useMessage } from '/@/hooks/web/useMessage'; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/school/major/list', + save = '/school/major/add', + edit = '/school/major/edit', + deleteOne = '/school/major/delete', + deleteBatch = '/school/major/deleteBatch', + queryById = '/school/major/queryById', + importExcel = '/school/major/importExcel', + exportXls = '/school/major/exportXls', +} + +export const getExportUrl = Api.exportXls; +export const getImportUrl = Api.importExcel; + +export const list = (params) => defHttp.get({ url: Api.list, params }); + +export const queryById = (params) => defHttp.get({ url: Api.queryById, params }); + +export const deleteOne = (params, handleSuccess) => { + return defHttp.delete({ url: Api.deleteOne, params }, { joinParamsToUrl: true }).then(() => { + handleSuccess?.(); + }); +}; + +export const batchDelete = (params, handleSuccess) => { + createConfirm({ + iconType: 'warning', + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({ url: Api.deleteBatch, data: params }, { joinParamsToUrl: true }).then(() => { + handleSuccess?.(); + }); + }, + }); +}; + +export const saveOrUpdate = (params, isUpdate) => { + const url = isUpdate ? Api.edit : Api.save; + return defHttp.post({ url, params }); +}; + diff --git a/src/views/school/major/SchoolMajor.data.ts b/src/views/school/major/SchoolMajor.data.ts new file mode 100644 index 0000000..5096018 --- /dev/null +++ b/src/views/school/major/SchoolMajor.data.ts @@ -0,0 +1,66 @@ +import { BasicColumn } from '/@/components/Table'; +import { FormSchema } from '/@/components/Table'; + +export const columns: BasicColumn[] = [ + { + title: '学校ID', + align: 'center', + dataIndex: 'schoolId', + }, + { + title: '专业编码', + align: 'center', + dataIndex: 'majorCode', + }, + { + title: '专业名称', + align: 'center', + dataIndex: 'majorName', + }, +]; + +export const searchFormSchema: FormSchema[] = [ + { + label: '学校ID', + field: 'schoolId', + component: 'InputNumber', + colProps: { span: 6 }, + }, + { + label: '专业名称', + field: 'majorName', + component: 'Input', + colProps: { span: 6 }, + }, +]; + +export const formSchema: FormSchema[] = [ + { + label: '学校ID', + field: 'schoolId', + component: 'InputNumber', + required: true, + }, + { + label: '专业编码', + field: 'majorCode', + component: 'Input', + }, + { + label: '专业名称', + field: 'majorName', + component: 'Input', + required: true, + }, + { + label: '', + field: 'id', + component: 'Input', + show: false, + }, +]; + +export function getBpmFormSchema(_formData): FormSchema[] { + return formSchema; +} + diff --git a/src/views/school/major/SchoolMajorList.vue b/src/views/school/major/SchoolMajorList.vue new file mode 100644 index 0000000..b4c8c63 --- /dev/null +++ b/src/views/school/major/SchoolMajorList.vue @@ -0,0 +1,122 @@ + + + + diff --git a/src/views/school/major/components/SchoolMajorForm.vue b/src/views/school/major/components/SchoolMajorForm.vue new file mode 100644 index 0000000..985d29e --- /dev/null +++ b/src/views/school/major/components/SchoolMajorForm.vue @@ -0,0 +1,69 @@ + + + + diff --git a/src/views/school/major/components/SchoolMajorModal.vue b/src/views/school/major/components/SchoolMajorModal.vue new file mode 100644 index 0000000..bc30be9 --- /dev/null +++ b/src/views/school/major/components/SchoolMajorModal.vue @@ -0,0 +1,68 @@ + + + + + + diff --git a/src/views/school/majorTag/SchoolMajorTag.api.ts b/src/views/school/majorTag/SchoolMajorTag.api.ts new file mode 100644 index 0000000..6037835 --- /dev/null +++ b/src/views/school/majorTag/SchoolMajorTag.api.ts @@ -0,0 +1,49 @@ +import { defHttp } from '/@/utils/http/axios'; +import { useMessage } from '/@/hooks/web/useMessage'; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/school/majorTag/list', + save = '/school/majorTag/add', + edit = '/school/majorTag/edit', + deleteOne = '/school/majorTag/delete', + deleteBatch = '/school/majorTag/deleteBatch', + queryById = '/school/majorTag/queryById', + importExcel = '/school/majorTag/importExcel', + exportXls = '/school/majorTag/exportXls', +} + +export const getExportUrl = Api.exportXls; +export const getImportUrl = Api.importExcel; + +export const list = (params) => defHttp.get({ url: Api.list, params }); + +export const queryById = (params) => defHttp.get({ url: Api.queryById, params }); + +export const deleteOne = (params, handleSuccess) => { + return defHttp.delete({ url: Api.deleteOne, params }, { joinParamsToUrl: true }).then(() => { + handleSuccess?.(); + }); +}; + +export const batchDelete = (params, handleSuccess) => { + createConfirm({ + iconType: 'warning', + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({ url: Api.deleteBatch, data: params }, { joinParamsToUrl: true }).then(() => { + handleSuccess?.(); + }); + }, + }); +}; + +export const saveOrUpdate = (params, isUpdate) => { + const url = isUpdate ? Api.edit : Api.save; + return defHttp.post({ url, params }); +}; + diff --git a/src/views/school/majorTag/SchoolMajorTag.data.ts b/src/views/school/majorTag/SchoolMajorTag.data.ts new file mode 100644 index 0000000..b5a2743 --- /dev/null +++ b/src/views/school/majorTag/SchoolMajorTag.data.ts @@ -0,0 +1,56 @@ +import { BasicColumn } from '/@/components/Table'; +import { FormSchema } from '/@/components/Table'; + +export const columns: BasicColumn[] = [ + { + title: '专业ID', + align: 'center', + dataIndex: 'majorId', + }, + { + title: '标签', + align: 'center', + dataIndex: 'tagName', + }, +]; + +export const searchFormSchema: FormSchema[] = [ + { + label: '专业ID', + field: 'majorId', + component: 'InputNumber', + colProps: { span: 6 }, + }, + { + label: '标签', + field: 'tagName', + component: 'Input', + colProps: { span: 6 }, + }, +]; + +export const formSchema: FormSchema[] = [ + { + label: '专业ID', + field: 'majorId', + component: 'InputNumber', + required: true, + }, + { + label: '标签', + field: 'tagName', + component: 'Input', + required: true, + }, + { + label: '', + field: 'id', + component: 'Input', + show: false, + }, +]; + +export function getBpmFormSchema(_formData): FormSchema[] { + return formSchema; +} + diff --git a/src/views/school/majorTag/SchoolMajorTagList.vue b/src/views/school/majorTag/SchoolMajorTagList.vue new file mode 100644 index 0000000..bbe4c58 --- /dev/null +++ b/src/views/school/majorTag/SchoolMajorTagList.vue @@ -0,0 +1,122 @@ + + + + diff --git a/src/views/school/majorTag/components/SchoolMajorTagForm.vue b/src/views/school/majorTag/components/SchoolMajorTagForm.vue new file mode 100644 index 0000000..b3dca80 --- /dev/null +++ b/src/views/school/majorTag/components/SchoolMajorTagForm.vue @@ -0,0 +1,69 @@ + + + + diff --git a/src/views/school/majorTag/components/SchoolMajorTagModal.vue b/src/views/school/majorTag/components/SchoolMajorTagModal.vue new file mode 100644 index 0000000..041d782 --- /dev/null +++ b/src/views/school/majorTag/components/SchoolMajorTagModal.vue @@ -0,0 +1,68 @@ + + + + + + diff --git a/src/views/school/media/SchoolMedia.api.ts b/src/views/school/media/SchoolMedia.api.ts new file mode 100644 index 0000000..ff1da19 --- /dev/null +++ b/src/views/school/media/SchoolMedia.api.ts @@ -0,0 +1,49 @@ +import { defHttp } from '/@/utils/http/axios'; +import { useMessage } from '/@/hooks/web/useMessage'; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/school/media/list', + save = '/school/media/add', + edit = '/school/media/edit', + deleteOne = '/school/media/delete', + deleteBatch = '/school/media/deleteBatch', + queryById = '/school/media/queryById', + importExcel = '/school/media/importExcel', + exportXls = '/school/media/exportXls', +} + +export const getExportUrl = Api.exportXls; +export const getImportUrl = Api.importExcel; + +export const list = (params) => defHttp.get({ url: Api.list, params }); + +export const queryById = (params) => defHttp.get({ url: Api.queryById, params }); + +export const deleteOne = (params, handleSuccess) => { + return defHttp.delete({ url: Api.deleteOne, params }, { joinParamsToUrl: true }).then(() => { + handleSuccess?.(); + }); +}; + +export const batchDelete = (params, handleSuccess) => { + createConfirm({ + iconType: 'warning', + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({ url: Api.deleteBatch, data: params }, { joinParamsToUrl: true }).then(() => { + handleSuccess?.(); + }); + }, + }); +}; + +export const saveOrUpdate = (params, isUpdate) => { + const url = isUpdate ? Api.edit : Api.save; + return defHttp.post({ url, params }); +}; + diff --git a/src/views/school/media/SchoolMedia.data.ts b/src/views/school/media/SchoolMedia.data.ts new file mode 100644 index 0000000..3927973 --- /dev/null +++ b/src/views/school/media/SchoolMedia.data.ts @@ -0,0 +1,86 @@ +import { BasicColumn } from '/@/components/Table'; +import { FormSchema } from '/@/components/Table'; +import { render } from '/@/utils/common/renderUtils'; + +export const columns: BasicColumn[] = [ + { + title: '业务类型', + align: 'center', + dataIndex: 'bizType', + }, + { + title: '业务ID', + align: 'center', + dataIndex: 'bizId', + }, + { + title: '媒体类型', + align: 'center', + dataIndex: 'mediaType', + }, + { + title: '媒体地址', + align: 'center', + dataIndex: 'mediaUrl', + }, + { + title: '预览', + align: 'center', + dataIndex: 'mediaUrl', + customRender: render.renderImage, + }, +]; + +export const searchFormSchema: FormSchema[] = [ + { + label: '业务类型', + field: 'bizType', + component: 'Input', + colProps: { span: 6 }, + }, + { + label: '业务ID', + field: 'bizId', + component: 'InputNumber', + colProps: { span: 6 }, + }, +]; + +export const formSchema: FormSchema[] = [ + { + label: '业务类型', + field: 'bizType', + component: 'Input', + required: true, + helpMessage: '例如:school/campus/dorm/major 等,由后端约定', + }, + { + label: '业务ID', + field: 'bizId', + component: 'InputNumber', + required: true, + }, + { + label: '媒体类型', + field: 'mediaType', + component: 'Input', + helpMessage: '例如:image/video/cover 等,由后端约定', + }, + { + label: '媒体地址', + field: 'mediaUrl', + component: 'Input', + required: true, + }, + { + label: '', + field: 'id', + component: 'Input', + show: false, + }, +]; + +export function getBpmFormSchema(_formData): FormSchema[] { + return formSchema; +} + diff --git a/src/views/school/media/SchoolMediaList.vue b/src/views/school/media/SchoolMediaList.vue new file mode 100644 index 0000000..577c81c --- /dev/null +++ b/src/views/school/media/SchoolMediaList.vue @@ -0,0 +1,122 @@ + + + + diff --git a/src/views/school/media/components/SchoolMediaForm.vue b/src/views/school/media/components/SchoolMediaForm.vue new file mode 100644 index 0000000..412901a --- /dev/null +++ b/src/views/school/media/components/SchoolMediaForm.vue @@ -0,0 +1,69 @@ + + + + diff --git a/src/views/school/media/components/SchoolMediaModal.vue b/src/views/school/media/components/SchoolMediaModal.vue new file mode 100644 index 0000000..b5f66cf --- /dev/null +++ b/src/views/school/media/components/SchoolMediaModal.vue @@ -0,0 +1,68 @@ + + + + + + diff --git a/src/views/school/name/SchoolName.api.ts b/src/views/school/name/SchoolName.api.ts new file mode 100644 index 0000000..85534b6 --- /dev/null +++ b/src/views/school/name/SchoolName.api.ts @@ -0,0 +1,49 @@ +import { defHttp } from '/@/utils/http/axios'; +import { useMessage } from '/@/hooks/web/useMessage'; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/school/name/list', + save = '/school/name/add', + edit = '/school/name/edit', + deleteOne = '/school/name/delete', + deleteBatch = '/school/name/deleteBatch', + queryById = '/school/name/queryById', + importExcel = '/school/name/importExcel', + exportXls = '/school/name/exportXls', +} + +export const getExportUrl = Api.exportXls; +export const getImportUrl = Api.importExcel; + +export const list = (params) => defHttp.get({ url: Api.list, params }); + +export const queryById = (params) => defHttp.get({ url: Api.queryById, params }); + +export const deleteOne = (params, handleSuccess) => { + return defHttp.delete({ url: Api.deleteOne, params }, { joinParamsToUrl: true }).then(() => { + handleSuccess?.(); + }); +}; + +export const batchDelete = (params, handleSuccess) => { + createConfirm({ + iconType: 'warning', + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({ url: Api.deleteBatch, data: params }, { joinParamsToUrl: true }).then(() => { + handleSuccess?.(); + }); + }, + }); +}; + +export const saveOrUpdate = (params, isUpdate) => { + const url = isUpdate ? Api.edit : Api.save; + return defHttp.post({ url, params }); +}; + diff --git a/src/views/school/name/SchoolName.data.ts b/src/views/school/name/SchoolName.data.ts new file mode 100644 index 0000000..d0df415 --- /dev/null +++ b/src/views/school/name/SchoolName.data.ts @@ -0,0 +1,90 @@ +import { BasicColumn } from '/@/components/Table'; +import { FormSchema } from '/@/components/Table'; + +const nameTypeOptions = [ + { label: '官方全称', value: 1 }, + { label: '曾用名', value: 2 }, + { label: '别名', value: 3 }, + { label: '英文名称', value: 4 }, +]; + +export const columns: BasicColumn[] = [ + { + title: '学校ID', + align: 'center', + dataIndex: 'schoolId', + }, + { + title: '名称', + align: 'center', + dataIndex: 'name', + }, + { + title: '名称类型', + align: 'center', + dataIndex: 'nameType', + customRender: ({ text }) => { + const found = nameTypeOptions.find((o) => o.value === text || o.value === Number(text)); + return found?.label || text; + }, + }, +]; + +export const searchFormSchema: FormSchema[] = [ + { + label: '学校ID', + field: 'schoolId', + component: 'InputNumber', + colProps: { span: 6 }, + }, + { + label: '名称', + field: 'name', + component: 'Input', + colProps: { span: 6 }, + }, + { + label: '名称类型', + field: 'nameType', + component: 'Select', + colProps: { span: 6 }, + componentProps: { + options: nameTypeOptions, + }, + }, +]; + +export const formSchema: FormSchema[] = [ + { + label: '学校ID', + field: 'schoolId', + component: 'InputNumber', + required: true, + }, + { + label: '名称', + field: 'name', + component: 'Input', + required: true, + }, + { + label: '名称类型', + field: 'nameType', + component: 'Select', + required: true, + componentProps: { + options: nameTypeOptions, + }, + }, + { + label: '', + field: 'id', + component: 'Input', + show: false, + }, +]; + +export function getBpmFormSchema(_formData): FormSchema[] { + return formSchema; +} + diff --git a/src/views/school/name/SchoolNameList.vue b/src/views/school/name/SchoolNameList.vue new file mode 100644 index 0000000..620416d --- /dev/null +++ b/src/views/school/name/SchoolNameList.vue @@ -0,0 +1,122 @@ + + + + diff --git a/src/views/school/name/components/SchoolNameForm.vue b/src/views/school/name/components/SchoolNameForm.vue new file mode 100644 index 0000000..0452ed0 --- /dev/null +++ b/src/views/school/name/components/SchoolNameForm.vue @@ -0,0 +1,69 @@ + + + + diff --git a/src/views/school/name/components/SchoolNameModal.vue b/src/views/school/name/components/SchoolNameModal.vue new file mode 100644 index 0000000..cf88aa8 --- /dev/null +++ b/src/views/school/name/components/SchoolNameModal.vue @@ -0,0 +1,68 @@ + + + + + + diff --git a/src/views/school/school/School.api.ts b/src/views/school/school/School.api.ts new file mode 100644 index 0000000..8970e99 --- /dev/null +++ b/src/views/school/school/School.api.ts @@ -0,0 +1,66 @@ +import { defHttp } from '/@/utils/http/axios'; +import { useMessage } from '/@/hooks/web/useMessage'; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/school/school/list', + search = '/school/school/search', + save = '/school/school/add', + edit = '/school/school/edit', + deleteOne = '/school/school/delete', + deleteBatch = '/school/school/deleteBatch', + queryById = '/school/school/queryById', + fullById = '/school/school/fullById', + fullByMainCode = '/school/school/fullByMainCode', + importExcel = '/school/school/importExcel', + exportXls = '/school/school/exportXls', +} + +export const getExportUrl = Api.exportXls; +export const getImportUrl = Api.importExcel; + +export const list = (params) => defHttp.get({ url: Api.list, params }); + +export const search = (params) => defHttp.get({ url: Api.search, params }); + +export const listOrSearch = (params) => { + if (params?.keyword) { + return search(params); + } + // 避免将 keyword 透传给 /list + const { keyword: _keyword, ...rest } = params || {}; + return list(rest); +}; + +export const queryById = (params) => defHttp.get({ url: Api.queryById, params }); + +export const fullById = (params) => defHttp.get({ url: Api.fullById, params }); + +export const fullByMainCode = (params) => defHttp.get({ url: Api.fullByMainCode, params }); + +export const deleteOne = (params, handleSuccess) => { + return defHttp.delete({ url: Api.deleteOne, params }, { joinParamsToUrl: true }).then(() => { + handleSuccess?.(); + }); +}; + +export const batchDelete = (params, handleSuccess) => { + createConfirm({ + iconType: 'warning', + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({ url: Api.deleteBatch, data: params }, { joinParamsToUrl: true }).then(() => { + handleSuccess?.(); + }); + }, + }); +}; + +export const saveOrUpdate = (params, isUpdate) => { + const url = isUpdate ? Api.edit : Api.save; + return defHttp.post({ url, params }); +}; diff --git a/src/views/school/school/School.data.ts b/src/views/school/school/School.data.ts new file mode 100644 index 0000000..dba8192 --- /dev/null +++ b/src/views/school/school/School.data.ts @@ -0,0 +1,101 @@ +import { BasicColumn } from '/@/components/Table'; +import { FormSchema } from '/@/components/Table'; +import { render } from '/@/utils/common/renderUtils'; + +export const columns: BasicColumn[] = [ + { + title: '学校编码', + align: 'center', + dataIndex: 'mainCode', + }, + { + title: '学校名称', + align: 'center', + dataIndex: 'mainName', + }, + { + title: '学校简称', + align: 'center', + dataIndex: 'shortName', + }, + { + title: '学校图标', + align: 'center', + dataIndex: 'schoolIcon', + customRender: render.renderImage, + }, + { + title: '创建时间', + align: 'center', + dataIndex: 'createTime', + }, + { + title: '更新时间', + align: 'center', + dataIndex: 'updateTime', + }, +]; + +export const searchFormSchema: FormSchema[] = [ + { + label: '关键字', + field: 'keyword', + component: 'Input', + colProps: { span: 6 }, + helpMessage: '走 /school/school/search:支持 编码/名称/简称/别名', + }, + { + label: '学校编码', + field: 'mainCode', + component: 'Input', + colProps: { span: 6 }, + }, + { + label: '学校名称', + field: 'mainName', + component: 'Input', + colProps: { span: 6 }, + }, + { + label: '学校简称', + field: 'shortName', + component: 'Input', + colProps: { span: 6 }, + }, +]; + +export const formSchema: FormSchema[] = [ + { + label: '学校编码', + field: 'mainCode', + component: 'Input', + required: true, + }, + { + label: '学校名称', + field: 'mainName', + component: 'Input', + required: true, + }, + { + label: '学校简称', + field: 'shortName', + component: 'Input', + }, + { + label: '学校图标', + field: 'schoolIcon', + component: 'Input', + helpMessage: '填写图片URL(或后端文件路径)', + }, + { + label: '', + field: 'id', + component: 'Input', + show: false, + }, +]; + +export function getBpmFormSchema(_formData): FormSchema[] { + return formSchema; +} diff --git a/src/views/school/school/SchoolList.vue b/src/views/school/school/SchoolList.vue new file mode 100644 index 0000000..b318ea1 --- /dev/null +++ b/src/views/school/school/SchoolList.vue @@ -0,0 +1,133 @@ + + + diff --git a/src/views/school/school/components/SchoolForm.vue b/src/views/school/school/components/SchoolForm.vue new file mode 100644 index 0000000..00ced25 --- /dev/null +++ b/src/views/school/school/components/SchoolForm.vue @@ -0,0 +1,69 @@ + + + + diff --git a/src/views/school/school/components/SchoolFullDrawer.vue b/src/views/school/school/components/SchoolFullDrawer.vue new file mode 100644 index 0000000..9bca38f --- /dev/null +++ b/src/views/school/school/components/SchoolFullDrawer.vue @@ -0,0 +1,41 @@ + + + + diff --git a/src/views/school/school/components/SchoolModal.vue b/src/views/school/school/components/SchoolModal.vue new file mode 100644 index 0000000..fcbafd4 --- /dev/null +++ b/src/views/school/school/components/SchoolModal.vue @@ -0,0 +1,68 @@ + + + + + + diff --git a/src/views/school/tag/SchoolTag.api.ts b/src/views/school/tag/SchoolTag.api.ts new file mode 100644 index 0000000..24a4260 --- /dev/null +++ b/src/views/school/tag/SchoolTag.api.ts @@ -0,0 +1,49 @@ +import { defHttp } from '/@/utils/http/axios'; +import { useMessage } from '/@/hooks/web/useMessage'; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/school/tag/list', + save = '/school/tag/add', + edit = '/school/tag/edit', + deleteOne = '/school/tag/delete', + deleteBatch = '/school/tag/deleteBatch', + queryById = '/school/tag/queryById', + importExcel = '/school/tag/importExcel', + exportXls = '/school/tag/exportXls', +} + +export const getExportUrl = Api.exportXls; +export const getImportUrl = Api.importExcel; + +export const list = (params) => defHttp.get({ url: Api.list, params }); + +export const queryById = (params) => defHttp.get({ url: Api.queryById, params }); + +export const deleteOne = (params, handleSuccess) => { + return defHttp.delete({ url: Api.deleteOne, params }, { joinParamsToUrl: true }).then(() => { + handleSuccess?.(); + }); +}; + +export const batchDelete = (params, handleSuccess) => { + createConfirm({ + iconType: 'warning', + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({ url: Api.deleteBatch, data: params }, { joinParamsToUrl: true }).then(() => { + handleSuccess?.(); + }); + }, + }); +}; + +export const saveOrUpdate = (params, isUpdate) => { + const url = isUpdate ? Api.edit : Api.save; + return defHttp.post({ url, params }); +}; + diff --git a/src/views/school/tag/SchoolTag.data.ts b/src/views/school/tag/SchoolTag.data.ts new file mode 100644 index 0000000..c0186b6 --- /dev/null +++ b/src/views/school/tag/SchoolTag.data.ts @@ -0,0 +1,56 @@ +import { BasicColumn } from '/@/components/Table'; +import { FormSchema } from '/@/components/Table'; + +export const columns: BasicColumn[] = [ + { + title: '学校ID', + align: 'center', + dataIndex: 'schoolId', + }, + { + title: '标签', + align: 'center', + dataIndex: 'tagName', + }, +]; + +export const searchFormSchema: FormSchema[] = [ + { + label: '学校ID', + field: 'schoolId', + component: 'InputNumber', + colProps: { span: 6 }, + }, + { + label: '标签', + field: 'tagName', + component: 'Input', + colProps: { span: 6 }, + }, +]; + +export const formSchema: FormSchema[] = [ + { + label: '学校ID', + field: 'schoolId', + component: 'InputNumber', + required: true, + }, + { + label: '标签', + field: 'tagName', + component: 'Input', + required: true, + }, + { + label: '', + field: 'id', + component: 'Input', + show: false, + }, +]; + +export function getBpmFormSchema(_formData): FormSchema[] { + return formSchema; +} + diff --git a/src/views/school/tag/SchoolTagList.vue b/src/views/school/tag/SchoolTagList.vue new file mode 100644 index 0000000..2a06c8d --- /dev/null +++ b/src/views/school/tag/SchoolTagList.vue @@ -0,0 +1,122 @@ + + + + diff --git a/src/views/school/tag/components/SchoolTagForm.vue b/src/views/school/tag/components/SchoolTagForm.vue new file mode 100644 index 0000000..7c7b283 --- /dev/null +++ b/src/views/school/tag/components/SchoolTagForm.vue @@ -0,0 +1,69 @@ + + + + diff --git a/src/views/school/tag/components/SchoolTagModal.vue b/src/views/school/tag/components/SchoolTagModal.vue new file mode 100644 index 0000000..ebb7e88 --- /dev/null +++ b/src/views/school/tag/components/SchoolTagModal.vue @@ -0,0 +1,68 @@ + + + + + +