diff --git a/.env.production b/.env.production index 45257e4..51ab7ea 100644 --- a/.env.production +++ b/.env.production @@ -19,7 +19,8 @@ VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false VITE_GLOB_API_URL=/jeecg-boot #后台接口全路径地址(必填) -VITE_GLOB_DOMAIN_URL=https://zxkccx.webvpn.nenu.edu.cn/jeecg-boot +#VITE_GLOB_DOMAIN_URL=https://zxkccx.webvpn.nenu.edu.cn/jeecg-boot +VITE_GLOB_DOMAIN_URL=https://kczxcs.nenu.edu.cn/jeecg-boot #RTC服务器地址 VITE_GLOB_RTC_SERVER = https://zxkccx.webvpn.nenu.edu.cn:8081 @@ -37,5 +38,5 @@ VITE_USE_PWA = false VITE_LEGACY = false # 是否开启单点登录 -VITE_GLOB_APP_OPEN_SSO = true +VITE_GLOB_APP_OPEN_SSO = false diff --git a/src/views/site/index.vue b/src/views/site/index.vue index c3cb6a9..9dde6d6 100644 --- a/src/views/site/index.vue +++ b/src/views/site/index.vue @@ -19,7 +19,7 @@ - + diff --git a/src/views/site/pjjgPage/studentPjjgTeaList.vue b/src/views/site/pjjgPage/studentPjjgTeaList.vue new file mode 100644 index 0000000..608c9c7 --- /dev/null +++ b/src/views/site/pjjgPage/studentPjjgTeaList.vue @@ -0,0 +1,184 @@ + + + \ No newline at end of file diff --git a/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcDetail.vue b/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcDetail.vue index b723189..88184ab 100644 --- a/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcDetail.vue +++ b/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcDetail.vue @@ -1,33 +1,87 @@ diff --git a/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMenu.vue b/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMenu.vue index 07cf77a..8d3fbfc 100644 --- a/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMenu.vue +++ b/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMenu.vue @@ -9,14 +9,14 @@ > - 课程介绍 + 课程介绍 公告 教学单元内容 课程作业 - 课程测验 + 课程测验 问卷调查 @@ -70,6 +70,10 @@ href = "/zy/dqkcLszy"; }else if(zytype=='gonggao'){ href = "/zy/tuGonggao"; + }else if(zytype=='kcjs'){ + href = "/zy/dqkcDetail"; + }else if(zytype=='kcjc'){ + href = "/zy/dqkcWenjuan"; } router.push({path:href,query: {rwbh,xqxn,type}}); diff --git a/src/views/system/loginmini/MiniLogin.vue b/src/views/system/loginmini/MiniLogin.vue index 8548e3a..e7f527e 100644 --- a/src/views/system/loginmini/MiniLogin.vue +++ b/src/views/system/loginmini/MiniLogin.vue @@ -161,8 +161,8 @@ //账号登录表单字段 const formData = reactive({ inputCode: '', - username: 'admin', - password: '123456', + username: '', + password: '', }); //手机登录表单字段 const phoneFormData = reactive({ diff --git a/src/views/zy/zyCjwt/ZyCjwt.api.ts b/src/views/zy/zyCjwt/ZyCjwt.api.ts new file mode 100644 index 0000000..04ef6cb --- /dev/null +++ b/src/views/zy/zyCjwt/ZyCjwt.api.ts @@ -0,0 +1,72 @@ +import { defHttp } from '/@/utils/http/axios'; +import { useMessage } from "/@/hooks/web/useMessage"; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/zyCjwt/zyCjwt/list', + save='/zyCjwt/zyCjwt/add', + edit='/zyCjwt/zyCjwt/edit', + deleteOne = '/zyCjwt/zyCjwt/delete', + deleteBatch = '/zyCjwt/zyCjwt/deleteBatch', + importExcel = '/zyCjwt/zyCjwt/importExcel', + exportXls = '/zyCjwt/zyCjwt/exportXls', +} + +/** + * 导出api + * @param params + */ +export const getExportUrl = Api.exportXls; + +/** + * 导入api + */ +export const getImportUrl = Api.importExcel; + +/** + * 列表接口 + * @param params + */ +export const list = (params) => defHttp.get({ url: Api.list, params }); + +/** + * 删除单个 + * @param params + * @param handleSuccess + */ +export const deleteOne = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} + +/** + * 批量删除 + * @param params + * @param 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(); + }); + } + }); +} + +/** + * 保存或者更新 + * @param params + * @param isUpdate + */ +export const saveOrUpdate = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.save; + return defHttp.post({ url: url, params }, { isTransformResponse: false }); +} diff --git a/src/views/zy/zyCjwt/ZyCjwt.data.ts b/src/views/zy/zyCjwt/ZyCjwt.data.ts new file mode 100644 index 0000000..9a7e847 --- /dev/null +++ b/src/views/zy/zyCjwt/ZyCjwt.data.ts @@ -0,0 +1,71 @@ +import {BasicColumn} from '/@/components/Table'; +import {FormSchema} from '/@/components/Table'; +import { rules} from '/@/utils/helper/validator'; +import { render } from '/@/utils/common/renderUtils'; +//列表数据 +export const columns: BasicColumn[] = [ + { + title: 'createTime', + align: "center", + dataIndex: 'createTime', + customRender:({text}) =>{ + return !text?"":(text.length>10?text.substr(0,10):text); + }, + }, + { + title: '学期学年', + align: "center", + dataIndex: 'xqxn' + }, + { + title: '问题', + align: "center", + dataIndex: 'question' + }, + { + title: '答案', + align: "center", + dataIndex: 'answer' + }, +]; + +//查询数据 +export const searchFormSchema: FormSchema[] = [ + { + label: "问题", + field: 'question', + component: 'Input', + colProps: {span: 6}, + }, +]; + +//表单数据 +export const formSchema: FormSchema[] = [ + { + label: '问题', + field: 'question', + component: 'InputTextArea', + dynamicRules: ({model,schema}) => { + return [ + { required: true, message: '请输入问题!'}, + ]; + }, + }, + { + label: '答案', + field: 'answer', + component: 'InputTextArea', + dynamicRules: ({model,schema}) => { + return [ + { required: true, message: '请输入答案!'}, + ]; + }, + }, + // TODO 主键隐藏字段,目前写死为ID + { + label: '', + field: 'id', + component: 'Input', + show: false, + }, +]; diff --git a/src/views/zy/zyCjwt/ZyCjwtList.vue b/src/views/zy/zyCjwt/ZyCjwtList.vue new file mode 100644 index 0000000..36bf4f2 --- /dev/null +++ b/src/views/zy/zyCjwt/ZyCjwtList.vue @@ -0,0 +1,232 @@ + + + + + diff --git a/src/views/zy/zyCjwt/components/ZyCjwtForm.vue b/src/views/zy/zyCjwt/components/ZyCjwtForm.vue new file mode 100644 index 0000000..2e5248a --- /dev/null +++ b/src/views/zy/zyCjwt/components/ZyCjwtForm.vue @@ -0,0 +1,135 @@ + + + + + diff --git a/src/views/zy/zyCjwt/components/ZyCjwtModal.vue b/src/views/zy/zyCjwt/components/ZyCjwtModal.vue new file mode 100644 index 0000000..ce140fe --- /dev/null +++ b/src/views/zy/zyCjwt/components/ZyCjwtModal.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/views/zy/zyGonggao/ZyGonggaoList.vue b/src/views/zy/zyGonggao/ZyGonggaoList.vue index b9d9364..3415603 100644 --- a/src/views/zy/zyGonggao/ZyGonggaoList.vue +++ b/src/views/zy/zyGonggao/ZyGonggaoList.vue @@ -26,7 +26,7 @@ - + diff --git a/src/views/zy/zyJxdg/ZyJxdg.api.ts b/src/views/zy/zyJxdg/ZyJxdg.api.ts new file mode 100644 index 0000000..08e4aec --- /dev/null +++ b/src/views/zy/zyJxdg/ZyJxdg.api.ts @@ -0,0 +1,72 @@ +import { defHttp } from '/@/utils/http/axios'; +import { useMessage } from "/@/hooks/web/useMessage"; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/zyJxdg/zyJxdg/list', + save='/zyJxdg/zyJxdg/add', + edit='/zyJxdg/zyJxdg/edit', + deleteOne = '/zyJxdg/zyJxdg/delete', + deleteBatch = '/zyJxdg/zyJxdg/deleteBatch', + importExcel = '/zyJxdg/zyJxdg/importExcel', + exportXls = '/zyJxdg/zyJxdg/exportXls', +} + +/** + * 导出api + * @param params + */ +export const getExportUrl = Api.exportXls; + +/** + * 导入api + */ +export const getImportUrl = Api.importExcel; + +/** + * 列表接口 + * @param params + */ +export const list = (params) => defHttp.get({ url: Api.list, params }); + +/** + * 删除单个 + * @param params + * @param handleSuccess + */ +export const deleteOne = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} + +/** + * 批量删除 + * @param params + * @param 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(); + }); + } + }); +} + +/** + * 保存或者更新 + * @param params + * @param isUpdate + */ +export const saveOrUpdate = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.save; + return defHttp.post({ url: url, params }, { isTransformResponse: false }); +} diff --git a/src/views/zy/zyJxdg/ZyJxdg.data.ts b/src/views/zy/zyJxdg/ZyJxdg.data.ts new file mode 100644 index 0000000..53bf7d2 --- /dev/null +++ b/src/views/zy/zyJxdg/ZyJxdg.data.ts @@ -0,0 +1,35 @@ +import {BasicColumn} from '/@/components/Table'; +import {FormSchema} from '/@/components/Table'; +import { rules} from '/@/utils/helper/validator'; +import { render } from '/@/utils/common/renderUtils'; +//列表数据 +export const columns: BasicColumn[] = [ + { + title: '附件', + align: "center", + dataIndex: 'filePath', + slots: { customRender: 'fileSlot' }, + }, +]; + +//查询数据 +export const searchFormSchema: FormSchema[] = [ +]; + +//表单数据 +export const formSchema: FormSchema[] = [ + { + label: '附件', + field: 'filePath', + component: 'JUpload', + componentProps:{ + }, + }, + // TODO 主键隐藏字段,目前写死为ID + { + label: '', + field: 'id', + component: 'Input', + show: false, + }, +]; diff --git a/src/views/zy/zyJxdg/ZyJxdgList.vue b/src/views/zy/zyJxdg/ZyJxdgList.vue new file mode 100644 index 0000000..5a105d1 --- /dev/null +++ b/src/views/zy/zyJxdg/ZyJxdgList.vue @@ -0,0 +1,215 @@ + + + + + diff --git a/src/views/zy/zyJxdg/ZyJxdg_menu_insert.sql b/src/views/zy/zyJxdg/ZyJxdg_menu_insert.sql new file mode 100644 index 0000000..fde3a5e --- /dev/null +++ b/src/views/zy/zyJxdg/ZyJxdg_menu_insert.sql @@ -0,0 +1,26 @@ +-- 注意:该页面对应的前台目录为views/zyJxdg文件夹下 +-- 如果你想更改到其他目录,请修改sql中component字段对应的值 + + +INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external) +VALUES ('202405110931940070', NULL, '教学大纲', '/zyJxdg/zyJxdgList', 'zyJxdg/ZyJxdgList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2024-05-11 09:31:07', NULL, NULL, 0); + +-- 权限控制sql +-- 新增 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('202405110931940071', '202405110931940070', '添加教学大纲', NULL, NULL, 0, NULL, NULL, 2, 'zyJxdg:zy_jxdg:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2024-05-11 09:31:07', NULL, NULL, 0, 0, '1', 0); +-- 编辑 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('202405110931940072', '202405110931940070', '编辑教学大纲', NULL, NULL, 0, NULL, NULL, 2, 'zyJxdg:zy_jxdg:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2024-05-11 09:31:07', NULL, NULL, 0, 0, '1', 0); +-- 删除 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('202405110931940073', '202405110931940070', '删除教学大纲', NULL, NULL, 0, NULL, NULL, 2, 'zyJxdg:zy_jxdg:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2024-05-11 09:31:07', NULL, NULL, 0, 0, '1', 0); +-- 批量删除 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('202405110931940074', '202405110931940070', '批量删除教学大纲', NULL, NULL, 0, NULL, NULL, 2, 'zyJxdg:zy_jxdg:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2024-05-11 09:31:07', NULL, NULL, 0, 0, '1', 0); +-- 导出excel +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('202405110931940075', '202405110931940070', '导出excel_教学大纲', NULL, NULL, 0, NULL, NULL, 2, 'zyJxdg:zy_jxdg:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2024-05-11 09:31:07', NULL, NULL, 0, 0, '1', 0); +-- 导入excel +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('202405110931940076', '202405110931940070', '导入excel_教学大纲', NULL, NULL, 0, NULL, NULL, 2, 'zyJxdg:zy_jxdg:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2024-05-11 09:31:07', NULL, NULL, 0, 0, '1', 0); \ No newline at end of file diff --git a/src/views/zy/zyJxdg/components/ZyJxdgForm.vue b/src/views/zy/zyJxdg/components/ZyJxdgForm.vue new file mode 100644 index 0000000..7c641f5 --- /dev/null +++ b/src/views/zy/zyJxdg/components/ZyJxdgForm.vue @@ -0,0 +1,128 @@ + + + + + diff --git a/src/views/zy/zyJxdg/components/ZyJxdgModal.vue b/src/views/zy/zyJxdg/components/ZyJxdgModal.vue new file mode 100644 index 0000000..e2638a5 --- /dev/null +++ b/src/views/zy/zyJxdg/components/ZyJxdgModal.vue @@ -0,0 +1,75 @@ + + + + +